Skip to content

[BUG] Reasoning-capable models default to no thinking after model selection #1348

Description

@zoomote

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

  1. Use Zoo Code v3.80.0.
  2. Select OpenCode Go and deepseek-v4-flash with no persisted reasoningEffort.
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions