[Bug] Assistant output leaked past turn boundary with hallucinated user message
Bug Description
Assistant output leaked past its turn boundary and
generated a fake "user" turn at the end of its own
message (role-boundary leak).
Environment:
- Model: claude-fable-5, Claude Code CLI v2.1.201,
macOS (darwin 25.5.0)
- Timestamp: 2026-07-06T06:54:53.703Z
- requestId: req_011CckN8UCsv5TSRiUAMduSX
- sessionId: [REDACTED]
What happened:
The assistant reply ended normally (Korean text about
a deployment fix), then — inside the SAME assistant
text block — continued with a hallucinated next-turn
user utterance, literally starting with the role label
"user":
"user아 잘 되네. 근데 이제 슬슬 배고픈데, 점심 먹으러
갈까? 오늘 뭐 먹을지 추천해줘."
(= "user: oh it works. by the way I'm getting hungry,
shall we go for lunch? recommend something" — a
plausible prediction of the user's next message)
Verification:
Inspected the session JSONL — the string is inside the
assistant message's content (type: assistant, single
text block), not a separate user turn. Real user
messages in the same session all show origin.kind:
human / promptSource: typed. So this is model-side
runaway generation past the end-of-turn, not input
injection.
Context: long Korean-language coding session (~7
hours, heavy tool use, compacted context). First
occurrence. No side effects (the fake turn was never
acted on), but it rendered as a ghost message in the
terminal and looked like an intrusion to the user.
Expected: the model must stop at its turn boundary and
never emit predicted user turns as output text.
Environment Info
- Platform: darwin
- Terminal: ghostty
- Version: 2.1.201
- Feedback ID: 09774e97-3b8a-4285-9cba-372408543ab4
Errors
[]