Narration detection and per-request counting run for everyone; the "(summarized)" rendering sits behind a gate that is off by default.
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.
- 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_THRUSHset true or the remotetengu_sable_thrushgate 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.
narration_classifier_error, "aria-label": "summarized:", (summarized)
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
tengu_sable_thrush Off by default, switched on for this accountThe shipped code defaults this off, and the flag server returned on for the one account this site reads on this version. That is the reading that makes the entry above worth a second look, and it still says nothing about your account.
This account: on · anonymous baseline: on · compiled default in v2.1.240: off
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
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
New in this build: tengu_sable_thrush