[BUG] Fable 5.1 sessions replace the assistant's interim text with API summaries ("summarized" lines), undocumented and with no visible off switch

Status Closed — not planned
Reported on v2.1.240
Maintainer reply None cached
Activity 1 comment · opened Sep 2, 2026 · closed Sep 2, 2026
This text was generated by Claude Fable 5.1 in Claude Code. A human read it and checked the facts, but did not edit it in any manner. It is written from the reporter's perspective: "I" and "my" refer to the human who posts this report, not to Claude.

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

In interactive sessions on Claude Fable 5.1, the short messages the assistant writes between tool calls no longer reach the terminal or the transcript. Each one is replaced by a paraphrase, shown with a trailing "summarized" hint, and stored in the session file as a thinking block. The original text is gone. Nothing in the Claude Code documentation or changelog describes this, and the only control that turns it off is an undocumented environment variable.

Claude Code sends the beta header thinking-display-updates-2026-08-18 with thinking.display: "updates" for models that carry the Fable 5.1 capability bundle. The API then returns the assistant's between-tool-call text as "narration" thinking blocks whose text is a summary written by the API side. The UI renders those blocks inline with the hint "summarized". The session file stores them as thinking blocks whose signature is tagged narration, and holds no text block for the original message.

The summaries do not follow the session's output style or CLAUDE.md, because the API writes them. With an output style that bans em dashes and contractions, the assistant's own text follows the ban and the summaries do not.

What is missing:

  • A changelog entry. Versions 2.1.240 to 2.1.258 do not mention thinking display updates, narration, or the "summarized" hint.
  • Documentation of the behavior: readers cannot tell that the line is a summary of a message the assistant wrote, that the original is not stored, and that output styles and CLAUDE.md do not govern the summary.
  • Documentation of the controls. From the binary: showThinkingSummaries (documented) switches to full thinking summaries plus these updates. --thinking-display omitted (hidden from --help) hides reasoning but does not stop the updates on Fable 5.1. CLAUDE_CODE_THINKING_DISPLAY_UPDATES=false (not documented anywhere) is the only setting that stops the header and keeps the interim text as text.

What Should Happen?

Interim messages stay as text blocks in the terminal and in the session file. If a summary is shown, it is shown next to the original, not instead of it. The behavior, the "summarized" hint, and the controls are documented, with a changelog entry for the version that introduced it.

Document the feature in the interactive-mode or model-config pages: what the "summarized" hint means, that it is on by default for Fable 5.1, that the original interim text is replaced rather than kept, and how to turn it off. Add a changelog entry for the version that introduced it. Consider keeping the original text in the session file next to the summary, so that resumed sessions and transcript readers do not lose it.

Error Messages/Logs

No error output. The session file stores the affected messages as:
  {"type": "thinking", "thinking": "<API-written summary>", "signature": "<narration-tagged>"}
with no accompanying {"type": "text"} block for the original message.

Steps to Reproduce

  1. Start an interactive session with claude, select Fable 5.1 with /model, and ask for a task that needs several tool calls.
  2. Observe lines between tool calls that end in "summarized".
  3. Open the session file under ~/.claude/projects/<project>/ and look at the assistant entries around those lines: only a thinking block with a narration-tagged signature is stored, no text block.
  4. Repeat with Opus 5. The lines do not appear, and the interim text is stored as text blocks.

For comparison, seven earlier sessions on Opus 5 (versions 2.1.224 to 2.1.252) contain no narration-tagged blocks. The first session on Fable 5.1 contains 19 of them, starting at the first turn.

Non-interactive runs are not affected: claude -p --output-format stream-json --verbose on Fable 5.1 keeps every interim message as a text block, with or without the environment variable, because the header is only attached in interactive sessions.

Claude Model

Other

Is this a regression?

I don't know

Last Working Version

Not applicable. The behavior appears with the model, not with a Claude Code version: sessions on Opus 5 with the same versions are unaffected.

Claude Code Version

2.1.258 (Claude Code); first observed on 2.1.257

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Other

Additional Information

Model: claude-fable-5-1. Terminal: Kitty. Install: Homebrew cask claude-code@latest. Observed on Claude Code 2.1.257 and 2.1.258.

  • No showThinkingSummaries setting, no CLAUDE_CODE_THINKING_DISPLAY_UPDATES variable, no --thinking-display flag set

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗