[Bug] 2.1.227: interactive sessions never write transcript JSONL (headless -p unaffected); regression boundary measured from 2.1.226

Status Open
Reported on v2.1.227
Maintainer reply None cached
Activity 0 comments · opened Aug 11, 2026

[Bug] 2.1.227: interactive sessions never write transcript JSONL (headless -p unaffected); regression boundary measured from 2.1.226

Environment

  • Claude Code 2.1.227, native Windows install (~/.local/bin/claude.exe)
  • Windows 11 Home 10.0.26200, sessions launched in Windows Terminal via pwsh
  • CLAUDE_CONFIG_DIR set to the default path (C:\Users\<user>\.claude) — see matrix below; unsetting it does not change the result
  • autoUpdatesChannel enabled — 2.1.227 arrived via auto-update mid-day, giving a clean before/after boundary on one machine

Summary

After auto-updating 2.1.226 → 2.1.227, no interactive session writes a conversation transcript .jsonl under ~/.claude/projects/<project>/. Headless claude -p sessions on the same binary, same machine, same environment still write transcripts normally within a minute. On 2.1.226 the same interactive setup wrote transcripts live and incrementally (files created within seconds of session start).

Measured boundary

| timestamp (local) | event |
|---|---|
| 06:27:55 | last write by a 2.1.226 session — a 70-turn interactive session (4a604afb…) that had been appending continuously for 10 hours |
| ~06:30 | auto-update to 2.1.227 |
| 06:48:11 | first 2.1.227 transcript — a headless -p worker |

Across all 70 transcripts in the project folder: versions 2.1.181→2.1.226 include interactive sessions up to 297 user turns; the only 2.1.227 files are headless -p workers (max 2 turns).

Probe matrix (all on 2.1.227, same machine, same project dir)

| mode | model | transcript written? |
|---|---|---|
| headless -p | claude-opus-5 | YES — within ~1 min (2 independent workers) |
| headless -p | claude-fable-5 | NO — nothing after several minutes |
| interactive (seeded prompt, tool use executed) | claude-opus-5 | NO — nothing after 150s+ of live polling |
| interactive (seeded prompt) with CLAUDE_CONFIG_DIR unset | claude-opus-5 | NO — nothing after 150s of live polling |
| interactive (3 independent real sessions, incl. 40+ min heavy tool use) | mixed | NO — no file for the session id ever appears |

Notes:

  • Interactive probes are live-write measurements (2.1.226 created the file within seconds of session start, so absence minutes into an active session is the signal). Flush-at-clean-exit was not isolated for interactive; however the headless Fable run exits cleanly and still writes nothing.
  • The new per-session directories ~/.claude/projects/<project>/<session_id>/ ARE created and receive subagents/*.meta.json — only the conversation .jsonl is missing.
  • Ruled out locally: settings changes (only delta is an unrelated Stop hook), relocated files (nothing else under ~/.claude written in the window), lazy flushing (see 10-hour incremental writer above).

Related issues (searched before filing)

  • #78159 — Fable-5 sessions stop writing transcripts since ~2.1.209 while Opus writes: consistent with our headless-Fable row, but does NOT explain the interactive-Opus failure, which is new in 2.1.227.
  • #78843 — custom CLAUDE_CONFIG_DIR → no interactive transcript since 2.1.207: our CLAUDE_CONFIG_DIR points at the default location and was constant across the 2.1.226→2.1.227 boundary (2.1.226 interactive wrote fine with it set).
  • #80683 — HOME/USERPROFILE redirection on Windows: not redirected here.

Impact

Interactive sessions leave no local conversation record; tooling that tails or post-processes transcripts (session correlation, progress dashboards, --resume forensics) has nothing to read.

View original on GitHub ↗