[BUG] Thinking blocks empty in `default` permission mode but render in `acceptEdits` (Opus 5, VSCode)
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
In the VSCode extension, extended thinking blocks render as a static, non-expandableThought for Xs label when the permission mode is default ("Manual"). Switching the
permission mode to acceptEdits ("Edit Automatically") — with no other change —
makes the thinking content render correctly and expand.
This appears related to #49268 / #74910 / #77460 (harness not sendingthinking: {display: "summarized"} for Opus 4.7+), but adds a variable I have not seen
reported: the permission mode changes the outcome. That suggests thedisplay: "summarized" parameter is being sent on some code paths and dropped on others,
rather than never being sent at all.
Environment
- Claude Code: 2.1.222
- Surface: VSCode native extension (Windows)
- OS: Windows 11 Pro 10.0.26200
- Models tested: Claude Opus 5 (1M context), Claude Haiku 4.5
~/.claude/settings.json:showThinkingSummaries: true,verbose: true,
effortLevel: "high" (thinking toggle ON in the model menu)
Reproduction
Constant across all runs: same session, same settings file, showThinkingSummaries: true
already set, window reloaded before the first run.
| # | Model | Permission mode | Thinking content |
|---|---|---|---|
| 1 | Opus 5 (1M) | default (Manual) | ❌ static Thought for Xs, not expandable |
| 2 | Haiku 4.5 | default (Manual) | ✅ renders and expands |
| 3 | Opus 5 (1M) | acceptEdits (Edit Automatically) | ✅ renders and expands |
| 4 | Opus 5 (1M) | default (Manual) | ❌ (re-confirmed) |
| 5 | Default (resolves to Opus 5 1M) | acceptEdits | ✅ renders and expands |
Steps:
- Set
showThinkingSummaries: truein~/.claude/settings.json, reload the window. - Select Opus 5, leave permission mode on Manual. Send any prompt.
→ thinking appears as a non-interactive Thought for Xs bullet; clicking does nothing.
- Switch permission mode to "Edit Automatically". Change nothing else. Send any prompt.
→ thinking renders with content and expands.
- Switch back to Manual → broken again.
Expected
Thinking summaries render identically regardless of permission mode.
Actual
Permission mode default yields empty thinking blocks on Opus 5; acceptEdits yields
populated ones. Haiku 4.5 (older generation, still defaulting to display: "summarized"
server-side) is unaffected by the permission mode.
Notes
verbose: true,/effort, andultrathinkhave no effect on this — they change
reasoning depth/budget, not display.
- Because Haiku is unaffected, this is consistent with the
displaydefault change in
Opus 4.7+ documented in
Adaptive thinking,
combined with the harness only setting display: "summarized" on some paths.
- Practical impact: users who keep Manual permission mode (the default, and the cautious
choice) silently lose the ability to watch reasoning as it streams, which is the main
way to catch a wrong turn before the model commits to it. Reasoning tokens are still
billed.
Workaround
Set permissions.defaultMode to acceptEdits in ~/.claude/settings.json. This trades a
safety prompt for observability, which is not a good trade to have to make.
What Should Happen?
Read message above
Error Messages/Logs
Steps to Reproduce
Constant across all runs: same session, same settings file, showThinkingSummaries: true
already set, window reloaded before the first run.
| # | Model | Permission mode | Thinking content |
|---|---|---|---|
| 1 | Opus 5 (1M) | default (Manual) | ❌ static Thought for Xs, not expandable |
| 2 | Haiku 4.5 | default (Manual) | ✅ renders and expands |
| 3 | Opus 5 (1M) | acceptEdits (Edit Automatically) | ✅ renders and expands |
| 4 | Opus 5 (1M) | default (Manual) | ❌ (re-confirmed) |
| 5 | Default (resolves to Opus 5 1M) | acceptEdits | ✅ renders and expands |
Claude Model
Not sure / Multiple models
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.222
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
VS Code integrated terminal
Additional Information
_No response_