Assistant text before tool calls intermittently not rendered (terminal + remote-control view) — started after mid-session Opus → Fable model switch
Environment
- Claude Code v2.1.217, native install, Linux (Ubuntu VPS)
- Terminal via mosh + tmux; session also mirrored to claude.ai Remote Control
- Model: claude-fable-5 (issue began immediately after a mid-session
/modelswitch from Opus 4.8 to Fable 5 on 2026-07-22)
Symptom
Assistant text emitted before tool calls within a turn is intermittently not rendered. Only text after the last tool call displays reliably. When it happens, the lost text is absent from BOTH:
- the terminal transcript (including after scrollback; user reports ctrl+o transcript view didn't surface it), and
- the claude.ai Remote Control view of the same session —
so it does not appear to be terminal/tmux scrollback or a local TUI redraw issue.
Timeline / intermittency
- Weeks of Opus 4.8 use in the same environment: no occurrences.
- First two occurrences within hours of switching Opus → Fable mid-session (long-running session, multiple compactions).
- Persisted across a full Claude Code restart the next morning (multiple further occurrences).
- Intermittent: a deliberate test paragraph placed before a tool call rendered fine once; later turn-opening paragraphs in the same session were lost again. No obvious correlation with turn length.
Impact
Substantive content silently disappears from the user's view (in one case, instructions the user needed to act on). The model's workaround — emitting all prose after the final tool call — works reliably but degrades the interaction.
Possibly related
#21751 (assistant text blocks dropped from transcript JSONL) — different surface, but if the message-serialization path drops pre-tool-call text blocks under some event orderings, it could explain both the terminal and Remote Control views missing the same text.
Repro suggestion
Long session on claude-fable-5 with tool-heavy turns that begin with a text block (particularly after compaction events); compare the streamed turn against what persists in the transcript/Remote Control view.
🤖 Generated with Claude Code
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗