[BUG] Opus 4.7: thinking content empty despite `showThinkingSummaries: true` — live reasoning visibility lost

Resolved 💬 4 comments Opened Apr 17, 2026 by ccclapp Closed Apr 17, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Summary

On Opus 4.7, extended thinking content is not streamed to the client even when showThinkingSummaries: true is set in ~/.claude/settings.json. The thinking block header (token counter, elapsed time) appears, but the expand toggle reveals empty content. Ctrl+O has no effect. This regresses a core capability — live, course-correctable reasoning visibility — that worked correctly on Opus 4.6 and every prior Claude model.

Actual behavior

showThinkingSummaries: true appears not to trigger the client to send display: "summarized" when targeting Opus 4.7. Since the Opus 4.7 breaking changes flipped the API default for display from "summarized" to "omitted", the client now receives empty thinking blocks and has nothing to render. The client-side setting never overrides the server-side default for Opus 4.7.

Impact

Live visibility into model reasoning is a primary reason developers enable extended thinking. It is essential for:

  • Course-correcting the model mid-reasoning when it heads down a wrong path
  • Debugging why the model made a specific decision
  • Building trust in long-horizon agentic runs where the model thinks for minutes at a time
  • Research workflows where the reasoning trace is the output, not the final answer

Losing live thinking on the flagship model reduces Opus 4.7 to effectively a black box for these workflows, making it less usable than 4.6 for anyone whose loop depends on observable reasoning.

What Should Happen?

Per the official Claude Code settings docs: "Show extended thinking summaries in interactive sessions. When unset or false (default in interactive mode), thinking blocks are redacted by the API and shown as a collapsed stub."

Setting showThinkingSummaries: true should cause the client to send display: "summarized" on the API request so thinking content is transmitted and rendered — producing live, streaming summarized thinking in the transcript, just as it did on Opus 4.6 and every prior model.

Error Messages/Logs

Steps to Reproduce

  1. Ensure ~/.claude/settings.json contains:

``json
{
"effortLevel": "xhigh",
"showThinkingSummaries": true,
"alwaysThinkingEnabled": true
}
``

  1. Verify via /config in an interactive claude session — all three are read as set.
  2. On Opus 4.7 (default for Max subscription), run claude in PowerShell or VS Code terminal.
  3. Submit a prompt that triggers thinking:

> Think step by step about the tradeoffs between a B-tree and an LSM-tree for a write-heavy workload. Be thorough.

  1. Observe: thinking header streams (e.g., Nesting... (25s · ↓ 722 tokens)), but the ▸ expand toggle reveals an empty block. Ctrl+O does not expose content. After response completes, no thinking text is visible anywhere in the transcript.
  2. Switch to Opus 4.6 with /model claude-opus-4-6 and repeat — live streaming summarized thinking returns immediately, exactly as it worked yesterday.

Reproduced in all of: external PowerShell claude CLI, VS Code integrated terminal claude CLI, and VS Code graphical panel.

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

2.1.112

Claude Code Version

2.1.112

Platform

Other

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

Environment

  • Claude Code version: 2.1.112
  • OS: Windows 11 Pro
  • Auth: Claude Max subscription (no ANTHROPIC_API_KEY)
  • Effort level: xhigh
  • Model: claude-opus-4-7 (regression does not occur on claude-opus-4-6)
  • Platform: Claude Code CLI + VS Code extension, authenticated via Claude Max subscription
  • Reproduced in: external PowerShell claude CLI, VS Code integrated terminal claude CLI, and VS Code graphical panel
Note on "Last Working Version": Same Claude Code version (2.1.112) works correctly on Opus 4.6; the regression is model-specific, not client-version-specific.

Settings that should (per docs) enable thinking visibility

In ~/.claude/settings.json:

{
  "effortLevel": "xhigh",
  "showThinkingSummaries": true,
  "alwaysThinkingEnabled": true
}

Verified via /config in an interactive claude session — all three are read as set.

Suggested fix

When showThinkingSummaries: true is set (or alwaysThinkingEnabled: true), Claude Code should explicitly send "display": "summarized" in the thinking object on requests targeting Opus 4.7 and any future model whose API default is omitted. This preserves existing user expectations without requiring Anthropic to reverse the API-level default.

References

  • What's new in Opus 4.7 — "Thinking content omitted by default"
  • Building with extended thinking — display field semantics
  • Claude Code settings — showThinkingSummaries
  • Related: #43071 (thinking redacted despite the setting), #31489 (VS Code extension parity gap), #8477 (feature request: always show thinking)

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗