Repository navigation
Description
Description
The model selector tooltip displays “不支持推理” (“Reasoning unsupported”) for GPT-6 Astra, GPT-6 Luna, and GPT-6.1 Sol, even though reasoning variants such as High are available.
This report concerns the capability label shown in the UI, not a confirmed failure of upstream reasoning execution.
OpenCode version
2.0.24
Operating System
Windows, build 10.0.26300 (x64)
Plugins
- billion-context
- opencode-mem@2.29.1
Client / Terminal
The issue appears in the graphical model selector shown in the attached screenshot.
Local diagnostics were collected in an environment with TERM_PROGRAM=zed. The exact affected GUI client/version has not been separately confirmed.
Steps to reproduce
- Open the model selector with the UI language set to Chinese.
- Hover over GPT-6 Astra, GPT-6 Luna, or GPT-6.1 Sol.
- Observe “不支持推理” /“Reasoning unsupported” in each model tooltip.
- Select GPT-6.1 Sol and observe that the High reasoning variant is available.
Expected Behavior
The tooltip should accurately reflect reasoning support. If support cannot be determined from the available metadata, it should show “Unknown” rather than “Unsupported”.
Actual Behavior
All tested models above display reasoning as unsupported, despite having reasoning variants in the model catalog.
Diagnostic Evidence
I inspected the local model catalog using:
opencode api get /api/modelFor the three OpenAI models listed above:
- The returned variants include
high. - The
highvariant hassettings.reasoningEffort: "high"andsettings.reasoningSummary: "auto". - The returned capabilities contain
tools,input, andoutput, but noreasoningfield.
The published V2 API schema also defines Model.Capabilities with only tools, input, and output.
A possible explanation is that the UI interprets an absent reasoning capability field as false. This is only a hypothesis: I have not inspected the UI implementation or verified upstream reasoning execution.
I have not tested whether the issue persists with plugins disabled. No configuration changes were made during diagnosis.
Screenshot
Attach the screenshot showing “不支持推理” in the model tooltip.
Possibly Related Issues
The automated triage bot identified these possible duplicates:
- desktop: model tooltip shows "reasoning not supported" for every model #50557
- desktop: model picker shows "No reasoning" for all V2 models — capabilities.reasoning is never set #50257
- desktop: model tooltip shows "No reasoning" for openai-compatible models configured with reasoning: true #51846
I have not independently confirmed whether they have the same root cause.
Activity
Oktinner0320 commentedon Oct 6, 2026
Now i improve
github-actions commentedon Oct 6, 2026
Thanks for updating the issue with the reproduction steps and system details!
yukunmeng commentedon Oct 20, 2026
Confirmed on opencode 2.0.32 (Windows x64, Chinese UI): the tooltip shows
不支持推理for every model in the picker, not only the ones named here.Measured against a live 2.0.32 server (
GET /api/model):capabilities.reasoningreasoningfieldcapabilitiespresent, so themodel.reasoningfallback in the tooltip is unreachableRoot cause, still present on current
dev:packages/core/src/models-dev.ts→modelInfo()buildscapabilitiesfromtools/input/output/temperatureonly. models.dev's top-levelreasoning: true(andreasoning_options) is never copied intocapabilities; it is only converted intovariantsbysupports().packages/app/src/providers/models/tooltip.tsx→reasoning()readsprops.model.capabilities.reasoning(a boolean) whencapabilitiesexists, and only falls back toprops.model.reasoningotherwise. In V2capabilitiesis always set, so the fallback is dead code.Reasoning itself works — only the label is wrong. From
GET /api/sessionon the same server:opencode/space-bunny-free#maxreportstokens.reasoning: 71263opencode/minimax-m3.1-flash-free#maxreportstokens.reasoning: 16437opencode run --model "wb-proxy-cn/space-bunny#high"completes normally with the#highvariant appliedSo the badge should be derived from
variants.length > 0, or the server should carrycapabilities.reasoningthrough to the client.Two related findings, in case they are useful for the fix:
A config entry replaces the catalog entry instead of merging with it. Adding
to
opencode.jsondid not merge with the models.dev record. The result wasname: "space-bunny-free"(raw id),limit: {context: 200000, output: 32000}(unknown-model fallback),input: ["text","image"](thevideomodality was lost) andcompatibility.reasoningFieldwas dropped. Related:Config.Model.Capabilities.reasoningin the config schema is the v2 object shape (supported/effort/budget/toggle) used to build variants, while the runtimeModel.Capabilitiestype has noreasoningfield at all — so it can never reach the client, and the v2 object shape would not satisfy the tooltip's boolean check even if it did.opencode/space-bunny-freeis nowstatus: "deprecated"in models.dev. After a catalog refresh it disappears from the picker and any run fails withModel space-bunny-free has been deprecated. Use minimax-m3.1-flash-free instead.Re-pinning it inopencode.json(spelling outlimit/capabilities/compatibility/variants) makes it visible again with correct metadata, but the server still refuses to execute it.Environment: opencode v2.0.32, Windows 10.0.26300 (x64), UI language zh.
neriousy commentedon Oct 20, 2026
Thanks for the detailed report and the GPT-6 examples. This is the same problem as #50257: reasoning works, but the model tooltip incorrectly says it is unsupported, and we're tracking it there. Please subscribe or add a 👍 to that issue, and share any further model or version details there.