[BUG] Thinking block content empty in JSONL session files since 2.1.72 (signatures present, text missing)
Description
Since upgrading to 2.1.72, thinking block content in session JSONL files is stored as empty strings. The "type": "thinking" structure and "signature" field are present, but the "thinking" field is "". On 2.1.71 and earlier, this field contained the full thinking text.
This is distinct from #25980 (verbose mode display regression). Issue #25980 documents that thinking is generated and recorded but not displayed. This issue documents that thinking content is no longer recorded in the JSONL — only the signature remains.
Reproduction
- Install 2.1.72 (
npm install -g @anthropic-ai/claude-code@2.1.72) - Start a session and interact normally (Opus 4.6, any effort level)
- Inspect the session JSONL at
~/.claude/projects/{project}/{session-id}.jsonl - Search for
"type":"thinking"blocks - Expected:
"thinking": "Let me analyze..."(populated text) - Actual:
"thinking": ""(empty string) with signature present
Empirical evidence
Same project, same user, same machine, sequential sessions across the version boundary:
| Version | Sessions | Thinking Blocks | Empty | Filled | Total Chars |
|---------|----------|----------------|-------|--------|-------------|
| 2.1.71 (Mar 8–9) | 18 | 307 | 0 | 307 | 541,788 |
| 2.1.72 (Mar 10) | 13 | 112 | 99 | 13 | 17,702 |
The 13 filled blocks on 2.1.72 are from a single early session (likely started before the update took effect). All subsequent sessions show 100% empty thinking blocks.
JSONL structure comparison
2.1.71 (content present):
{
"type": "thinking",
"thinking": "Let me read the session handoff and the session capture to understand where we left off.",
"signature": "EoAC..."
}
2.1.72 (content missing):
{
"type": "thinking",
"thinking": "",
"signature": "EosTCkYICxg..."
}
Note the signatures on 2.1.72 are longer than on 2.1.71, suggesting the thinking content may have been folded into the signature rather than stored in plaintext.
Impact
- Session recovery/resume: Tools that extract thinking blocks from JSONL for context recovery now get empty strings
- Verbose mode display: Related to #25980 — thinking content can't be displayed if it's not stored
- Third-party tooling: Any tool reading JSONL transcripts (replay tools, analysis tools) loses thinking data
Environment
- OS: Windows 11 Home 10.0.26200
- Shell: Git Bash
- Installation: npm global
- Model: Claude Opus 4.6
- Effort: default/auto
Related
- #25980 — Verbose mode not displaying thinking blocks (display regression since 2.1.29)
- #30660 — Stream extended thinking output in real-time
- #22977 — Earlier thinking display regression (closed prematurely)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗