[BUG] Thinking blocks empty in `default` permission mode but render in `acceptEdits` (Opus 5, VSCode)

Status Open
Reported on v2.1.222
Maintainer reply None cached
Activity 0 comments · opened Aug 5, 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

In the VSCode extension, extended thinking blocks render as a static, non-expandable
Thought 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 sending
thinking: {display: "summarized"} for Opus 4.7+), but adds a variable I have not seen
reported: the permission mode changes the outcome. That suggests the
display: "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:

  1. Set showThinkingSummaries: true in ~/.claude/settings.json, reload the window.
  2. Select Opus 5, leave permission mode on Manual. Send any prompt.

→ thinking appears as a non-interactive Thought for Xs bullet; clicking does nothing.

  1. Switch permission mode to "Edit Automatically". Change nothing else. Send any prompt.

→ thinking renders with content and expands.

  1. 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, and ultrathink have no effect on this — they change

reasoning depth/budget, not display.

  • Because Haiku is unaffected, this is consistent with the display default 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_

View original on GitHub ↗