Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.240 Home All releases olderv2.1.239 v2.1.241newer
Claude Code v2.1.240

Server-tagged "narration" thinking blocks, counted now and rendered as "(summarized)" later

Not switched on
Useful2 Signal4
Thinking Display not in their notes

Claude Code now spots server-tagged narration thinking, but the display change stays off by default.

Narration detection and per-request counting run for everyone; the "(summarized)" rendering sits behind a gate that is off by default.

Feature flag
tengu_sable_thrush On for this account, and not off by default

The flag server returned on for the one account this site reads, and nothing in this release compiles it off by default. The compiled default is shown below, and says which it is when we cannot read one: a fifth of gates compile in a string or a number rather than on or off, and most published releases have no gate table behind them at all. No client can see what the server returns for your account.

This account: on · anonymous baseline: on · compiled default in v2.1.240: on

Read once, for one account on one subscription tier, against v2.1.240. It isn't a statement about your account. What a flag value here can and cannot tell you

CLAUDE_CODE_SABLE_THRUSH
What

Claude Code can now tell whether the model's thinking block was tagged by the server as narration, by decoding the block's cryptographic signature and looking for the literal string narration inside it. The count of such blocks per request is reported for everyone on this build. The display changes that depend on it are held behind a gate that is off by default, so on a stock build thinking still renders exactly as before.

Details
  • The classifier caches its result per block, so each block is decoded once.
  • Decode failures are swallowed silently and reported once as narration_classifier_error.
  • The telemetry field counting narration blocks per request existed in 2.1.239 but was wired to a check hardcoded to return nothing, so it never reported; it is now wired to the real check and has no gate.
  • The display-side check additionally requires CLAUDE_CODE_SABLE_THRUSH set true or the remote tengu_sable_thrush gate to be on, with the in-binary fallback off, and it also requires the server to actually be tagging blocks.
  • With the gate on, the main message renderer prints a dimmed, italic (summarized) label above the trimmed thinking text instead of the reasoning itself, the live thinking pane blanks out for such blocks, and a reply whose first block is narration counts as having visible content.
  • Screen readers get a dot column labelled summarized: in place of the visual label.
  • Each of the three display sites checks the classifier helper is present before calling it, so those paths stay inert if it is absent.
Evidence

narration_classifier_error, "aria-label": "summarized:", (summarized)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.240 →