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

View original on GitHub ↗