Skip to content

Add supports_disabling_thinking to Cloud model listings - #58980

Merged
eholk merged 1 commit into
mainfrom
supports-disabling-thinking
Jun 10, 2026
Merged

Add supports_disabling_thinking to Cloud model listings#58980
eholk merged 1 commit into
mainfrom
supports-disabling-thinking

Conversation

@eholk

@eholk eholk commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Claude Fable 5 always thinks and cannot honor a request with thinking disabled, but the cloud models listing gives clients no way to tell it apart from models where thinking is optional (e.g. Claude Opus 4.6): both report supports_thinking: true plus the same adaptive effort levels. As a result, the agent panel shows a thinking toggle for Fable even though turning it off isn't actually supported.

zed-industries/cloud#2789 adds a supports_disabling_thinking field to the models listing. This PR mirrors it through cloud_llm_client::LanguageModel (serde-defaulted to false, so a server without the field is treated as "don't claim thinking can be turned off") and exposes it as LanguageModel::supports_disabling_thinking(), forwarded from the listing by CloudLanguageModel. The agent panel now hides the thinking toggle for models that report false, showing only the effort selector.

The trait default is true: every non-cloud provider in the tree treats thinking as toggleable today, and only the cloud listing knows about always-thinking models.

Draft until zed-industries/cloud#2789 lands and deploys.

Release Notes:

  • Fixed the agent panel offering a thinking toggle for models that cannot run with thinking disabled.

@cla-bot cla-bot Bot added the cla-signed The user has signed the Contributor License Agreement label Jun 9, 2026
@zed-community-bot zed-community-bot Bot added the staff Pull requests authored by a current member of Zed staff label Jun 9, 2026
Claude Fable 5 always thinks and cannot honor a request with thinking
disabled, but the cloud models listing gave clients no way to tell it
apart from models where thinking is optional (e.g. Claude Opus 4.6).
Mirror the new supports_disabling_thinking field from the cloud
listing (zed-industries/cloud#2789) through cloud_llm_client and
expose it on the LanguageModel trait.

In the agent panel, hide the thinking toggle for models that report
false and show only the effort selector; ignore the ToggleThinkingMode
action for them; and force thinking_allowed in completion requests so
a toggle state left over from a previously selected model can't
request the impossible.

Release Notes:

- Fixed the agent panel offering a thinking toggle for models that cannot run with thinking disabled.
@eholk
eholk force-pushed the supports-disabling-thinking branch from 6a2f0ff to 4f93a78 Compare June 9, 2026 22:53
@eholk
eholk marked this pull request as ready for review June 9, 2026 23:18
@maxdeviant maxdeviant changed the title Add supports_disabling_thinking to cloud model listings Add supports_disabling_thinking to Cloud model listings Jun 9, 2026
@eholk
eholk added this pull request to the merge queue Jun 10, 2026
Merged via the queue into main with commit 20a3f77 Jun 10, 2026
33 checks passed
@eholk
eholk deleted the supports-disabling-thinking branch June 10, 2026 19:38
This was referenced Jun 18, 2026
jonx pushed a commit to jonx/zed-aros that referenced this pull request Jul 17, 2026
…es#58980)

Claude Fable 5 always thinks and cannot honor a request with thinking
disabled, but the cloud models listing gives clients no way to tell it
apart from models where thinking is optional (e.g. Claude Opus 4.6):
both report `supports_thinking: true` plus the same adaptive effort
levels. As a result, the agent panel shows a thinking toggle for Fable
even though turning it off isn't actually supported.

zed-industries/cloud#2789 adds a `supports_disabling_thinking` field to
the models listing. This PR mirrors it through
`cloud_llm_client::LanguageModel` (serde-defaulted to `false`, so a
server without the field is treated as "don't claim thinking can be
turned off") and exposes it as
`LanguageModel::supports_disabling_thinking()`, forwarded from the
listing by `CloudLanguageModel`. The agent panel now hides the thinking
toggle for models that report `false`, showing only the effort selector.

The trait default is `true`: every non-cloud provider in the tree treats
thinking as toggleable today, and only the cloud listing knows about
always-thinking models.

Draft until zed-industries/cloud#2789 lands and deploys.

Release Notes:

- Fixed the agent panel offering a thinking toggle for models that
cannot run with thinking disabled.
jolutz pushed a commit to jolutz/zed that referenced this pull request Aug 8, 2026
…es#58980)

Claude Fable 5 always thinks and cannot honor a request with thinking
disabled, but the cloud models listing gives clients no way to tell it
apart from models where thinking is optional (e.g. Claude Opus 4.6):
both report `supports_thinking: true` plus the same adaptive effort
levels. As a result, the agent panel shows a thinking toggle for Fable
even though turning it off isn't actually supported.

zed-industries/cloud#2789 adds a `supports_disabling_thinking` field to
the models listing. This PR mirrors it through
`cloud_llm_client::LanguageModel` (serde-defaulted to `false`, so a
server without the field is treated as "don't claim thinking can be
turned off") and exposes it as
`LanguageModel::supports_disabling_thinking()`, forwarded from the
listing by `CloudLanguageModel`. The agent panel now hides the thinking
toggle for models that report `false`, showing only the effort selector.

The trait default is `true`: every non-cloud provider in the tree treats
thinking as toggleable today, and only the cloud listing knows about
always-thinking models.

Draft until zed-industries/cloud#2789 lands and deploys.

Release Notes:

- Fixed the agent panel offering a thinking toggle for models that
cannot run with thinking disabled.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The user has signed the Contributor License Agreement staff Pull requests authored by a current member of Zed staff

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants