fix: GLM thinking values, remove output popup, filter enabled models — fixes #61, #67, #62#68
Conversation
…odel fetch - ltmoerdani#61: Remove invalid 'on' from GLM thinking enum, accept only 'off'/'high'/'max' - ltmoerdani#61: Send reasoning_effort for GLM when value is effort-based (high/max) - ltmoerdani#61: Split combined glm/kimi schema into separate blocks - ltmoerdani#67: Remove getOutputChannel().show(true) calls causing random popups - ltmoerdani#62: Pass Authorization header when fetching model list (already implemented) - ltmoerdani#61: Update validate-models.mts to test GLM with high/max instead of on - Add comprehensive unit tests for GLM effort values (issue ltmoerdani#61)
|
nice one, clean fix for 3 bugs at once. I went through the code: #61 GLM thinking good approach sending #67 output popup the #62 filter models clean, one-line change at the call site makes 102 lines of new tests covering effort values, schema generation, override, and invalid value rejection. Solid coverage. I tested locally, works well. Merged ready. The stale GLM "on" config question is optional though, depends on how the gateway handles it, if it's graceful, just skip it. |
…bility - Added documentation for PR #42 and PR #43 addressing issue #41 regarding duplicate agent-host models in the Manage Language Models panel. - Introduced a new boolean setting `opencodego.showInAgentsWindow` to control the visibility of agent-host models. - Implemented separate vendor IDs for agent models to eliminate duplication across UI surfaces. - Updated related files and settings to reflect changes in model registration and visibility. feat: Add manual usage targets and live pricing for Go usage tracker - Documented PR #50 which introduces manual configuration for Go usage targets and updates cost estimation to use live pricing. - Implemented a command to allow users to set manual usage targets for session, weekly, and monthly spent. - Enhanced the usage tracker to read actual billed amounts from SQLite database for accurate cost estimation. fix: Improve SQLite-backed cost accuracy and resolve DeepSeek context overflow - Documented PR #60 addressing subscription cost drift by integrating SQLite data into the usage tracker. - Fixed context overflow issue for DeepSeek by adjusting token limits based on prompt size. - Cleaned up SSE logging to reduce noise in the Output channel. fix: Resolve GLM thinking values and output popup issues - Documented PR #68 which fixes GLM thinking values to accept valid effort-based options for GLM 5.2. - Removed intrusive output channel popups during normal operations and connection tests. - Ensured model list fetch includes the Authorization header for accurate model visibility.
fix: GLM thinking values, remove output popup, filter enabled models — fixes #61, #67, #62
Goal
Fix three reported bugs: GLM accepting invalid thinking values, unwanted output channel popup, and model list showing disabled/unavailable models.
What was implemented
#61 — GLM thinking allows invalid values
"on"fromopencodego.thinking.glmenum — GLM 5.2 only acceptsoff/high/maxper models.devbuildThinkingPayloadnow sendsreasoning_effortfor GLM when the value is effort-based (high/max); only"off"maps tothinking: { type: "disabled" }buildFamilyThinkingSchemasplit into separate blocks for GLM and Kimi (were combined in a singleif)validate-models.mtsto test GLM withhigh/maxinstead ofonpackage.jsonwith correct enum and concise description#67 — Annoying output window popup
this.getOutputChannel().show(true)calls intestConnection()(success and error paths) and inprovideLanguageModelChatResponse()error catch#62 — Display only enabled models
fetchModels()already sentAuthorization: Bearer <key>header, but the key was only read from secret storage internally. Now the API key is passed explicitly fromprovideLanguageModelChatInformation()tofetchModels(), ensuring the header always carries the correct keyChangelog
Testing
86/86 unit tests pass. GLM dry-run on validate-models.mts confirms:
high→{"thinking":{"type":"enabled"}}high→{"reasoning_effort":"high"},max→{"reasoning_effort":"max"}