[bug] Opus adaptive-thinking summaries never display in non-interactive frontends (VS Code extension): showThinkingSummaries gated behind isInteractive

Resolved 💬 1 comment Opened Jun 4, 2026 by shikaku2 Closed Jul 10, 2026

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

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗