VS Code extension: thinking blocks render without expand chevron

Status Open
Reported on v2.1.123
Maintainer reply None cached
Activity 5 comments · opened Apr 30, 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 VS Code extension chat panel, extended thinking blocks render with their status label (e.g., Thinking..., Imagining...) but without the disclosure chevron / twisty that previously allowed expanding them to view the reasoning content. Both click-to-expand and the documented Ctrl+O shortcut fail because there is no clickable disclosure target in the rendered DOM.

This was working previously in the same install. The regression appeared without any deliberate configuration change on my side.

Expected behavior

Per the VS Code extension docs:

Claude's reasoning appears in the conversation as collapsed blocks: click a block to read it, or press Ctrl+O to expand or collapse every thinking block in the session.

A disclosure chevron should render to the left of the status label, and clicking the block should expand it to reveal the reasoning content.

Actual behavior

The Thinking... and Imagining... status labels render as plain text only. No chevron, no disclosure triangle, no clickable affordance. Clicking the label does nothing. The reasoning content is not reachable from the UI. Screenshot attached.

Steps to reproduce

  1. Open a Claude Code session in the VS Code extension chat panel
  2. Ask a prompt that exercises extended thinking (a non-trivial design or reasoning task)
  3. Observe: Thinking... / Imagining... indicators render but have no expand control

Environment

  • Claude Code extension: 2.1.123 (win32-x64)
  • VS Code: 1.115.0 (user setup), commit 41dd792b5e
  • OS: Windows 11 Pro (10.0.26200)
  • Model: Claude Opus 4.7 (1M context)

What I already tried

  • Restarting VS Code — no change (regression first observed after a routine restart)
  • Command Palette → Developer: Reload Window — no change
  • Searched claudeCode.* and .claude/settings.json for a thinking-display toggle — none exists in the extension

Additional context

The regression appears to be extension-side rendering — the model continues to produce thinking content (the status indicators advance through phases like Thinking...Imagining...), but the UI has stopped rendering the disclosure control around it. Likely candidate causes: a recent extension release that touched chat panel rendering, or an interaction with Opus 4.7's interleaved thinking format. Older obsolete versions on disk include 2.1.109, 2.1.114, 2.1.116, 2.1.117, 2.1.119, 2.1.120 — bisecting against those should isolate the regression.

What Should Happen?

A disclosure chevron / twisty should render to the right of the Thinking... status label, making the block expandable. Clicking the block (or pressing Ctrl+O) should expand it to show the reasoning content, per the VS Code extension docs which say: "click a block to read it, or press Ctrl+O to expand or collapse every thinking block in the session."

Error Messages/Logs

Steps to Reproduce

  1. Open a Claude Code session in the VS Code extension chat panel
  2. Ask a prompt that exercises extended thinking (a non-trivial design or reasoning task)
  3. Observe: Thinking... / Imagining... indicators render but have no expand control

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.123 (win32-x64)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

VS Code integrated terminal

Additional Information

<img width="578" height="71" alt="Image" src="https://github.com/user-attachments/assets/b7f35be2-e0d0-4e41-b0b4-8a5f94052abb" />

View original on GitHub ↗

5 Comments

github-actions[bot] · 4 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/54348
  2. https://github.com/anthropics/claude-code/issues/51131
  3. https://github.com/anthropics/claude-code/issues/54416

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

hifihedgehog · 4 months ago

Don't close

snookerm · 3 months ago

---

Confirming this on Windows + VS Code panel, with an environment fingerprint and a tested regression range below.

The post-turn Thought for Xs label renders, but has no visible affordance — no chevron, no underline, no hover state, no button-like cursor — and does not respond to left click. There is no rendered way to reveal the model's reasoning from the panel UI.

Secondary observation: Ctrl+O, which toggles the detailed-transcript view in the integrated terminal claude CLI, has no effect when the panel webview is focused. I note up front that the terminal Ctrl+O toggles the transcript view (status-bar hint: Showing detailed transcript · ctrl+o to toggle · ctrl+e to show all) — I do not have proof that this is the same affordance as a thinking-block expand in the panel; I mention it only because it is the closest user-visible analogue and was the keyboard fallback I tried.

The model is producing thinking tokens (the live Thinking… · N tokens counter increments during generation), so the issue is presentation, not generation.

Environment

  • OS: Windows 11 Pro 10.0.26200
  • VS Code: 1.122.1 (commit 8761a5560cfd65fdd19ce7e2bd18dab5c0a4d84e), stable, x64
  • Extension: anthropic.claude-code 2.1.158 (also reproduced on 2.1.157)
  • Extension location: panel (claudeCode.preferredLocation: "panel")
  • Auto-update disabled: "extensions.autoUpdate": false, "extensions.autoCheckUpdates": false
  • Model: a thinking-capable Opus model selected via the in-panel model picker. The bug is not model-dependent (any model that produces a Thought for Xs label reproduces it).
  • Account auth: signed in via the extension's interactive sign-in flow (not an ANTHROPIC_API_KEY env var).

Settings that gate the thinking UI (~/.claude/settings.json):

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

Other keys in my settings.json (effortLevel, ultracode, fastMode, enableWorkflows) appear to be local/experimental and I cannot confirm whether the shipped 2.1.158 build recognises them — listed only for completeness; removing them does not change the behaviour. No project-level .claude/settings*.json overrides for thinking-related keys. MAX_THINKING_TOKENS not set.

Steps to Reproduce

  1. Install anthropic.claude-code 2.1.158 in VS Code 1.122.1 on Windows 11.
  2. Set "claudeCode.preferredLocation": "panel" and open the Claude Code panel.
  3. In ~/.claude/settings.json, set only alwaysThinkingEnabled: true and showThinkingSummaries: true (minimum required to surface the label).
  4. Sign in via the extension and pick a thinking-capable model in the panel model picker.
  5. Send a non-trivial prompt that triggers visible thinking (e.g. "explain why X").
  6. Observe Thinking… · N tokens during generation; after completion observe the Thought for Xs label above the assistant response.
  7. Left-click the label; also try Ctrl+O with the panel focused.

Actual Behavior

  • Thought for Xs label renders but has no visible affordance — no chevron, no underline, no hover state, no button-like cursor.
  • Left-click on the label: no effect.
  • Right-click: only the default webview context menu (Copy/Cut), no expand action.
  • Ctrl+O while panel focused: no effect. Removing the global VS Code File: Open binding for Ctrl+O in keybindings.json does not change anything, so the webview is not receiving the shortcut as a routed VS Code command either.
  • Churned for 1s appears on trivial prompts in place of Thought for Xs. I have not confirmed in DevTools whether this is the same DOM node in an idle state or a separate component; I mention it only so the maintainer is not surprised by the alternate copy.

Workaround

Use the integrated terminal CLI instead of the GUI panel:

claude

The terminal client exposes Showing detailed transcript · ctrl+o to toggle · ctrl+e to show all in its status bar, and Ctrl+O toggles a detailed transcript that includes the reasoning. Same account, same model, same ~/.claude/settings.json. (As noted above, I am not asserting this is the exact same affordance as the panel's intended thinking expand — only that it is a usable substitute today.)

Diagnostic Evidence

  • Live Thinking… · N tokens counter increments during generation — model is producing thinking tokens; the regression is in the panel's presentation of them.
  • Terminal claude on identical config/account/model exposes reasoning via the transcript toggle.
  • Removing the global Ctrl+Oworkbench.action.files.openFileFolder binding in keybindings.json does not unblock the panel — the webview is not handling the shortcut internally either, or is not gaining focus.
  • ~/.claude/settings.json parses as valid JSON.

Gaps I acknowledge (and will add if asked):

  • No webview DevTools capture. I have not yet opened Developer: Open Webview Developer Tools on the Claude panel to inspect the Thought for Xs element's tag/classes/data-*/aria-*, its Event Listeners pane, or console errors / CSP warnings during a turn. This is the single most useful artifact for a "click does nothing" bug and I will attach it on request.
  • No screenshot/GIF of the inert label.
  • No DOM selector for the suspect element (class, data-testid, role) — without DevTools I cannot give the maintainer a grep target into the bundled extension.js.
  • Sidebar parity untested: I have only reproduced with claudeCode.preferredLocation: "panel". I have not yet tried "sidebar" or "editor" to confirm whether the regression is panel-specific or webview-wide.

Regression Range

Tested via code --install-extension anthropic.claude-code@<v> --force followed by a window reload:

| Version | Live Thinking… counter | Thought for Xs label | Click / Ctrl+O expands |
|---|---|---|---|
| 2.1.145 | not observed | not observed | n/a |
| 2.1.152 | not observed | not observed | n/a |
| 2.1.157 | present | present | broken |
| 2.1.158 (current) | present | present | broken |

Both 2.1.152 and 2.1.158 are installed side-by-side on disk:

C:\Users\adm\.vscode\extensions\anthropic.claude-code-2.1.152-win32-x64
C:\Users\adm\.vscode\extensions\anthropic.claude-code-2.1.158-win32-x64

Caveats: I have not bisected 2.1.153 / .154 / .155 / .156. The "first broken" version is therefore somewhere in 2.1.153–2.1.157 inclusive. I can bisect on request — same install command per version.

Additional Notes

From extension/package.json of the 2.1.158 install on disk:

  • View contributions present for the panel webview (claudeVSCodePanel), sidebar, and secondary sidebar.
  • No command IDs or titles contain think, verbose, transcript, expand, reason, or toggle.
  • No CHANGELOG.md shipped in the extension directory.

Implication for triage: there is no contributed VS Code command for the user to rebind, so any keyboard handling for expand must live inside the webview. Combined with the panel's lack of a visible chevron, the most likely fix surfaces are (a) a missing onClick/onKeyDown on the summary node, (b) a missing role="button" / tabindex preventing focus + keyboard activation, or (c) a CSP / inline-handler block — all of which a webview DevTools dump would disambiguate immediately. I will provide that dump on request.

kittythara · 2 months ago

Still reproducing this on a much newer version:

Claude Code extension: 2.1.197 (win32-x64)
VS Code: 1.127.0
OS: Windows 11
Model: Sonnet 5
No chevron/toggle appears on any Thinking... block, confirmed even after /config thinking=true and a full window reload.

Also tried the documented Ctrl+O shortcut to expand/collapse thinking blocks — it doesn't get intercepted by the extension at all; it falls through to VS Code's default "Open Folder" dialog instead. So the keybinding doesn't appear to be registered, not just the chevron missing.

excessuk · 1 month ago

Also tracked as a duplicate here: #73736 (macOS, native chat panel, extension 2.1.199). Still fully reproducing as of 2026-07-07, no chevron/toggle and no way to view thinking content in the panel UI. Bumping since this has been open since April with no maintainer response — this is a meaningful regression for anyone relying on reasoning visibility.