[bug] Opus adaptive-thinking summaries never display in non-interactive frontends (VS Code extension): showThinkingSummaries gated behind isInteractive
Summary
In the VS Code extension (and any non-interactive / stream-json host), Opus shows only a thinking token counter during reasoning — no expandable summary block — even with showThinkingSummaries: true. Sonnet works because it uses the older thinking.type:"enabled" path, which streams raw thinking blocks.
Root cause
Opus 4.8 uses thinking.type:"adaptive", whose summary only displays when display === "summarized". The CLI sets that via:
if (thinkingDisplay === "summarized" || thinkingDisplay === "omitted")
display = thinkingDisplay; // honored unconditionally
else if (!isNonInteractive() && showThinkingSummaries)
display = "summarized"; // only in interactive sessions
The VS Code extension spawns the CLI non-interactively, so the else if never fires and showThinkingSummaries has no effect for Opus.
Request
When showThinkingSummaries is explicitly true, set display = "summarized" regardless of interactivity — or have the extension pass --thinking-display summarized to the subprocess.
Environment
- Claude Code VS Code extension v2.1.162 (Linux)
- Model: Opus 4.8
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗