Opus 4.8 (direct API): thinking text empty (signature-only blocks) despite --thinking-display summarized — started 2026-07-19 ~13:07 UTC; Fable 5 unaffected
Summary
Since 2026-07-19 ~13:07 UTC, the direct Anthropic API returns empty thinking blocks (a signature but thinking: "", zero thinking text) for claude-opus-4-8, even when the client explicitly requests --thinking-display summarized. The same request against claude-fable-5 returns summarized thinking text correctly, so the client, account, and wire path are fine — the break is specific to Opus 4.8.
In the VS Code extension UI this renders as "Thought for Xs" rows that cannot be expanded (there is no text to show), which looks identical to older client-side bugs like #49268 / #49708 — but here the flag is definitely sent, on both an old and the current CLI.
This is not the Vertex issue (#72231): no CLAUDE_CODE_USE_VERTEX / CLAUDE_CODE_USE_BEDROCK — this is the direct Anthropic API path.
Timing evidence — flipped server-side, mid-session
A long-running Claude Code session on claude-opus-4-8 (one continuously running CLI process, no restart, no update, flags unchanged, --thinking-display summarized present on its command line):
- Every turn up to
2026-07-19T13:06:57Z→ thinking blocks contain summarized text (normal). - Every turn from
2026-07-19T13:07:28Zonward → thinking blocks are empty:signaturepresent,thinkingis"", nothinking_deltaevents.
Nothing changed on the client between those two turns, so the change happened on the API side at that moment.
Reproduction (headless, both CLI versions)
claude --print --model claude-opus-4-8 --output-format stream-json --verbose \
--max-thinking-tokens 8000 --thinking-display summarized \
"Think briefly about why the sky is blue, then answer in one sentence."
Result: thinking block opens and closes with 0 characters of thinking text (signature only). Reproduced identically on CLI 2.1.209 and 2.1.215 (darwin-arm64, VS Code extension's bundled native binary).
Control — identical command with --model claude-fable-5:
Result: summarized thinking text streams normally (e.g. 110 chars for the prompt above).
--thinking-display only accepts summarized | omitted, so there is no client-side way to recover the text for Opus 4.8.
Expected
display: "summarized" on claude-opus-4-8 (direct API) streams summarized thinking_delta text, as it did until 2026-07-19 ~13:07 UTC and as claude-fable-5 still does.
Actual
Empty thinking block: content_block_start (thinking) → signature_delta only → content_block_stop. UI shows non-expandable "Thought for Xs".
Environment
- macOS (darwin-arm64), VS Code extension
anthropic.claude-code2.1.209 and 2.1.215 (bundled CLI) - Direct Anthropic API (subscription auth); no Vertex, no Bedrock
- status.claude.com shows no incident for 2026-07-19/20