Skip to content

app: model tooltips show reasoning as unsupported despite reasoning variants #53520

Closed as duplicate

Description

@Oktinner0320

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

  1. Open the model selector with the UI language set to Chinese.
  2. Hover over GPT-6 Astra, GPT-6 Luna, or GPT-6.1 Sol.
  3. Observe “不支持推理” /“Reasoning unsupported” in each model tooltip.
Image
  1. 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/model

For the three OpenAI models listed above:

  • The returned variants include high.
  • The high variant has settings.reasoningEffort: "high" and settings.reasoningSummary: "auto".
  • The returned capabilities contain tools, input, and output, but no reasoning field.

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:

I have not independently confirmed whether they have the same root cause.

Activity

  1. Oktinner0320 commented on Oct 6, 2026

    @Oktinner0320
    Author

    Now i improve

  2. github-actions commented on Oct 6, 2026

    @github-actions
    Contributor

    Thanks for updating the issue with the reproduction steps and system details!

  3. yukunmeng commented on Oct 20, 2026

    @yukunmeng

    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):

    • 47 models returned
    • 0 / 47 have capabilities.reasoning
    • 0 / 47 have a top-level reasoning field
    • all 47 have capabilities present, so the model.reasoning fallback in the tooltip is unreachable

    Root cause, still present on current dev:

    • packages/core/src/models-dev.ts → modelInfo() builds capabilities from tools / input / output / temperature only. models.dev's top-level reasoning: true (and reasoning_options) is never copied into capabilities; it is only converted into variants by supports().
    • packages/app/src/providers/models/tooltip.tsx → reasoning() reads props.model.capabilities.reasoning (a boolean) when capabilities exists, and only falls back to props.model.reasoning otherwise. In V2 capabilities is always set, so the fallback is dead code.

    Reasoning itself works — only the label is wrong. From GET /api/session on the same server:

    • a session on opencode/space-bunny-free#max reports tokens.reasoning: 71263
    • a session on opencode/minimax-m3.1-flash-free#max reports tokens.reasoning: 16437
    • opencode run --model "wb-proxy-cn/space-bunny#high" completes normally with the #high variant applied

    So the badge should be derived from variants.length > 0, or the server should carry capabilities.reasoning through to the client.

    Two related findings, in case they are useful for the fix:

    1. A config entry replaces the catalog entry instead of merging with it. Adding

      "providers": { "opencode": { "models": { "space-bunny-free": { "capabilities": { "reasoning": { "supported": true, "effort": ["low","medium","high","xhigh","max"] } } } } } }

      to opencode.json did not merge with the models.dev record. The result was name: "space-bunny-free" (raw id), limit: {context: 200000, output: 32000} (unknown-model fallback), input: ["text","image"] (the video modality was lost) and compatibility.reasoningField was dropped. Related: Config.Model.Capabilities.reasoning in the config schema is the v2 object shape (supported/effort/budget/toggle) used to build variants, while the runtime Model.Capabilities type has no reasoning field 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.

    2. opencode/space-bunny-free is now status: "deprecated" in models.dev. After a catalog refresh it disappears from the picker and any run fails with Model space-bunny-free has been deprecated. Use minimax-m3.1-flash-free instead. Re-pinning it in opencode.json (spelling out limit / 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.

  4. neriousy commented on Oct 20, 2026

    @neriousy
    Member

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions