feat: P132 providers × protocols, deepseek-flash, installer artifact; fix: P133 hidden SolidWorks instance, mass_properties - #4
Merged
Conversation
…er on the Actions run page Settings: presets are organised by provider (PROVIDERS), each with an OpenAI-compatible and/or Anthropic-compatible URL. The quick-fill row shows under both protocols and fills the provider's URL for the selected protocol; the model dropdown lists only the active provider's models + Custom; switching protocol keeps the provider when it serves both (e.g. https://api.deepseek.com <-> https://api.deepseek.com/anthropic) and keeps the model when that provider lists it. Model ids: DeepSeek V4.1 Flash is deepseek-flash (deepseek-v4-flash retired); kimi-k3 and qwen3.8-max added and suggested. Anthropic-compatible URLs added for DeepSeek, Kimi, MiniMax, GLM, Qwen and Ollama. Build: the Actions artifacts are now the Setup installer and the zip, uploaded unzipped (archive: false) instead of the win-unpacked folder that GitHub served as a zip; a manual "Run workflow" also packages, verifies and attaches the installer (no Release). Docs: README / README.zh-CN provider tables list both URLs per provider; CHANGELOG. Tests: provider resolution, per-provider model list, protocol switch, quick-fill. 197 JS + 58 Python tests pass; typecheck, lint, ruff, compileall, renderer build OK.
…es under late binding
The sidecar connects with Dispatch("SldWorks.Application"). When COM cannot reach the
running SolidWorks (typically a privilege-level mismatch: one of the two "Run as
administrator"), it silently starts a new, invisible SolidWorks and every tool runs
there - a whole part was built and verified while the user's window stayed empty.
On connect the sidecar now checks Visible: a hidden instance is made visible
(Visible, UserControl), the SLDWORKS.exe list before/after tells a second instance
from "SolidWorks was not running", and a note naming the cause and the fix (plus
whether Millwright is elevated) rides on tool results as _connection; the chat shows
it once per session.
mass_properties failed with "CreateMassProperty/2 unavailable": a COM object is
always callable (__call__ -> default member), so the late-bound MassProperty object
that getattr already returned was called again. sw_get now returns COM objects as-is;
mass_properties uses it.
Tests: sidecar/tests/test_p133_visibility.py (fails 5/5 on 0.2.131).
197 JS + 63 Python tests pass; typecheck, lint, ruff, compileall OK.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Changed
v0.2.132: P133, tools built the part in a SolidWorks the user could not see
Dispatch("SldWorks.Application"). When COM cannot reach the user's running SolidWorks, it silently starts a new, invisible SolidWorks and every tool runs there. The usual reason is a privilege-level mismatch: one of the two apps runs "as administrator"._connection, and the chat shows it once per session.mass_properties"CreateMassProperty/2 unavailable": under late binding the MassProperty object was called a second time.sw_getnow returns COM objects as they are.v0.2.131: P132
https://api.deepseek.comandhttps://api.deepseek.com/anthropic.deepseek-flash.deepseek-v4-flashwas retired, so it is removed.kimi-k3andqwen3.8-maxare added.archive: false).Related Issue
N/A
Type of Change
Testing
npm testpasses (197 tests).pytest sidecar/testspasses (63 tests). The newtest_p133_visibility.pyfails 5/5 on 0.2.131.npm run lintpasses.typecheck,ruff,compileallandscripts/precommit-check.sh 0.2.132also pass.mass_properties.Checklist