Description
GitHub Copilot Claude models newer than opus-4.7 (e.g. claude-sonnet-5, claude-opus-4.8) never show thinking/reasoning content in the UI, even with thinking enabled — the reasoning part is emitted but its text is empty.
Root cause: packages/opencode/src/plugin/github-copilot/models.ts only sets thinking.display: "summarized" for models matching the literal string opus-4.7, when building the adaptive-thinking variant for Copilot's /v1/messages endpoint. Anthropic omits thinking content by default for any adaptive-only Claude model newer than that (major version >4, or 4.7+), so the override never gets applied to sonnet-5, opus-4.8, or any future model in that range.
Related: #36120 reports the same symptom for opus-4.8 specifically; this is the general root cause behind it.
OpenCode version
1.18.25 (also reproduces on current dev)
Steps to reproduce
- Configure the
github-copilot provider with a modern Claude model, e.g. claude-sonnet-5 or claude-opus-4.8
- Start a session with a
high/max reasoning variant
- Ask a question that would trigger reasoning
- Thinking never appears in the UI, even with the thinking display toggled on
Confirmed via a live A/B test: same prompt against the current code returns a reasoning part with text: "" (empty); with thinking.display forced to "summarized" it returns real reasoning content.
Screenshot and/or share link
N/A — confirmed via raw JSON event output (--format json), not a rendering-only issue.
Description
GitHub Copilot Claude models newer than opus-4.7 (e.g.
claude-sonnet-5,claude-opus-4.8) never show thinking/reasoning content in the UI, even with thinking enabled — the reasoning part is emitted but its text is empty.Root cause:
packages/opencode/src/plugin/github-copilot/models.tsonly setsthinking.display: "summarized"for models matching the literal stringopus-4.7, when building the adaptive-thinking variant for Copilot's/v1/messagesendpoint. Anthropic omits thinking content by default for any adaptive-only Claude model newer than that (major version >4, or 4.7+), so the override never gets applied to sonnet-5, opus-4.8, or any future model in that range.Related: #36120 reports the same symptom for opus-4.8 specifically; this is the general root cause behind it.
OpenCode version
1.18.25 (also reproduces on current
dev)Steps to reproduce
github-copilotprovider with a modern Claude model, e.g.claude-sonnet-5orclaude-opus-4.8high/maxreasoning variantConfirmed via a live A/B test: same prompt against the current code returns a
reasoningpart withtext: ""(empty); withthinking.displayforced to"summarized"it returns real reasoning content.Screenshot and/or share link
N/A — confirmed via raw JSON event output (
--format json), not a rendering-only issue.