[Bug] Fable mid-turn messages not visible to operator, long mid-turn assistant text is emitted as a thinking block instead of a text block

Open 💬 0 comments Opened Jul 15, 2026 by efenex

Bug Description
Fable mid-turn messages are consistently invisible to the operator

Environment Info

  • Platform: darwin
  • Terminal: tmux
  • Version: 2.1.210
  • Feedback ID: 5b5c1689-276a-48ba-a6f5-f76b11e2715c

Errors

[]

---
Model: claude-fable-5 · Claude Code: 2.1.210 · Platform: macOS arm64 (Darwin 25.5.0)

Summary: With interleaved thinking + tool use, Fable 5 systematically fails to deliver substantive prose written mid-turn (i.e., followed by more tool calls in the same response). The content arrives at the client as an extra signed thinking block rather than a text block, so Claude Code never renders it as a message and strips it to an empty stub in the session transcript. The model believes it answered; the user sees nothing. Opus 4.8 in the identical setup does not do this.

Evidence (session JSONL analysis, one representative session of 124 API responses):

  • Only 19 responses contained text blocks. Every mid-turn survivor was ≤157 chars (short transitional one-liners). The only long survivor (~3KB) was the turn-final message with no trailing tool call.
  • 31 responses show the failure fingerprint: [thinking, thinking, tool_use] under one message id, where the second thinking block (empty content + valid signature after persist) sits exactly where the emitted prose should be. Grep for distinctive phrases from the lost messages returns zero hits.
  • Lost content included direct answers to mid-turn user questions and a multi-paragraph plan the user explicitly asked to have restated — it was "restated" into a thinking block again.
  • Control: Opus 4.8 transcripts on the same machine persist mid-turn text blocks of 1–3KB alongside tool_use without issue.

Impact: the model appears unresponsive/rude — it "answers" mid-turn questions invisibly and keeps working. Recurs in every Fable session observed, never with Opus.

Repro: ask Fable 5 a question mid-turn while it's in a long tool-use loop, such that its answer exceeds a few hundred characters and is followed by further tool calls. Then check the session JSONL for [thinking, thinking, tool_use] groups and grep for the answer text.

Workaround observed to help: keeping mid-turn narration to one short sentence; placing anything user-critical in the turn's final message.

View original on GitHub ↗