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 releases Home olderv2.1.236 v2.1.238newer

Claude Code v2.1.237

16 entries read diff v2.1.236 → v2.1.237 Markdown

This build carries six pieces of a system for letting a session receive events pushed in from outside, none of them switched on. A new Poll tool drains queued harness events and reports how many arrived and how many wake signals remain, but it exists only when CLAUDE_CODE_POLL_EVENTS is true and the session is in remote mode; behind that same gate, each event's recorded sender decides how it speaks back into the conversation, with human-principal text becoming a real user turn, peer-agent text wrapped as coming from another session, and world events dropped. The harness also now checks that any sender text an event claims really appears in the event body, stripping it and logging a warning if not. Separately, faster pickup of a summon the first time Claude sees an artifact comment thread runs only under CLAUDE_CODE_ARTIFACT_COMMENT_FAST_ACK or the remote gate tengu_gorse_pylon, which defaults to false, and a marker for Slack turns whose sender the server verified as human is emitted only when the entrypoint is Slack.

Output styles gain a fifth built-in, Concise, which tells the model to lead with the result, skip preamble and narration, and answer simple questions in one to three sentences without trading away correctness. Nothing gates it, so it appears in the style list for anyone on this build. Caching of the system prompt block now also requires a recognised endpoint: Bedrock, Vertex and Mantle qualify only with their respective base URL variables unset, and Foundry only when ANTHROPIC_FOUNDRY_BASE_URL is unset or points at .services.ai.azure.com, so a proxy or custom gateway loses that caching. Resuming a saved conversation, or loading one by agent ID, now strips authority markers from the replayed messages, resetting recorded origins to unclassified and downgrading a stored "human principal" sender to "other human".

Find
Flag state
Pick an entry · j / k steps through
10 entries

What probably matters to you

Anything you can use today, anything that visibly changes, and anything worth poking at. One line each, open for detail.

Not switched on
Useful2 Signal5
Sessions Notable not in their notes

Poll tool drains queued harness events and reports who sent them#

Claude can pull in queued messages from other sessions, stamped with who sent them, but only behind an env var.

A Poll tool that drains queued harness events with sender provenance exists only when CLAUDE_CODE_POLL_EVENTS is true and the session is in remote mode.

CLAUDE_CODE_POLL_EVENTSCLAUDE_CODE_REMOTECLAUDE_CODE_ENVIRONMENT_KIND
What

A new Poll tool lets the model pull in events that the surrounding harness has queued for the session, returning the rendered messages along with how many events arrived and how many wake signals are still outstanding. Each queued event can now carry provenance saying who it came from, so a notice relayed from another Claude session arrives stamped as coming from a peer agent with that session's ID and text. None of this is reachable in a normal local run: the tool and the fields appear only when the CLAUDE_CODE_POLL_EVENTS environment variable is true and the session is in remote mode, meaning CLAUDE_CODE_REMOTE set to true with CLAUDE_CODE_ENVIRONMENT_KIND unset. Without that combination the tool is absent entirely and the session behaves as in previous builds, where it did not exist at all.

Details
  • Poll is registered both in the main tool list and in the reduced list used for simple mode, is read-only, is safe to run concurrently with other tools, and refuses to run inside a subagent with the message Poll is available on the main thread only.
  • The poll_event request that feeds the queue accepts optional authority, sender_id and sender_text alongside its existing fields, validated as poll_event: kind and event must be strings; wake, when present, a boolean; authority, when present, one of human-principal|human-other|peer-agent|world-event; sender_id and sender_text, when present, strings.
  • Sender text is capped at 49152 bytes and sender ID at 1024.
  • Accepted provenance travels from the event queue through the turn options into the Poll tool's output schema as an optional provenance array, and onto the poll-event attachment, so the model sees the origin of each event it drains.
  • A relayed cross-session notice is tagged authority: "peer-agent" carrying the originating session's identifier and text.
Evidence

poll_event: kind and event must be strings; wake, when present, a boolean; authority, when present, one of human-principal|human-other|peer-agent|world-event; sender_id and sender_text, when present, strings, authority: "peer-agent", Poll is available on the main thread only

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.

Not switched on
Useful2 Signal5
Sessions Notable

Provenance decides how a relayed event is spoken back into the conversation#

Relayed messages are spoken back differently by source: verified humans as you, other agents as cross-session, world events dropped.

Sender provenance stored on delivered events, capped at 20 entries, decides delivery framing; reachable only under the poll-events gate.

What

Once accepted, sender provenance is stored on the delivered event, up to the first 20 entries, and controls how each entry re-enters the conversation. Text marked human-principal is emitted as a genuine user turn; peer-agent and anything else is wrapped in cross-session framing that does not read as your own instruction; world-event, or a missing or blank sender text, drops the delivery entirely. Reachable only under the same poll-events gate.

Details
  • The validation error message was widened to spell out the full set of accepted authority values.
  • None of these four authority values existed in the previous build.
Evidence

poll_event: sender_text dropped from provenance

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

Use it now
Useful3 Signal4
Environment Variables Notable

Poll-events switch cannot be set from settings#

You can set CLAUDE_CODE_POLL_EVENTS in your shell, but settings files can no longer supply it.

CLAUDE_CODE_POLL_EVENTSenv
What

CLAUDE_CODE_POLL_EVENTS is added to the typed environment registry as a boolean and, more usefully, to the list of names filtered out of env blocks supplied by settings files. It can only be set by the process that launches Claude Code, not by a project or user setting.

Evidence

"CLAUDE_CODE_POLL_EVENTS"

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.

You'll notice
Useful3 Signal4
Sessions

Resumed sessions can no longer inherit "verified human" status#

Resuming a saved conversation no longer carries over "verified human" trust from the earlier live session.

What

Loading a saved conversation, both when resuming normally and when loading by agent ID, now strips authority markers from the replayed messages. Verified-Slack-human flags and classifier metadata lines are deleted, message origins recorded as human or auto-continuation are reset to unclassified, and any stored sender authority of "human principal" is downgraded to "other human". A replayed transcript can never re-assert authority that was established in an earlier live session.

Details
  • Runs on every transcript load; there is no flag to disable it.
Evidence

authority: "human-other"

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

You'll notice
Useful3 Signal4
Slack Integration not in their notes

Verified-human marker for Slack-relayed turns, plus a stubbed third relay surface#

Slack turns from a server-verified human get a marker so Claude treats them as you without extra confirmation.

CLAUDE_CODE_ENTRYPOINT
What

Turns relayed from a bound Slack thread whose sender the server verified as human are now prefixed with a fixed marker, and a new prompt paragraph tells the model that a turn opening with exactly that marker is its own user and does not need extra confirmation, while bot-attributed messages inside a Slack message block never establish user intent. Both are emitted only when CLAUDE_CODE_ENTRYPOINT is claude_in_slack or claude-in-slack; otherwise the paragraph is empty.

Details
  • The paragraph replaces the previous cross-session messages rule in the prompt.
  • The escaping helper for non-verified relayed text now also engages for Teams (claude-in-teams) and for a third surface whose check unconditionally returns false, a placeholder with no way to be enabled in this build.
Evidence

[Verified human message relayed from the bound Slack thread]:

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.

Under the hood
Useful3 Signal4
Message Provenance

Shared authority values for message provenance#

Relayed messages are labelled from one shared list: you, another person, another agent, or an event.

What

A single four-value list of sender authorities (human principal, other human, peer agent, world event) now backs both the Poll tool's output shape and the prompt text that frames a relayed message, so the two cannot drift apart.

Evidence

["human-principal", "human-other", "peer-agent", "world-event"]

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

You'll notice
Useful4 Signal3
Prompt Caching Notable

System prompt caching now requires a recognised endpoint#

If you point Claude at a proxy or custom gateway, the system prompt is no longer cached.

ANTHROPIC_BEDROCK_BASE_URLANTHROPIC_VERTEX_BASE_URLANTHROPIC_BEDROCK_MANTLE_BASE_URLANTHROPIC_FOUNDRY_BASE_URL
What

The check deciding whether the system prompt block may be marked cacheable used to only require that experimental betas were not disabled. It now also requires a known provider and endpoint: Bedrock, Vertex and Mantle qualify only when ANTHROPIC_BEDROCK_BASE_URL, ANTHROPIC_VERTEX_BASE_URL and ANTHROPIC_BEDROCK_MANTLE_BASE_URL are unset, and Foundry only when ANTHROPIC_FOUNDRY_BASE_URL is unset or its hostname ends in .services.ai.azure.com. Behind a proxy or custom gateway, the system block stops being cached.

Details
  • First-party and Anthropic-on-AWS paths still have to pass the existing beta and base-URL checks.
  • No feature flag; the outcome is decided entirely by the provider and those environment variables, and it is live for everyone on this build.
Evidence

.services.ai.azure.com

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.

Not switched on
Useful2 Signal4
Sessions

Auto-mode classifier reads poll events by sender#

The turn-handling classifier now splits queued events into separate turns depending on whether a human or another agent sent them.

Per-sender expansion of queued harness events feeds the auto-mode classifier, reachable only under the poll-events gate.

What

The context handed to the classifier that decides how to handle a turn now expands queued harness events into individual user turns according to who sent them. World events and entries with no sender text are dropped, human-principal text is rendered as a verified human turn, peer-agent text is wrapped as coming from another agent, and anything else is prefixed as a non-user source. Previously the whole attachment contributed no per-sender turns at all.

Details
  • Part of the poll-events path, so it is inert unless that gate is on.
  • The verified-human marker it can emit is itself only produced under the Slack entrypoint.
Evidence

y.authority === "world-event"

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

Not switched on
Useful2 Signal4
Artifacts Notable not in their notes

First-sight summon pickup for artifact comments, off by default#

Claude could answer an artifact summon the first time it sees a thread, but the switch is off.

First-sight summon pickup sits behind CLAUDE_CODE_ARTIFACT_COMMENT_FAST_ACK or a remote gate that falls back to false.

Feature flag
tengu_gorse_pylon Not enough to say

Nothing here resolved what this flag was doing on this version, so nothing here should be read as on or off.

This account: no value returned · anonymous baseline: no value returned · compiled default in v2.1.237: on

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

CLAUDE_CODE_ARTIFACT_COMMENT_FAST_ACK
What

When Claude auto-reacts to comments on an artifact, it can now pick up a recent summon the first time it sees a thread, not only on later sightings. The branch runs when CLAUDE_CODE_ARTIFACT_COMMENT_FAST_ACK is set, otherwise it consults the remote gate tengu_gorse_pylon, whose fallback is false. With no server value, the new branch never runs and only the previous pickup path applies.

Details
  • Telemetry reports the outcome: an artifact_comments_autoreact event flags first_sight_summon when summons were found, or gives the rejection reason first_sight_summon_stale when candidates existed but all were too old.
  • Covers both the branch that baselines a newly seen thread and the re-sighted branch.
  • The gate helper itself already existed; only this use of it is new.
Evidence

first_sight_summon_stale

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.

Use it now
Useful4 Signal2
Output Styles

New built-in output style "Concise"#

You can now pick a "Concise" output style so Claude leads with results and skips narration.

/output-style
What

A fifth built-in style joins Proactive, Explanatory and Learning. Described as "Claude responds tersely, leading with results and skipping preamble and narration", it tells the model to lead with the result, cut narration, answer simple questions in 1-3 sentences and never trade correctness for brevity. Nothing gates its registration, so anyone on this build can pick it from the output-style list unless output styles are turned off entirely.

Details
  • Registered as a built-in style with coding instructions retained, so normal engineering guidance still applies.
  • Its system prompt is headed "# Concise Style Active" and states explicitly that it overrides more general communication guidance, backed by six rules plus a short reminder re-injected each turn.
  • Reported in prompt telemetry under its own key rather than collapsing into the generic one.
Evidence

Claude responds tersely, leading with results and skipping preamble and narration, The user chose brevity over narration. You should:

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.

Were these the right ones to put at the top? 0 answered
Below the fold

Everything else

Smaller changes and internals, grouped as the pipeline found them. Nothing is dropped, it is only further down.

1 entry

In Developmentopen

Under the hood
Useful2 Signal3
Sessions

Claimed sender text must actually appear in the event#

A pushed message can no longer claim words it never actually delivered; mismatched sender text gets stripped.

What

If a pushed event says who sent it and quotes their text, the harness checks that the escaped form of that text really appears inside the event body. If it does not, the sender text is stripped from the recorded provenance and a warning is logged, so provenance cannot claim a sender string the delivered event never contained.

Details
  • Same poll-events gating as the rest of this path; the event itself is still delivered, only the unverifiable sender text is removed.
Evidence

poll_event: sender_text dropped from provenance \u2014 its escaped form is not embedded in the event element (derivation contract violated)

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

5 entries

Internal Changesopen

Under the hood
Useful2 Signal3
Telemetry

Concise reported separately in prompt telemetry#

Sessions using the Concise output style are now counted separately from other styles.

What

The list of prompt identities that may be reported gains a key for the new Concise style, alongside the custom, Proactive, Explanatory and Learning keys, so sessions using it are distinguishable instead of collapsing into the generic key.

Evidence

"repl_main_thread:outputStyle:Concise": !0

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

Under the hood
Useful2 Signal1
Build Metadata

Build metadata bumped to 2.1.237#

The reported version and build stamp move to 2.1.237 everywhere they appear.

What

The inlined build constants move to version 2.1.237, build time 2026-08-19T22:15:38Z and a new commit SHA, across roughly 60 places including version output, updater messages, user-agent strings, remote-control minimum-version errors and daemon logs.

Evidence

45590910f0b746ddad3fe7d8135c5c29b33ccf88

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.

Under the hood
Useful2 Signal1
Build Metadata not in their notes

Version stamp moved from 2.1.236 to 2.1.237#

Version output and telemetry now say 2.1.237 instead of 2.1.236; nothing else changes.

--version
What

The same build constants object drives the reported CLI version, telemetry version fields, update checks and --version output; the roughly 91 changes in this group are that one literal appearing at different call sites. Nothing changes but the reported version.

Evidence

GIT_SHA: "45590910f0b746ddad3fe7d8135c5c29b33ccf88"

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.

Under the hood
Useful1 Signal0
Elsewhere

Two apparent edits are renaming only#

Two changes in hook spawning and MCP state are renames only, with identical behaviour.

What

In the code that spawns hook commands, including the Windows branch that errors when neither pwsh nor powershell is on PATH, only local variable and module alias names changed; the spawn options are identical. In the MCP client state update, a line that looks dropped is a rename artifact, and all four empty-list fallbacks for disabled or failed servers (tools, commands, resources, resource templates) are still computed.

Evidence

replaceOnly: te,

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

Under the hood
Useful1 Signal0
Build Metadata

Bulk version stamp and cosmetic re-minification#

Bundled code was reformatted and restamped with the new version; nothing behaves differently.

What

Around 70 embedded metadata objects carry the new version, build time and commit, and the rest is formatting reflow and renamed identifiers in bundled code such as the schema validator, glob matcher, QR renderer and worktree helpers, with no behaviour difference.

Evidence

BUILD_TIME: "2026-08-19T22:15:38Z"

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.

Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.237. Text is unmodified from the upstream changelog. Everything else on this page came out of the bundle instead, which is why the two lists don't match.

  • Fixed prompt caching for sessions using an LLM gateway or custom base URL
  • Added a built-in "Concise" output style: Claude leads with results and skips preamble and narration, while doing the work just as thoroughly. Select it under Output style in /config.
System prompt

No change to the system prompt since v2.1.236.

Claude Code, interactive mode

Documentation

What the docs did around this release

470 documentation changes were recorded within 24 hours either side of this release, nearest first. The closest 12 are below. They're here because they happened near this release in time. That's not a claim that this release caused the edit, or that the page documents anything in it.

Every time above is when this site's poller recorded the change, which is up to half an hour after the edit on an ordinary read and up to a day after it on a full sweep. Upstream's own edit time is used instead wherever a capture carries one. None of these do.

Switches

Every name in this release

The 12 literal strings found in the bundle, with the number of entries that name each one. Picking one searches for it. A name is here because this build's code mentions it, which is not the same as it working or being finished.

Slash commands

CLI flags

Environment variables

Settings and names in the code