Description
Optional-reasoning models can resolve to disable after selecting or switching models even when their model metadata advertises a reasoning default. This leaves models such as OpenCode Go DeepSeek V4 / GLM 5.2 and NanoGPT Muse Spark running without visible thinking unless the user manually reselects a reasoning effort.
Originally reported in Discord: https://discord.com/channels/1497384592494297201/1504099932158824590/1540812344861663393
Reproduction
- Use Zoo Code v3.80.0.
- Select OpenCode Go and
deepseek-v4-flash with no persisted reasoningEffort.
- Inspect the reasoning-effort selection.
A focused component reproduction renders the selected effort as disable, although the model metadata declares reasoningEffort: "high". The same shared settings path affects other optional-reasoning models.
Expected behavior
When no explicit user choice is persisted, a reasoning-capable model should use its advertised default effort and enable reasoning. An explicit user selection of disable must continue to turn reasoning off.
Actual behavior
The settings UI defaults optional-reasoning models to disable. Model switching clears reasoningEffort, and NanoGPT only forwards an explicitly stored effort, so affected models may not think.
Technical notes
ThinkingBudget chooses disable as the default unless reasoning is required, ignoring an optional model default.
- Model-change side effects clear
reasoningEffort but do not establish the newly selected model default.
- NanoGPT request construction reads only the persisted effort rather than falling back to model metadata.
Acceptance criteria
- Add regression coverage first for an optional-reasoning model with an advertised default and no stored effort.
- Default to the model-advertised effort when the user has not made an explicit selection.
- Preserve explicit
disable behavior.
- Cover request construction for affected providers where needed.
Description
Optional-reasoning models can resolve to
disableafter selecting or switching models even when their model metadata advertises a reasoning default. This leaves models such as OpenCode Go DeepSeek V4 / GLM 5.2 and NanoGPT Muse Spark running without visible thinking unless the user manually reselects a reasoning effort.Originally reported in Discord: https://discord.com/channels/1497384592494297201/1504099932158824590/1540812344861663393
Reproduction
deepseek-v4-flashwith no persistedreasoningEffort.A focused component reproduction renders the selected effort as
disable, although the model metadata declaresreasoningEffort: "high". The same shared settings path affects other optional-reasoning models.Expected behavior
When no explicit user choice is persisted, a reasoning-capable model should use its advertised default effort and enable reasoning. An explicit user selection of
disablemust continue to turn reasoning off.Actual behavior
The settings UI defaults optional-reasoning models to
disable. Model switching clearsreasoningEffort, and NanoGPT only forwards an explicitly stored effort, so affected models may not think.Technical notes
ThinkingBudgetchoosesdisableas the default unless reasoning is required, ignoring an optional model default.reasoningEffortbut do not establish the newly selected model default.Acceptance criteria
disablebehavior.