You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Thinking/reasoning provider options not gated by model capabilities #34323
Thinking/reasoning provider options in ProviderTransform.options() are not gated by model.capabilities.reasoning. This breaks non-reasoning models in two ways:
Normal output from a non-thinking model gets stored as reasoning ("thinking") instead of assistant text.
Opting out via agent options: { thinking: { type: "disable" } } passes the field straight through to the provider, and the non-thinking model's API rejects the unknown parameter.
Seven branches in options() inject thinking/reasoning params based on provider ID or model ID matching alone. Only Google and alibaba-cn branches already gate on capabilities.reasoning.
Plugins
None
OpenCode version
1.17.11
Steps to reproduce
Configure a subagent using a non-reasoning model whose ID/provider matches one of the ungated branches (e.g. zai/zhipuai via openai-compatible)
Invoke it via the task tool — output is recorded as thinking instead of text
Activity
github-actions commentedon Jun 28, 2026
This issue might be a duplicate of existing issues. Please check:
ProviderTransform.options()injects thinking/reasoning params without gating onmodel.capabilities.reasoning, causing non-reasoning model output to be stored as thinking andthinking: { type: "disable" }to be rejected by the provider API.github-actions commentedon Aug 28, 2026
To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.