[BUG] Thinking blocks arrive empty after bundled runtime 2.1.215 → 2.1.217 update (desktop, Opus 4.8) — transcript bisect included

Status Open
Reported on v2.1.215
Maintainer reply None cached
Activity 0 comments · opened Jul 22, 2026

Summary

After the desktop app's bundled Claude Code runtime updated from 2.1.215 → 2.1.217, every extended-thinking block arrives empty ("thinking": "", signature field populated only). The "Thinking" panel in the desktop UI expands but shows no text. Session transcripts on the same machine, same model (claude-opus-4-8), same project show a clean break at the update — thinking was working four minutes before it stopped.

Environment

  • Claude Desktop (macOS): 1.24012.1
  • Bundled Claude Code runtime: 2.1.217 (at ~/Library/Application Support/Claude/claude-code/2.1.217)
  • OS: macOS (Darwin 25.5.0), Apple Silicon
  • Model: claude-opus-4-8
  • ~/.claude/settings.json contains "showThinkingSummaries": true (unchanged across the break)

Evidence — transcript bisect

Scanned all session JSONLs under ~/.claude/projects/ for the last 36 h, extracting every "type":"thinking" content block with its message timestamp, model, and the version field stamped on the transcript entry:

| Timestamp (UTC, 2026-07-22) | Runtime version | Thinking text length |
|---|---|---|
| 08:05:11 | 2.1.215 | 348 chars |
| 08:05:33 | 2.1.215 | 218 chars |
| 08:06:00 | 2.1.215 | 680 chars |
| 08:06:20 | 2.1.215 | 253 chars |
| 08:06:39 | 2.1.215 | 242 chars |
| 08:10:08 | 2.1.217 | 0 |
| 08:10:13 | 2.1.217 | 0 |
| 08:10:18 | 2.1.217 | 0 |
| … | 2.1.217 | 0 |

Totals for the window: 2447 thinking blocks, 1967 non-empty (all ≤ 2.1.215), 480 empty (all 2.1.217 — 480/480, zero exceptions). Same model, same project, same machine; the only variable that changed in the 4-minute gap is the runtime version.

No 2.1.216 transcripts exist in the window, so I can't tell whether 2.1.216 or 2.1.217 introduced it.

Expected

Thinking summaries render in the panel (as they did on 2.1.215 the same morning), or at minimum showThinkingSummaries: true is honored.

Actual

Every thinking block arrives as {"type":"thinking","thinking":"","signature":"<populated>"}. The UI shows an expandable "Thinking" chip with an empty body.

Notes

  • Looks like the runtime stopped requesting displayable thinking (thinking.display) — the same mechanism described in #77460, but this is evidently a fresh regression: that issue reports empty thinking on desktop since ~May, whereas this machine had working thinking on 2.1.215 hours ago with the same model and settings. Possibly a re-introduction of the same class of bug.
  • Not a UI/click-handler problem (panel opens; there is simply no text) and unrelated to the 2.1.217 transcript-write warnings (transcripts persist fine).

Repro

  1. Desktop app with bundled runtime ≤ 2.1.215, Opus 4.8, extended thinking on → thinking text visible, non-empty blocks in session JSONL.
  2. Let the app update the runtime to 2.1.217.
  3. Any new turn → thinking block in the JSONL is "thinking": "" and the panel is empty.

View original on GitHub ↗