Skip to content

fix(opencode): add effort reasoning_options for mimo-v2.6 (flash, pro, flash-free) - #7680

Open
akraad wants to merge 1 commit into
anomalyco:devfrom
akraad:fix/mimo-v2.6-effort
Open

akraad wants to merge 1 commit into
anomalyco:devfrom
akraad:fix/mimo-v2.6-effort

Conversation

@akraad

@akraad akraad commented Sep 21, 2026

Copy link
Copy Markdown

Summary

Replaces reasoning_options = [] (which clients render as "no caller control" and hide the effort picker) with a verified effort list on the three MiMo-V2.6 entries:

  • providers/opencode-go/models/mimo-v2.6-flash.tomleffort [none, low, medium, high]
  • providers/opencode-go/models/mimo-v2.6-pro.tomleffort [none, low, medium, high]
  • providers/opencode/models/mimo-v2.6-flash-free.tomleffort [none, low, medium, high]

Host classification

Both opencode (Zen gateway) and opencode-go are multi-lab relays → options come from this-host live test + lab docs + same-lab peers; no contradiction.

Wire

reasoning_effort (OpenAI-compatible body), serialized by the opencode client from reasoning_options effort values.

Evidence (live probe 2026-09-22, POST https://opencode.ai/zen/go/v1/chat/completions)

  • reasoning_effort = none | low | medium | high200; none yields completion_tokens_details.reasoning_tokens = 0.
  • xhigh, max, minimal, adaptive, default, "off"400 Invalid request parameters (upstream) — so those levels are not authored.
  • thinking.type = disabled → 200 / 0 reasoning tokens as well; per the effort-with-none rule no separate toggle is added.
  • Response headers: x-opencode-endpoint-id: mimo, x-opencode-upstream-model-id: mimo-v2.6-flash.

Free tier disclosure: opencode/mimo-v2.6-flash-free cannot be probed from outside OpenCode (403 FreeTierError); its values come from the live zen/go test on the same base_model (xiaomi/mimo-v2.6-flash) plus the kilo relay's effort option for xiaomi/mimo-v2.6-*. Happy to adjust if a maintainer can verify from within OpenCode.

Peers / baseline

  • lab docs: https://mimo.mi.com/docs/api/chat/openai-api (thinking.type enabled|disabled)
  • openrouter xiaomi/mimo-v2.6-* → toggle; kilo xiaomi/mimo-v2.6-* → effort [none, high]
  • deepseek-v4-flash on the same providers → effort (style template)

Validation

bun validate passes (exit 0); generated JSON shows reasoning_options: [{"type":"effort","values":["none","low","medium","high"]}] for all three entries.

Replace reasoning_options = [] with effort [none, low, medium, high] on
opencode-go/mimo-v2.6-flash, opencode-go/mimo-v2.6-pro and
opencode/mimo-v2.6-flash-free so clients show an effort picker.

Evidence: live probe 2026-09-22 on POST /zen/go/v1/chat/completions —
none|low|medium|high pass (none -> 0 reasoning tokens), while
xhigh|max|minimal|adaptive|default -> 400. Free-tier values mirror the
zen/go probe on the same base_model plus kilo's xiaomi/mimo-v2.6 entry.
bun validate passes.
@github-actions

Copy link
Copy Markdown
Contributor

Action items

  • [high] [violation] providers/opencode-go/models/mimo-v2.6-flash.toml:6 - Check: Reasoning options baseline = lab + same-surface peers for this model; do not invent low/medium/high when that set is narrower; extra levels need this-host docs or live meaningful effect (not HTTP accept alone). Why: Xiaomi first-party MiMo is toggle-only (thinking.type enabled|disabled); OpenRouter xiaomi/mimo-v2.6-* is toggle-only; kilo peers use effort ["none", "high"]. Authoring ["none", "low", "medium", "high"] on opencode-go/opencode from 200 vs 400 probes overstates graded control and will show a false L/M/H picker. Same change on mimo-v2.6-pro.toml and opencode/models/mimo-v2.6-flash-free.toml. Action: Align all three files to baseline—prefer toggle (lab/OpenRouter wire) or effort ["none", "high"] (kilo-style off/on)—unless you show meaningful effect differences for low vs medium vs high (e.g. distinct reasoning token behavior), not just status codes.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant