Queued pasted input merged into previous assistant message record on interrupt
Status Open
Maintainer reply None cached
Activity 0 comments · opened Sep 7, 2026
Environment
- Claude Code CLI on macOS (Darwin 25.5.0), interactive session
- Model: claude-fable-5
Summary
When an ESC interrupt, queued user input (a large multi-KB clipboard paste), and the tail end of a streaming assistant reply landed in the same second, the queued paste text was appended to the just-completed assistant message record in the session transcript (~/.claude/projects/<proj>/<session>.jsonl).
Evidence from the transcript (session JSONL)
Timeline within the same second (08:13:09):
line 2725 queue-operation 08:12:57
line 2726 queue-operation 08:13:09
line 2727 queue-operation 08:13:09
line 2728 assistant (text) 08:13:09 <-- 191-char real reply + ~7,000 chars of pasted clipboard content appended INSIDE the same text block
line 2729 user [Request interrupted by user] 08:13:09
line 2731 user (cross-session message) 08:13:09
line 2732 user (typed message) 08:13:09
- The appended content was verifiably clipboard material (a copied blog listing page, starting with Blogger UI strings), not model output.
- The same clipboard content later appeared again in a genuine user turn (line 2752) with the identical mid-word truncation point, confirming both came from the same queued paste.
- No web-fetch/browser tool calls occurred anywhere near that time.
Impact
- Transcript record misattributes pasted user content as assistant output (confusing for auditing; alarming for the user, who saw the assistant apparently 'emit' unrelated foreign-language content).
- Conversation context becomes polluted for subsequent turns.
Expected
Queued input should never be merged into an assistant message record; on interrupt it should be enqueued as a separate user turn (as happens normally).
Notes
- Reproduction is timing-dependent (interrupt + queued large paste + assistant stream completion in the same instant), so no reliable repro steps — reporting with transcript forensics instead.
🤖 Generated with Claude Code