[Fix] Reasoning models stop thinking after model selection - #1349
[Fix] Reasoning models stop thinking after model selection#1349zoomote[bot] wants to merge 3 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Addressed the remaining Codecov branch with component-level coverage for required reasoning without an advertised default, plus a state matrix for supported overrides, stale-value normalization, and optional-off defaults. Snapshot and VS Code e2e coverage were intentionally not added: this is deterministic component/request state behavior with no visual or extension-host boundary. The focused component suite, full repository suite, type-check, and lint pass. TLC model checking completed with no invariant violations across 20 reachable states: report. Pushed in 84769af. |
Review processThis PR was opened by an automated account. A human maintainer must verify the change intent, provenance, and validation before merging.
Current step: Ready for human maintainer review and approval. |
What changed
Reasoning-capable models now initialize and persist their advertised default effort instead of silently resolving to
None. Models without an off mode fall back to their first supported effort, while an explicit user-selectedNoneremains authoritative.NanoGPT applies the same resolution before the settings UI mounts for both streaming requests and prompt completions. Regression tests cover advertised defaults, required and optional fallback paths, supported overrides, stale-value normalization, explicit disable, and both NanoGPT request paths.
The reasoning transition model was also checked with TLC across initialization, model switching, explicit effort, explicit disable, and request-enablement states. The TLA+ specification, configuration, and validation report are available for review.
Why this change was made
Users reported that DeepSeek V4, GLM 5.2, and Muse Spark stopped showing thinking after selecting or switching models. The UI displayed a fallback effort without persisting it, and NanoGPT omitted reasoning when no explicit setting existed.
Closes #1348.
Impact
Reasoning models start with a valid model-supported effort after selection and continue sending reasoning parameters across UI and non-UI request paths. Users who explicitly choose
Nonekeep reasoning disabled. The expanded component state matrix closes the remaining Codecov branch gap without adding brittle snapshots or a redundant VS Code-host e2e.Related PRs