{"version":"2.1.240","anchor":"thinking-display-modes-gated-behind-a-server-side-model-capa","canonical_anchor":"thinking-display-modes-gated-behind-a-server-side-model-capa","heading":"Thinking display modes gated behind a server-side model capability","tier":"soon","area":"Thinking Display","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.240\/e\/thinking-display-modes-gated-behind-a-server-side-model-capa","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.240","markdown":"### Thinking display modes gated behind a server-side model capability\n\nClaude Code can present thinking as connector text only, but nothing enables it here.\n\n**What**\n\nClaude Code gains machinery to choose how a model's thinking is presented: thinking plus the short connector text that bridges to the next action, connector text only, or nothing at all. Only the connector-text-only path does anything new, asking the model for streaming thinking updates and attaching the new API beta id `thinking-display-updates-2026-08-18` to the request. Reaching that path needs a model capability the server has to supply plus an internal gate, so with no server configuration the beta is never sent, and the selector helper that maps a requested mode onto a display is not called anywhere in this build.\n\n**Details**\n\n- Resolution order is: an explicit `summarized` request wins and shows thinking plus connector text, then `omitted` shows nothing, then non-interactive sessions show nothing, then the `showThinkingSummaries` setting gives thinking plus connector text, and last the capability-plus-gate path gives connector text only.\n- The helper's own fallback branch shows connector text only when both the thinking-display-updates gate and the `tengu_sable_thrush` gate are on, and otherwise shows nothing.\n- Setting the `CLAUDE_CODE_THINKING_DISPLAY_UPDATES` environment variable short-circuits the check and is returned directly; otherwise the server-supplied model capability or the remote `tengu_thinking_display_updates` gate decides, with the value compiled into the binary defaulting to off.\n- The outgoing request is only rewritten to carry the beta when the endpoint is first-party and streaming-capable and the `CLAUDE_CODE_SIMULATE_PROXY_USAGE` environment variable is not set.\n\n**Evidence**\n\n`if (e === \"summarized\") return \"thinking_and_connector_text\";`, `thinking-display-updates-2026-08-18`\n\n- Flag `tengu_sable_thrush`: Off by default, switched on for this account (read for one account on one subscription tier against v2.1.240; this account: on, anonymous baseline: on, compiled default: off)\n- Flag `tengu_thinking_display_updates`: Off in both readings (read for one account on one subscription tier against v2.1.240; this account: off, anonymous baseline: off, compiled default: off)\n- Area: Thinking Display\n- Names: `CLAUDE_CODE_THINKING_DISPLAY_UPDATES`\n- Tier: Nothing to try yet\n- Useful: 2\/5\n- Signal: 5\/5\n- Present in the build but not switched on"}