Claude Code v2.1.257

525 entries read v2.1.252 → v2.1.257 Markdown Unofficial

Forty-seven items sit in this build without a way to reach them yet. A Mythos 5.1 model has been added to the catalog with a 1M context window and max effort levels, and the system prompt now describes an unreleased Claude Fable 5.1 / Mythos 5.1 tier above Opus, though Fable 5.1 only replaces Fable 5 as default in most places while the gateway still uses the older model. The compiled seed catalog also carries placeholder Opus 5 and Sonnet 5 entries. Elsewhere, a hidden "check" artifact addon tool for local preview and runtime diagnostics stays dark-launched behind two flags, a new remote-control hook lets sessions background a shell command and query its state, and a new Agents view UI with an effort slider is being built out but isn't live.

Of 222 shipped entries, a new permission setting called blockReadsOutsideWorkingDirectories lets you permanently block Claude from reading files outside your working directories, right from the permission prompt. Artifact listing gains a scope filter for mine, shared, or all, plus new delete and open actions. A systemPromptSnapshot option, paired with a new --system-prompt-snapshot CLI flag, records the system prompt once per conversation so forked sessions can reuse it instead of recomputing it. You can now set bypassPermissions or auto as the default permission mode from local settings rather than only project settings, and a new /btw command lets you capture a quick aside that auto-submits during idle moments.

Among 83 fixes, agent files and project or local settings can no longer widen permissions beyond what the parent session allowed, with new telemetry flagging attempts to do so. Settings writes now re-check policy locks before applying, so managed policy overrides get refused rather than silently accepted. HTTP hook headers no longer interpolate environment variables that look like credentials, and hook detail text is now sanitized to prevent terminal control sequence injection. Subprocess kill logic now verifies PID identity before sending SIGKILL, avoiding accidental kills of unrelated recycled processes, and background daemon respawn now waits out an in-progress npm reinstall instead of failing outright.

Reading as
Show only
Tier
Flag state
Names
Pick an entry · j / k steps through · rest on a row to peek
134 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.

+New
Use it now
Useful5 Signal4
Group of 3 Artifacts Notable

Artifacts tool consolidated into a single action-based schema#

The artifact list action takes a scope of mine, shared or all, plus new asset upload, delete and open modes.

Details 0 0 Feedback
scopeasset: truetype_url

The old artifacts tool verbs (upload_asset, read_file, read_asset, list_files, list_assets, list_types, describe_type, delete_asset) are replaced by a single action parameter on unified publish/list/read/delete tools. Calls made with the old verb names are rewritten via a regex table into the new phrasing (e.g. action: "upload_asset" becomes publish with asset: true, list_files becomes list with scope: "files"), and inputs/outputs are coerced between the legacy and new shapes so older prompts/skills keep working while the model is steered toward the new vocabulary.

The action: "list" action now accepts scope: "mine" (default), "shared", or "all", plus, when enabled, scope: "files", "assets", and "types". Publishing gains a new asset: true upload mode and a type_url describe mode, alongside a new delete action gated by t.deleteOn and an open action gated by t.openOn. A new validation branch also rejects a type argument unless the action is "list", clarifying that it names the type whose Artifacts to list, and that creating from a type should use type_url instead.

+New
Use it now
Useful5 Signal4
Group of 2 Permissions Notable

Hidden --inherit-permission-mode CLI flag#

A hidden --inherit-permission-mode flag lets a spawned session take its permission mode from whatever launched it.

Feature flag
tengu_agentview_inherit_mode_demote 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.257: on

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB

A new, hidden CLI option --inherit-permission-mode lets a spawned session inherit its permission mode from the launching process/frame instead of setting one explicitly. It is wired through argument parsing, storage (inheritPermissionModeCli), and resolution logic that propagates a permissionModeInherited flag into session state; the option is registered with .hideHelp() so it does not appear in claude --help.

When a permission mode is inherited this way, a helper decides whether to also set permissionModeInherited: true (used elsewhere to demote/soften the effective permission level) versus simply passing the inherited mode through silently.

+New
Use it now
Useful5 Signal4
Group of 2 Subagents Notable

New CLAUDE_CODE_SUBAGENT_MODEL_FORCE env var forces subagent model#

A new env var stops per-call model overrides for subagents and workflow agents, forcing them to inherit.

Details 0 0 Feedback
CLAUDE_CODE_SUBAGENT_MODEL_FORCE

A new environment variable, CLAUDE_CODE_SUBAGENT_MODEL_FORCE, forces the Task tool to ignore a per-call model override for subagents/workflow agents. When set, the model parameter is stripped from the Task tool schema (n.omit({ model: !0 })), and workflow agent model requests are dropped with a logged message.

The in-tool Workflow authoring reference also checks CLAUDE_CODE_SUBAGENT_MODEL_FORCE: when set, it omits the model field from the documented agent() opts and drops the guidance text about setting model overrides in phase() entries and agent() calls, since a forced subagent model makes that option moot.

Related

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

+New
Use it now
Useful5 Signal5
Plugins Notable no docs found

CLAUDE_CODE_CCR_SURFACE=tag env var adds a hidden default plugin marketplace to search/download#

Setting CLAUDE_CODE_CCR_SURFACE=tag adds a hidden claude-tag-plugins marketplace to plugin search and download.

Details 0 0 Feedback
CLAUDE_CODE_CCR_SURFACE=tag

Setting the env var CLAUDE_CODE_CCR_SURFACE=tag adds a hidden default plugin marketplace, claude-tag-plugins, to plugin search and download: search requests add included_default_marketplaces: ["claude-tag-plugins"] to the request body, and the download URL builder appends included_default_marketplaces=claude-tag-plugins as a query param. With the variable unset, which is the default, neither path is taken.

Related

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

+New
You'll notice
Useful5 Signal5
Model Catalog Notable no docs found

Signed remote model catalog ('published catalog') infrastructure#

The model list, aliases and defaults can now come from a signed remote catalog document rather than only from app releases.

Details 0 0 Feedback
CLAUDE_CODE_MODEL_CATALOG_URL

Claude Code can now fetch, cache, and verify a signed remote "model catalog" document from https://downloads.claude.ai/model-catalog/v1/catalog.json (or a custom/managed URL). Signatures use RSASSA-PKCS1-v1_5-SHA512 checked against trust roots, with a hard-coded release-signing public key named claude-code-release-signing-key, and a compiled-in seed document is used as a fallback before the first successful fetch. This lets the model list, aliases, and defaults be updated server-side rather than only through app releases, with tamper protection from the signature check.

Related

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

In dev
Nothing to try yet
Useful5 Signal5
Hooks Notable no docs found

onAssistantRound session hook wired but scope unclear#

A new per-session onAssistantRound hook fires after assistant and tool rounds for the main agent, with unclear scope.

Details 0 0 Feedback
onAssistantRound

A new per-session hook, onAssistantRound, is now registered and invoked with { context, messages } after assistant/tool rounds, but only for the main agent. A second site assigns z.onAssistantRound = LWt for some subsystem, but what installs the listener and what it does is not yet clear.

In dev
Nothing to try yet
Useful5 Signal5
Models Notable

Advisor tool / advisorModel setting#

An internal advisor model concept exists, with sub-agents told never to consult it, and only runs under first-party auth plus a flag.

Feature flag
tengu_sage_compass2 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.257: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 1 0 Feedback
advisorModel

Claude Code now supports an internal 'advisor' model concept, surfaced through the query context via getAdvisorSetting/advisorModel. When the advisor is active and the session isn't compacting, an internal meta message, Never consult the advisor tool., is injected into forked-agent prompts so sub-agents don't recursively call it. The advisor tool itself only runs when first-party auth is combined with a support flag or a remote experiment.

Related

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

In dev
Nothing to try yet
Useful5 Signal5
Models Notable

Fable 5.1 model introduced#

A claude-fable-5-1 model id is recognized and becomes the fable family default, with UI text updated to Fable 5.1.

Details 0 0 Feedback
claude-fable-5-1claude-mythos-5-1

A new claude-fable-5-1 model id is recognized, along with a matching claude-mythos-5-1 variant. The fable family's default, best, and latest_per_family selections now point to claude-fable-5-1, though a gateway-specific override still uses claude-fable-5. UI text changes from "Fable 5" to "Fable 5.1".

Related

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

In dev
Nothing to try yet
Useful5 Signal5
Remote Tool Serving Notable

Init frame schema gains 'host' and 'serving' fields for local tool serving to cloud sessions#

The init frame can announce the local machine and whether it serves Bash, Read, Write and Edit calls to a cloud session.

Details 0 0 Feedback

The internal init-frame schema for headless/cloud-hosted sessions now includes a host block (handle, working_dir, platform, cli_version) announcing the local machine, and a serving block describing whether that machine serves Bash/Read/Write/Edit calls to the cloud session. serving reports a state of on, off, pending, or revoked, a policy of parity or interim (defaulting to interim), and a channel of session or bridge_only.

Related

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

In dev
Nothing to try yet
Useful5 Signal5
Artifacts Notable no docs found

New "check" artifact addon tool: local preview + runtime diagnostics, dark-launched behind two flags#

A new check artifact addon previews a page locally and reads viewers' runtime diagnostics, behind two env vars.

Feature flag
tengu_osier_pylon_trace 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.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

tengu_cobalt_plinth_aspen 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.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
CLAUDE_CODE_ARTIFACT_VERIFYCLAUDE_CODE_ARTIFACT_PREVIEW

A new "check" artifact addon tool (addon: "check") offers local page preview plus runtime diagnostics for viewers, described as letting you "preview a page locally and read viewers' runtime diagnostics." It's added to the addon list alongside the existing comments and data artifact addons, but only exposed when either CLAUDE_CODE_ARTIFACT_VERIFY (or the tengu_osier_pylon_trace gate) or CLAUDE_CODE_ARTIFACT_PREVIEW (or the tengu_cobalt_plinth_aspen gate) is enabled. The verify path is forced off whenever CLAUDE_CODE_REMOTE is set, and the preview path additionally requires a headless-Chrome finder module to be compiled into the build, otherwise it throws "artifact preview is not compiled into this build." All paths are off by default.

Related

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

In dev
Nothing to try yet
Useful5 Signal5
Agents View Notable

New Agents view UI surface and effort slider component#

A new Agents view with an effort slider, view switching and pinning keybindings has been added.

Details 0 0 Feedback
agents:switchViewagents:togglePin

A new Agents UI view and an EffortSlider component have been added, along with agents:switchView and agents:togglePin keybindings, pointing to a dedicated Agents panel with view-switching, pinning, and an effort-level slider control. Two new focus contexts were also added to the key-binding help system, one for the effort slider and one for the claude agents view.

Related

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

In dev
Nothing to try yet
Useful5 Signal5
Artifacts Notable no docs found

New artifact-type 'list instances' capability, end-to-end but with no visible in-slice trigger#

Artifact types can list the artifacts made from them end to end, but nothing yet exposes the tool to a model.

Details 0 0 Feedback
artifact_type_instances

A new "list instances" capability for Artifact types is now fully wired end-to-end: a client call to GET /types/{slug}/instances behind the artifact_type_instances feature flag, a tool-result builder returning fields like type, scope, instances, curated, hidden, more, overflow, dropped, and unavailable, and new terminal rendering showing either "instance listing not available to this account" or "listed N artifact(s) of this type". A related new "opened" artifact-link result renderer shows "Opened" with the resolved title/URL. Nothing yet in this area exposes the tool to a model, so what triggers this listing is not yet visible.

Related

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

In dev
Nothing to try yet
Useful5 Signal5
Models Notable

New model identity: Claude Fable 5.1 / Mythos 5.1#

A system-prompt identity block describes Claude Fable 5.1 in a Mythos-class tier above Opus, sharing weights with Mythos 5.1.

Details 0 0 Feedback
claude-fable-5-1

A new system-prompt identity block describes 'Claude Fable 5.1' as the newest model in Anthropic's Claude 5 family, placed in the Mythos-class tier above Opus. It shares weights with 'Claude Mythos 5.1', an unrestricted variant available only to approved organizations, and is selected when the model id resolves to claude-fable-5-1.

Related

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

In dev
Nothing to try yet
Useful5 Signal5
Models Notable

New model: Mythos 5.1 added to model registry#

Mythos 5.1 joins the model catalog with a 1M context window and effort levels up to max.

Details 0 0 Feedback
claude-mythos-5-1xhighmax

A new model, Mythos 5.1 (claude-mythos-5-1), has been added to the model catalog. It ships with a 1M context window, support for effort levels up to xhigh/max, and new capability flags including a dedicated prompt bundle.

+New
You'll notice
Useful4 Signal4
Group of 2 Sessions Notable no docs found

Background sessions persist unsent prompt drafts to .prompt-stash#

An unsent prompt draft in a background session is stashed to disk and restored when the session comes back.

Details 0 0 Feedback

Background sessions now write the in-progress, unsent prompt text (composer text, cursor offset, pasted-content ids, launch-warning state) to a .prompt-stash file under the job directory, validated against a schema and written atomically. A new class subscribes to the prompt-input store's stash field and persists it, and on connection the reverse-proxy server's onConnection now calls promptStash.restore() unconditionally, in addition to the existing restorePromptDraft, so a background session recovers an in-progress but unsent prompt after a restart or reattach. Stash size is capped, falling back to memory-only with a warning if the draft is too large to persist.

In dev
Nothing to try yet
Useful4 Signal4
Group of 3 Artifacts Notable no docs found

Artifact publish/read gains syncLive mode and a neverPublished error state#

Artifact boot requests can pass a share key and vanity params, and a syncLive option enables a live-synced read.

Details 0 0 Feedback
sksyncLive

The artifact publish and read path now accepts a syncLive option; on a frame read it appends live=sync to the request, alongside new support for sk (share key) and vanity params on the artifact boot request.

A 404 on artifact read no longer folds every failure together: it now distinguishes an artifact that exists but has never had anything published to it from one that is genuinely missing or unshared, returning a neverPublished flag with a clearer message.

Related

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

In dev
Nothing to try yet
Useful4 Signal4
Group of 2 Models

claude-fable-5-1 model added, gated behind renamed fable51 flag#

claude-fable-5-1 is wired up with its own Vertex region, and fallback lists now gate on a fable51 check.

Details 0 0 Feedback
claude-fable-5-1

A new model id claude-fable-5-1 and its Vertex region constant VERTEX_REGION_CLAUDE_FABLE_5_1 were added. The opus/haiku fallback-list builders now check feature gate fable51 (replacing the previous fable5 check) before appending the model via WZe().

Related

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

+New
Use it now
Useful5 Signal3
Group of 2 Session Options Notable no docs found

New hideLoginNotice option splits login-notice display from verbose-token display#

A new hideLoginNotice option lets a host session hide the login notice without hiding all welcome chrome.

Details 0 0 Feedback
hideLoginNoticehideWelcomeChrome

A new hideLoginNotice flag is threaded through session/turn controller construction (Ere), alongside debug, embedded, and hasSuppressedDialogs, and passed into the status UI component wD via a hideLoginNotice prop. This lets an embedded/host session suppress the login-notice chrome separately from the existing hideWelcomeChrome flag.

The status-line component now separately computes showLoginNotice (shown when the API key is invalid or missing, unless hidden) and showVerboseTokens (shown when the verbose flag is set and the key is valid), passed to the child instead of a single combined flag, giving finer control over when each is displayed.

+New
Use it now
Useful5 Signal3
Group of 2 Hooks Notable

New CLAUDE_PLUGIN_DATA placeholder; script-type hooks recognized but not runnable#

Hook file paths may expand a new ${CLAUDE_PLUGIN_DATA} placeholder, and nothing else.

Details 0 0 Feedback

The hooks system now recognizes a hook type: "script" distinct from existing command hooks, with dedicated path anchoring supporting ${CLAUDE_PROJECT_DIR}, ${CLAUDE_PLUGIN_ROOT}, and the new ${CLAUDE_PLUGIN_DATA} substitution plus ~-expansion, and a description formatter for it. However, the function that actually executes a script hook throws unconditionally at the point of use, from both the main hook-execution path (where hooks are matched by type) and a second call site, so script hooks do not actually run yet.

Hook config validation was also updated to explicitly whitelist ${CLAUDE_PROJECT_DIR}, ${CLAUDE_PLUGIN_ROOT}, and the new ${CLAUDE_PLUGIN_DATA} as the only expandable placeholders allowed in a hook's file field; any other $-expansion, backtick, or %NAME% pattern is flagged as invalid.

+New
Use it now
Useful5 Signal3
Group of 3 Permissions

New permissions.blockReadsOutsideWorkingDirectories setting, with network-path detection for working directories#

A new permissions setting blocks any file read outside your working directories, in prompts and in the sandbox.

Details 0 0 Feedback
permissions.blockReadsOutsideWorkingDirectories/add-dir

A new setting, permissions.blockReadsOutsideWorkingDirectories, is now read from settings and propagated through settings serialization/merge. When enabled it switches directory validation to a stricter check (kHt(n) instead of fS(n)), adds blockReadsOutsideWorkingDirectories: true to the tool permission context, and is enforced in the sandbox filesystem policy, command-parsing/read-permission logic, and user-facing deny/ask messages ("Reads outside the working directories are blocked"). It is explicitly stripped out for remote-execution permission modes.

Alongside it, validating a directory to add as a trusted working directory (validateDirectoryForWorkspace) now checks whether the path is a network path before doing a normal stat, returning a new networkPath result type instead of treating it as an ordinary directory-check failure. This rejects UNC/network paths from being added as working directories, with guidance about drive-letter mapping on Windows.

Related

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

+New
You'll notice
Useful4 Signal5
Remote Tool Serving

Emergency kill-switch messaging for remote command execution#

New copy explains that Anthropic can remotely turn off running commands on your machine from a cloud session, and turn it back on.

Details 0 0 Feedback

New user-facing copy explains that Anthropic can remotely disable or re-enable "remote tool serving" — running commands on a user's machine from a cloud session — via an emergency switch, including notices for when it has been muted ("Remote tool serving was turned off by Anthropic (emergency switch)") and when it is unmuted again.

Related

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

In dev
Nothing to try yet
Useful4 Signal5
Remote Tool Serving Notable no docs found

A 'served tools' mute mechanism exists with no in-bundle caller#

Scaffolding to mute and unmute served tools has landed, with state labels and a periodic timer, but nothing calls it.

Details 0 0 Feedback

New scaffolding for muting and unmuting "served tools" has landed, gated behind tengu_violin_mute, with 'served-tools-muted'/'served-tools-unmuted' state labels, a jittered ~5-minute periodic timer helper, and a safe-call wrapper. None of this is wired to any caller yet, so it has no observable effect.

Related

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

In dev
Nothing to try yet
Useful4 Signal5
Agents Notable no docs found

Automatic "batch your requests" reminder tied to a model-catalog flag#

Some models can be given a built-in reminder to batch independent requests into a single response.

Details 0 0 Feedback
CLAUDE_CODE_TOASTY_THIMBLE

The CLAUDE_CODE_TOASTY_THIMBLE ephemeral-reminder mechanism now has a modelOwn fallback: when neither the env var nor client_data supplies reminder text, it can inject the instruction "First privately list what you need next; then request every item that doesn't depend on another's result in this one response." This only fires for models the model catalog tags with the server-side fable_5_1_prompt_bundle capability flag.

Related

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

In dev
Nothing to try yet
Useful4 Signal5
Telemetry Notable

Tool dispatch can emit a 'tool.output' telemetry event with file contents/diffs/commands#

A tool.output telemetry event can carry file contents, diffs and bash commands after a successful tool call, behind a gate.

Details 0 0 Feedback
tool.output

After a successful Write, Edit, Read, or Bash tool call, Claude Code can now assemble a tool.output telemetry event carrying details like file_path, content, and a diff for edits, or bash_command/output for Bash calls. A gating check function runs before any field is included.

Related

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

+New
Use it now
Useful5 Signal4
Artifacts Notable no docs found

Artifact multi-file feature gains env override#

A new env var can switch on multi-file artifact support without waiting for the feature flag.

Feature flag
tengu_cobalt_plinth_bracken Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
CLAUDE_CODE_ARTIFACT_MULTI_FILE

The artifact multi-file capability check now also honors a new CLAUDE_CODE_ARTIFACT_MULTI_FILE env var, in addition to the existing feature flag.

Related

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

+New
Use it now
Useful5 Signal4
Hooks Notable

Bash hooks fetch() gains session-scoped auth handles#

Hook fetches can take an auth handle from $.session.authorize(), whose headers apply only to the matching host.

Details 0 0 Feedback
auth

The plugin hooks fetch event now supports an auth option resolved via $.session.authorize(), which mints an opaque handle. When the fetch's target host matches the authorized handle's host, the handle's headers are merged into the outgoing request; they're dropped again if a redirect crosses to a different host.

+New
Use it now
Useful5 Signal4
System Prompt Notable no docs found

Env var can force mid-conversation system prompt changes#

A new env var forces mid-conversation system prompt changes that were previously decided by heuristics.

Details 0 0 Feedback
CLAUDE_CODE_FORCE_MID_CONVERSATION_SYSTEM

A new environment variable, CLAUDE_CODE_FORCE_MID_CONVERSATION_SYSTEM, forces the mid-conversation system-prompt-change path that was previously gated only by model and session heuristics.

Related

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

+New
Use it now
Useful5 Signal4
Hooks Notable no docs found

Hooks gain a 'script' hook type with an external-runner result protocol#

Hooks gain a script type whose results are recovered from started/result/exited markers in the output.

Details 0 0 Feedback
hook.type: script

Hooks now support a new hook.type === 'script' kind. The process output scanner parses <name> started, <name> result <json>, and <name> exited <code> markers from stdout/stderr to recover a structured result even when the script is launched through an intermediary runner or launcher. Conflicting or malformed markers set a resultConflict flag and produce a distinct "no single verdict" explanation.

Related

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

+New
Use it now
Useful5 Signal4
Plugins Notable no docs found

New $.model.fork plugin hook API forks the warm main-thread transcript#

Plugins can call model.fork to ask a question against the live transcript, with no tools and a two-turn cap.

Details 0 0 Feedback
model.fork

A new plugin hook-API operation, model.fork, lets a plugin spawn a sub-query that forks the live main-thread transcript instead of starting a fresh agent context. The forked call strips trailing tool_use blocks, disallows tool use entirely (failing with "A model fork cannot use tools"), caps the fork at 2 turns, and reserves a 24000-token budget per call. If there is no warm main-thread transcript to fork from, the operation declines quietly with a debug log rather than throwing an error.

Related

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

+New
Use it now
Useful5 Signal4
Plugins Notable no docs found

New $.session.authorize plugin hook API surface#

Plugins gain $.session.authorize(), which mints an auth handle for the session.

Details 0 0 Feedback
session.authorize

The plugin hook-API dispatch table gained a new session.authorize entry, callable as $.session.authorize(), which mints an auth handle for a session via C_.sessionAuthorize. It joins existing entries like session.cwd and session.model, and related internal code references it for handling unknown auth handles.

+New
Use it now
Useful5 Signal4
System Prompt Notable

New --system-prompt-snapshot CLI/agent option#

A new --system-prompt-snapshot option makes a session record its system prompt once and reuse it on resume.

Details 0 0 Feedback

A new flag, --system-prompt-snapshot <on|off>, is now passed to spawned agent and subagent processes and threaded through session state as systemPromptSnapshot across many call sites. It lets a forked or background session record the system prompt once and reuse it verbatim on resume or subsequent requests, instead of recomputing it live. It defaults to on for the built-in system prompt and off when --system-prompt or --append-system-prompt is passed.

Related

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

+New
Use it now
Useful5 Signal4
Permissions Notable no docs found

New SDK/CLI option inheritPermissionMode#

A new inheritPermissionMode option in the headless entrypoint lets a session take its parent's permission mode.

Details 0 0 Feedback
inheritPermissionMode

A new inheritPermissionMode option is now available among the headless/print entrypoint options, alongside existing ones like addDir and fallbackModel. It appears intended to let a spawned session inherit its parent's permission mode.

Related

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

+New
Use it now
Useful5 Signal4
Telemetry Notable

New enhanced-telemetry beta env vars recognized#

An enhanced-telemetry beta can be opted into with a newly recognized set of env vars.

Details 0 0 Feedback
CLAUDE_CODE_ENHANCED_TELEMETRY_BETA

A set of environment variable names, including CLAUDE_CODE_ENHANCED_TELEMETRY_BETA, is now recognized for opting into an enhanced-telemetry beta.

Related

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

+New
Use it now
Useful5 Signal4
System Prompt Notable no docs found

New env var can force the 'delivering work max' prompt section on#

A new env var forces the delivering-work-max prompt section on instead of relying on heuristics.

Details 0 0 Feedback
CLAUDE_CODE_BISON_CAIRN

The delivering_work_max system-prompt section can now be forced on via a new environment variable, CLAUDE_CODE_BISON_CAIRN, in addition to the prior heuristic checks.

+New
Use it now
Useful5 Signal4
Auth Notable no docs found

New file-descriptor-based secret passing for subprocesses#

Auth tokens can now be handed to subprocesses over file descriptors instead of plaintext environment variables.

Details 0 0 Feedback
CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTORCLAUDE_CODE_API_KEY_FILE_DESCRIPTORCLAUDE_CODE_GATEWAY_TOKEN_FILE_DESCRIPTORCLAUDE_CODE_WEBSOCKET_AUTH_FILE_DESCRIPTOR

New environment variables — CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR, CLAUDE_CODE_GATEWAY_TOKEN_FILE_DESCRIPTOR, CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR, and CLAUDE_CODE_WEBSOCKET_AUTH_FILE_DESCRIPTOR — let auth tokens be passed to subprocesses via file descriptor instead of plaintext environment variables. The list of secret env vars scrubbed from subprocess environments was also expanded.

Related

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

+New
Use it now
Useful5 Signal4
System Prompt Notable no docs found

systemPromptSnapshot option for records the system prompt once per conversation#

A systemPromptSnapshot option freezes the system prompt for a conversation, so mid-session changes wait for compaction.

Details 0 0 Feedback
systemPromptSnapshotappendSystemPrompt

A new systemPromptSnapshot option records a conversation's system prompt once and reuses it verbatim on every later request and resume, instead of re-rendering appendSystemPrompt each launch. When a snapshot exists, mid-session model switches or system-prompt changes only take effect after compaction or a new session.

Related

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

In dev
Nothing to try yet
Useful5 Signal4
Artifacts Notable

Artifact live file "working copy" reads#

Artifact reads can bind a local file as a synced working copy, with refusals when a copy is already bound.

Details 0 0 Feedback
read_file

read_file/read actions for artifacts can now bind a local file to a live artifact document as a synced "working copy." New logic resolves liveFileCopyPathForRead, checks workingCopyLocationRefusal, and can refuse to overwrite an existing bound copy via snapshotOntoWorkingCopyRefusal. Read results can now include a working_copy field and a seq value.

Related

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

In dev
Nothing to try yet
Useful5 Signal4
Artifacts Notable

Artifact publish 'pr_review' composed-review flag#

Artifact publish gained a pr_review flag that renders a composed PR review page from a structured payload.

Details 0 0 Feedback
pr_reviewpayload.json

Artifact publish gained a pr_review boolean parameter for publishing a composed PR review page, built from a structured JSON payload via the bundled review template, gated behind a feature check. The file_path for this flow names the structured payload .json that the artifact-pr-review skill authored.

Related

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

In dev
Nothing to try yet
Useful5 Signal4
Fleetview Notable

Fleetview accepts custom keybindings#

Fleet view now reads a bindings object and passes custom keybindings through to its layout.

Details 0 0 Feedback
bindings

The fleet-view UI now reads a bindings object (from ll()?.bindings) and passes it through as a keybindings prop to the layout, falling back to a default binding set when none is provided. This is groundwork for configurable keybindings in the fleet view.

Related

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

In dev
Nothing to try yet
Useful5 Signal4
Terminal UI Notable

New keybinding for effort-slider session-only setting#

A new EffortSlider keybinding context binds s to applying an effort change for this session only.

Details 0 0 Feedback
effortSlider:thisSessionOnlyEffortSlider

A new keybinding context, EffortSlider, binds s to effortSlider:thisSessionOnly, mirroring the existing modelPicker:thisSessionOnly pattern. This appears to let users apply an effort-level change for just the current session from a new effort slider UI.

In dev
Nothing to try yet
Useful5 Signal4
Skills Notable

New skill-proposal tool prompt#

A new tool prompt has Claude propose skills from recurring procedures in your session, up to three at a time.

Details 0 0 Feedback
SKILL.md

A new tool prompt instructs the model to surface recurring multi-step procedures from the session as skill proposals, a render-only card the user reviews and saves from, capped at 3 proposals per call. A saved proposal must replace the entire SKILL.md rather than apply a partial edit.

Related

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

Improved
You'll notice
Useful4 Signal4
Models

'Fable 5' branding shortened to 'Fable' in usage-limit messages#

Usage-limit text now says Fable limit, and fable-5-1 and mythos-5-1 aliases were added.

Details 0 0 Feedback
fable-5-1mythos-5-1

The seven-day overage-included usage limit label has changed from "Fable 5 limit" to "Fable limit." New model aliases fable-5-1 and mythos-5-1, mapping to claude-fable-5-1 and claude-mythos-5-1, have been added to the model alias table alongside fable-5 and mythos-5.

Related

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

Improved
You'll notice
Useful4 Signal4
Permissions no docs found

Artifact tool split into Comments/Data/Check sub-tools#

Artifact actions are now attributed to three separate tools, ArtifactComments, ArtifactData and ArtifactCheck, in permission rules.

Details 0 0 Feedback
tools:ArtifactCommentstools:ArtifactDatatools:ArtifactCheck

The single Artifact tool permission/telemetry surface has been split into three distinct tool identities: tools:ArtifactComments (comments, reply, resolve, watch, unwatch, status, resume_replies), tools:ArtifactData (read_db, write_db), and tools:ArtifactCheck (verify, preview). Permission rules and telemetry now attribute artifact actions to whichever of these three the action belongs to.

Related

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

Improved
You'll notice
Useful4 Signal4
Updater

Native updater now verifies signed release manifests#

The native updater verifies a signed release manifest before trusting checksums and installing a new binary.

Details 0 0 Feedback

The native binary updater now fetches a manifest.json.raw-sig.json sidecar and verifies an RSASSA-PKCS1-v1_5-SHA512 signature over the manifest against a pinned public key before trusting the checksums and platform info used to download and install a new Claude Code binary. Releases that predate signing can still be accepted in some modes, and enforcement of the check is itself controlled remotely.

Related

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

Improved
You'll notice
Useful4 Signal4
Artifacts no docs found

New artifact-tool actions: version, open, and handler invocation#

Artifact tool output now renders version, open and handler actions including get_handlers, call_handler and run_script.

Feature flag
tengu_cobalt_plinth_damson Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
get_handlerscall_handlerrun_script

The tool-use renderer for the artifacts/canvas tool now handles new action types: version (showing a target url/label), open, and a trio of handler actions, get_handlers, call_handler, and run_script, which delegate to a new handlersToolUseLine renderer. The list action also gained type-filtered display, showing entries of a given type as shared or mine.

Related

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

Improved
You'll notice
Useful4 Signal4
System Prompt

New mid-conversation tool/system-prompt diffing sent to the model#

When a tool description or prompt section changes mid-conversation, Claude is now sent a diff saying the newer version is in effect.

Details 0 0 Feedback

A new sent-prefix ledger, tracked per conversation, compares each outgoing request against what was previously committed to detect a model switch, a declared boundary, or a violation. When a tool description, input_schema, or system-prompt section has changed since it was first sent, it synthesizes a diff block for the model prefaced with: "The following changed since it was first sent in this conversation. The earlier text above stays as sent; where they differ, the current version below is the one in effect."

Related

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

Improved
You'll notice
Useful4 Signal4
Permissions Notable

Policy helper gains 'mid-session arming' capability#

Managed OS-admin settings can now become the policy base mid-session, not only at launch, announcing the tier change.

Details 0 0 Feedback

The policy-helper subsystem, used for managed and remote-armed permission settings, gains mid-session arming: a midSessionArmingEnabled flag plus new state (osAdminArming, decidedOrigin, remoteFailedConfig, releaseLatchWhenTickSettles, readRemotePayload) lets an OS-admin managed-settings source become the policy's "base" after startup rather than only at launch, announcing the tier change when it takes effect. Previously this decision was made once at startup only.

In dev
Nothing to try yet
Useful4 Signal4
Artifacts Notable no docs found

Artifact 'open action' behavior gated behind a new flag, default off#

Whether an artifact auto-opens in a local browser is now behind a new env var, off by default.

Feature flag
tengu_cobalt_plinth_willow Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
CLAUDE_CODE_ARTIFACT_OPEN_ACTION

Artifact "open action" behavior is now controlled by the CLAUDE_CODE_ARTIFACT_OPEN_ACTION env var, falling back to the tengu_cobalt_plinth_willow gate (off by default). This replaces the prior behavior of the same function, which built an internal --computer-use-mcp MCP config, so it's a genuine behavior swap rather than a rename. Surrounding code enumerates browser executable paths (Chrome, Chromium, Edge, Brave), suggesting this governs whether an artifact auto-opens in a local browser.

Related

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

In dev
Nothing to try yet
Useful4 Signal4
Artifacts Notable no docs found

Artifact live-subscribe gains a second, non-websocket "sync" transport#

Live artifact connections can use a new sync transport alongside websockets, with its own keepalive and reconnect logic.

Details 0 0 Feedback
sync_transport

The artifact-watch supervisor that keeps a live connection open on a published artifact for auto-reply/reconnect logic can now open either the old websocket transport or a new sync transport, which has its own URL builder, dedicated ping-frame keepalive, and 404/expiry-based reconnect detection. Telemetry marks these connections with sync_transport: true in the artifact_live_subscribe event. The live-subscription bootstrap logic now distinguishes a lease's transport as live or sync, validates sync leases against stored credentials, and returns a new sync_unavailable outcome when sync can't be established.

Related

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

In dev
Nothing to try yet
Useful4 Signal4
Background Tasks Notable

Background tasks can now be explicitly disabled per session#

Groundwork exists for turning off the background task tool per session, telling the model background tasks are disabled.

Details 0 0 Feedback

New validation logic supports telling the model "Background tasks are disabled in this session." and validates an optional tool_use_id string for background-task control, pointing to a new toggle for disabling the background task tool on a per-session basis.

In dev
Nothing to try yet
Useful4 Signal4
Settings Notable no docs found

Confined-evaluation-child mode skips remote settings fetch entirely#

As a confined evaluation child, Claude Code skips fetching remote settings and uses a harness-written policy snapshot.

Details 0 0 Feedback
CLAUDE_CODE_EVAL_CONFINED

When running as a 'confined evaluation child', Claude Code now skips the network fetch for remote settings entirely and instead serves a harness-written policy snapshot. This path is controlled by the evalPolicySnapshotOnly flag, which is itself gated by the CLAUDE_CODE_EVAL_CONFINED environment variable elsewhere in the code.

Related

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

In dev
Nothing to try yet
Useful4 Signal4
Device Bridge Notable

Device bridge gains an 'emergency switch' mute capability#

The device bridge can be muted at runtime, withholding all but one tool and device announcement.

Details 0 0 Feedback

The device bridge for companion/remote device support can now be muted at runtime via an isMuted check, re-evaluated on a recheck interval. While muted, all tool and device announcements are withheld except a designated one, and a tengu_device_bridge_muted telemetry event fires.

Related

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

In dev
Nothing to try yet
Useful4 Signal4
Tools Notable no docs found

Mid-conversation tool-change surfacing to the model, gated off by default#

Tools added or removed mid-conversation can be surfaced to the model, but the beta capability is gated off by default.

Details 0 0 Feedback
mid_conv_tool_change

New logic lets the assistant see tools added or removed mid-conversation via a fresh system turn re-normalized with surfaceLateToolAdditions, instead of only picking up tool changes at the start of a turn. Message normalization gains a toolChangeFallback path and a blocksEligible flag, but the behavior only activates when the beta capability mid_conv_tool_change is included in the request, which itself requires a Statsig-style gate to pass plus per-model eligibility, so it's gated off by default.

Related

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

In dev
Nothing to try yet
Useful4 Signal4
Terminal UI

New keybinding actions for an Agents view#

Two new keybinding actions for switching view and toggling a pin appear with an Agents context and an effort slider context.

Details 0 0 Feedback
agents:switchViewagents:togglePin

Two new keybinding actions, agents:switchView and agents:togglePin, are now recognized, alongside a new "Agents" UI context and an EffortSlider context.

Related

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

In dev
Nothing to try yet
Useful4 Signal4
Models no docs found

New model alias fable51 added#

A fable51 entry joins the internal model alias list used for resolution and allowlisting.

Details 0 0 Feedback
fable51

The internal model alias list, used for model resolution/allowlisting, gained a new entry fable51 alongside the existing opus48, opus5, and fable5 entries.

Related

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

In dev
Nothing to try yet
Useful4 Signal4
Remote Tool Serving no docs found

New session summary field whileClosed#

Session summaries can carry a whileClosed block describing whether a device is armed and serving while closed.

Details 0 0 Feedback
whileClosed

Session and device summaries can now include a new whileClosed object describing device-serving state: armed, direction, firstUpload, or a closed reason. A companion serves boolean is derived from whether the device is bound and actively serving.

In dev
Nothing to try yet
Useful4 Signal4
Remote Tool Serving

New structured explanations for remote-tool approval lifecycle#

New prose covers remote-tool approval edge cases, from an unresponsive host to a dozen distinct withdrawal reasons.

Details 0 0 Feedback

A new message table (J) generates the user- and model-facing prose for remote-tool approval edge cases: a host asking before tool use, entering plan mode mid-approval, a host going unresponsive during in-flight check-ins, unverified refusals, and withdrawal reasons including no_answer, host_withdrawn, superseded, evicted, tool_withdrawn, host_unbound, host_stopped, stale_answer, record_evicted, replaced_by_retry, and unrecognized.

Related

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

In dev
Nothing to try yet
Useful4 Signal4
System Prompt no docs found

New system-prompt section for reduced delegation on Opus 5#

A new prompt section adds reduced-delegation guidance for Opus-class models, skipped if already cached in memory.

Feature flag
tengu_slate_bittern 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.257: on

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
opus5_reduced_delegation

A new system-prompt section, opus5_reduced_delegation, adds guidance text for Opus-class models. It's skipped if that guidance is already present in a cached memory value.

In dev
Nothing to try yet
Useful4 Signal4
Skills

New system-prompt variants for saving skills describe different delivery mechanisms#

Four alternate Saving skills prompt blocks cover edit-tool, review-card, file-delivery and not-supported-here flows.

Details 0 0 Feedback

Four alternate "Saving skills" system-prompt blocks were added, covering different product surfaces: a direct edit-tool flow, a review-card proposal flow, a file-delivery flow where Claude can't confirm the user actually saved the file, and a "skills can't be created here" fallback that points users to claude.ai settings.

In dev
Nothing to try yet
Useful4 Signal4
Remote Tool Serving Notable no docs found

Periodic check-in/progress polling for long-running remote tool calls#

A new loop pings the remote host while a tool call runs, telling an unbound host apart from an unresponsive one.

Details 0 0 Feedback
progress_checksprogress_interval_msprogress_missesreconcile_ms

A new check-in loop periodically pings a remote host while a tool call is running, using the progress_checks capability with progress_interval_ms, progress_misses, and reconcile_ms settings. It distinguishes an unbound host from a generic host_unresponsive outcome when checks fail.

In dev
Nothing to try yet
Useful4 Signal4
Plugins Notable

Plugin/skill search can include the claude-tag-plugins marketplace#

Under the CCR tag surface, plugin and skill search requests include the claude-tag-plugins marketplace by default.

Details 0 0 Feedback
claude-tag-pluginsCLAUDE_CODE_CCR_SURFACE

When running under the new CCR "tag" surface, plugin and skill search requests now include included_default_marketplaces: ["claude-tag-plugins"], so results can surface plugins from that marketplace by default.

Related

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

In dev
Nothing to try yet
Useful4 Signal4
Remote Control Notable

Remote-control bridge gains an 'onBackgroundTasks' hook#

Remote clients can background a running shell tool by tool_use_id and query or clear background task state.

Details 0 0 Feedback
background_tasksonBackgroundTasks

The remote-control bridge now wires an onBackgroundTasks callback into session setup, alongside existing hooks like onDialogKindsDeclared, so background task state can be reported to remote control/bridge clients. A new background_tasks control_request subtype lets an external caller background a running local shell tool by tool_use_id, and remote clients can query or clear background task state via the task registry.

In dev
Nothing to try yet
Useful4 Signal4
Agents

Shutdown-request auto-approval helper text for agents#

New instructions tell an agent how to approve or refuse a pending shutdown request by tool call rather than plain text.

Details 0 0 Feedback
shutdown_requestrequest_idapprove

New generated instructions tell an agent exactly how to respond to a pending shutdown_request: call a specific tool with a JSON message containing the shutdown's request_id and approve set to true or false. The text notes that a plain-text acknowledgment does not actually shut the process down.

Related

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

·Internal
Under the hood
Useful4 Signal4
Settings

New WIF (Workload Identity Federation) profile-credential path for remote settings#

Remote settings can authenticate with a Workload Identity Federation bearer token when no API key or OAuth token exists.

Details 0 0 Feedback

Remote settings fetching now has a fallback credential path for Workload Identity Federation (WIF): when no API key or user OAuth token is available, it obtains a bearer token via getWIFTokenCache/getWIFCredentials and marks the request with profileBearer: true. A 401 with this credential triggers one forced refresh and retry; if the settings endpoint rejects the refreshed token too, a settingsBearerRejected latch stops further retries with that credential until the next sign-in or restart.

Improved
Use it now
Useful5 Signal3
Slash Commands

/btw command reworked to track conversation history and in-flight questions#

/btw now remembers past exchanges and re-shows the previous answer instead of the usage hint when re-run.

Details 0 0 Feedback
/btw

The /btw command now keeps a history of past exchanges (btwHistory) and detects when a question is still in flight. Re-invoking /btw without a new question shows the prior response, or a fallback notice, rather than repeating the Usage: /btw <your question> prompt. Usage is now tracked via a persisted btwUseCount counter.

Related

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

Improved
Use it now
Useful5 Signal3
Sessions Notable

--background/--bg can now resume a session in place#

Combining --bg with --resume now continues that session in the background under the same ID.

Details 0 0 Feedback
--resume

The --bg/--background CLI flag's help text now documents that combining it with --resume <session-id> continues that session in the background under the same ID, or starts a copy and reports it when the session is already running, rather than only starting a fresh background session.

Related

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

Improved
Use it now
Useful5 Signal3
Sessions

claude attach-style background wake now preserves/queues prompts#

Waking a background session can queue your prompt for delivery, and warns if the wake flags differ from the original ones.

Details 0 0 Feedback

Waking a background session to send it a new prompt now supports queuing that message so it's delivered once the session next starts, rather than requiring the session to be immediately available. Claude Code also warns if the flags passed for the wake don't match the flags the session was originally started with.

+New
Use it now
Useful5 Signal3
Artifacts

New Artifact tool "version" action#

The artifact tool gains a version action that resolves and records an artifact's version, re-checking the approved target first.

Details 0 0 Feedback
version

The artifact tool gains a version action that runs a dedicated version-resolution flow with retry progress reporting and updates the artifact's read-version state afterward; it's rejected if the live-doc module isn't available in the build, and re-validates the approved action and URL still match before running, guarding against a changed target between approval and execution. getToolUseSummary and the auto-classifier describe version as versioning an artifact with nothing uploaded.

Alongside version, a new open action lets Claude show an existing artifact read-only, distinct from list/publish, and is treated as read-only by the classification logic. New get_handlers, call_handler, and run_script actions add server-callable handler support, gated by boolean flags in the tool constructor and an ACTION description clause added to the schema when handlers are enabled; get_handlers is classified read-only, while call_handler/run_script are treated as writes unless a handlers-action-write check says otherwise. These gates are logged in the schema-build telemetry line and folded into the action enum.

Related

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

+New
Use it now
Useful5 Signal3
Settings

New CLI-internal "update_settings" tool for host UIs#

A CLI-internal update_settings tool lets host UIs write settings the way /config does, for now only outputStyle in project local settings.

Details 0 0 Feedback
update_settingsoutputStyle--setting-sources

A new CLI-internal update_settings tool lets host UIs merge settings into a settings file through the CLI's own writer, covering the canonical store, gitignore upkeep, and hardened writes, and live-applies them, mirroring what /config does. For now only the project's local settings file is supported and only the outputStyle key is allowlisted; it requires string values, refuses remote transports, and refuses sessions whose --setting-sources exclude the target file.

Related

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

+New
Use it now
Useful5 Signal3
SDK

New SDK control command: update_settings#

SDK clients can send an update_settings control command, limited to changing outputStyle in local settings.

Details 0 0 Feedback
update_settingsoutputStyle--setting-sources

A new SDK control-protocol handler, update_settings, lets clients update the outputStyle setting only, requiring string values and disallowing deletion. It only works when the localSettings source is enabled for the session (see --setting-sources) and not over a remote transport.

Related

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

+New
Use it now
Useful5 Signal3
SDK

New SDK method: updateSettings#

The SDK query client gains updateSettings(source, settings) for changing settings from code.

Details 0 0 Feedback
updateSettings

The SDK query client gains an updateSettings(source, settings) method, which sends a new update_settings control-protocol subtype and is tracked under a dedicated telemetry span.

Related

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

+New
Use it now
Useful5 Signal3
Agents Notable

New env var to suppress the CFC (co-founder?) prompt#

A new env var lets you or your org suppress the CFC prompt outright.

Details 0 0 Feedback
CLAUDE_CODE_DISABLE_CFC_PROMPT

The CFC prompt's disabled state can now also be controlled with the CLAUDE_CODE_DISABLE_CFC_PROMPT environment variable, giving users and organizations a way to suppress it that doesn't depend on the existing internal check.

Related

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

Improved
Use it now
Useful3 Signal4
Permissions Notable

'bypassPermissions'/'auto' default-permission-mode can now be set from local settings#

The auto and bypassPermissions default permission modes can now be set from local settings, not just project settings.

Details 0 0 Feedback
permissions.defaultModebypassPermissionsauto

Settings-merge logic now allows permissions.defaultMode values of auto and bypassPermissions to be set from either project or local settings, whereas this was previously derived from a schema enum reference. Other default-mode values, such as acceptEdits, remain restricted to project only. This widens where these auto-approve modes can be configured from and is not behind a flag.

Related

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

Fixed
You'll notice
Useful3 Signal4
Permissions

Agent/settings permission-mode 'widening' now blocked with new telemetry#

An agent definition's permissionMode can no longer widen the mode inherited from its parent context.

Details 0 0 Feedback
permissionMode

Permission-mode resolution now detects when an agent's frontmatter permissionMode would widen the effective mode inherited from a parent or agent view, and ignores that widening instead of applying it. This closes a path where a repo-controlled agent definition could loosen permissions beyond what the parent context allowed. The event tengu_agent_frontmatter_mode_widening_carry_ignored is logged whenever this happens.

Improved
You'll notice
Useful3 Signal4
Artifacts

Artifacts can be shared with a chat-channel's Claude (Slack/Teams)#

Artifact read failures now explain when the artifact belongs to another channel's Claude and to add the Slack or Teams channel.

Details 0 0 Feedback

Artifact-read failures now give channel-aware guidance for Slack and Teams: a 403 can report that the artifact is agent_not_added or agent_owned by another channel's Claude, and instructs the user to add the Slack or Teams channel under Share settings instead of sharing with an individual.

Improved
You'll notice
Useful3 Signal4
Models

Automatic migration of claude-fable-5 model alias to fable#

If your model setting says claude-fable-5, startup rewrites it to the fable alias automatically.

Details 0 0 Feedback
claude-fable-5fable

On startup, Claude Code now checks whether userSettings.model is set to claude-fable-5 or claude-fable-5[1m] and automatically rewrites it to fable or fable[1m]. The migration fires telemetry tengu_fable5_to_fable_alias_migration and increments a dedicated failure counter if the rewrite doesn't complete.

Related

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

Improved
You'll notice
Useful3 Signal4
Sessions

Background/continued-in session detection when resuming#

Resuming now detects that your last conversation moved into another session and says whether it can prove it is still running.

Details 0 0 Feedback

When resuming, Claude Code now scans the session's JSONL log for parentUuid markers and a "continued-in" system record to detect whether the most recent conversation moved into another, possibly background or remote, session. If it can prove that other session is still running it says so ("provable"); otherwise, for a session registered from another machine or container, it reports that this session can't tell whether it is still running.

Fixed
You'll notice
Useful3 Signal4
Permissions

New tengu_settings_mode_widening_carry_ignored telemetry for settings-level widening#

Project or local settings can no longer widen the effective permission mode via defaultMode.

Details 0 0 Feedback
permissions.defaultMode

The same widening protection now applies to settings.permissions.defaultMode: if a project or local settings file would widen the effective permission mode, that widening is ignored. This is logged via the new tengu_settings_mode_widening_carry_ignored telemetry event.

Related

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

Removed
You'll notice
Useful3 Signal4
Permissions Notable

Removed plan-mode refusal check from tool permission path#

Tool permission checks no longer short-circuit with a plan-mode refusal and instead continue through the ask rules.

Details 0 0 Feedback

The tool-permission-check function no longer includes the earlier mode === "plan" short-circuit refusal branch (the plan_mode code) that existed in the prior build. Refusal now proceeds through the request-size and ask-rule checks instead.

Improved
You'll notice
Useful3 Signal4
Bash

Shell exec blocked entirely in diskless sessions#

In a diskless session, shell commands now fail immediately with a message rather than spawning a shell.

Details 0 0 Feedback

The shell-exec helper now checks a new diskless-session flag before running any command. If the session is diskless, it throws immediately with a new error code instead of spawning a shell, reporting that shell commands are unavailable in this session and the command was not run.

Related

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

In dev
Nothing to try yet
Useful3 Signal4
Permissions no docs found

Cloud-session credential guard added as a permission source#

A new permission-rule source called the cloud-session credential guard joins the existing rule sources.

Details 0 0 Feedback
hostCredential

A new hostCredential permission-rule source type, labeled "cloud-session credential guard" in UI text, has been added and is handled alongside existing sources like session, toolsNarrowing, and mcpServerPolicy.

Related

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

In dev
Nothing to try yet
Useful3 Signal4
Models no docs found

Fable 5.1 prompt bundle gate#

A fable_5_1_prompt_bundle gate special-cases the fable model family in naming and in forcing thrifty mode.

Details 0 0 Feedback
fable_5_1_prompt_bundle

A new fable_5_1_prompt_bundle gate is used in several places, including model naming/labeling and forcing thrifty_sonic, to special-case the fable model family.

Related

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

In dev
Nothing to try yet
Useful3 Signal4
Settings no docs found

New signed-cache shadow verification (telemetry-only)#

Managed-settings and policy-limits caches are signature-checked against embedded trust roots, but only report telemetry for now.

Details 0 0 Feedback

A new signature-verification path checks managed-settings and policy-limits caches against embedded trust roots, using JWS with an x5c certificate chain and ES256. It computes age, cert-expiry, and chain-validation results, but currently only emits telemetry (tengu_signed_cache_shadow) rather than enforcing anything, as a shadow rollout of cache integrity checking.

In dev
Nothing to try yet
Useful3 Signal4
System Prompt no docs found

Prefix-ledger 'tell the model about changed sites' notice — currently dark#

Prompt assembly can tell the model which prefix sites changed since an earlier render, but the mode is hardcoded off.

Details 0 0 Feedback

Prompt/context assembly now computes which prefix-ledger sites changed since a prior render epoch, with a mode that can either inject a notice about them into the model's context or run shadow-only and just log via tengu_prefix_ledger_notice. The mode-selection function is currently hardcoded to "off", so this notice does not fire in this build.

Related

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

In dev
Nothing to try yet
Useful3 Signal4
Sessions

Transcript rendering gains speaker-label / inbound-label awareness#

Transcript rendering now knows when a message follows a speaker or inbound label, for sender-grouped conversations.

Details 0 0 Feedback

Transcript rendering now threads followsSpeakerLabel and followsInboundLabel props through message rendering, including on rendered user message parts, and the transcript component gained an isFocusedTurnLoading prop. This supports teammate/mailbox-style conversations where messages are grouped under a sender label, adjusting verbosity and spacing based on whether a message immediately follows a speaker or inbound label, including how "Message from X" banners are shown.

A new speaker_label render case was also added to the transcript message renderer, showing a SpeakerLabel component with speaker and timestamp when a plugin registers hs.SpeakerLabel, alongside a new work_segment case.

·Internal
Under the hood
Useful3 Signal4
Auth

CLI entrypoint/token wiring reorganized under a CLAUDE_CODE_REMOTE check#

Reading tokens from file descriptors is now skipped under CLAUDE_CODE_REMOTE, which also affects entrypoint detection.

Details 0 0 Feedback
CLAUDE_CODE_REMOTECLAUDE_CODE_GATEWAY_TOKEN_FILE_DESCRIPTOR

Startup now gates reading of several file-descriptor-based secret sources, the OAuth token FD, gateway token FD (CLAUDE_CODE_GATEWAY_TOKEN_FILE_DESCRIPTOR), API key FD, and websocket auth FD, behind !$e(a.CLAUDE_CODE_REMOTE). "Remote" entrypoint detection now also treats CLAUDE_CODE_REMOTE being set together with a resolved websocket or gateway token as a remote entrypoint.

Related

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

In dev
Under the hood
Useful3 Signal4
Model Catalog

Compiled seed catalog includes Opus 5 / Sonnet 5 placeholders#

The compiled-in seed catalog used before the first fetch lists claude-opus-5, claude-sonnet-5 and claude-haiku-4-5.

Details 0 0 Feedback
claude-opus-5claude-sonnet-5claude-haiku-4-5

The compiled-in seed document used before the first successful published-catalog fetch lists claude-opus-5, claude-sonnet-5, and claude-haiku-4-5 as the model roster.

Related

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

·Internal
Under the hood
Useful3 Signal4
Settings

Eval organization policy snapshots are written for child sandboxes with a merge behavior#

A cached org managed-policy snapshot is written into the eval sandbox so children inherit the remote-managed tier.

Details 0 0 Feedback

A new bf() helper writes a cached organization managed-policy snapshot into the eval sandbox's config directory so that eval subprocesses inherit the remote-managed policy tier. If no cached policy exists yet, it warns instead, and the child sandbox runs without the remote-managed tier.

·Internal
Under the hood
Useful3 Signal4
Auth no docs found

Eval sandbox auth is now handed to child processes via file descriptor or snapshot file instead of env vars directly#

Eval sandbox children get credentials via file descriptor, or a temp snapshot file on Windows, rather than env vars.

Details 0 0 Feedback
CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTORCLAUDE_BG_AUTH_SNAPSHOT_PATH

Eval sandbox subprocesses now receive OAuth and gateway credentials through a new vf() helper instead of directly via environment variables. On non-Windows this uses CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR (or the gateway equivalent); on Windows it writes a snapshot.json under a claude-eval-auth- temp directory and points CLAUDE_BG_AUTH_SNAPSHOT_PATH at it. Stale snapshot directories older than 2 hours are cleaned up automatically on startup.

Related

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

·Internal
Under the hood
Useful3 Signal4
Models

Model effort levels (xhigh/max/regular) now derived from model metadata rather than a hardcoded model-name check#

Which effort levels a model supports now comes from per-model metadata instead of matching model names.

Details 0 0 Feedback
xhighmax

Whether a model supports xhigh_effort, effort, or max_effort is now determined by looking up a per-model effort-level list through a shared helper, instead of matching the model name against a hardcoded string check. Effort tiers are effectively becoming data-driven per model rather than tied to a fixed list of known model names.

Related

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

·Internal
Under the hood
Useful3 Signal4
Model Catalog

Model info schema expanded with effort/capability metadata fields#

The model description schema now carries effort levels, capabilities, family, knowledge cutoff and per-family defaults.

Details 0 0 Feedback
effort_levelsdefault_effortknowledge_cutoff

The model-description schema now includes max_input_tokens, max_output_tokens, effort_levels, default_effort, capabilities, family, knowledge_cutoff, default_for_family, and fast_default_for_family fields, adding richer per-model metadata for effort and capability handling.

Related

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

In dev
Under the hood
Useful3 Signal4
Models

Model-name matching extended for fable-5-1 spelling#

The model family resolver now recognizes fable-5-1 and fable_5_1 spellings as their own target.

Details 0 0 Feedback
fable-5-1fable_5_1

The model family resolver now recognizes model strings containing fable-5-1 or fable_5_1, mapping them to a new zl().fable5 target that is distinct from the existing fable-5 handling.

Related

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

·Internal
Under the hood
Useful3 Signal4
Auth no docs found

New auth taint state 'blocked_unsettled' replacing unconditional pass#

Auth-taint classification can now land on a blocked_unsettled state instead of always passing clean cases through.

Details 0 0 Feedback
blocked_unsettled

The auth-taint classification function now checks a new l4t() gate before allowing the allowed_taints_clean or allowed_untaintable states. If the gate returns false, the state becomes blocked_unsettled instead of being allowed through unconditionally.

·Internal
Under the hood
Useful3 Signal4
Sessions no docs found

New context-injection event types: prefix_delta, fork_briefing, remote_session_change, async_hook_response_batch#

The context renderer handles new synthetic events for prefix deltas, fork briefings and remote session changes.

Details 0 0 Feedback
prefix_deltafork_briefingremote_session_change

The conversation-context renderer now handles several new synthetic event kinds: prefix_delta and fork_briefing, both of which inject meta text content, and remote_session_change, which only renders when the IAe() gate passes. async_hook_response_batch is now explicitly treated as a no-op.

·Internal
Under the hood
Useful3 Signal4
Models

New getAdvisorSetting() accessor added to app-state facade#

Permission and session logic can now read an advisor model setting through a new app-state accessor.

Details 0 0 Feedback
getAdvisorSettingadvisorModel

The internal app-state facade exposed to permission and session logic gains a getAdvisorSetting() accessor (returning advisorModel), alongside existing getters like getMcp and getProactivityLevel.

Related

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

·Internal
Under the hood
Useful3 Signal4
Environment Notable no docs found

New preserved environment variable CLAUDE_CODE_CCR_SURFACE#

CLAUDE_CODE_CCR_SURFACE is now preserved and passed through like the existing entrypoint variables.

Details 0 0 Feedback
CLAUDE_CODE_CCR_SURFACE

A new environment variable, CLAUDE_CODE_CCR_SURFACE, is now preserved and passed through alongside CLAUDE_CODE_ENTRYPOINT and CLAUDE_CODE_IS_COWORK.

Related

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

In dev
Under the hood
Useful3 Signal4
Pricing no docs found

New pricing tier for a model SKU#

A new cost table entry prices a model tier at 10 dollars input and 50 output with quarter-rate cached reads.

Details 0 0 Feedback
tier_10_50_cache_read_0_25

A new cost table entry, tier_10_50_cache_read_0_25, adds pricing for a model tier at $10 input / $50 output per the usual unit, with a $0.25 cached-read rate, joining existing tiers like haiku_35.

·Internal
Under the hood
Useful3 Signal4
Permissions

Permission dialog gains an "ask patience" hold/resume mechanism#

Permission dialogs can be held and resumed until a first reveal point, and a cancelled prompt returns to asking.

Details 0 0 Feedback

The permission-request flow now threads an askPatience object with hold()/resume() calls around showing the dialog, delaying it until a first reveal point (onFirstReveal). An askEnded() check also now routes a cancelled or denied prompt back into an "ask" state instead of failing outright.

·Internal
Under the hood
Useful3 Signal4
Permissions no docs found

Permission mode can now be explicitly marked as inherited#

Dispatch now records whether a permission mode was set explicitly or inherited from the launcher.

Details 0 0 Feedback
permissionModeInheritedinheritPermissionMode

Agent and session dispatch now tracks whether permissionMode came from an explicit override or was inherited. A permissionModeInherited flag is added to the dispatch defaults whenever the mode falls back to inheritPermissionMode.

Related

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

·Internal
Under the hood
Useful3 Signal4
Permissions

Permission-prompt approvals can now be superseded mid-flight ('ended')#

A remote approval prompt superseded mid-flight now resolves to its own ended outcome rather than a withdrawal.

Details 0 0 Feedback

The approval flow for remote tool calls now tracks a patience/lapse duration and can resolve to an 'ended' outcome instead of a decision. This short-circuits to a dedicated result path rather than treating the permission prompt as simply withdrawn or failed, so a prompt that gets superseded mid-flight is handled distinctly.

·Internal
Under the hood
Useful3 Signal4
Directory Sync

Remote session attach now checks whether directory sync exists elsewhere before adopting cwd#

Attaching to a remote session now checks whether directory sync already exists elsewhere before adopting the working directory.

Details 0 0 Feedback

Attaching to a remote or cloud session now runs a dirSyncElsewhereLookup check in parallel with the rest of the reconnection work. Its result is passed through as dirSyncElsewhere in the remote session config, so the client can avoid silently re-establishing directory sync when one already exists elsewhere.

Improved
Use it now
Useful4 Signal3
Artifacts no docs found

Artifact types can now declare a 'used by other Artifacts' relationship, e.g. design systems#

Artifact types can be reused as sub-types such as design systems, applied via the list action with a type or type_url.

Details 0 0 Feedback
action: "list"type_url

The Artifact-type discovery prompt now documents how to list and apply reusable sub-types, such as design systems, to a new Artifact via action:"list" with a type/type_url. It defaults to the org's default type without asking, or asks the user when several such types exist and none is marked default.

Related

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

Improved
Use it now
Useful4 Signal3
Artifacts

Comments/artifact tool converted from macOS-app allowlist to full addon tool#

The comments tool is now a real artifact addon that reads and replies to comment threads instead of matching macOS app bundles.

Details 0 0 Feedback

The comments/artifact tool no longer relies on a hardcoded set of macOS bundle identifiers (Safari, Chrome, Slack, Zoom, Notion, etc.). It's now a proper comments addon tool that can read and reply to comment threads on a published artifact and watch it for republishes, gated behind a gateOpen check.

+New
Use it now
Useful4 Signal3
Artifacts no docs found

New 'list' action for Artifact types catalog#

Claude can list the artifacts made from a given artifact type, scoped to mine, shared or all.

Details 0 0 Feedback
type_url

Claude can now list the Artifacts created from a given Artifact type, identified by name or type_url, scoped to mine, shared, or all. Results include titles, links, descriptions, and default markers, and the tool instructions explicitly warn that this returned data must be treated as untrusted content.

Related

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

+New
Use it now
Useful4 Signal3
Artifacts Notable no docs found

New 'resume automatic replies' capability for artifact watches#

Automatic artifact comment replies stopped with Ctrl+C can be resumed with a watch action taking replies true.

Details 0 0 Feedback
replies: trueaction: "watch"

When an artifact's watch rail is live, the tool prompt now documents a way to resume automatic replies: action: "watch" with replies: true re-enables automatic comment replies that were stopped or paused, for example by Ctrl+C. This only applies when the user explicitly asks for it, and it cannot override a session-wide kill-all-agents auto-reply disarm.

Related

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

Improved
Use it now
Useful4 Signal3
Sessions Notable no docs found

Queued prompt on respawn can now be appended instead of replaced#

A respawned background job can append its new prompt to an already queued one instead of overwriting it.

Details 0 0 Feedback
keepQueuedPrompt

When a background job is respawned with an initial prompt while a prompt is already queued, the new prompt can now be appended (with deduplication) to the existing queued prompt instead of overwriting it, controlled by a new keepQueuedPrompt option.

Improved
You'll notice
Useful4 Signal3
Artifacts

Artifact publish supports multi-file deploys with live paths#

Artifact publishing accepts a set of files rather than single content, and can mark some of them live.

Details 0 0 Feedback

The artifact publish pipeline (di, formerly Mo) now accepts a set of files instead of just single content, and can mark some of them as "live." It tracks a new n_files telemetry field and returns a bornLive set of paths that started live.

+New
You'll notice
Useful4 Signal3
Directory Sync no docs found

Directory sync reports unresolved conflicts on the user's laptop#

Claude is told when your synced checkout holds unresolved merge, rebase or stash conflict markers, and when they clear.

Details 0 0 Feedback

A new conflictsOnLaptop notifier tells Claude when files in the synced checkout hold the user's unresolved merge, rebase, cherry-pick, revert, or stash-pop conflict markers. The notice clears once the user resolves or aborts the operation.

Related

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

Improved
You'll notice
Useful4 Signal3
MCP no docs found

MCP elicitation handling reworked into a stateful class with 'waiting' UI and URL-mode flows#

MCP elicitation gets a distinct waiting dialog with a Skip confirmation action and can be completed by the server.

Details 0 0 Feedback

MCP elicitation handling moved from a single async function into a stateful class that tracks per-URL elicitation flows. It adds a distinct mcp_elicitation_waiting dialog state, shown after accepting a URL-mode elicitation, with a "Skip confirmation" action, and the flow can now be explicitly completed or abandoned via server completion notifications.

Related

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

Improved
You'll notice
Useful4 Signal3
Terminal UI

Status-line narration now skips the first rounds of a turn#

Status-line narration waits a couple of rounds into a turn, then summarizes progress in one sentence.

Details 0 0 Feedback

The status-line narration generator now counts rounds per turn (roundsThisTurn) and only fires once that count exceeds a threshold, instead of firing on every message-length change. This delays the "thinking about..." style status narration until a turn has been running for a couple of rounds. A new subsystem builds a digest of the current turn (user request, recent steps, task list, running tool calls) and asks a model to write a single-sentence terminal status line summarizing progress, logged as [narration] refreshed.

In dev
Nothing to try yet
Useful4 Signal3
Slash Commands

New "/btw" quick-command reopener in main session loop#

The session loop can auto-submit /btw as a quick-capture aside when nothing else is blocking the input.

Details 0 0 Feedback
/btw

The main session loop now wires up a reopener for a /btw slash command tied to session history (btwHistory). When triggered, and no active model turn, ended-by-model state, or local JSX UI is blocking it, it automatically submits /btw via the prompt input, providing a quick-capture/aside command flow.

Related

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

+New
Use it now
Useful5 Signal2
Code Review

/review's --comment flag can post findings to GitLab MRs#

/review --comment can now post its findings as a general note on a GitLab merge request via glab.

Details 0 0 Feedback
/review--post

/review's --comment flag now works against GitLab merge requests: when the target is a GitLab MR, findings are posted as a single general MR note via glab mr note ... -m "<body>", falling back to printing the findings if glab isn't available or the target isn't an MR. The --comment/--post explanation text now branches by target, describing GitHub inline PR comments separately from the GitLab general MR note behavior.

Related

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

+New
Use it now
Useful5 Signal2
Sandbox

Doctor check for stale sandbox mask files on Linux/WSL#

A new doctor check finds stale zero-byte sandbox mask files on Linux and WSL that quietly break don't-ask-again.

Details 0 0 Feedback
/doctor

A new doctor diagnostic scans configured deny-within-allow filesystem paths on Linux/WSL for zero-byte, non-writable leftover mask files from a killed sandboxed session, since these can silently break "don't ask again" persistence. It surfaces a paired issue and fix telling the user to remove the stale file.

Related

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

+New
Use it now
Useful5 Signal2
Settings

New 'Time format' setting in /config#

A new Time format setting in /config controls whether UI clocks use 12-hour, 24-hour, UTC or a custom pattern.

Details 0 0 Feedback
/configtimeFormat24-hour-utc

A new timeFormat setting is available in /config under "Time format," controlling the clock format used for times shown in the UI. Options are auto (default, follows the locale), 12-hour, 24-hour, 24-hour-utc (e.g. 18:05Z), or a strftime pattern. Changing it fires tengu_time_format_setting_changed telemetry.

+New
Use it now
Useful5 Signal2
Settings

New UI clock formatting settings: timeFormat and timeZone#

Two new settings.json fields, timeFormat and timeZone, control how times are rendered in the UI.

Details 0 0 Feedback
timeFormattimeZone24-hour-utc

Two new settings.json fields control how times render in the UI. timeFormat accepts auto, 12-hour, 24-hour, 24-hour-utc, or a strftime-style pattern, and timeZone accepts an IANA zone name, falling back to the system zone if the value isn't recognized.

·Internal
Under the hood
Useful2 Signal4
Model Catalog no docs found

Served model catalog now persists a mask of hidden/confidential model ids#

The served model catalog keeps a masked-ids file recording which model ids stay hidden across sessions.

Details 0 0 Feedback
masked-ids.json

The served model catalog now persists a masked-ids.json file that tracks which model ids should stay hidden across sessions. If this file is found corrupted or in an unrecognized format, it's quarantined and recovered rather than causing a failure.

Improved
Use it now
Useful3 Signal3
Terminal UI

Fleet/background-agent view keybindings made data-driven#

Fleet view shortcuts for group view, external editor and pinning now resolve through named keybinding actions instead of fixed keys.

Details 0 0 Feedback
agents:switchViewchat:externalEditoragents:togglePin

Keyboard shortcuts in the background-agent (fleet) view for switching group view, opening the external editor, and toggling a pin are no longer hardcoded to ctrl+s/ctrl+g/ctrl+t. They now resolve through a keybindings table lookup using named actions: agents:switchView, chat:externalEditor, and agents:togglePin.

Related

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

Improved
You'll notice
Useful3 Signal3
Environment Notable no docs found

New env vars added to the passthrough allowlist#

Three new env vars are preserved and passed through to subprocesses and sandboxes.

Details 0 0 Feedback
CLAUDE_CODE_CCR_SURFACECLAUDE_CODE_MODEL_CATALOG_URLCLAUDE_CODE_ARTIFACT_OPEN_ACTION

CLAUDE_CODE_CCR_SURFACE, CLAUDE_CODE_MODEL_CATALOG_URL, and CLAUDE_CODE_ARTIFACT_OPEN_ACTION are now included in the set of environment variables Claude Code preserves and passes through, for example to subprocesses or sandboxes.

Related

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

In dev
Nothing to try yet
Useful3 Signal3
Context Usage Notable no docs found

Server-assisted tool token counting cache for context analysis, still gated off by default#

Tool token counts for context analysis can come from the server instead of local estimates, but the gate is off.

Feature flag
tengu_peppy_zephyr 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.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

A new run-deduped cache plus a server-backed tool-count path can replace local estimation of tool definition token counts when analyzing context usage, falling back to the previous local estimator on error or when the tengu_peppy_zephyr gate is off. The feature is still gated off by default.

Related

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

+New
Use it now
Useful4 Signal2
Effort Selector Notable

Effort selector adds a 's' hotkey to persist the choice for the session only#

In the effort picker, press s to use a level for this session only instead of saving it as your default.

Details 0 0 Feedback
s

The effort-level picker's confirm flow now supports pressing s to apply a chosen effort level for the current session only, without saving it as the default. Enter still confirms and persists the choice as default, and the picker's help text and hint row now mention the s option.

Related

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

Improved
Use it now
Useful4 Signal2
Context Usage

get_context_usage tool call gains a detail parameter#

get_context_usage takes a detail parameter, where summary answers without extra token-counting API calls.

Details 0 0 Feedback
detailsummaryfull

The get_context_usage tool call now accepts an optional detail parameter of 'summary' or 'full'. 'full' is the default and performs per-category token-count API calls, while 'summary' answers from the last response's usage plus local estimates without extra API calls.

The internal tool.call hooks API, used by plugin- and skill-authored tool invocations, now also accepts an optional consent string, which is injected as a synthetic human-origin message into the session context before the tool call runs.

Improved
You'll notice
Useful2 Signal3
MCP Notable

MCP tools deferred by default (hardcoded)#

MCP tools are now deferred by default unless marked always-load, with the opt-out hardcoded off.

Details 0 0 Feedback

All MCP tools that aren't marked always-load are now deferred by default: the internal opt-out check is hardcoded to return false, so MCP tool metadata loading is deferred unless a tool is otherwise force-included.

Removed
You'll notice
Useful2 Signal3
Hooks Notable

Removed refusal for Anthropic-operated hosts in a hook-related host check#

Hooks are no longer refused when they target an Anthropic-operated host; only private hosts are still blocked.

Details 0 0 Feedback

A check that previously raised a HooksError refusing to let a hook target "an Anthropic-operated host" has been removed, leaving only the private-host refusal in place. This loosens which hosts a hook is allowed to reach.

In dev
Nothing to try yet
Useful2 Signal3
Artifacts Notable no docs found

Artifact live-subscribe gains agentPeer/syncLive eligibility check, off by default#

Artifact live-subscribe now checks agent-peer and sync-live eligibility before connecting, and it is off by default.

Feature flag
tengu_slate_lantern Off by default, switched on for this account

The 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.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
agentPeersyncLive

The boot-time artifact live-subscribe call now computes agentPeer and syncLive flags before treating a connection as agent-peer/sync-live capable. Both flags come from a helper that requires a gate to be on plus two other conditions, et(e)===null and !rnr(e). This capability is off by default.

Related

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

Improved
Use it now
Useful3 Signal2
Artifacts

Artifact comments/watch tool renames its action vocabulary#

Artifact comment actions are respelled: read replaces comments, watch with on false replaces unwatch, and old names now error.

Details 0 0 Feedback
readwatchon:falsereplies:true

Finding fe546477ccfcf6f4

The artifact comments/watch tool now steers users toward a new action vocabulary. Use read instead of comments, watch with on:false instead of unwatch, watch with no url instead of status, and watch with replies:true instead of resume_replies. Using an old action name now produces a validation error explaining the new spelling.

Improved
Use it now
Useful3 Signal2
Artifacts no docs found

Artifact publish supports auto_open: after_first_write#

Starting an artifact from a type can pass auto_open after_first_write so it opens once its data files are filled in.

Details 0 0 Feedback
auto_open: "after_first_write"

When starting a new Artifact from a type, the guidance now recommends passing auto_open: "after_first_write" on the initial type-only publish, so the artifact opens automatically once its data files are filled in.

Related

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

Improved
Use it now
Useful2 Signal2
Compaction Notable

Unknown-model context-window warning message reworded#

The unknown-model context window warning is reworded and now names the env var that restores the old waiting behavior.

Details 0 0 Feedback
CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1

The warning shown when Claude Code doesn't recognize a model and falls back to an assumed context window for auto-compact has been reworded. It now consistently references CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1 as the way to restore the previous wait-for-the-API behavior.

Related

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

·Internal
Under the hood
Useful2 Signal2
Elsewhere Notable no docs found

Renamed/relaunched print-engine-loop flag as 'humble hammock'#

The env var controlling print and engine loop behavior was renamed to CLAUDE_CODE_HUMBLE_HAMMOCK and still defaults to off.

Feature flag
tengu_print_engine_loop 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.257: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
CLAUDE_CODE_HUMBLE_HAMMOCK

The env var and telemetry flag controlling print/engine loop behavior have been renamed from CLAUDE_CODE_PRINT_ENGINE_LOOP/tengu_print_engine_loop to CLAUDE_CODE_HUMBLE_HAMMOCK/tengu_humble_hammock. The setting still defaults to off.

Improved
Use it now
Useful3 Signal1
Hooks no docs found

Hooks API: audio.play's loop option renamed to shouldLoop#

The audio.play hook option loop is renamed shouldLoop, breaking hook code that still passes loop.

Details 0 0 Feedback
shouldLoop

The $.audio.play hook API's loop option has been renamed from loop to shouldLoop, including in its error message. This is a breaking change for any hook code that still passes loop.

Related

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

In dev
Nothing to try yet
Useful1 Signal2
Elsewhere Notable no docs found

New gated experiment: tengu_stellar_drift#

A new capability flag can be forced on with an env var, with no stated effect.

Details 0 0 Feedback
CLAUDE_CODE_STELLAR_DRIFT

A new internal capability flag, forceable via the CLAUDE_CODE_STELLAR_DRIFT env var or gated by an experiment named tengu_stellar_drift, has been added; its behavioral effect isn't documented here.

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.

4 entries

New Featuresopen

+New
You'll notice
Useful3 Signal3
Data Retention

Optional HIPAA history-retention pruning#

HIPAA-configured organizations get an extra retention pass that prunes stale entries from local history files.

Feature flag
tengu_hipaa_history_retention_prune 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.257: on

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
history.jsonl

During the periodic retention sweep, organizations on a HIPAA-flagged configuration now get an additional prune pass that rewrites or deletes stale entries from the local history.jsonl and related history files. Results are tracked via entriesPruned/errors and reported as historyEntriesPruned in tengu_retention_sweep telemetry.

Related

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

+New
You'll notice
Useful3 Signal2
Permissions

New host-credential file protection glob for read denials#

An always-deny rule now stops tools reading Claude's own credential and config files, including backups and swap files.

Details 0 0 Feedback
.claude.jsonCLAUDE_CODE_HOST_CREDS_FILE

A new always-deny rule set, alwaysDenyRules.hostCredential, blocks tools from reading Claude's own credential and config files. It covers .claude.json, its backup variants, key files, resume markers, and the CLAUDE_CODE_HOST_CREDS_FILE path, closing off odd paths, swap files, and backups as read vectors.

Related

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

+New
You'll notice
Useful2 Signal1
Auth

Cloud gateway session-expiry error message added#

An expired cloud gateway session now tells you to run /login to reconnect.

Details 0 0 Feedback
/login

A new error message tells users to run /login to reconnect when a cloud gateway session has expired.

Related

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

+New
You'll notice
Useful2 Signal1
MCP

New MCP connection error messages#

MCP connection failures now say when a server is not approved for the project, pointing you at /mcp, or when the account changed.

Details 0 0 Feedback
/mcp

Two new messages are shown for MCP server connection failures: one tells you a server is "Not approved for this project" and directs you to run /mcp to approve it, and the other reports that the account changed mid-connection.

124 entries

Improvementsopen

Improved
You'll notice
Useful3 Signal3
Group of 2 Remote Control

/config Remote Control setting shows org-policy lock reason#

The Remote Control toggle in /config now shows as locked with a reason when your org policy disables it.

Details 0 0 Feedback
/configdisableRemoteControl

The /config 'Enable Remote Control for all sessions' entry gained a locked variant: when kKt() (checking the managed setting disableRemoteControl) returns a reason, the setting is rendered as type: "managedEnum" with lock: { reason, source: _q() ? "managed" : "policy", writableWhileLocked: ["false"] } and a fixed value of "disabled". The gate controlling whether the setting shows at all changed from a single ch() check to _S() || _q().

The message 'Remote Control is disabled by your organization's policy (managed setting disableRemoteControl).' is now a shared constant reused by both the eligibility check and this new settings-panel lock logic, rather than being computed inline in two places.

Related

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

Improved
You'll notice
Useful3 Signal3
Artifacts

Artifact comments can anchor to a drawn rectangle, not just an element#

A comment drawn as a rectangle now quotes every element it covers, so Claude can tell what this or these refers to.

Details 0 0 Feedback

When a commenter draws a rectangle over part of a page element instead of selecting the whole element, the auto-react system now reads which child elements the rectangle covers and quotes them in page order. This lets Claude resolve what "this" or "these" refers to in the comment, going beyond the previous single-element anchor snippet.

Improved
You'll notice
Useful3 Signal3
Artifacts

Foreign-authored comment threads get a composed fallback reply instead of a flat refusal#

Comment threads from an unexpected author now get a real composed reply instead of a flat refusal.

Details 0 0 Feedback

Comment threads authored by someone other than the expected party ('summon_foreign') no longer always result in a flat publish_refused. The system now attempts to compose a genuine reply-only response as a fallback, unless paused by the foreign_fallback gate, and screens the composed text for hidden codepoints before posting.

Improved
You'll notice
Useful3 Signal3
Hooks

HTTP hooks refuse to send when the sandboxed process's network trust settings diverge from the user's own#

An HTTP hook is refused if Claude Code's proxy, TLS-trust or resolver settings differ from your own environment.

Details 0 0 Feedback

Before sending an HTTP hook, Claude Code now compares its own proxy, TLS-trust, and resolver configuration against the person's actual environment, checking a fixed list of relevant variables. If they diverge, the hook is refused rather than sent through a potentially mismatched network path.

Improved
You'll notice
Useful3 Signal3
Terminal UI

Spinner can show live narration text#

The spinner can show live narration text about the work in progress instead of the usual tip line.

Details 0 0 Feedback

The working-indicator (spinner) can now show a live narration string pulled from state instead of the usual tip or next-task line, whenever the transcript isn't in brief mode. This lets in-progress work surface its own status text next to the spinner.

Improved
You'll notice
Useful3 Signal3
Updater

Auto-updater can skip installing releases that predate signature enforcement#

The updater now stays put rather than installing a release that predates signature enforcement, with a hint to override.

Details 0 0 Feedback
claude install

The update command now handles a skippedUnverifiedRelease case: if the target release predates release-signature enforcement, it prints a warning and stays on the current version, with a hint to run claude install <version> to override explicitly.

Related

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

Improved
You'll notice
Useful3 Signal3
Sessions no docs found

Forked background sessions get an explicit worktree warning injected into transcript#

A forked background session now gets a transcript message warning it never to edit the parent worktree.

Details 0 0 Feedback
keepParent

When spawning a background or forked session with keepParent, a synthetic "fork_briefing" message is now inserted directly into the new session's transcript, not just the system prompt. It warns the forked session never to edit files in the original session's worktree and to create its own instead, referencing the parent's worktreePath and worktreeBranch.

Improved
You'll notice
Useful3 Signal3
Directory Sync

Cloud file sync now detects and syncs files with unresolved merge conflicts#

Files with unresolved merge conflicts now sync as-is with markers intact instead of blocking, and both sides are told.

Details 0 0 Feedback

Cloud file sync now detects files with unresolved merge conflicts by inspecting snapshot.conflicted. When such files exist, sync uploads them as-is with conflict markers intact instead of blocking, and notifies both the user and the cloud session.

Improved
You'll notice
Useful3 Signal3
Directory Sync

Cloud directory-sync now reports upload failures explicitly, not just size-cap holds#

Claude is now told outright when a turn's changes were not uploaded to your machine, not just when a size cap held them.

Details 0 0 Feedback

The cloud directory-sync status tracker gained a notShipped path that tells Claude, and records in a persisted report list, when this turn's changes were not uploaded to the user's local machine at all. This is distinct from the existing "held back by size cap" case, and later reports when uploads resume.

Improved
You'll notice
Useful3 Signal3
Artifacts

Artifact auto-reply hands off edits to local session when a local source path exists#

An artifact comment with no remote edit tool is handed to your local session when a local source file is on record.

Details 0 0 Feedback

When an artifact comment thread is edit-capable and unresolved but no remote-edit tool is available for it, the autoreact pipeline now checks for a locally-recorded source file path via recordedPages.localSourcePath. If one exists, it notifies the user and hands the thread off to be handled by the local Claude session instead of attempting the remote edit/reply pipeline, bypassing the usual pipeline-denial breaker and notice logic.

Improved
You'll notice
Useful3 Signal3
Artifacts

New 'reply_tool_absent' auto-reply outcome/notice#

If the session has no tool that can read or reply to artifact comments, you are now told once and asked to reply on the page.

Details 0 0 Feedback

Artifact-comments auto-reply now detects when the current session has no MCP tool capable of reading or replying to artifact comments, and surfaces a one-time notice under a new reply_tool_absent case: "this session has no tool that can read or reply to artifact comments." Previously this failed silently or posted nothing without explanation; now the user is told to answer on the page themselves.

Improved
You'll notice
Useful3 Signal3
Plugins

SearchPlugins/SearchSkills results now flag which plugins are already enabled#

Plugin and skill search results now mark which plugins are already enabled for this session.

Details 0 0 Feedback
SearchPluginsSearchSkillsListPlugins

Plugin and skill search results (SearchPlugins/SearchSkills) now include an enabled boolean on each result, cross-referenced against the plugins enabled for the current session (or, in a channel session, the plugins the channel has). ListPlugins can now be served directly from that enabled-plugin manifest instead of always calling the list-plugins API.

Related

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

Improved
You'll notice
Useful3 Signal3
Remote Tool Serving

Tool call outputs rewrite absolute paths to relative shorthand#

File paths in remote tool results are rewritten to ./ or ~/ shorthand when they sit under the working or home directory.

Details 0 0 Feedback

When a tool call result carries a file_path matching the session's known working directory or home directory, the remote-tool-call path now rewrites it to a ./ or ~/ relative form before returning or tracking it. This is controlled by a new backfillObservableInput capability on the tool and working_dir/home_dir descriptions on the host.

Related

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

Improved
You'll notice
Useful3 Signal3
Teammates

In-process teammate runner now streams live token-count progress#

A teammate task's token count now updates live as the model streams rather than only when the turn ends.

Details 0 0 Feedback

The in-process teammate runner now tracks incremental token estimates as the model streams, via onStreamTokenEstimate, and updates the task's progress.tokenCount live instead of only after a turn completes.

Related

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

Improved
You'll notice
Useful3 Signal3
Artifacts

Artifact publish gains a 'live document' thumbnail-skip path#

Publishing a live artifact can skip thumbnail extraction, showing a dedicated note when the page declares one.

Feature flag
tengu_cobalt_plinth_campion 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.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
live: true

Publishing an artifact with live: true can now bypass thumbnail extraction entirely. When the page declares thumbnails but is a live document, publishing surfaces a dedicated LIVE_DOC_DECLARED_THUMBNAIL_NOTE message instead of extracting one.

Improved
You'll notice
Useful3 Signal3
Model Catalog

New model-catalog fallback/mapping error message for unrecognized models#

An unrecognized model id now produces an error telling you to update or map it with behavesAs or modelOverrides.

Details 0 0 Feedback
behavesAsmodelOverrides

A new internal helper generates the error shown when a model id isn't described by the current build's model catalog, telling the user to update Claude Code or map the model via behavesAs/modelOverrides. This is part of a reworked served model catalog system that also handles masking, family-spelling verdicts, and behavesAs lookups for resolving models unknown to the client.

Related

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

Improved
You'll notice
Useful3 Signal3
Workflows no docs found

Workflow kill now records a persistent 'kill record'#

Killing a workflow run now saves a kill record of rows, pending items, rules and agents that can be read back afterwards.

Details 0 0 Feedback

Killing a v2 workflow run now writes a persistent kill record into the world state (topic run, killed: true), capturing rows, pending items, rules, and agents at the moment of the kill, retrievable afterward via killRecord(). Previously kill() only retracted the scope and left no persisted record.

Related

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

Improved
You'll notice
Useful3 Signal3
Sessions

Resume-session picker now shows a 'bridge' environment column#

The resume picker can show an environment column marking bridge sessions, when any listed session is one.

Details 0 0 Feedback

The session-resume list can now show an environment-kind column, distinguishing sessions such as bridge sessions, alongside the existing timestamp and title columns. It only renders when at least one listed session has environment_kind equal to bridge.

Improved
You'll notice
Useful3 Signal3
Sessions

Session resume detects if target is already running in background#

Resuming now checks whether that session is already running as a background job and says so instead of reusing its state.

Details 0 0 Feedback

Resuming or continuing a conversation now checks whether that session is already running as a background job before attaching to it. If it's already alive, Claude Code reports that instead of silently reusing its state.

Improved
You'll notice
Useful3 Signal3
Sessions

New CLI messaging when resuming a session that's already running#

Resuming a session that is already running elsewhere starts a copy and points you to claude attach to join the live one.

Details 0 0 Feedback
claude attach

Trying to continue or resume a session id that's already running elsewhere (a background job, another process, or a handle conflict) now starts a copy of it instead of attaching, and prints a note explaining why, pointing to claude attach as the way to join the live session.

Related

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

Improved
You'll notice
Useful3 Signal3
Updater

claude install refuses to auto-switch to pre-signing-enforcement releases#

claude install refuses to switch to a channel version that predates signature enforcement unless you name it exactly.

Details 0 0 Feedback
claude install

When claude install <channel> would resolve to a version that predates release-signature enforcement, the CLI now stops instead of installing it, and tells the user to run claude install <exact version> explicitly if they still want that release.

Related

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

Improved
You'll notice
Useful3 Signal3
Auth

Gateway auth token can now come from a descriptor/snapshot, not just env var#

The gateway token can come from a stored descriptor or snapshot when ANTHROPIC_AUTH_TOKEN is unset, with a clearer warning.

Details 0 0 Feedback
ANTHROPIC_AUTH_TOKEN

The gateway auth check now also accepts a token from a stored gateway descriptor or snapshot when ANTHROPIC_AUTH_TOKEN isn't set. The resulting warning is also more specific, distinguishing a missing base URL from a missing token.

Related

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

Improved
You'll notice
Useful3 Signal3
Permissions

Warning path for local settings tracked in git#

Claude Code now notes whether your .claude/settings.local.json is tracked in git and uses that when resolving permissions.

Details 0 0 Feedback
.claude/settings.local.json

A new helper checks whether the project's local settings file, .claude/settings.local.json, is tracked in the git index, caching the result per working directory. Claude Code now records this per project as localSettingsSeenGitTracked and uses it to decide whether localSettings should also be honored during permission resolution.

Related

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

Improved
You'll notice
Useful3 Signal3
Sessions

/resume gains handling for sessions continued elsewhere#

Sessions that were continued in another session are marked superseded and hidden from the /resume picker.

Details 0 0 Feedback
/resume

Resume-session filtering now checks a continuedInSessionId field, marking sessions that were continued in another session as superseded and filtering them out of the /resume picker; a new bookkeepingOnly flag also supports this.

Related

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

Improved
You'll notice
Useful3 Signal3
Network

Cloud/Cowork session network-egress error message rewritten#

A blocked domain in a cloud session now points to the Allow network egress setting for Cowork on claude.ai.

Details 0 0 Feedback

The error shown when a cloud or Cowork session can't reach an external domain now explains that access is governed by the "Allow network egress" setting for Cowork on claude.ai, not a local allowlist, and tells org admins or individual-plan users how to add the domain.

Related

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

Improved
You'll notice
Useful3 Signal3
Directory Sync

Directory sync failure now surfaces a dedicated in-turn notice#

When sync is refused the turn proceeds with stale files and a notice says fresh ones should arrive on a later turn.

Details 0 0 Feedback

When a directory-sync upload the machine announced can't be waited for because the sync service is refusing the session, the turn now proceeds using stale files instead of stalling, and a dedicated in-turn notice tells the model/user that the up-to-date files are expected to arrive on a later turn.

Improved
You'll notice
Useful3 Signal3
Settings

Managed settings rejection message#

Managed settings that fail an approval check now cause Claude Code to exit rather than apply them.

Details 0 0 Feedback

When managed (enterprise) settings fail an approval check, Claude Code now shows "Managed settings were not approved; exiting without applying them" and exits instead of applying them.

Improved
You'll notice
Useful3 Signal3
Artifacts

WebFetch of Artifacts now asks confirmation before reading content owned by others#

WebFetch now asks before pulling in an artifact owned by someone else, and denies artifacts from another org.

Details 0 0 Feedback
WebFetch

When WebFetch retrieves an artifact URL not already covered by an allow rule, Claude Code now checks artifact ownership. If the artifact belongs to someone else, or ownership can't be confirmed, the user is asked to confirm before the content enters the conversation; artifacts from another org are denied outright per OTHER_ORG_DENY.

Related

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

Improved
You'll notice
Useful3 Signal3
Artifacts

Artifact database write/read tool respects the read-block setting#

Artifact database reads and writes now honor the setting that confines file access to your working directories.

Feature flag
tengu_umber_lattice Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
blockReadsOutsideWorkingDirectories

The artifact database tool's file-backed reads and writes (db_op paths, file_path resolution) now route through the same working-directory checks as other file access, so blockReadsOutsideWorkingDirectories also constrains which local files can be used as data sources or destinations for artifact database operations. The read/write sub-tool is only enabled when its gating check returns true.

Related

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

Improved
You'll notice
Useful3 Signal3
Updater

Retained/staged native binaries re-verified by checksum against signed manifest#

An already-downloaded binary is re-checked against the signed manifest checksum and re-downloaded if it does not match.

Details 0 0 Feedback

Before reusing an already-downloaded native binary, the updater now re-fetches its manifest and compares the binary's sha256 against the manifest's signed checksum, re-downloading it if the checksums don't match. If the manifest can't be authenticated, the checksum comparison is skipped with a warning instead of blocking activation of the retained copy.

Related

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

Improved
You'll notice
Useful3 Signal3
Permissions no docs found

Auto mode gains a new fallback-to-ask reason for first-time outside-directory reads#

In Auto mode, a first read outside your working directories now opens a prompt and asks rather than proceeding.

Details 0 0 Feedback
outside_read_first_prompt

Auto mode tool execution now checks a new condition that, when triggered, opens the session's outside-read prompt dialog and falls back to asking the user instead of proceeding automatically. The decision is tagged with reason outside_read_first_prompt, and the result is marked with offersBlockOutsideReads.

Related

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

Improved
You'll notice
Useful3 Signal3
Artifacts

New confirmation gate for fetching other users' shared artifacts via WebFetch#

WebFetch checks an artifact's share entry and forces an ask, or a denial for another org, before its content enters the conversation.

Details 0 0 Feedback
WebFetch

WebFetch's permission check now dynamically loads a helper to decide whether an artifact fetch needs extra scrutiny before its content is allowed into the conversation. When enabled, it warms or reads the artifact's "share entry" to determine ownership: if the artifact belongs to another user, or ownership can't be confirmed, the request is forced to an ask decision with localDisplayOnly: true; if it belongs to another org, the request is denied outright.

Related

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

Improved
You'll notice
Useful2 Signal3
Teleport

Teleport 'send to cloud' option disabled when Remote Control isn't connected#

Continue this session in the cloud is greyed out with a hint when there is no Remote Control connection.

Details 0 0 Feedback

The Teleport picker's "Continue this session in the cloud" option is now disabled and shows a hint when there's no Remote Control bridge connection, with focus defaulting to "Resume a session from cloud" instead. A new telemetry outcome distinguishes this no-bridge state.

Related

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

Improved
You'll notice
Useful2 Signal3
Models

Model-restricted/consent messages now name the actual model#

Model consent and switch messages now name the actual model instead of hardcoding Fable 5.

Details 0 0 Feedback

The "remote thin client blocked" consent message and other model-switch messages no longer hardcode "Fable 5"; they now interpolate the actual model's display name, so the message is accurate for whichever model triggered it.

Improved
You'll notice
Useful2 Signal3
Settings

New distinct error message for settings locked by managed policy#

Over a remote connection, a setting owned by a trusted policy now says so instead of reporting a generic save failure.

Details 0 0 Feedback

Settings save-failure messages sent over a remote/bridge connection now distinguish a setting locked by a trusted policy from a generic save failure, showing "Couldn't save this setting: a trusted policy owns it (detail withheld on this connection)" instead of the generic message.

Improved
You'll notice
Useful2 Signal3
Directory Sync no docs found

New sync-lane failure reason: org-level direct sync disabled#

Sync failures now say when direct file sync is switched off for your organization, rather than a generic refusal.

Details 0 0 Feedback

Directory sync upload-failure reporting now distinguishes a lane_unavailable failure with cause direct_sync_off, surfaced as "direct file sync is switched off for this organization". This is reported separately from generic sync-service refusal.

Related

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

Improved
You'll notice
Useful2 Signal3
Permissions no docs found

New 'approval_no_longer_covers' denial code#

If a session rule no longer covers a call after approval, it is refused with a distinct approval_no_longer_covers code.

Details 0 0 Feedback
approval_no_longer_covers

If a session-rule re-check after an ask-first approval no longer matches the previously-granted rule, the call is now refused with a distinct approval_no_longer_covers error code and message instead of the generic denied-by-session-rule path.

Improved
You'll notice
Useful2 Signal3
Models

Fable dialog copy dropped the "5" version suffix#

Usage-credit dialog copy now says Fable rather than Fable 5.

Details 0 0 Feedback

Dialog copy that previously read "Fable 5 now uses usage credits" and "You've reached your Fable 5 limit" now reads "Fable" without the "5" suffix, via the new modelName variable.

Improved
You'll notice
Useful2 Signal3
Models

New notice text for models excluded from the offered set#

A model the catalog knows about but does not offer now shows Update Claude Code to use this model.

Details 0 0 Feedback

A new notice, "Update Claude Code to use this model", is shown when a model is recognized by the catalog lookup but is not currently offered.

Improved
You'll notice
Useful2 Signal3
Permissions

Bash tool auto-allowlisting now propagates through 'family parent' tool names#

A tool is auto-approved when its family parent is already allowed, spreading trust across tool families.

Details 0 0 Feedback

When computing auto-approved tools, a tool whose familyParentToolName is already allowed is now added to the allowed set automatically. This expands implicit trust across tool families instead of requiring each family member to be separately allowed.

Improved
You'll notice
Useful2 Signal3
MCP

MCP late tool-addition rejections now sticky-reject a beta until /clear or /compact#

When an MCP server rejects a late tool addition, the beta stays rejected until you run /clear or /compact.

Details 0 0 Feedback
/clear/compact

When an MCP server rejects a tool addition with header_rejected, block_type_unknown, or model_unsupported, Claude Code now logs a warning, falls back to the ToolSearch announcement path, and sticky-rejects the corresponding beta for the rest of the session until /clear or /compact, rather than retrying it repeatedly.

Related

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

Improved
You'll notice
Useful2 Signal3
Compaction

Compaction refusal error now names the actual fallback model instead of hardcoding "Fable 5"#

The compaction-unavailable error now names the actual fallback model instead of always saying Fable 5.

Details 0 0 Feedback

When compaction is unavailable because the model policy only allows a credit-gated model, the error message now names the actual fallback model instead of always saying "Fable 5".

Related

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

Improved
You'll notice
Useful2 Signal3
MCP no docs found

New MCP connector-declaration error for locally-configured servers#

Naming a locally-configured MCP server where a claude.ai connector is expected now gives a distinct host_unavailable error.

Details 0 0 Feedback
host_unavailable

Publishing or declaring capabilities now surfaces a distinct host_unavailable error when a name refers to a locally-configured MCP server rather than a claude.ai connector. The error explains that host-configured servers aren't available in that session and points to using the connector's display name instead, or clearing the mcp capability.

Related

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

Improved
You'll notice
Useful2 Signal3
Remote Tool Serving

More granular refusal reasons for remote/cross-machine tool calls#

Refused cross-machine tool calls now explain why: stale, queue full, rate limited, duplicate, withdrawn or result lost.

Details 0 0 Feedback

The refusal-reason map for remote, cross-machine tool calls gained several new cases beyond the prior generic ones: stale, queue_full, rate_limited, duplicate_call, withdrawn, and result_lost, each with a human-readable explanation (for example queue_full reports "that machine was at one of its capacity limits"). These surface when a call to another machine in a session is refused.

Related

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

Improved
You'll notice
Useful2 Signal3
Remote Tool Serving

New timeout message for cross-agent/remote calls that may still be running#

A timed-out cross-machine call now says whether it was withdrawn or may still be running, and to check before retrying.

Details 0 0 Feedback

Timeouts on cross-agent or remote calls now produce a message distinguishing whether the call was withdrawn or may still be running remotely, advising you to check for effects before repeating the command.

Related

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

Improved
You'll notice
Useful2 Signal3
Artifacts

New 'db read failed' message for artifact reads when org network egress is off#

With org network access off, artifact data reads now explain the session can only read artifacts it published itself.

Details 0 0 Feedback

A new "db read failed" error message clarifies that when an organization's cloud network access is turned off, a session can only read data of artifacts it published itself, and instructs callers not to retry.

Improved
You'll notice
Useful2 Signal3
Models

Model-switch-disabled responses can now distinguish 'not offered' from 'disabled by org'#

A refused model switch now distinguishes a model that simply is not offered from one disabled by org policy.

Details 0 0 Feedback

Model-switch rejections now check a notOffered flag to tell apart two cases: a model that simply isn't offered versus one disabled by org policy. The former now returns a distinct not_offered reason and telemetry event, so users get a more accurate explanation for why the switch didn't happen.

Improved
You'll notice
Useful2 Signal3
Artifacts no docs found

Artifact tool: new 'sync_unavailable' error message#

An unavailable live artifact connection now has its own try-again-shortly message, distinct from a websocket open error.

Details 0 0 Feedback
sync_unavailable

The artifact tool now has a dedicated error message, "The live connection to the artifact is not available right now. Try again shortly," for when its live connection can't currently be established, distinct from the existing ws_open_error message.

Related

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

Improved
You'll notice
Useful2 Signal3
Remote Tool Serving

New tool-permission/session-denial reasons added#

Tool-call denials now include queue full, rate limited, duplicate call, withdrawn and result lost as their own reasons.

Details 0 0 Feedback

The set of recognized tool-call denial/failure reasons has been expanded with queue_full, rate_limited, duplicate_call, withdrawn, and result_lost (in addition to stale calls), giving more specific error reporting instead of falling back to a generic unrecognized reason.

Related

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

Improved
You'll notice
Useful2 Signal3
Artifacts

New error match for a live-editing budget limit#

An exceeded live-editing budget is now recognized as its own error case.

Details 0 0 Feedback

Error text matching "exceeds the live-editing budget" is now specifically recognized, for a live-editing operation that has a budget or limit.

Improved
You'll notice
Useful2 Signal3
Compaction

Compaction failure message now names the actual restricted model#

The compaction model-substitution failure now names the actual restricted model instead of Fable 5.

Details 0 0 Feedback

The forced-model-substitution failure message shown during compaction now names the actual restricted model instead of a hardcoded "Fable 5", while a secondary display path keeps a generic fallback message.

Related

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

Improved
You'll notice
Useful2 Signal3
Artifacts

Artifact activation notice references publish-from-source workflow#

The artifact activation notice now says the session republishes from its source path, so changes belong there.

Details 0 0 Feedback

When Claude is activated on an artifact comment thread, the generated notice now explains that the session publishes the artifact from its source path, so any comment-requested change belongs in that source rather than the served copy.

Improved
You'll notice
Useful2 Signal3
Remote Control

Remote sessions can reinstate redelivered permission/dialog requests#

A redelivered permission or dialog request is re-armed when it matches the one originally shown, instead of being dropped.

Details 0 0 Feedback

RemoteSessionManager gains a rearmRedelivered path: when a can_use_tool or request_user_dialog control request is redelivered after being retired, it checks whether the redelivered request matches the request originally shown under that id, and if so re-arms it instead of dropping it. Mismatches are flagged with telemetry rather than being silently kept.

Improved
You'll notice
Useful2 Signal3
Artifacts

Artifact gateway now distinguishes an org network-policy refusal from other relay failures#

An org network-policy refusal from the artifact gateway is now reported clearly instead of as a generic upstream failure.

Details 0 0 Feedback

When the artifact/session gateway responds with a 403 and a specific network-policy-denied body, the client now recognizes it as a distinct case rather than a generic upstream failure: telemetry records the relay_policy_refused outcome, the result carries gatewayPolicy: "network-off", and the user sees a clearer message explaining that organization network policy denies artifact storage reads for this session.

Improved
You'll notice
Useful2 Signal3
Artifacts no docs found

New credential-rejection error path: ccr_credential_refused#

A relay or cloud credential rejection on artifact requests now surfaces as its own error code.

Details 0 0 Feedback
ccr_credential_refusedcloud_unavailable

Artifact and frame requests now recognize a distinct 403 rejection reason coming from a Claude Code Relay or cloud credential check, surfaced as error code cloud_unavailable/ccr_credential_refused instead of a generic failure.

Improved
You'll notice
Useful2 Signal3
Models

New fallback message when org's pinned default model is unavailable in this build#

If your org's pinned default model is missing from this build, the restart notice now says the standard default applies.

Details 0 0 Feedback

When an organization's pinned default model isn't available in the current build, a new "standard" case in the model-pin restart notice now shows: "Your organization's default model isn't available in this build, so the standard default (model) applies on restart," distinct from the existing "org" case message.

Improved
You'll notice
Useful3 Signal2
MCP

MCP control-channel operations gate on control-channel-safe checks before enable/auth#

Enabling or authenticating an MCP server now says whether it is managed, disabled or unapproved, with the step to take.

Details 0 0 Feedback
mcp_toggle/mcp

mcp_toggle (when enabling a server) and mcp_authenticate now run a shared block-reason check that can return managed-policy, disabled, or unapproved, each with its own instructive message, replacing the old generic "blocked by enterprise managed policy" catch-all. A disabled server now instructs you to run mcp_toggle first, and an unapproved server instructs you to approve it in /mcp first.

Related

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

Improved
You'll notice
Useful3 Signal2
Permissions no docs found

readBlockFence carve-out for user config directories#

With outside reads blocked, your own CLAUDE.md and the ~/.claude skills, plugins, rules, agents and commands trees stay readable.

Details 0 0 Feedback
readBlockFence

When the new blockOutsideReads/readBlockFence option is active, reads of the user's own CLAUDE.md and the ~/.claude skills, plugins, rules, agents, and commands trees are still allowed, even though other reads outside the working directory are blocked.

Improved
You'll notice
Useful3 Signal2
Settings no docs found

Configurable timestamp formatting presets, including 24-hour UTC#

Timestamps can follow a configurable pattern or preset, including a 24-hour UTC form with a Z suffix.

Details 0 0 Feedback
24-hour-utc

Timestamp formatting now supports a configurable pattern or preset instead of a single fixed format, including a new 24-hour-utc preset that appends a literal Z suffix.

Improved
You'll notice
Useful3 Signal2
Worktrees

Worktree git-isolation guard now analyzes complex shell trees, not just simple commands#

The worktree git guard now parses complex shell commands instead of refusing them all, only refusing what it cannot verify.

Details 0 0 Feedback

The worktree git-isolation guard, which blocks git commands from escaping an isolated worktree, no longer refuses every non-simple shell command outright. It now parses complex commands (subshells, pipes, etc.) into an AST and only refuses when the command is unparseable, contains an error node, or a regex flags the git invocation as too complex to verify; otherwise it walks the parsed tree looking for actual worktree-escaping redirection.

Related

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

Improved
You'll notice
Useful3 Signal2
Working Directories

/add-dir now explains why an already-accessible directory wasn't newly loaded#

/add-dir now explains why an already-accessible directory was not loaded instead of quietly doing nothing.

Details 0 0 Feedback
/add-dir

/add-dir now explains why a directory that's already accessible wasn't (re)loaded, via a new onAlreadyAccessible handler, instead of silently no-opping. This covers cases like the path not resolving to a real location, a symlink leading outside the working directory, or skills being disabled for the session (e.g. "skills, commands, and agents from additional directories are disabled in this session, so nothing was loaded.").

Related

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

Improved
You'll notice
Useful2 Signal2
Tools

Newly surfaced deferred tools get their own announcement message#

Tools that just became usable mid-session are announced as ready rather than told to load their schemas first.

Details 0 0 Feedback

When deferred tools are newly surfaced mid-session (via surfacedToolNames) without new schema lines being added, the system prompt now shows a plain "The following tools just became available and are ready to use" message, instead of the schema-loading instructions previously given for all newly added tools.

Improved
You'll notice
Useful2 Signal2
Hooks no docs found

Hook execution now distinguishes 'did not run' from other failures#

Hook results now say specifically when the hook's process never ran, separate from a bad exit code or invalid JSON.

Details 0 0 Feedback

Hook execution results now record a distinct hook_did_not_run failure reason, with an explicit stderr-inclusive message, when a PreToolUse or other hook's script process never actually ran. This is separate from a generic nonzero exit code or JSON-validation failure, making it clearer why a hook had no effect.

Improved
You'll notice
Useful2 Signal2
Artifacts

Artifact auto-reply dedup message replaces the old clipboard-lock refusal text#

When an auto-reply is already in a thread, Claude is now told not to duplicate it and to resolve the thread instead.

Details 0 0 Feedback

The artifact auto-reply dedup function no longer explains that clipboard access is unavailable while background app-locks are held. It now tells Claude that an auto-posted reply is already present in the thread, instructs it not to post a duplicate, and to resolve the thread instead.

Improved
You'll notice
Useful2 Signal2
MCP

Much larger list of environment variables scrubbed from MCP config expansion#

Many more credential-like variables, including proxy and registry tokens, are blanked when expanding MCP config references.

Details 0 0 Feedback
HTTPS_PROXY

The list of credential/secret-like environment variables blanked when expanding ${VAR} references in MCP server configs has grown substantially, covering OAuth refresh tokens, proxy settings (HTTPS_PROXY, HTTP_PROXY, ALL_PROXY), package registry tokens (NPM_TOKEN, CARGO_REGISTRY_TOKEN, PYPI_TOKEN, TWINE_PASSWORD, CODEARTIFACT_AUTH_TOKEN), pip/uv index URLs, Go proxy vars, and cloud/identity tokens. A warning is now logged whenever such a variable would have been forwarded to a remote server.

Related

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

Improved
You'll notice
Useful2 Signal2
Models

"High demand" model-overload message generalized#

The high-demand overload notice now names whichever model is actually overloaded rather than a fixed pair.

Details 0 0 Feedback

The "high demand" overload message is no longer hardcoded to specific models. A single component now looks up the current model's display name at render time, so "We are experiencing high demand for <model>" adapts to whichever model is actually overloaded instead of being limited to Opus 4 and Fable 5.

Improved
You'll notice
Useful2 Signal2
Models

Model picker now displays the current model name in its prompt#

The model picker can now show the current model's name in its prompt.

Details 0 0 Feedback

The model picker component now receives a modelName prop computed from the current model, so the current model's name can be shown in the picker's prompt, presumably when confirming a model switch consent.

Improved
Nothing to try yet
Useful2 Signal2
Artifacts

Artifact egress-blocked guidance message reworked with a new branch#

The message about a network allowlist blocking artifact hosts gains a shorter alternative behind a new check.

Details 0 0 Feedback

The guidance message shown when an environment's network allowlist blocks artifact content hosts now has an alternate, shorter message path in addition to the existing detailed instructions, gated by a new check.

Related

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

Improved
You'll notice
Useful2 Signal2
MCP

MCP project-approval message added for control-channel auth/enable#

SDK and control-channel callers are now told an MCP server must be approved in /mcp before it can be enabled.

Details 0 0 Feedback
/mcp

SDK and control-channel callers now get a message stating that an MCP server must be approved in /mcp before it can be enabled or authenticated, filling a gap where previously only the managed-policy block existed.

Improved
You'll notice
Useful2 Signal2
Directory Sync

Sync-blocking message now covers more Git operations#

The sync-blocked warning now also covers cherry-pick, revert and stash pop, telling you to resolve or abort.

Details 0 0 Feedback

The warning shown when a repo can't be captured due to an in-progress Git operation now covers cherry-pick, revert, and stash pop in addition to merge and rebase, and tells the user to resolve or abort that operation.

Related

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

Improved
You'll notice
Useful2 Signal2
MCP

MCP OAuth now distinguishes project-level approval denial#

MCP auth over the remote bridge now reports missing project approval separately from a managed-policy block.

Details 0 0 Feedback

MCP server authentication over the remote bridge now returns a distinct refusal reason when a server lacks project-level approval, separate from the existing managed-policy block message.

Related

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

Improved
You'll notice
Useful2 Signal2
Directory Sync

Directory sync resumption message#

Once failed uploads go through again, Claude is told the earlier unshipped changes made it in.

Details 0 0 Feedback

When previously failed uploads start going through again, the directory-sync tracker now surfaces a message to Claude noting that the earlier unshipped changes were included in the latest successful upload.

Improved
You'll notice
Useful2 Signal2
Network

SSRF/metadata-endpoint protection for outbound requests#

Outbound requests to cloud metadata hostnames and private, link-local or loopback ranges are now blocked.

Details 0 0 Feedback

New IP and hostname classification logic recognizes cloud metadata hostnames, including metadata.google.internal and instance-data endpoints, along with private, link-local, loopback, NAT64, and 6to4 IPv4-mapped IPv6 ranges, as unsafe destinations. This is used to block outbound requests to cloud metadata services and internal addresses.

Related

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

Improved
You'll notice
Useful2 Signal2
Hooks

Async hook responses batched in transcript when many fire together#

Many async hook responses arriving at once now collapse into one batched transcript entry with per-event counts.

Details 0 0 Feedback

When multiple async_hook_response transcript attachments arrive together, they're now collapsed into a single async_hook_response_batch entry summarizing per-event counts, instead of appearing individually in the transcript.

Improved
You'll notice
Useful2 Signal2
MCP

MCP managed-policy blocking now carries a specific reason instead of a generic error#

A server blocked by managed policy now records why, such as policy mismatch or scope not allowed, instead of one error.

Details 0 0 Feedback

When an MCP server is blocked or disabled by managed policy, the failed-client state now carries a specific block reason instead of one generic error, distinguishing cases like policy-mismatch vs. scope-not-allowed vs. other managed-policy reasons so the UI and telemetry can show why a server was blocked.

Improved
You'll notice
Useful2 Signal2
Artifacts

Cross-tool 'wrong tool' redirect message for artifact actions#

Calling an action that belongs to a different artifact tool now returns which tool and action to use instead.

Details 0 0 Feedback

If a model calls an action that actually belongs to a different, related artifact tool, such as 'get'/'list'/'query' style actions, the response now tells it which tool and action to use instead, including whether that tool needs to be loaded first.

Improved
You'll notice
Useful2 Signal2
Permissions

New deny path for code piped via stdin/heredoc under read-block mode#

With read blocking on, bash commands piping code in through here-docs or later pipe stages are refused outright.

Details 0 0 Feedback

Bash commands that pipe code via stdin, such as here-docs (<<<, <<) or piped commands after the first, are now refused outright when the read-block setting is active, since their stdin content cannot be statically checked against the working-directory read restriction.

Improved
You'll notice
Useful2 Signal2
Models

Fable overage/consent dialog generalized to a configurable model name#

The usage-credits consent dialog now takes a model name instead of hardcoding Fable 5 throughout.

Details 0 0 Feedback

The usage-credits consent dialog shown when hitting rate limits or needing to buy credits now takes a modelName prop, defaulting to "Fable", instead of hardcoding "Fable 5" throughout, and its title and limit copy substitute the model name dynamically. The mid-conversation consent prompt component now also receives modelName and a wouldTakeAnswer flag, where previously it only took an accepts flag.

Improved
You'll notice
Useful2 Signal2
Skills no docs found

add_directory now reloads skills automatically#

add_directory now always reloads skills after staging the new directory.

Details 0 0 Feedback
add_directory

The add_directory tool now unconditionally reloads skills after staging a new directory, matching behavior previously available only for register_repo_root when reload was explicitly requested.

Related

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

Improved
You'll notice
Useful2 Signal2
MCP

Tool-not-available error message covers disconnected MCP-provided tools#

A tool whose MCP server disconnected now tells the model to continue without it and that it will work again on reconnect.

Details 0 0 Feedback

When a tool is still declared for the conversation but its provider (for example an MCP server) has disconnected, the tool-not-available error now returns a distinct message telling the model the tool can't run right now, to continue without it, and that it will work again if it reconnects, instead of the generic unavailability message.

Improved
You'll notice
Useful2 Signal2
Updater

New update-download failure classifications: signature verification and checksum mismatch#

Update download failures now classify signature-verification and checksum mismatches as their own categories.

Details 0 0 Feedback

The updater's error classifier now checks for signature-verification failures and checksum mismatches as their own categories before falling back to the generic string-matching heuristics, rather than lumping checksum errors into a generic "Checksum mismatch" string search.

Related

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

Improved
You'll notice
Useful2 Signal2
Sessions

New restart-failure message when the background service itself may be restarting#

Failing to stop an unresponsive background session now distinguishes the case where the background service is restarting.

Details 0 0 Feedback

A second failure message has been added for when Claude Code can't stop an unresponsive background session and offers to retry, distinguishing a general failure from the case where the background service itself may be restarting.

Improved
You'll notice
Useful2 Signal2
Agent Proxy

Agent-proxy startup error message rewritten to describe per-tunnel retry#

The agent-proxy unreachable message now explains that each tunneled CONNECT gets one dial attempt and 502s until one lands.

Details 0 0 Feedback

The message shown when the hosted agent-proxy is unreachable at startup has been rewritten: it now explains that each tunneled CONNECT gets one dial attempt and returns 502 until one reaches upstream, replacing the previous wording that all traffic 502s until a full relay restart.

Related

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

Improved
You'll notice
Useful2 Signal2
Directory Sync

More specific git snapshot-refusal messages#

Git snapshot refusals now say specifically whether conflicts are unresolved, an operation is in progress, or the branch has no commit.

Details 0 0 Feedback

Git snapshot-refusal errors are now more specific. Instead of one generic message for any non-busy refusal, you'll see "conflicts are unresolved here" for an unmerged index, "a git operation is in progress here" for a mid-operation state, and a new "this branch has no commit yet" message for an unborn branch.

Improved
You'll notice
Useful2 Signal2
Permissions

Enforcement path for the new read-block setting#

With read blocking on, an outside-directory read now throws its own dedicated error rather than a generic denial.

Details 0 0 Feedback

With the new read-block setting enabled, attempts to read a path outside the working directories now throw a distinct, dedicated error instead of falling through to the general permission-denied path.

Improved
You'll notice
Useful2 Signal2
Hooks

Expanded env-var sanitization list for spawned subprocesses/hooks#

More dynamic-linker and module-path variables are stripped before spawning hooks and git operations.

Details 0 0 Feedback

The list of environment variables stripped before spawning subprocesses such as hooks and git operations has grown to include more dynamic-linker and locale/module-path variables, including DEVELOPER_DIR, GIT_TEXTDOMAINDIR, GCONV_PATH, NLSPATH, PSMODULEPATH, and versioned DYLD variables like DYLD_VERSIONED_LIBRARY_PATH, closing off more injection vectors.

Improved
You'll notice
Useful2 Signal2
Working Directories

Working directories: network paths explicitly rejected with guidance#

Adding a network path as a working directory now errors with guidance, suggesting a mapped drive letter on Windows.

Details 0 0 Feedback
--add-dir

Adding a network path as a working directory now surfaces a dedicated error explaining that network paths can't be used this way. On Windows, the error suggests mapping the share to a drive letter and using --add-dir instead.

Related

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

Improved
You'll notice
Useful2 Signal2
Windows no docs found

PowerShell dangerous-command detection swapped from browsers to file/network cmdlets#

PowerShell dangerous-command detection now watches file and network cmdlets instead of browser executable names.

Details 0 0 Feedback
invoke-webrequestcopy-item

The set of PowerShell strings used for dangerous-command detection changed from browser executable names (chrome.exe, msedge.exe, firefox.exe, etc.) to file and network cmdlets (copy-item, move-item, compress-archive, expand-archive, invoke-webrequest, invoke-restmethod, new-item).

Related

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

Improved
You'll notice
Useful2 Signal2
Tools

Deferred/lazy tool schemas: new discovery hint text#

New hint text explains that deferred tools have no schema yet and must be fetched before they can be called.

Details 0 0 Feedback
InputValidationError

New hint text explains deferred/lazy tool schemas: tools listed but not yet loaded have schemas that are NOT available, and calling them directly fails with InputValidationError. Their schemas must be requested via a discovery tool first, distinguishing them from tools that just became available and are ready to use immediately.

Related

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

Improved
You'll notice
Useful2 Signal2
Git Integration

git config allowlist gains push.negotiate; auto-configured for commits#

push.negotiate is now a trusted git config key and is set automatically alongside the gpgsign settings.

Details 0 0 Feedback
push.negotiatecommit.gpgsigntag.gpgsign

push.negotiate is now included in the set of git config keys Claude Code is allowed to read and trust. It's also one of the values Claude now sets automatically, alongside commit.gpgsign and tag.gpgsign, when configuring git for signed commits.

Improved
You'll notice
Useful2 Signal2
Directory Sync

Directory sync: new 'repository_left' clear outcome#

Sync teardown now distinguishes leaving a repository from a plain clear, and reports when nothing was moved.

Details 0 0 Feedback

Directory sync's worker-cleared telemetry and notifications now distinguish a repository_left outcome from the plain cleared outcome, and report a new not_cleared kind when nothing was actually moved. This gives users more accurate messaging when directory sync tears down.

Improved
You'll notice
Useful2 Signal2
MCP

MCP policy predicates warn when matching against credential variables#

An MCP policy rule referencing a blanked credential variable now logs a warning that it cannot match a literal value.

Details 0 0 Feedback

When an MCP policy predicate (an allow/deny rule) references an environment variable that's treated as a credential and blanked out for matching purposes, Claude Code now logs a warning explaining that the rule can't match a config which spells the value out literally.

Improved
You'll notice
Useful2 Signal2
Permissions

Bash permission checks extended to input redirections#

Bash input redirections are now permission-checked like other reads, and can produce deny or ask outcomes.

Details 0 0 Feedback

Bash command permission checks now evaluate < input redirections the same way they evaluate output redirections and other read targets. Reads via shell input redirection can now produce deny or ask outcomes, including manual-approval prompts when the redirected file depends on glob expansion or a directory change within the same command, not just writes.

Improved
You'll notice
Useful2 Signal2
Artifacts

Artifact comments: retryable network/relay errors now flagged explicitly#

Fetching artifact comments now flags retryable network and 429/5xx failures and honors a Retry-After header.

Details 0 0 Feedback
Retry-After

Fetching artifact comments now distinguishes retryable failures, such as network errors, HTTP 429/5xx, or relay-unavailable responses with certain statuses, from other failures via an explicit retryable flag, and honors a Retry-After header when present, instead of returning a generic failure uniformly.

Related

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

Improved
You'll notice
Useful2 Signal2
Background Tasks

Background tasks now force-killed at print-mode wait ceiling, not just shells#

Print-mode teardown now force-kills other background task types at the wait ceiling, not just lingering shells.

Details 0 0 Feedback

Print-mode wind-down teardown previously force-killed only lingering background shells and mid-delivery observers after a grace period. It now also force-kills other running background task types, such as local_agent, at the wait ceiling when enabled.

Improved
You'll notice
Useful2 Signal2
Artifacts

Artifact-comments auto-react adds retry-on-read-failure with backoff#

Artifact comment reads now retry with backoff on retryable errors instead of giving up at the first failure.

Details 0 0 Feedback

The artifact-comments auto-react scanner now retries reading comment threads a bounded number of times with backoff when it hits a retryable error, instead of giving up on the first failure. Telemetry records read_retry_cleared and read_retry_gave_up, each with attempt counts.

Improved
You'll notice
Useful2 Signal2
Artifacts

Auto-reply now has a distinct path for threads whose edit grant belongs to another user#

A thread whose edit grant belongs to another user now gets an acknowledgement saying the artifact was not changed.

Details 0 0 Feedback

Auto-reply now recognizes a distinct summon_foreign case for threads whose edit grant belongs to another user, replying with an acknowledgement that the artifact was not changed for that reason, separate from other refusal messages.

Improved
You'll notice
Useful2 Signal2
Permissions

New read-block ask message for command-substitution/redirection targets#

Outside-directory paths found in command substitutions and redirections now raise their own ask prompt instead of being blocked silently.

Details 0 0 Feedback
permissions.blockReadsOutsideWorkingDirectories

A new helper builds a dedicated 'ask' decision for paths outside the working directories that are found via read-checking of nested commands and redirections (command substitution and redirection targets), separate from the general blocked-command message, when permissions.blockReadsOutsideWorkingDirectories would otherwise block them silently.

Related

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

Improved
You'll notice
Useful2 Signal2
Hooks

Hook diagnostics distinguish launcher/guard failure modes#

Script hook diagnostics now say whether the hook timed out, could not start, was killed, or had its stderr redirected.

Details 0 0 Feedback

Hook diagnostics for script-type hooks now explain more precisely why no verdict was produced: the hook timed out, could not start, was killed before finishing, or its launcher exited before the hook ran. A new case also flags when a launcher redirects the hook's stderr, since that hides the hook's verdict.

Improved
You'll notice
Useful2 Signal2
SDK

Stream-json stdin input now enforces a line-length budget#

A single stream-json stdin message now has a character budget and errors explicitly instead of buffering forever.

Details 0 0 Feedback

The CLI's stream-json stdin reader now enforces a maximum character budget for a single newline-terminated message. Exceeding it now surfaces an explicit error instead of buffering indefinitely, pointing to either a non-newline-terminated producer or a message that exceeded the budget.

Improved
You'll notice
Useful2 Signal1
MCP

MCP client/server errors now attributed to originating config#

MCP connect, tool-call and reconnect errors now name the server config they came from, useful with several servers running.

Details 0 0 Feedback

MCP connect, tool-call, reconnect, and get-prompt failure paths now format errors with a new Ii(error, config) helper that includes the server config in the resulting message, improving error attribution (for example in "Error during reconnection:" and "Error running command") when running multiple MCP servers.

Improved
You'll notice
Useful2 Signal1
Plugins

Plugin loading now surfaces the specific reason a path escapes the plugin/marketplace boundary#

Plugin path-escape errors now say why, such as the real path a symlink resolves outside of.

Details 0 0 Feedback

Path-traversal errors for plugin commands, agents, skills, monitors, and hooks now include a human-readable reason, such as an unresolvable boundary or the real path a symlink resolves outside of, rather than just reporting that the path escaped. This reason is attached to both the log line and the structured error object.

Improved
You'll notice
Useful2 Signal1
Permissions

Dangerous rm/deny-rule matching now also checks additional command variants#

Bash deny rules now match more command variants, and the scan only runs when deny rules are configured.

Details 0 0 Feedback

Bash command deny-rule checking now unions prefix variants and, when a deny target is passed, expands the check set with additional command variants, broadening what a single deny rule can catch. The scan only runs at all when the tool has deny rules configured, narrowing when the check runs.

Improved
You'll notice
Useful2 Signal1
Permissions

Ask-rule resolution (Csn) now also resolves deny outcomes inline#

A command headed for an ask prompt can now be flipped straight to deny when a deny rule matches it.

Details 0 0 Feedback

The ask-rule resolution helper used for permission prompts now also checks deny rules across the same candidate command set, and can flip an 'ask' decision straight to 'deny' when a deny rule matches, instead of only ever finding which ask-rule applies.

Improved
You'll notice
Useful2 Signal1
Directory Sync

Sync-wait messages gain an Esc/Stop cancel hint#

Messages waiting on a sync retry now tell you Esc cancels, or Stop in the desktop app.

Details 0 0 Feedback

Messages telling the user their message is waiting on a sync retry (busy repo, unborn branch, blocked operation) now append a hint that Esc cancels the message, or Stop in the desktop app.

Improved
You'll notice
Useful2 Signal1
MCP

Elicitation dialog no longer fires a notification callout#

The MCP elicitation dialog no longer pops a needs-your-input notification when it opens.

Details 0 0 Feedback

The elicitation dialog (shown when an MCP server requests user input) no longer triggers a UI notification/banner when it opens. The call to Gb("Claude Code needs your input", "elicitation_dialog") has been removed; the telemetry call ws("elicitation") still fires, but the accompanying notification callout does not.

Improved
You'll notice
Useful2 Signal1
Artifacts

Some legacy artifact actions explicitly disabled with tailored error messages#

Legacy artifact actions with no new equivalent now return a tailored explanation instead of quietly failing.

Details 0 0 Feedback

When a legacy-shaped artifact call names an action that no longer maps 1:1 onto the new schema, such as whole-artifact delete, read_asset, delete_asset, read_file, or describe_type, the tool now returns a specific explanatory error instead of silently failing. For example, it explains that delete now only removes one uploaded asset by id, and that describe_type only creates a new Artifact from a type rather than reading its details.

Improved
You'll notice
Useful2 Signal1
Windows

PowerShell command-safety checks extended for write commands with implicit reads#

PowerShell checks now also validate the source path of copies and moves, and ask before a forced New-Item.

Details 0 0 Feedback
New-Item

The PowerShell/pwsh command permission checker now also validates the read side of write operations, such as checking whether the source path of a copy or move is itself blocked. It also now requires an 'ask' approval for New-Item invoked with a force-like flag, via a new helper that gates these additional checks.

Related

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

Improved
You'll notice
Useful2 Signal1
Permissions no docs found

New macOS automount browse-surface detection#

Paths under macOS /Network automount surfaces now also require manual approval.

Details 0 0 Feedback
/Network

Claude Code now also flags paths under /Network automount browse surfaces as requiring manual approval, in addition to the existing /net (-hosts) automount detection, since these can trigger directory-service lookups or mounts.

Related

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

Improved
You'll notice
Useful2 Signal1
Elsewhere

Git worktree-conflict path now parsed from error text#

A worktree conflict now shows the conflicting worktree path pulled out of git's error text.

Details 0 0 Feedback

A new helper parses git's "...already used by worktree at " error message to extract the conflicting worktree path, rather than only showing the raw git output.

Improved
You'll notice
Useful2 Signal1
Permissions

xargs commands can now qualify as read-only#

An xargs call wrapping echo, printf or wc can now count as read-only instead of prompting.

Details 0 0 Feedback
xargs

The read-only-command classifier now recognizes safe xargs invocations, checking the xargs flags and a trailing list of safe commands (echo, printf, wc). An xargs call wrapping one of these allowed commands can now be treated as read-only instead of forcing an ask prompt.

Improved
You'll notice
Useful2 Signal1
Working Directories

Add-directory dialog distinguishes already-accessible paths from real conflicts#

The add-directory dialog can suppress the already-in-working-directory warning when the path is merely covered by it.

Details 0 0 Feedback

The add-directory settings UI now accepts an onAlreadyAccessible callback. When a chosen path resolves to something already covered by the working directory but isn't an exact match, the caller can use this callback to suppress the usual alreadyInWorkingDirectory warning instead of always showing it.

Related

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

Improved
You'll notice
Useful1 Signal1
Terminal UI

Single-select list prompts gain arrow-key navigation#

Single-select prompts now support up and down arrows to move between options, not just typing a number.

Details 0 0 Feedback

Single-select prompts now support Up/Down arrow keys to move focus between options, in addition to typing a number, and pressing Enter on a focused-but-unentered option submits it. The status line text has been updated to mention arrow keys.

Multi-select prompts gained the same arrow-key focus movement, plus Space to toggle the focused option's selection, alongside the existing numeric comma/space-separated entry.

Improved
You'll notice
Useful1 Signal1
Permissions no docs found

awk-family commands unified under one read-only-arg parser#

gawk, mawk and nawk now share awk's argument parsing, so their file references are detected in permission checks.

Details 0 0 Feedback
gawkmawknawk

gawk, mawk, and nawk now share the same argument-extraction logic previously used only for awk, so bash permission checks now also detect file references for these awk variants.

Improved
You'll notice
Useful1 Signal1
Permissions

Bash tool file-reading verb list greatly expanded#

Many more text utilities, from tac and rev to comm and numfmt, are now recognized as file-reading commands.

Details 0 0 Feedback

The heuristic that classifies which shell commands count as "reading files," for permission and description purposes, now recognizes many more Unix text utilities: gawk, mawk, nawk, tac, man, rev, fold, expand, unexpand, fmt, comm, cmp, pr, numfmt, tsort, egrep, and fgrep, in addition to the previously supported commands.

Related

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

Improved
You'll notice
Useful1 Signal1
Permissions

Softened wording on stale-approval rejection message#

The unverifiable-approval message no longer claims the stale request will expire, only that it may stay open harmlessly.

Details 0 0 Feedback

The message shown when a tool call's approval can't be verified as the user's own answer has softer wording: it no longer claims the stale permission request will expire, only that it may stay open harmlessly.

Improved
You'll notice
Useful1 Signal1
Remote Control

Dialog-expiry credential message shortened#

The dialog-credential reconnect notice no longer claims the credential lasts about an hour.

Details 0 0 Feedback

The auto-reconnect message for a channel's dialog credential no longer states the credential lasts "about an hour"; it now only says it reconnects automatically if the connection drops or the credential expires, and that you'll be told if reconnecting has to stop.

Improved
You'll notice
Useful1 Signal1
Permissions

Batch-write permission-denied message reworded#

Denied batched writes now name the offending rule more prominently and say which write was not applied.

Details 0 0 Feedback

The message shown when a permission rule denies a batched write tool call now reads "...has been denied by your rule ... (writes[i]...)", making the offending rule more prominent. Separately, the write-failure message now appends "; writes[n] was not applied" to the underlying error.

Improved
You'll notice
Useful1 Signal1
Git Integration

SSH-style GitHub URLs recognized#

SSH-form GitHub remote URLs are now recognized during remote detection.

Details 0 0 Feedback

Git remote URL detection now recognizes SSH-form GitHub URLs (e.g. [email protected]:) among a list of recognized remote URL prefixes.

Related

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

Improved
You'll notice
Useful1 Signal0
Terminal UI

Chat suggestion box gains a max column width#

The chat suggestion popup now caps how wide its columns can render.

Details 0 0 Feedback

The chat autosuggestion popup now reads a maxColumnWidth value from its layout context, capping how wide suggestion columns render.

78 entries

Bug Fixesopen

Fixed
You'll notice
Useful3 Signal3
Group of 2 Updater

Native updater verifies staged binary checksum and skips unverified releases, with new telemetry#

The installer re-verifies the staged binary's checksum and refuses to activate it on a mismatch.

Details 0 0 Feedback

The native installer now throws a new error class if a staged binary's checksum no longer matches what was verified, blocking install/update instead of silently activating an unverified binary. Related logic also skips activating releases that predate release-signature enforcement, recorded as skippedUnverifiedRelease.

Telemetry event selection for the native auto-updater was refactored into a helper that returns tengu_native_auto_updater_success, a new tengu_native_auto_updater_skipped_unverified_release, or tengu_native_auto_updater_up_to_date, based on the wasUpdated/skippedUnverifiedRelease flags on the result.

Related

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

Fixed
You'll notice
Useful3 Signal3
Auth

Background-auth snapshot can now carry a gateway token, and retries on transient read failures#

The startup auth snapshot can carry a gateway token, and a locked-file read failure now retries instead of discarding it.

Details 0 0 Feedback

The background-auth snapshot consumed at startup can now include a gatewayToken field alongside accessToken, read via the internal DCt consumer. If a snapshot read hits a transient failure (EBUSY, EPERM, or EACCES on Windows), the snapshot env var is no longer deleted or unset immediately; the failure is logged instead and a later read is allowed to retry.

Fixed
You'll notice
Useful3 Signal3
MCP

MCP server reconciliation reworked for account-switch safety#

MCP reconnection now tracks each server as refused, applied or superseded and drops stale results after an account switch.

Details 0 0 Feedback

The internal MCP server reconciliation routine was restructured to track per-server connection outcomes as "refused", "applied", or "superseded". It now detects when a server's identity changes mid-connect during an account switch and defers or drops stale results instead of applying them, since the identity boundary owns the row.

Fixed
You'll notice
Useful3 Signal3
Artifacts

Workshop/artifact publish now refuses capability retrofits that would silently drop capabilities#

Republishing a page that omits previously-stored MCP capabilities is now rejected instead of silently revoking them.

Details 0 0 Feedback

Publishing an artifact page that declares MCP capabilities but omits previously-stored capabilities, while also adding new ones, is now rejected with an explicit error instead of silently revoking the missing capabilities. To drop capabilities intentionally, republish with the full union or use an explicit 'latest' contract.

Fixed
You'll notice
Useful3 Signal3
Models

Gateway model discovery no longer skipped for nonessential-traffic-disabled users#

Gateway model discovery now runs even when nonessential traffic is disabled, instead of being skipped.

Details 0 0 Feedback
ANTHROPIC_BASE_URL

The gatewayDiscovery routine, which probes ANTHROPIC_BASE_URL for available models, no longer bails out immediately with "[gatewayDiscovery] skipped: nonessential traffic is disabled" when nonessential traffic is disabled. That early-return branch has been removed, so discovery now runs unconditionally regardless of that setting.

Related

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

Fixed
You'll notice
Useful3 Signal3
Settings

Settings writer falls back to raw file when validation errors should be preserved#

Settings entries this build does not recognize now survive a write, via a fallback to the raw file on disk.

Details 0 0 Feedback

When writing settings files, if the validated content would drop entries that the current build doesn't recognize but that should still be preserved, the writer now falls back to the raw on-disk JSON so those unrecognized entries survive the write instead of being silently dropped.

Fixed
You'll notice
Useful3 Signal3
Hooks

Hook env var interpolation now blocks credential-looking values from HTTP headers#

A variable whose value looks like a credential is now refused when interpolating into HTTP hook headers.

Details 0 0 Feedback
allowedEnvVars

When interpolating ${VAR} into HTTP hook headers, the CLI now checks whether the variable's value looks like a credential using a heuristic. If it does, interpolation is refused and a warning is logged, even if the variable is listed in allowedEnvVars, unless it's separately allow-listed.

Related

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

Fixed
You'll notice
Useful3 Signal3
Working Directories

Additional working directories now track which settings file 'owns' them#

Extra working directories are now attributed to project or local settings correctly, and mis-recorded ones are backfilled.

Details 0 0 Feedback
projectSettingslocalSettings

Reconciliation of permission-context additional working directories now attributes each directory to either projectSettings or localSettings, based on whether it's declared or repo-only, instead of always writing new entries to localSettings. Directories whose recorded source disagrees with where they're actually declared get backfilled to the correct source.

Related

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

Fixed
You'll notice
Useful2 Signal3
Permissions

Remote-armed policy helper failures now retry instead of giving up#

A failed remote-armed policy helper is now retried on a timer instead of failing for good.

Details 0 0 Feedback

When a remote-armed policyHelper invocation fails, the manager now calls holdRemoteFailure, which retries the helper on a timer instead of failing permanently, as long as the same remote payload still authorizes the entry.

Fixed
You'll notice
Useful2 Signal3
Permissions

Policy-limits cache responses are now signature-verified#

The cached policy-limits response now carries a signature that is checked on load, so a tampered cache file is rejected.

Details 0 0 Feedback

Fetched policy-limits responses now carry a signature derived from response headers, persisted alongside the cache file and checked via a signed-cache verification path on load. This guards against a tampered policy-limits cache file being loaded.

Fixed
You'll notice
Useful2 Signal3
Artifacts no docs found

New guard against writing artifact DB docs into a bound working copy#

Saving fetched documents now refuses when the target is a bound working copy location.

Details 0 0 Feedback
out_dir

Saving fetched documents under out_dir now also checks whether the target is a bound/refused "working copy" location, and blocks the save with a new working_copy reason if so.

Fixed
You'll notice
Useful2 Signal3
Settings

Settings writes now re-check for policy locks before applying, refusing overrides of managed locks#

Settings writes re-check for policy locks and reload first, so a remote write cannot override a locked managed policy.

Details 0 0 Feedback

Settings writes now re-check for policy locks before applying: a new helper checks whether a setting is locked and not writable-while-locked (excluding source: "managed"), reloading settings before writing if so. This hardens remote settings writes against overriding locked managed policies.

Fixed
You'll notice
Useful2 Signal3
Agent Proxy

Agent proxy CA bootstrap now retries with budget instead of failing once#

Agent proxy startup keeps retrying the CA bundle fetch with backoff instead of giving up on the first failure.

Details 0 0 Feedback

Agent proxy startup (CCR relay) now fetches and merges the CA bundle through a budgeted, retryable helper, with a 5-second budget on the first attempt and 15 seconds on later attempts. A background retry loop keeps retrying with backoff until it succeeds, the generation changes, or shutdown occurs, instead of giving up after the first CA fetch failure.

Related

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

Fixed
You'll notice
Useful2 Signal3
Artifacts

New "network is off" artifact-fetch error state#

Artifact fetches now report when your org's network access is off and that retrying will not help.

Details 0 0 Feedback

Artifact and asset fetches now detect a specific 403 response body indicating that a cloud session's org network access is off, distinct from network access merely being unavailable. This case is reported as a network_off result with a message stating that retrying from here will not help, rather than falling through to the generic relay-unavailable error path.

The artifact tool also now gives distinct explanatory messages when reads or writes fail because the cloud session lacks network access versus because database access isn't available in the current cloud session, so the model can tell the failure kinds apart instead of blindly retrying. Underlying database read/write requests check a network-off gateway policy and return a refused-with-reason response (network_off / whoami_network_off) ahead of other checks when networking is disabled, and the fetch path itself recognizes an exact-match set of two policy-denial strings in the 403 body to trigger this handling.

Fixed
Nothing to try yet
Useful2 Signal3
Artifacts

PR review pages can now refuse single-file publish when not live#

Publishing a PR review page now refuses a single target file that is not live.

Details 0 0 Feedback
pr_review

Publishing a pr_review page now refuses when it targets a single file that isn't live, throwing with a dedicated REVIEW_PAGE_NOT_LIVE_REFUSAL message.

Related

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

Fixed
You'll notice
Useful2 Signal3
Artifacts

Artifact asset reads/publishes now refuse to write onto a bound working copy#

Artifact asset reads and publishes refuse to overwrite a bound working copy such as a synced git checkout.

Details 0 0 Feedback

The Artifact tool's read_asset and publish paths now check whether the target location is a bound or managed working copy, such as a synced git checkout, and refuse to save a fetched asset or publish onto it instead of silently overwriting it. The refusal surfaces as asset_read_onto_working_copy.

Fixed
You'll notice
Useful2 Signal3
Teammates

Swarm inbox now retries failed read-receipt writes instead of losing them#

A failed inbox read-receipt write now leaves the messages unread so they retry, instead of being lost silently.

Details 0 0 Feedback

When marking swarm inbox messages as read fails, the poller no longer proceeds silently. It logs a warning, leaves the messages unread so they retry on the next poll, and fires a telemetry event the first time this happens per session.

Related

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

Fixed
You'll notice
Useful2 Signal3
Directory Sync

Dir-sync git engine now waits out an unmerged git index instead of giving up#

A first upload blocked by someone else's unmerged git index now waits for it to clear, with progress messages.

Details 0 0 Feedback

The git-based directory sync engine now detects when a first upload or send is blocked by an unmerged git index held by someone else, and polls and waits for that condition to clear rather than immediately retrying or failing. It shows progress messages such as "waiting while ... it goes on as soon as that clears" during the wait.

Fixed
You'll notice
Useful2 Signal3
Teammates

Team-lead inbox mark-read failures now retried with backoff and telemetry#

A team lead that cannot mark inbox messages read now retries a few times before processing them unmarked.

Details 0 0 Feedback

When a team-lead session fails to mark inbox messages as read, it now retries the poll up to a threshold before processing the batch unmarked, instead of immediately processing the batch on any single failure. Repeated failures now also report a telemetry event.

Related

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

Fixed
You'll notice
Useful2 Signal3
Auth

Anthropic profile store now protected from direct writes#

Tools are now refused when writing directly to the Anthropic profile store that holds sign-in and org policy.

Details 0 0 Feedback

Direct writes to the Anthropic profile store, which determines sign-in and org policy, are now denied with a dedicated safety-check message explaining that it cannot be written directly.

Fixed
Nothing to try yet
Useful2 Signal3
Agents

Killing an async agent can now also kill its monitor processes#

Killing a background agent can now also kill its monitor processes, behind a check.

Details 0 0 Feedback

Killing an async or background agent can now also kill its monitor processes, via killAgentMonitors, gated behind a check, before cleaning up orphaned shell tasks.

Fixed
Nothing to try yet
Useful2 Signal3
Artifacts

New unreadable-record fallback for handler/script results#

Handler and script result records show as unreadable in this build rather than crashing when no renderer exists.

Details 0 0 Feedback

The session-record renderer now recognizes handlers_doc, handler_result, and script_result record kinds. If no renderer is registered for the current build, it shows "This record is unreadable in this build." instead of crashing or showing nothing.

Fixed
You'll notice
Useful2 Signal3
Directory Sync

New user-facing errors for cloud session sync and TLS pinning failures#

New messages cover sync being switched off because settings.json could not be parsed, and sign-in aborting on a changed TLS certificate.

Details 0 0 Feedback

Two new error/status messages are now shown to users. One appears when file sync is turned off for a session because the checkout's .claude/settings.json or settings.local.json cannot be read or parsed. The other aborts sign-in when a gateway's TLS certificate unexpectedly changes mid-flow.

Fixed
You'll notice
Useful2 Signal3
Teammates

Teammate mailbox reads can now surface unknown errors instead of silently swallowing them#

Mailbox reads can now surface unexpected errors, and mark-as-read calls report whether they succeeded.

Details 0 0 Feedback

readMailbox gained a throwOnUnknownReadError option. markMessagesAsRead and markMessagesAsReadByPredicate now use it and return a boolean indicating success or failure instead of silently returning on unexpected errors.

Related

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

Fixed
You'll notice
Useful2 Signal3
MCP

MCP connection settlement now respects account-switch identity boundary#

An MCP connection that settles after you switch accounts is now closed rather than installed.

Details 0 0 Feedback

When an MCP server connection result settles after the user has switched accounts, it's now explicitly treated as superseded and the connection is closed rather than installed, instead of being merged into the current client list.

Fixed
You'll notice
Useful2 Signal2
Group of 3 MCP

MCP OAuth/XAA logging now redacts URLs and scopes, and tracks presented tokens#

MCP OAuth debug logs now redact scopes, URLs and tokens, with handed-out secrets tracked so they can be scrubbed.

Details 0 0 Feedback

MCP/XAA discovery and connection error messages that previously interpolated raw URLs (issuer, token endpoint, resource) now pass them through a zn(...) helper before inclusion in error text, and the MCP OAuth client's debug logging also runs scope values through a rw("scope", ...) redaction helper, covering messages like 'Using scope from metadata:' and 'Overrode authorization scope from...'.

A new _presented tracker records access tokens, refresh tokens, client secrets, and code verifiers whenever they are handed out (e.g. this._presented.record(e?.client_secret), this._presented.record(k.access_token)), in addition to the existing _lastServedAccessToken/_lastServedRefreshToken tracking, apparently to support redaction or duplicate/leak detection for tokens.

Fixed
You'll notice
Useful2 Signal2
Hooks

Hooks declared outside the "hooks" key (or PreToolUse/PermissionRequest nested arrays) now fail to load with a clear error#

A plugin or agent declaring PreToolUse or PermissionRequest hooks in the wrong place is now rejected with a clear error.

Details 0 0 Feedback
PreToolUsePermissionRequest

Plugin manifests, marketplace entries, and agent frontmatter that declare PreToolUse/PermissionRequest hooks at the top level, under an unrecognized key, or nested in arrays this build cannot parse, now cause the plugin or agent to be rejected as "unloadable" with an explicit message, instead of failing validation silently elsewhere.

Related

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

Fixed
You'll notice
Useful2 Signal2
Sessions

Session-reported cwd is checked for network-path ancestry before being adopted#

A session's reported working directory is refused if it is network-shaped or its ancestry cannot be verified.

Details 0 0 Feedback

When restoring or adopting a session's reported working directory, Claude Code now rejects absolute or network-shaped paths outright. For other paths, it verifies the local ancestry doesn't resolve through a network path before trusting the cwd, logging a warning and declining to adopt it if verification fails or is inconclusive.

Fixed
You'll notice
Useful2 Signal2
Hooks no docs found

Hook-triggered abort now unwraps sub-agent turn controllers#

A hook interrupting a sub-agent or forked turn now aborts the real turn controller instead of doing nothing.

Details 0 0 Feedback
interrupt: true

When a PermissionRequest/PreToolUse hook interrupts with interrupt: true, the abort logic now goes through a helper that unwraps a possibly-wrapped controller down to the underlying turnController before calling .abort(). This fixes cases such as sub-agent or forked turns where abort could be called on the wrong object and silently do nothing.

Related

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

Fixed
You'll notice
Useful2 Signal2
Skills

Skills reject top-level PreToolUse/PermissionRequest hooks in frontmatter#

A skill declaring permission hooks outside the hooks object no longer loads them or its allowed-tools.

Details 0 0 Feedback
allowed-tools

Skill and plugin-skill loaders now detect when a skill's frontmatter declares PreToolUse or PermissionRequest hooks outside the proper hooks object, and refuse to load that skill's hooks or allowed-tools rather than silently misapplying them.

Related

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

Fixed
You'll notice
Useful2 Signal2
Hooks

Same top-level-hooks guard extended to plugin hooks.json files#

A plugin hooks.json with permission hooks outside the hooks key now throws instead of loading malformed config.

Details 0 0 Feedback
hooks.json

The same guard now applies to plugin hooks.json manifests: if PreToolUse or PermissionRequest appear outside the hooks key, or hooks isn't a proper object mapping event names to matcher arrays, loading now throws instead of proceeding with malformed config.

Related

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

Fixed
You'll notice
Useful2 Signal2
MCP

OAuth secrets tracked and scrubbed from error messages#

MCP OAuth error messages are scrubbed before logging or telemetry so tokens and secrets cannot leak through them.

Details 0 0 Feedback

The MCP OAuth flow now records access tokens, refresh tokens, client secrets, and verifiers into a secret tracker as they're used, and error messages are passed through a scrub function before being logged or sent to telemetry, preventing these secrets from leaking via exception text.

Related

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

Fixed
You'll notice
Useful2 Signal2
Data Retention

History purge now uses a lock and detects lock compromise#

History purges take a lock and refuse the rewrite if another process disturbs it mid-run.

Details 0 0 Feedback
--all

History purge and rewrite operations now acquire a lock before running, and detect if another process disturbs it mid-rewrite. If the lock is compromised, the rewrite is refused and reported as History purge lock compromised or History purge (--all) lock compromised.

Fixed
You'll notice
Useful2 Signal2
Hooks

Hook detail values now sanitized before display#

Hook detail text is sanitized before display, so config text cannot inject terminal control sequences.

Details 0 0 Feedback

The hook-details panel now sanitizes displayed strings, including the matcher, plugin name, status message, and command/config summary, replacing control characters, format characters, and other unsafe code points with visible placeholders (for example ESC becomes , and newlines/tabs get their own glyphs). This prevents terminal-control-sequence injection via hook config text.

Fixed
You'll notice
Useful2 Signal2
Workflows

Workflow tool rejects control/invisible characters in name and scriptPath#

The Workflow tool rejects a name or scriptPath containing control or invisible formatting characters.

Details 0 0 Feedback
scriptPath

The Workflow tool's name and scriptPath inputs are now validated against a normalization check and rejected if they contain control or invisible formatting characters.

Related

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

Fixed
You'll notice
Useful2 Signal2
MCP

MCP server managed-policy / project-approval gating#

An MCP server blocked by managed policy or needing project approval now shows as a failed client rather than connecting.

Details 0 0 Feedback

MCP server entries are now checked to determine whether they're blocked for managed-policy reasons or need project-approval. A server that fails this check now surfaces as a failed client carrying that error, instead of silently connecting.

Fixed
You'll notice
Useful2 Signal2
MCP

MCP OAuth completion now checks the server is still configured before reconnecting#

After an MCP OAuth flow, reconnect is skipped if the server was removed from config mid-flow.

Details 0 0 Feedback

After an MCP OAuth flow completes, the reconnect logic now checks whether the server is still present in configuration and skips reconnecting, logging a message, if the server was removed mid-flow, instead of attempting to reconnect against configuration that no longer exists.

Fixed
You'll notice
Useful2 Signal2
MCP no docs found

mcp_reconnect guards against concurrent reconnect attempts#

An MCP reconnect while one is already in progress now returns its own status message rather than starting a second.

Details 0 0 Feedback
mcp_reconnect

The IPC handler for mcp_reconnect now checks the server's connection state before attempting a reconnect and returns a distinct message when a reconnect is already in progress. Previously only the enterprise-managed-policy block was checked; a broader state check now gates the reconnect alongside a duplicate-attempt check, each producing its own "reconnecting" status message.

Related

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

Fixed
You'll notice
Useful2 Signal2
Terminal UI

Rate-limit auto-continue prefill is now consumed before overwriting draft#

Rate-limit auto-continue prefill text is consumed before the draft is rewritten, so it is no longer clobbered or duplicated.

Details 0 0 Feedback

Before the turn rewrites the input draft during queued-command execution, it now explicitly consumes any pending rate-limit auto-continue prefill text via consumeRateLimitAutoContinuePrefill. This prevents that prefill from being clobbered or duplicated when new input arrives.

Fixed
You'll notice
Useful2 Signal2
Sessions

npm-reinstall-in-progress detection when respawning background daemon#

A background daemon that fails to start during an npm reinstall now waits for the install to finish and retries.

Details 0 0 Feedback

When the background daemon binary fails to exec, the code now distinguishes a stale npm stub, a fresh stub, and a genuinely missing file, using helpers that check file age and sibling .{pkg}- staging directories. The wait loop gains an "extended" retry phase when an npm install looks to be actively in progress, so a transient background daemon whose first spawn attempt exits during an npm reinstall of Claude Code now waits for the reinstall to finish and retries instead of failing immediately. Telemetry now records extended, install_in_progress, and gaveUpOnNpmInstallInProgress.

Fixed
You'll notice
Useful2 Signal2
Sessions

Session-home resume now refuses unverifiable/network-mapped paths#

Resume now refuses Windows UNC session homes and flags paths whose ancestry cannot be verified.

Details 0 0 Feedback

Resume-time checks for cross-host session homes and worktree roots now also refuse Windows UNC-style \\...\network\ paths, and paths whose ancestry can't be verified are flagged with unreadableAncestry: "unverified", in addition to the previous cross-device and symlink checks.

Fixed
You'll notice
Useful2 Signal2
Plugins

Plugin hook loading can now hard-fail on unloadable guarded hooks#

A plugin declaring unloadable inline hooks now fails loading outright instead of quietly skipping them.

Details 0 0 Feedback

When a plugin manifest declares inline hook objects with "unloadable" guard conditions, plugin loading now throws a dedicated error instead of silently recording the hooks as invalid and skipping them.

Fixed
You'll notice
Useful2 Signal2
Plugins

Plugin hook/skill file resolution now anchors against realpath of the plugin directory#

Plugin hook and skill paths are resolved against the plugin directory's real path, catching traversal and symlink escapes.

Details 0 0 Feedback

Plugin loading now resolves an anchor, the real path of the plugin directory, once and threads it through hook-file and skill-file path resolution, so hooks or skills referenced outside the declared plugin directory via path traversal or symlinks can be correctly detected.

Fixed
You'll notice
Useful2 Signal2
Permissions

Permission-dialog denial message for blocked-outside-reads#

A read denied by the outside-reads setting now suggests /add-dir and says whether the setting is saved or session-only.

Details 0 0 Feedback
/add-dir

When a read outside the working directory is denied because of the block-outside-reads setting, the message now tells the model to ask the user to add the directory with /add-dir or to remove the setting, and it distinguishes whether that setting was saved to user settings or is only session-scoped.

Related

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

Fixed
You'll notice
Useful2 Signal2
Artifacts

Artifact publish retries once after a stranded 503 on deploy/direct#

A publish whose deploy call returns 503 after the slug is known now waits and retries against that slug.

Details 0 0 Feedback

If a deploy commit succeeds but the immediate /deploy/direct response comes back 503 after the slug is already known, the client now waits and retries against that known slug instead of failing the publish outright. The retry is logged via a new deploy_stranded_retried telemetry event.

Related

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

Fixed
You'll notice
Useful2 Signal2
Terminal UI

Spinner/stall telemetry now resets per agent#

Spinner stall detection now resets when the active agent changes instead of carrying state across agents.

Details 0 0 Feedback

The thinking/loading spinner's stall-detection state, including which thresholds have fired and the max stall duration, is now keyed to an agentId. It resets whenever the active agent changes instead of persisting stall tracking across agent switches, and continues to report via tengu_spinner_stall_cleared.

Fixed
You'll notice
Useful2 Signal2
Directory Sync

Dir-sync git worker adds retry backoff for laptop journal auth failures#

Repeated unauthorized journal reads in the sync worker now give up on the pending state rather than retrying forever.

Details 0 0 Feedback

The background git dir-sync worker now counts consecutive unauthorized/lane_unavailable journal read failures, tracked via new counters. Once a threshold is hit, it gives up on the pending note/state entirely, clearing pe/ne/ge, instead of retrying forever, logged through dir_sync_git_laptop_journal_unreadable.

Fixed
You'll notice
Useful2 Signal2
Hooks

Stricter hook-config validation for PreToolUse/PermissionRequest guard entries#

Malformed permission-hook entries are now flagged with a warning that the neighbouring permission guard may not apply.

Details 0 0 Feedback

New validation logic (the Tl, Zq, gQ, tK, and vt/hQ helpers) detects malformed or unloadable hook entries. It specifically flags cases where a PreToolUse or PermissionRequest hook entry cannot be loaded, warning that this may mean the permission guard it sits beside won't be applied until the entry is fixed or removed.

Fixed
You'll notice
Useful2 Signal2
Git Integration

PR-prep commit-checklist suggestion no longer gated by a top-level enable check#

The pre-commit reminder suggesting /verify, /simplify or code review no longer needs a top-level gate to pass.

Details 0 0 Feedback
/verify/simplify

The pre-commit reminder suggesting /verify, /simplify, or code review no longer requires a top-level gate check to pass first. Previously the rendering function returned early unless a gate function returned true; now the suggestion runs whenever the other conditions are met, namely a truthy value and at least one of verify, simplify, or code review being applicable.

Related

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

Fixed
You'll notice
Useful2 Signal2
Auth

New gateway credential hand-off lock retry#

A gateway credential hand-off file locked by another process, such as antivirus, is now retried once instead of failing.

Details 0 0 Feedback
CLAUDE_CODE_USE_GATEWAYANTHROPIC_AUTH_TOKEN

When CLAUDE_CODE_USE_GATEWAY is set without ANTHROPIC_AUTH_TOKEN, Claude Code now waits and retries once if the credential hand-off file is locked by another process, such as an antivirus scan, instead of failing immediately.

Related

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

Fixed
You'll notice
Useful2 Signal2
Agent Proxy

Agent-proxy startup probe failure no longer fatal once a tunnel opened#

A failed agent-proxy startup probe is now only a warning if a tunnel already opened, rather than blocking all traffic.

Details 0 0 Feedback

If the hosted agent-proxy's startup reachability probe fails but a CONNECT tunnel has already opened successfully, the failure is now logged as a warning instead of being treated as a fatal startup error that blocks all traffic. The failure message also now describes per-CONNECT dial retries rather than the old wording.

Related

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

Fixed
You'll notice
Useful2 Signal2
Windows

Windows-unsafe path validation function rewritten/expanded#

Paths are now checked for Windows reserved names, trailing dots, forbidden characters and short-name aliases.

Details 0 0 Feedback

The function previously used to normalize choice-list items has been replaced with path validation logic for Windows-unsafe paths. It checks for Windows-reserved device names, trailing dots or spaces, forbidden characters, and NAME~1 short-name aliases (the last also checked under WSL), returning a descriptive refusal string such as noting a path "carries a NAME~1 short-name alias, which a Windows filesystem resolves to a differently named entry" instead of returning a normalized choice object.

Related

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

Fixed
You'll notice
Useful2 Signal2
Git Integration

GIT_CONFIG_PARAMETERS stripped from spawned shell environments#

GIT_CONFIG_PARAMETERS is now stripped from spawned shells so an inherited value cannot alter git behavior.

Details 0 0 Feedback

GIT_CONFIG_PARAMETERS is now scrubbed from the environment before spawning subprocesses, preventing an inherited value from leaking into or altering git behavior inside tool-invoked shells.

Related

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

Fixed
You'll notice
Useful2 Signal2
Permissions

Plan-mode file tools: stricter outside-working-directory read blocking#

With outside reads blocked, read-only tool calls in restricted contexts are now checked against the allowlist too.

Details 0 0 Feedback
blockReadsOutsideWorkingDirectories

When blockReadsOutsideWorkingDirectories is enabled, read-only tool calls in restricted contexts are now additionally checked against the working-directory allowlist, with path-suffix normalization applied before the check. This closes a gap where such reads could previously slip through.

Related

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

Fixed
You'll notice
Useful2 Signal2
MCP

.mcp.json now has a size/type guard before parsing#

Reading .mcp.json now rejects a non-regular file or one over a size cap with a clear error before parsing.

Details 0 0 Feedback
.mcp.json

Reading the project's .mcp.json now goes through a safe reader that rejects the file if it isn't a regular file or if it exceeds a byte-size cap, throwing a clear error instead of attempting to parse arbitrary content.

Related

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

Fixed
You'll notice
Useful2 Signal2
Bash

Subprocess/child kill logic now verifies PID identity before sending SIGKILL#

Before force-killing a process, its start time is re-checked so a recycled PID cannot be killed by mistake.

Details 0 0 Feedback

The process-tree kill path now snapshots each candidate PID's start time via ps -o pid=,lstart= both before and after the grace period, and only sends SIGKILL if the recorded start time still matches. This prevents accidentally killing an unrelated process that reused a recycled PID.

Related

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

Fixed
You'll notice
Useful2 Signal2
Terminal UI

Terminal paste handling now strips more control/escape sequences#

Pasted text now has a wider set of control characters and escape sequences stripped before use.

Details 0 0 Feedback

A new PasteEvent class (event type "paste") strips a wider set of C1 control characters and OSC/DCS-style escape sequences from pasted text before use. It also tracks whether the raw paste was empty or ended with a bracketed-paste focus tail.

Fixed
You'll notice
Useful2 Signal2
MCP

MCP discovery cache now scans for accidentally-cached secret material via a presented-credential log#

The MCP discovery cache now refuses a write that might carry secret material seen in headers, cookies or URLs.

Details 0 0 Feedback

Before writing an entry to the MCP OAuth discovery cache, the code now scans a log of previously-observed header, cookie, and URL values ("presented credentials") to confirm the entry wouldn't carry secret material, rather than only checking the OAuth token store as before. If that scan can't complete or exceeds its work budget, the write is refused; once the presented-credential log fills up, cache writes are refused for the rest of the process.

Fixed
You'll notice
Useful2 Signal2
Auth

/status can show Organization/Email even without an API key source#

/status now shows Organization and Email from cached account info when no API key can be retrieved.

Details 0 0 Feedback
/status

The /status/whoami display now shows Organization and Email rows sourced from cached account info when a profile is active but no API key could be retrieved from the api-key helper. Previously these fields only appeared through other paths.

Related

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

Fixed
You'll notice
Useful2 Signal2
Agent Proxy

CA cert fetch for CCR agent-proxy now retries on transient failures#

The CA bundle fetch now retries with backoff on 5xx, 408 and 429 responses before writing it to disk.

Details 0 0 Feedback

A new helper fetches the CA certificate bundle from a CCR agent-proxy /ca-cert endpoint with retry and backoff on 5xx, 408, and 429 responses, writing the resulting bundle to disk. Write failures are classified as retryable or fatal.

Related

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

Fixed
You'll notice
Useful2 Signal2
Skills

Skill directory watcher re-homes on project directory change#

Changing project directory now re-targets the skill watcher, keeping the old watch alive if that fails.

Details 0 0 Feedback

When the active project directory changes, Claude Code now tries to re-target the skill file watcher to the new directory. If that rehome fails, it logs the failure and emits skill_directory_reload telemetry, and keeps the previous watch running instead of silently breaking skill discovery.

Fixed
You'll notice
Useful2 Signal2
Windows

Windows launcher copy now validated against an expected checksum#

The Windows copy-based launcher installer refuses a launcher binary that does not match its signed checksum.

Details 0 0 Feedback

The Windows fallback copy-based launcher installer now accepts an expectedChecksum and refuses to install a launcher copy that doesn't match its signed checksum, logging an error and returning "failed" instead of silently installing a mismatched binary.

Related

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

Fixed
You'll notice
Useful2 Signal2
Sessions

New 'cwd gone' error path for background sessions#

A background session whose working directory was deleted now reports that specifically instead of a generic daemon error.

Details 0 0 Feedback

Background job dispatch now recognizes when a session's working directory has been removed, reporting this case distinctly as ECWDGONE via telemetry and to the CLI instead of treating it as a generic daemon error.

Fixed
You'll notice
Useful2 Signal2
Hooks

Hooks module scanning now flags PreToolUse/PermissionRequest declared outside the hooks object#

Permission hooks declared at the top level of hooks.json now give a message pointing at the misconfiguration.

Details 0 0 Feedback
hooks.json

Plugin hooks.json validation now has a dedicated error path for PreToolUse/PermissionRequest entries declared at the top level instead of nested under "hooks". This produces a clear message pointing at the misconfiguration instead of a generic schema-parse failure.

Related

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

Fixed
You'll notice
Useful2 Signal1
MCP

MCP URL-open confirmation guards against accidental double-accept#

The MCP open-URL confirmation ignores a repeated Enter shortly after accepting, so key repeat cannot double-accept.

Details 0 0 Feedback

The confirm-and-open-URL prompt for MCP elicitation now tracks when it was accepted and ignores a repeated Enter press within a short window afterward, preventing key-repeat from firing the accept action twice.

Fixed
You'll notice
Useful2 Signal1
MCP no docs found

MCP resourceTemplates now cleared on server disable#

Disabling an MCP server now also clears its resource templates, not just tools, commands and resources.

Details 0 0 Feedback
mcp_toggle

Disabling an MCP server with mcp_toggle (enabled: false) now also clears the server's resourceTemplates from app state, alongside its tools, commands, and resources, tracking resource templates as a first-class piece of per-server MCP state.

Related

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

Fixed
You'll notice
Useful2 Signal1
Auth

OIDC/OAuth endpoint URLs are now validated with URL.canParse before use#

An invalid OIDC issuer now gives a clear not-a-valid-URL error instead of an uncaught exception.

Details 0 0 Feedback

OIDC discovery and token-exchange code paths now check URL.canParse() on the well-known/token endpoint URL before constructing a URL object. An invalid issuer now surfaces a clear "issuer is not a valid URL" error instead of an uncaught exception from URL construction.

Fixed
You'll notice
Useful1 Signal1
Data Retention

History purge now preserves the original file mode#

Purging history now keeps the original file's permission mode instead of writing a fixed one.

Details 0 0 Feedback
history.jsonl

When purging entries from history.jsonl, the rewrite now stats the existing file and reuses its mode for the replacement, instead of always writing with a fixed 438 & ~umask mode.

Related

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

Fixed
You'll notice
Useful1 Signal1
Workflows

Workflow list item "phase" field hardcoded to null#

The workflow footer list no longer shows a phase indicator, as the field is now always empty.

Details 0 0 Feedback

In the tasks/workflows footer list, each workflow's phase field is now hardcoded to null instead of being computed from workflowProgress/phases, so the phase indicator no longer displays.

Related

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

Fixed
You'll notice
Useful1 Signal1
Elsewhere

Apple Terminal bell-setting detection hardened against malformed plist#

The Terminal.app bell check now validates the plist shape and logs a specific error instead of throwing.

Details 0 0 Feedback

The macOS check for whether Terminal.app's bell is disabled now validates that defaults export output is actually a plist dict and that the current profile has a settings dict. Malformed plist shapes now log a specific error message such as "defaults export is not a plist dict" instead of throwing.

Fixed
You'll notice
Useful1 Signal1
Bash

zsh conditional-expression line-continuation detection#

The shell tokenizer now handles a zsh double-bracket conditional split across a line continuation.

Details 0 0 Feedback

The shell command tokenizer now detects when a [[ ... ]]-style zsh conditional spans a line continuation (backslash-newline) before an opening paren, tracked via an internal zshCondParenDiff flag. This addresses a parsing edge case for multi-line zsh conditionals during Bash-tool command analysis.

Related

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

Fixed
You'll notice
Useful1 Signal1
Plugins

Hooks module path checks tightened for path traversal#

A plugin hook module path of exactly two dots is now rejected, closing a traversal edge case.

Details 0 0 Feedback

Module path validation for plugin hooks now also rejects a path that is exactly .., in addition to the existing startsWith('..') and resolve-mismatch checks, closing an edge case in the path-traversal guard.

20 entries

In Developmentopen

In dev
Nothing to try yet
Useful3 Signal3
Artifacts

Artifacts: new 'live doc' publish-shim path in tool descriptions#

The artifacts tool description can route publishing through a shim that produces live-doc style version summaries.

Details 0 0 Feedback

The artifacts tool's description builder now has a "publish shim" branch that generates live-doc-style version summaries when publishing goes through this shim. Descriptions can be routed through a shim object that fills in a shim URL and derives a publish-shim slug, appending an arrow-link and a classifier clause when the URL is recognized as a publish shim.

In dev
Nothing to try yet
Useful3 Signal3
Terminal UI

Local-command output can render as a single collapsed line#

Local command output can collapse to a single line instead of a full panel, behind a new session flag.

Details 0 0 Feedback

Local command output rendering (<local-command-stdout>/<local-command-stderr>, plus the injected empty 'bash-input'-style markers) now supports a compact single-line display when kind === "line" is set, instead of always rendering the full output panel. This is gated by a new session-level flag.

In dev
Nothing to try yet
Useful3 Signal3
Artifacts

Artifact publish result can now describe a "live doc shim"#

Artifact publish results can show a live doc shim status line with edit counts, copy path and live path.

Details 0 0 Feedback

Artifact publish results can now render a "live doc shim" status line, showing edits, whether it's onto current, completeness, whether the source is a copy, the copy path, and the live path, via a new liveDocShimLine formatter that runs ahead of the existing liveDocVersion/publish branches.

The publish flow also gained a shim path (applyPublishShim) that validates a live document target is HTML, not stale, has been read, is actually live, and has a title before publishing, producing specific refusal codes such as live_doc_shim_not_html when a check fails.

In dev
Nothing to try yet
Useful3 Signal3
Artifacts no docs found

New publish-shim redirect logic for Artifacts#

Publishing now detects a shim pointing at a different real artifact and resolves the true target before writing.

Details 0 0 Feedback
isPublishShim

Publish now checks via isPublishShim whether the target is a publish shim pointing at a different real artifact. If so, it resolves and validates the actual shim target, including whether its source is a bound copy, before proceeding with the write.

Related

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

In dev
Nothing to try yet
Useful3 Signal3
Compaction

Compact boundary transcript rendering reworked behind a gate#

A gated branch renders compact and microcompact boundaries as a metadata summary, and other system messages can render line-by-line or hidden.

Details 0 0 Feedback

System message rendering for compact and microcompact boundaries has a new gated branch that renders a dedicated compactMetadata summary component. Other system messages can now also render line-by-line or hidden via a new transform function.

Related

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

In dev
Nothing to try yet
Useful3 Signal3
Artifacts no docs found

Artifact tool restructured into action-based dispatch, behind a gated toolset switch#

The artifact tool's flat verbs are mapped to a canonical action shape, with a gate deciding which toolset is active.

Feature flag
tengu_cobalt_plinth_damson Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

A large rework maps flat artifact-tool actions, read_file, read_asset, describe_type, list_files, list_assets, list_types, upload_asset, delete_asset, and comments/data sub-actions, to and from a new canonical action shape via the xee, uct, ULe, and Kle helpers. A new iw() helper decides whether this new action-based toolset is active, tracked via tengu_cobalt_plinth_damson.

In dev
Nothing to try yet
Useful3 Signal3
Terminal UI

New "environment onboarding" offer state#

State now tracks whether an environment-onboarding offer has been shown or dismissed, with nothing yet showing it.

Details 0 0 Feedback

The engine/REPL state now tracks an envOnboardingOffered flag along with offerEnvOnboarding() and dismissEnvOnboardingOffer() methods, resetting the launch-prompt phase whenever a new query starts. This appears to lay groundwork for a future environment-onboarding prompt.

In dev
Nothing to try yet
Useful3 Signal3
Tools no docs found

Mid-conversation tool-change gate added#

A mid_conv_tool_change capability flag joins the model flag lists, gating whether tools can change mid-conversation.

Details 0 0 Feedback
mid_conv_tool_change

A new model-capability flag, mid_conv_tool_change, joins existing flags like mid_conv_system and adaptive_thinking in the model-context flag lists used for deciding model behavior. It appears to gate whether tool definitions can change mid-conversation for a given model.

Related

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

In dev
Nothing to try yet
Useful2 Signal3
Artifacts no docs found

Artifact SYNC/live-files system prompt gated by liveEditGateOpen#

Artifact live-file sync prompt text is only included when the live-edit gate is open and the schema has a page field.

Details 0 0 Feedback
liveEditGateOpen

The artifact tool's system prompt text for live-file syncing (SYNC_PROMPT, LIVE_FILES_PROMPT) is now only included when the live-edit module reports its gate open (liveEditGateOpen) and the tool schema supports a page field.

Related

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

In dev
Nothing to try yet
Useful2 Signal3
Artifacts no docs found

Sync-transport auth handshake option (feature-flagged)#

Behind a flag, the sync-transport handshake can use a sync token instead of the existing live subscription token.

Feature flag
tengu_slate_lantern Off by default, switched on for this account

The 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.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
syncToken

Behind a feature flag, the sync-transport auth handshake can now pick a "sync" token transport when a sync client and syncToken are present, instead of always using the existing "live"/subscriptionToken transport.

Related

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

In dev
Nothing to try yet
Useful2 Signal3
Permissions no docs found

Inherit-mode demotion gated by tengu_agentview_inherit_mode_demote#

A gate decides whether an inherited permission mode is recorded as inherited or flattened away.

Feature flag
tengu_agentview_inherit_mode_demote 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.257: on

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
permissionModeInherited

A new helper controls whether inherited permission mode is tracked as such or silently flattened, gated by tengu_agentview_inherit_mode_demote. When the gate is on, it returns {permissionMode, permissionModeInherited: true}; otherwise it returns just {permissionMode}.

In dev
Nothing to try yet
Useful2 Signal3
Git Integration no docs found

New gate suppresses commit/PR attribution and bridge-conflict correction#

A gate that would skip commit and PR attribution text and suppress bridge conflict recovery defaults to off.

Feature flag
tengu_jazzy_bird Gate removed from the code

This release deleted the gate from the code while it was still reading on for the account this site reads, so the code path no longer asks a flag before running.

This account: on · anonymous baseline: on · compiled default in v2.1.257: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

A new gate, tengu_jazzy_bird, controls two paths at once: whether commit/PR attribution text generation is skipped (by passing null instead of the normal context) when producing git commit trailers, and whether a REPL-bridge ownership-conflict recovery call, XO(), is suppressed. The gate defaults to false, so both paths currently behave as before: attribution is generated normally and conflict recovery still runs.

Related

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

In dev
Nothing to try yet
Useful2 Signal3
Sessions no docs found

Wire-format echo debugging fields (tool inputs + block order) are built but flag-gated off#

Two transcript debugging aids, raw tool inputs and exact wire block order, are computed but each sits behind its own gate.

Details 0 0 Feedback

Message normalization now computes two extra debugging aids on every pass: a wire_tool_inputs field (populated only when the resolved value is a non-empty object, otherwise left void 0) attached to tool-call output, and a reordering of assistant content blocks to match exact API wire order before they're written into transcripts/JSONL. Both are computed unconditionally and fed into the message pipeline, but each is controlled by its own gate function, so neither is active yet.

In dev
Nothing to try yet
Useful2 Signal2
MCP

Spinner shimmer effect flag#

A queued-state enum gains a member for queued MCP elicitation requests.

Feature flag
tengu_shining_fractals Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

A queue/state enum used alongside managed-settings, permission, dialog, and sandbox-queued states gains a new elicitation-queued member for queued MCP elicitation requests.

In dev
Nothing to try yet
Useful2 Signal2
Elsewhere no docs found

Screen-reader arrow-key navigation is gated and off by default#

Arrow-key navigation for screen-reader mode is gated off, so screen readers keep the existing behavior.

Details 0 0 Feedback

Arrow-key navigation for screen-reader mode is now gated behind tengu_ax_sr_arrow_nav and defaults to off, so screen readers keep the existing behavior with no arrow navigation unless remote config enables it.

Related

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

In dev
Nothing to try yet
Useful1 Signal2
Settings no docs found

Timestamps toggle in settings gated by tengu_silk_hinge#

The message-timestamps toggle in settings is still gated and not generally shown.

Feature flag
tengu_silk_hinge Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

The message-timestamps toggle option in the settings/config UI list remains behind the tengu_silk_hinge flag.

Related

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

In dev
Nothing to try yet
Useful1 Signal2
Elsewhere no docs found

Effort-pin release circuit breaker#

A per-session flag can release launch-effort pinning entirely for three model families.

Details 0 0 Feedback
launchEffortPinsReleasedForSession

A new per-session flag, launchEffortPinsReleasedForSession, can fully release the launch-effort pinning behavior for opus-4-7, opus-4-8, and fable-5, bypassing the usual pin checks entirely for that session.

In dev
Nothing to try yet
Useful1 Signal2
Artifacts no docs found

New reconnect-jitter spread for artifact re-arm, gated behind tengu_slate_lantern_ember#

Re-arming an artifact watch can add a computed delay to spread reconnect attempts, behind a gate.

Feature flag
tengu_slate_lantern_ember Off by default, switched on for this account

The 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.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

When re-arming a machine-armed artifact watch after a spread-reconnect condition, the code now adds a computed deferMs delay before reconnecting, spreading out reconnect attempts. This only applies when the tengu_slate_lantern_ember gate is on.

In dev
Nothing to try yet
Useful1 Signal1
Terminal UI no docs found

Hidden gate for a 'loupe' summary display mode#

A remote-config gate decides whether an internal UI element shows a summary view or stays hidden.

Feature flag
tengu_brass_condor_loupe 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.257: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

A new helper, gated by tengu_brass_condor_loupe remote config, decides whether an internal UI element ("brass condor loupe") shows a "summary" view or stays "hidden".

140 entries

Internal Changesopen

·Internal
Under the hood
Useful2 Signal3
Group of 2 Sessions no docs found

New echoWireToolInputs and echoApiBlockOrder options preserve raw wire data across merges and compaction#

Merged assistant messages can preserve the API's original content block ordering rather than concatenating.

Details 0 0 Feedback
echoApiBlockOrder

Assistant message merging (ets) gained an alternate path that, when echoApiBlockOrder is true and both messages carry an apiBlockIndex, merges content blocks by their original API index order instead of simple concatenation, threading apiBlockIndices through the message.

Transcript compaction now supports the same echoApiBlockOrder option plus a new echoWireToolInputs option; when set, these preserve raw wire tool inputs (wireToolInputs) and original API block ordering (apiBlockIndex/apiBlockIndices) instead of normalizing them, likely for diagnostics or exact-replay of assistant tool calls.

·Internal
Under the hood
Useful3 Signal3
Auth

Credentials/token file descriptors can now be read directly when IPC isn't available#

Websocket and gateway tokens can be read straight from an inherited file descriptor when there is no IPC channel.

Details 0 0 Feedback
CLAUDE_CODE_REMOTE

A new helper reads a websocket-auth token or gateway token directly from an inherited file descriptor, bypassing /proc/self/fd, whenever the process is not running under CLAUDE_CODE_REMOTE and has no process.send IPC channel. This serves as a fallback for both the session ingress token and gateway token readers.

·Internal
Under the hood
Useful3 Signal3
Model Catalog

Model catalog fetch gains an essential-traffic-gate bypass option#

Callers can ask why the model catalog is unavailable while bypassing the essential-traffic block reason.

Details 0 0 Feedback

The internal function that determines why the model catalog is unavailable now accepts a skipEssentialTrafficGate option, letting callers bypass the essential_traffic block reason. It also adds a new failure branch based on account-uuid resolution that is checked before the org policy check.

Related

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

·Internal
Under the hood
Useful3 Signal3
Workflows

agent() workflow-script signature tightened; top-level agent option added#

Workflow agent() rejects extra positional arguments and takes a top option, while the old budget options are gone.

Details 0 0 Feedback

In Workflow v2 scripts, agent() now rejects extra positional arguments with an explicit error; a top-level option is instead passed as agent(prompt, {top: true, ...}). The previous admission/starvation-related options tied to a budget system (starved facts, whenOpen/isOpen/ceiling/spent) have been removed from the world engine.

Related

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

·Internal
Under the hood
Useful3 Signal3
Background Tasks

New wait condition can hold background-task shutdown for armed monitors#

With input closed and no budget cap, a session with armed monitors can be held open past the background-task ceiling.

Feature flag
tengu_giggly_dragonfly 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.257: on

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

The print-mode drain loop now computes a holdForArmedMonitors flag, true when input is closed, no explicit budget cap is set, and a remote-config flag is on, and factors it into the ceiling/shutdown decision. Sessions with armed monitor tasks can now be kept alive longer before the background-task ceiling forces a stop.

·Internal
Under the hood
Useful3 Signal3
Context Usage

Context-usage RPC now accepts a detail parameter#

The bridge's context-usage handler forwards a detail argument, so remote clients can ask for coarser reporting.

Details 0 0 Feedback
detail

The bridge's onGetContextUsage handler now accepts an optional detail argument and forwards it through to context usage collection, allowing more granular usage reporting requests from a remote client.

Related

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

·Internal
Under the hood
Useful3 Signal3
Context Usage

get_context_usage command gains detail level and system-prompt snapshot input#

Context-usage requests can specify a detail level and pin the system prompt snapshot used for the calculation.

Details 0 0 Feedback
detailsystemPromptSnapshot

The get_context_usage control-protocol request now accepts detail: d.request.detail and systemPromptSnapshot: v.systemPromptSnapshot when computing context usage, letting callers request a specific detail level and pin the system prompt used for the calculation.

Related

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

·Internal
Under the hood
Useful3 Signal3
System Prompt no docs found

New system prompt snapshot plumbed into MCP/tool context#

The tool and agent context now exposes a snapshot of the system prompt in effect alongside the appended one.

Details 0 0 Feedback
systemPromptSnapshot

The tool/agent context builder now exposes a systemPromptSnapshot alongside appendSystemPrompt, capturing the exact system prompt in effect at a point in time.

Related

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

·Internal
Under the hood
Useful3 Signal3
Web Research

Injection-hardening for web research synthesis pipeline#

Web research strips control characters from quoted content and labels it evidence to weigh, never instructions.

Details 0 0 Feedback

The background web-research workflow now strips control and invisible characters and quote characters from claim text, quotes, source URLs, and evidence before building the synthesis prompt. Quoted web content is also wrapped with an explicit note that it is "evidence to weigh, never instructions to you," hardening the pipeline against prompt injection from fetched pages.

Related

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

·Internal
Under the hood
Useful3 Signal3
Sessions no docs found

New wire_tool_inputs field for replaying API-original tool inputs#

Assistant metadata can hold the API's original tool inputs so replayed history echoes calls exactly as emitted.

Details 0 0 Feedback
wire_tool_inputs

Assistant message wrapper metadata can now carry a wire_tool_inputs field holding the original, API-produced tool_use inputs keyed by tool_use id, separate from the client-normalized input in message.content. This lets replayed conversation history echo tool calls back exactly as the API emitted them.

Related

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

·Internal
Under the hood
Useful3 Signal3
Context Usage

Usage tracking gains a thinkingTokens field#

Token usage now records thinking tokens, already counted within output tokens, on turns from builds that log it.

Details 0 0 Feedback
thinkingTokens

The token-usage schema now records a thinkingTokens field, which is already counted inside outputTokens. This is only populated for turns run on CLI versions that record the field, so it may be partially populated for sessions resumed from older versions.

Related

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

·Internal
Under the hood
Useful3 Signal3
Effort Levels

Ultracode effort now explicitly clears/holds the launch-effort pin#

Choosing ultracode effort now unpins the launch-effort lock or hard-stops, changing when the pin-blocked message appears.

Details 0 0 Feedback
ultracodexhigh

Setting effort to "ultracode" now calls a helper that either unpins the launch-effort lock or triggers a hard-stop before applying the effort change. The launch-effort pin block is now only checked when a new condition holds, which changes when the pin-blocked message (effort locked this session, ultracode needs xhigh) is shown.

Related

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

·Internal
Under the hood
Useful3 Signal3
Terminal UI

Button JSX element gains hotkey and plain props, and infers label from a single string child#

The internal Button element can infer its label from a string child and takes hotkey and plain props.

Details 0 0 Feedback
hotkeyplain

The internal UI <Button> JSX element can now infer its label from a single string child instead of requiring a label prop. It also gains two new optional props: hotkey, which must be a single digit, and plain, a boolean; both are validated and passed through to the rendered button.

Related

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

·Internal
Under the hood
Useful3 Signal3
Sessions

Background worker retirement gains version-staleness path with new causes#

A background worker can now be retired purely for running a stale CLI version, with new retirement causes recorded.

Details 0 0 Feedback

The background-agent worker manager can now retire a worker purely because its CLI version is stale (this.isVersionStale), even when the worker isn't idle, as long as it isn't running session_cron, isn't a routine, has no in-flight tasks or queue, and its last update predates a threshold (BMe). The tengu_bg_retired telemetry event gains a cause field with values including abandoned-stale, settled, idle-prompt, and empty-idle, plus a worker_cli_version field.

·Internal
Under the hood
Useful3 Signal3
Prompt Caching

Prompt cache-break diagnostic state persists to disk, but only in cowork/desktop/remote contexts#

Prompt cache-break diagnostics now persist to a file across restarts, but only in cowork, desktop and remote contexts.

Details 0 0 Feedback

Per-agent "prompt cache break" diagnostic state, covering the system prompt, tool schema, and related cache diagnostics, can now be hydrated from and written back to a disk file named cache-break-state-*.json, so it survives restarts. This on-disk persistence is new, but it only runs in cowork, desktop, and remote contexts, gated behind a check that must resolve true before hydration or writes occur.

Related

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

·Internal
Under the hood
Useful2 Signal3
Session State no docs found

New "remote_session_change" and "fork_briefing" event/reason categories#

Two new tracked triggers appear for remote session changes and forked-session briefings.

Details 0 0 Feedback
remote_session_changefork_briefing

Two new string literals, remote_session_change and fork_briefing, were added to the lists used for session-context bookkeeping alongside existing entries like workflow_size_guideline_change and ultra_effort_exit, indicating new tracked triggers for remote session changes and forked-session briefings.

·Internal
Under the hood
Useful2 Signal3
Permissions

Policy helper execution now has a hard-capped timeout and reports timeouts explicitly#

The policy helper subprocess now has a hard timeout cap and reports a distinct timed_out error.

Details 0 0 Feedback
policyHelper

policyHelper subprocess execution now clamps its configured timeout to an internal maximum, and when that limit is hit, returns a distinct timed_out error code with a "timed out after Xms" message instead of falling through to the generic exit-code handling.

Related

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

·Internal
Under the hood
Useful2 Signal3
Sessions no docs found

Session/history parsing now tracks 'bookkeeping only' and continuation sessions#

History parsing now marks bookkeeping-only records and tracks which session a conversation continued into.

Details 0 0 Feedback
continuedInSessionId

Session/history parsing now computes a bookkeepingOnly flag and a continuedInSessionId field for each session, distinguishing sessions that are pure bookkeeping records from real conversations, and tracking which session a conversation was continued in, in history listings.

·Internal
Under the hood
Useful2 Signal3
Directory Sync

Dir-sync 'elsewhere' detection now distinguishes unknown vs nowhere#

Checking whether directory sync lives elsewhere now returns elsewhere, unknown or nowhere instead of a yes-or-no.

Details 0 0 Feedback

The laptop dir-sync attach flow's dirSyncElsewhereLookup now returns three outcomes instead of a binary check: elsewhere (shown to the user), unknown, or nowhere (mapped to not_armed_here). The not-bound case now reports reason not_looked instead of not_armed_here.

·Internal
Under the hood
Useful2 Signal3
Remote Control

MCP remote bridge: identity/owner-pin tracking reworked around credential persistence#

Bridge owner-pinning now reads persisted credentials and warns when the daemon's declared owner cannot be established.

Details 0 0 Feedback

The MCP remote bridge's owner-pinning logic now reads persisted credentials through a session store selector tracking credentialsPersisted, replacing the previous ad hoc token tracking. A new helper computes and logs the daemon's declared owner, warning when neither a bootstrap stamp nor a server-attributed daemon credential is available in time.

·Internal
Under the hood
Useful2 Signal3
Diskless Sessions

Diskless session hardening for device-hook templates and temp dir#

In a diskless session the device-hook template runner and the shared temp-directory helper now throw instead of touching disk.

Details 0 0 Feedback

In a diskless session (detected via FN() reading host.launchOptions.diskless()), the device-hook template runner is now replaced with a no-op stub whose prepare() throws, and the shared per-uid temp-directory helper throws immediately instead of creating anything on disk.

·Internal
Under the hood
Useful2 Signal3
Compliance

Compliance-taint notifications now filtered through an extra visibility check#

Compliance-taint notifications pass through an extra visibility check, so only some reasons reach the user.

Details 0 0 Feedback

Compliance-taint status-bar notifications and bar entries are now filtered through a new visibility check before being surfaced, so only some taint reasons are shown to the user going forward.

Related

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

·Internal
Under the hood
Useful2 Signal3
Directory Sync

Directory sync gains a pluggable "held state" probe, defaulting to unmerged-index detection#

Directory sync takes a pluggable held-state probe that by default detects an unmerged git index.

Details 0 0 Feedback

Directory sync now accepts a pluggable heldStateProbe callback used in its fast-forward/held logic. By default it checks for an unmerged_index condition, letting sync detect an unresolved merge state on the local checkout and react accordingly.

·Internal
Under the hood
Useful2 Signal3
Tools

Reply-tool text suppression tracking#

A map tracks reply-style tool calls and marks the message shown once the matching result returns without error.

Details 0 0 Feedback

A new pending-reply-tool-use map tracks tool_use blocks whose names fall in a fixed set, and marks the corresponding assistant message as shown once the matching tool_result returns without error. This supports timing when a reply-style tool's response has actually been surfaced to the user.

·Internal
Under the hood
Useful2 Signal3
Directory Sync

Directory sync now distinguishes 'repository left' outcome and tracks unshipped turns#

Sync clearing reports a distinct repository-left result, and turns whose changes could not ship are marked unshipped.

Details 0 0 Feedback

The directory-sync git worker's clearing logic now returns a distinct repository_left result, carrying setAsideIn, moved, and left details, instead of folding this case into a generic not_cleared/REPOSITORY_LEFT code. Turn records also gain an unshipped flag plus an M.unshippedTurn marker when a turn's changes couldn't be shipped, to support later retry or reporting.

·Internal
Under the hood
Useful2 Signal3
Remote Control

Remote bridge session transport gains an internal event uploader config#

The bridge transport config now carries internal-event uploader limits and a background-tasks callback.

Details 0 0 Feedback

The v2 remote-control bridge transport setup now passes an internalEventUploader block into the transport config, configuring max consecutive failures, max batch bytes, and a request timeout. A new onBackgroundTasks callback is also threaded through session setup alongside it.

·Internal
Under the hood
Useful2 Signal3
Permissions

Richer permission-ask telemetry timing fields#

Permission asks now record how long they were queued and asking, feeding new timing fields into tool-call telemetry.

Details 0 0 Feedback

A new PendingCall-tracking class records elapsedMs, queuedMs, and askingMs for each tool permission ask. This feeds new fields into the MCP tool-call outcome telemetry event: time_to_terminal_ms, asking_ms, queued_ms, checkin_misses, held, call_id, and host_epoch.

·Internal
Under the hood
Useful2 Signal3
Directory Sync

Git worktree background-sync conflict tracking#

Worktree background-sync payloads now carry a capped list of conflicted paths from the git index.

Details 0 0 Feedback

Git worktree background-sync payload and response schemas now include a conflicted field, a capped list of conflicted paths sourced via git ls-files -u, surfaced alongside the existing fastForwardedTo and downApplied counts.

·Internal
Under the hood
Useful2 Signal3
Artifacts

Artifacts tool gains a 'versioned' result kind#

The artifacts tool handles a new versioned result kind, falling back to telling the model to fetch the URL.

Details 0 0 Feedback

The artifacts tool's result mapper now handles a new versioned record kind alongside the existing sync/verify/etc. kinds, parsing it and rendering it via a mapVersionResultContent callback. If the record can't be parsed, it falls back to a message telling the model to fetch the artifact URL for the document as it stands.

·Internal
Under the hood
Useful2 Signal3
Teammates

In-process teammate runner adds mailbox re-check retry loop at turn end#

A teammate finishing a turn now re-checks its mailbox within a budget instead of giving up after one look.

Details 0 0 Feedback

After an in-process teammate agent finishes a turn, the runner now retries checking its mailbox for new instructions, waiting and re-checking while a read-failure/count budget (F.readFailures < qJ) allows it, instead of giving up after a single failed or empty check.

Related

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

·Internal
Under the hood
Useful2 Signal3
Sandbox

Sandboxed shell commands now get extra git config injected#

Sandboxed shell commands can have extra git config injected, populated only when sandboxing is active.

Details 0 0 Feedback

Sandboxed shell command execution now threads an extraGitConfig array into the exec command builder. It is only populated when sandboxing is active, and empty otherwise.

·Internal
Under the hood
Useful2 Signal3
Artifacts

New telemetry/error branch for unavailable host MCP servers in manifests#

Publish manifest validation now distinguishes a named host MCP server being unavailable from other malformed cases.

Details 0 0 Feedback

Manifest validation for artifact publish now distinguishes a host_unavailable failure kind from other malformed-manifest cases, emitting host_server_unavailable telemetry and a dedicated count when a host MCP server named in the manifest isn't available.

Related

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

·Internal
Under the hood
Useful2 Signal3
Tools

Dynamic tool discovery now also tracks tools surfaced via deferred_tools_delta attachments#

The scan for already-discovered tools now also counts names surfaced via deferred-tool delta attachments.

Details 0 0 Feedback

The scan for discovered/dynamic tools in transcript history now also reads deferred_tools_delta attachments and includes their surfacedNames, with support for an exceptAnnouncements exclusion set, expanding what counts as a previously-discovered tool for dynamic tool loading.

Related

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

·Internal
Under the hood
Useful2 Signal3
MCP

New telemetry for deferred MCP tool consistency#

Deferred MCP tool tracking now reports when a deferred tool's entry differs from what was actually sent.

Details 0 0 Feedback
defer_loading

Tracking of MCP tools declared with defer_loading now records whether a deferred tool's entry differs from what was actually sent when referenced, reporting via the mcp_kept_deferred_tools telemetry event, including a dedicated failure case for this bookkeeping.

Related

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

·Internal
Under the hood
Useful2 Signal3
Tools

ToolSearchTool now scopes MCP tool filtering by agent/session betas#

ToolSearch now filters the tool pool per agent and session betas before running its search.

Details 0 0 Feedback
ToolSearch

ToolSearchTool now takes agentId and stickyBetas from context and filters the tool pool through a new per-agent filter before running keyword/select search, rather than searching the raw tool list directly.

Related

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

·Internal
Under the hood
Useful2 Signal3
Prompt Caching

Tool-definition prompt cache key gains new bits for query source and prompt trimming#

The tool-definition cache key now also reflects the query source and whether prompt trimming was applied.

Details 0 0 Feedback

The cache key used to reuse compiled tool definitions across turns now also factors in whether the query came from a particular source, adding a new "K:" prefix, and whether first-line pre-read or bash-first prompt trimming was applied. This joins the existing lean-prompt ("L:") and grep ("G:") bits already in the key.

Related

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

·Internal
Under the hood
Useful2 Signal3
Bash no docs found

Bash tool prompt now caches available skill commands and supports lean/trimmed prompt variants#

The Bash prompt caches its skill-command list per session and accepts lean and trimmed prompt variants.

Details 0 0 Feedback
leanPrompt

The Bash tool's prompt-building now caches the list of bash-related skill commands, bashPromptSkillCommands, on a per-session object instead of recomputing it on every call. Prompt generation also now accepts new leanPrompt and bashFirstTrimmed options.

Related

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

·Internal
Under the hood
Useful2 Signal3
Remote Tool Serving

Bash tool permission matcher now includes more deciding fields#

Bash remote execution lists which input fields decide whether an existing permission still covers a call.

Details 0 0 Feedback
run_in_backgrounddangerouslyDisableSandbox

The Bash tool's remote-execution config now includes a decidingInputFields list covering command, run_in_background, and dangerouslyDisableSandbox, used to decide whether an existing remote-execution permission still applies to a given call.

Related

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

·Internal
Under the hood
Useful2 Signal3
Remote Control

Remote control-response handling for error-shaped dialog replies#

An error-shaped reply from elsewhere can be configured not to dismiss a dialog request a worker is still waiting on.

Details 0 0 Feedback

RemoteSessionManager supports a new ignoreErrorShapedDialogReplies config flag for reconciling pending user dialog requests across workers. When enabled, an error-shaped control_response for a still-pending dialog request no longer dismisses it locally; instead the code logs "User dialog request ... got an error-shaped reply elsewhere — worker still waiting, keeping it" and leaves the dialog pending.

·Internal
Under the hood
Useful2 Signal3
Tools no docs found

AskUserQuestion-style tool prompt gains a leanPrompt parameter#

The AskUserQuestion prompt now receives a lean-prompt flag that can suppress a guidance snippet.

Feature flag
tengu_cinder_plover 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.257: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback
leanPrompt

The AskUserQuestion-style tool's prompt() now also receives a leanPrompt parameter alongside model. The condition for injecting the tengu_cinder_plover guidance snippet now checks both together, so a lean-prompt mode can suppress or alter that text independent of which model is selected.

·Internal
Under the hood
Useful2 Signal3
Compliance

Error-tracking reports now gated by a compliance check before sending#

Error-tracking batches are dropped unless a compliance check covering taint, restriction and auth passes first.

Details 0 0 Feedback

Datadog error-tracking batches are now dropped, with a warning logged, unless a compliance check passes first, rather than always being sent. The check reuses the existing error-reporting allow logic, covering taint, restriction, and auth-token checks.

Related

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

·Internal
Under the hood
Useful2 Signal3
Remote Control

Remote session manager redelivered request handling generalized#

Redelivered permission requests now share re-arm logic with dialog requests, behind a new config flag.

Details 0 0 Feedback

Handling of redelivered permission requests over a remote/cloud session is now gated by a new config flag and shares logic with dialog-request redelivery through a common rearmRedelivered helper, rather than only handling dialog requests.

·Internal
Under the hood
Useful2 Signal3
Tools no docs found

New 400-error classification for tool_addition/tool_removal API errors#

Rejected mid-conversation tool additions are now sorted into specific 400-error reasons for retry and telemetry.

Details 0 0 Feedback
header_rejectedmodel_unsupportedtoo_many_definitions

New internal classification logic sorts 400 errors from beta tool-use blocks into specific reasons: header_rejected, block_type_unknown, after_paused_turn, model_unsupported, too_many_definitions, pfc_only, unknown_tool_reference, or other. This applies when a tool_addition or tool_removal request is rejected, likely feeding retry and telemetry logic for beta feature flags.

·Internal
Under the hood
Useful2 Signal3
Settings

managedSettings 'merge' mode composition rules made explicit and expanded#

Managed settings merge mode now documents which fields the helper replaces wholesale rather than merging.

Details 0 0 Feedback
fallbackModelallowedMcpServersallowedHttpHookUrls

The documentation for a helper's managedSettings 'merge' mode now spells out per-field composition rules: helper scalars win, arrays union, and objects merge, except for a fixed list of fields — fallbackModel, forceLoginOrgUUID, sandbox.filesystem.allowRead, sandbox.credentials.awsPairs, sandbox.ripgrep, and restriction allowlists like allowedMcpServers, availableModels, and allowedHttpHookUrls — where the helper's value replaces the source's wholesale when it emits one. Permission tightening remains deny-only.

Related

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

·Internal
Under the hood
Useful2 Signal3
Network no docs found

New X-Frame-Session-Id header on outgoing requests#

Outgoing requests now carry a frame session id header.

Details 0 0 Feedback
X-Frame-Session-Id

Outgoing requests now include an X-Frame-Session-Id header, sourced from a session/frame id helper with fallback to a generated id.

Related

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

·Internal
Under the hood
Useful2 Signal3
Permissions

Permission-approval payload now carries caller instance and model info#

Tool-approval payloads now include the caller instance id and model info.

Details 0 0 Feedback

The payload sent for tool-call approvals now carries instance_id, populated from a new callerInstanceId parameter, plus model info, alongside the existing permission_mode and is_bypass_available fields.

·Internal
Under the hood
Useful2 Signal3
Artifacts no docs found

Clipboard stash behavior replaced by a feature-gated no-op check#

The clipboard stash-and-restore around tool use is gone, leaving only a flag check for whether the behavior is on.

Feature flag
tengu_elegant_pancake 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.257: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

The function that previously stashed and restored clipboard contents around tool use has been replaced with a boolean feature-gate check (tengu_elegant_pancake); the actual stash/restore logic is no longer here, and the function now just answers whether the behavior is on.

·Internal
Under the hood
Useful2 Signal3
Models no docs found

New per-family capability gate check via remote feature flags#

Per-family capability gates now use a name-to-flag table instead of matching skill and tool name strings.

Details 0 0 Feedback
per_turn_effort

The helper for checking per-family capability gates no longer relies on heuristic string matching against skill/tool names. It now looks up a table mapping local names like per_turn_effort to remote flag names like tengu_per_turn_effort and queries featureGateLookup directly.

Related

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

·Internal
Under the hood
Useful2 Signal3
Artifacts no docs found

New 'sync_unavailable' outcome for live/container sync connections#

Live sync connections recognize a sync-unavailable outcome, handled like other skip reasons for backoff.

Details 0 0 Feedback
sync_unavailable

Live/container sync connections now recognize a sync_unavailable outcome, meaning the live channel is not available to the session right now. It's handled the same way as the existing boot_failed and ws_open_error skip reasons for retry/backoff bookkeeping.

Related

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

·Internal
Under the hood
Useful2 Signal3
MCP

APPROVAL_REQUIRED added to connection/error status set#

A new approval-required status joins the connection status set for tools needing explicit approval.

Details 0 0 Feedback

A new APPROVAL_REQUIRED status has been added alongside POLICY_BLOCKED, DISABLED, and IDENTITY_CHANGED, surfacing MCP/tool connections that need explicit approval before proceeding.

·Internal
Under the hood
Useful2 Signal3
Directory Sync no docs found

New sync outcome "peer_unshipped"#

A new sync outcome covers a peer that has not shipped a change yet.

Details 0 0 Feedback
peer_unshipped

A new sync outcome, peer_unshipped, has been added alongside statuses like applied, nothing_new, upload_only, and refused, covering the case where a cross-device or cross-session sync peer hasn't shipped a change yet.

Related

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

·Internal
Under the hood
Useful2 Signal3
Remote Tool Serving

Removed "cancelled" as a terminal failure reason for host answers#

Cancellation is no longer a host-answer failure reason and instead goes through the withdrawn or superseded path.

Details 0 0 Feedback

The failure reasons for the host-answer flow (failed_host_error, failed_invalid_reply, answer_failed) no longer include cancelled, as cancellation is now handled through the withdrawn/superseded path instead of being treated as a failure.

Related

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

·Internal
Under the hood
Useful2 Signal3
Compliance

HIPAA compliance gate for a code path#

A new guard alters some behavior when HIPAA compliance mode is active.

Details 0 0 Feedback

A new guard checks a HIPAA compliance flag via cy("hipaa"), falling back to allowed when a base condition is false. This restricts or alters some feature's behavior when HIPAA compliance mode is active.

Related

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

·Internal
Under the hood
Useful2 Signal3
Directory Sync

Directory sync (git-based cloud sync): mid-turn and end-of-turn short-circuiting#

Sync arming takes mid-turn and end-of-turn options and returns early on failure paths as a session ends.

Details 0 0 Feedback

The directory-sync arming routine now accepts midTurn and forEnd options, letting it run defensively at end-of-turn without forcing a sync start. Several of its failure paths now return early instead of retrying, reducing redundant work when a session is ending.

·Internal
Under the hood
Useful2 Signal3
Sessions no docs found

New wire_tool_inputs field recorded on API request diffing#

The request-diffing diagnostic payload now includes the raw wire tool inputs when non-empty.

Details 0 0 Feedback
wire_tool_inputs

The system-prompt/request diagnostic payload used for API request diffing now includes a wire_tool_inputs field, populated only when non-empty, alongside existing fields like batchToolUses.

Related

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

·Internal
Under the hood
Useful2 Signal3
Artifacts

Artifact comment anchor-snippet caching now supports nested region snippets#

Comment anchor snippets now also cache nested child-node snippets for region-anchored threads.

Details 0 0 Feedback

The DOM-diffing logic used to compute comment anchor snippets now also computes and caches nested child-node ("kids"/region_inside) snippets for comment threads anchored to a specific region, rather than only the top-level anchor element.

Related

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

·Internal
Under the hood
Useful2 Signal3
MCP

New reconnect settlement outcomes for MCP servers#

MCP reconnect settlement now returns dropped, superseded, refused or applied, closing connections invalidated by an account switch.

Details 0 0 Feedback

MCP server reconnect/settlement logic now returns a distinct outcome: dropped, superseded, refused, or applied, instead of void. The new superseded outcome applies when a settlement is invalidated by a concurrent account switch, in which case the connection is closed rather than installed.

·Internal
Under the hood
Useful2 Signal3
Auth

Presence pings now skip for non-first-party auth providers and retry once on 401#

Presence heartbeats are skipped for non-first-party auth and retried once after a 401 credential refresh.

Details 0 0 Feedback

The client presence heartbeat now checks whether the auth provider is first-party before sending a pulse, skipping it otherwise. On a 401 response, it retries once after attempting a credential refresh via onUnauthorized.

·Internal
Under the hood
Useful2 Signal3
Device Bridge no docs found

Device tool bridge can now scope served tools by name#

The device tool registry can restrict which device tools are served by name, used by the new mute feature.

Details 0 0 Feedback

The device tool registry gained a withholdAllExcept method that restricts which device tools are actually served, used by the new device bridge mute feature, while tracking whether unserved changes exist.

Related

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

·Internal
Under the hood
Useful2 Signal3
Models

Cached advisor-resolution reuse now checks resolved advisor model#

Cached prompt params are no longer reused when the resolved advisor model has changed mid-session.

Details 0 0 Feedback

The prompt-caching reuse check for a saved tool-use context now also verifies that the resolved advisor model still matches what was previously resolved before reusing cached params. This prevents a stale advisor from being reused when the advisor setting or model changes mid-session.

·Internal
Under the hood
Useful2 Signal3
Remote Control

GrowthBook feature gates gain a disk cache fallback path in daemon remote control#

With no org identity or a failed init, feature gates in the headless daemon serve cached or default values.

Feature flag
tengu_daemon_upgrade_defer_busy 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.257: on

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

The headless daemon's remote-control bridge now initializes 1P event logging, GrowthBook, and OAuth account backfill before running. When there's no org identity, it logs that GrowthBook isn't initialized and feature gates serve cached or default values instead; if GrowthBook initialization itself fails, gates fall back to serving the disk cache rather than failing outright.

Related

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

·Internal
Under the hood
Useful2 Signal2
Group of 3 MCP

New ku().record() redaction registry used across MCP auth code paths#

MCP auth secrets are registered with a scrubbing utility so they can be redacted from logs and quoted response bodies.

Details 0 0 Feedback

Several MCP authentication code paths now call ku().record(...) to register sensitive values before they are used or attached to requests: the claude.ai proxy bearer token, the XAA jwt-bearer client secret/assertion, a basic-auth header, and WS auth tokens. Bearer tokens sent to claude.ai-backed servers are likewise recorded via ku().record(...) before being attached to the Authorization header, in both the claude.ai-proxy and generic OAuth request wrappers.

When constructing SSE/HTTP/WS MCP transports, custom headers are also passed through a new $le(headers, ...) call before the transport is built. $le scans header names/values against a secret-pattern regex (auth|token|key|secret|cookie|session|sig|pass|cred|bearer) and records matches via ku().record(...) unless recordingOff(), tracking credential-like strings seen in outgoing MCP requests, presumably for later redaction or leak detection.

·Internal
Under the hood
Useful3 Signal2
Settings

Settings watcher now waits for not-yet-existing settings directories to appear#

The settings watcher can wait for a settings directory that does not exist yet and start watching once it appears.

Details 0 0 Feedback

The settings file watcher can now watch a parent directory for a settings directory that doesn't exist yet, and automatically starts watching it once it appears, instead of only watching directories that already existed at startup.

·Internal
Under the hood
Useful2 Signal2
Subagents

Subagent transcript lazy-hydration gained a 'create-only' write mode and richer outcome telemetry#

Fetched subagent transcripts can be written create-only so a locally-written copy is not clobbered.

Details 0 0 Feedback

The lazy subagent-transcript fetch path now tracks whether a subagent's transcript was already written locally (agentIdsWrittenLocally/hasWrittenAgentLocally) separately from whether it was already fetched. Writing a fetched transcript can pass createOnly to avoid clobbering a locally-written version, returning distinguishable outcomes like exists, written, or backend_no_create. The subagent_lazy_fetch telemetry event now includes a written_locally field.

·Internal
Under the hood
Useful2 Signal2
Session State

Session rewind now resets richer session state including 'rewound'/'resumed' kinds#

Rewind and resume now reset session state through one call that records whether it was rewound or resumed.

Details 0 0 Feedback

Session state resets triggered by rewind and resume now go through a consolidated resetForConversation call, using { kind: "rewound" } for rewinds and { kind: "resumed", messages } for resumes, replacing the older resetSessionSignals/absorbSessionSignals pair.

Related

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

·Internal
Under the hood
Useful2 Signal2
Bash

Bash tool: long-running background wait guidance reworded and gated by sandboxing capability#

The Bash tool's don't-poll guidance now appears only when a capability and background-task check both pass.

Details 0 0 Feedback
Monitor

The Bash tool's guidance on avoiding polling/sleeping and using the Monitor tool for long-running background processes is now shown only when a capability check and a background-task-support check both pass, rather than unconditionally. The guidance text itself is unchanged; only the conditions under which it appears have been refined.

Related

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

·Internal
Under the hood
Useful2 Signal2
Bash

New login/credentials telemetry store#

The Bash prompt's Monitor-tool tips are now conditioned on capability and background-task support checks.

Details 0 0 Feedback
Monitor

The Bash tool's system-prompt guidance about not polling or sleeping and instead using the Monitor tool for background processes is now conditioned on a capability check plus a background-task-support check, refining when these tips are shown.

Related

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

·Internal
Under the hood
Useful2 Signal2
Auth

New "elicitation-queued" state added to dialog/queue enum#

A small event store counts credentials-persisted and login-completed events for UI or telemetry.

Details 0 0 Feedback

A small event-store class now tracks counts of credentialsPersisted and loginCompleted events, exposed via subscribe/getSnapshot, feeding UI or telemetry about auth completion.

·Internal
Under the hood
Useful2 Signal2
Plugins no docs found

Plugin loader passes through a linkFarmProducer option#

Plugin install and load helpers now thread a linkFarmProducer option through source resolution.

Details 0 0 Feedback
linkFarmProducer

Plugin install and load helpers now pass a linkFarmProducer parameter through alongside the existing linkFarm and entryEnabled options when resolving and copying plugin sources into the cache.

·Internal
Under the hood
Useful2 Signal2
Data Retention

New locked cleanup path for stray history.jsonl staging copies#

A locked cleanup routine removes stray history staging copies while leaving recently-written ones alone.

Details 0 0 Feedback
history.jsonl

A new locked cleanup routine removes stray history.jsonl staging-copy files older than a minute, after acquiring a lock on history.jsonl. It reports distinct error codes/messages when a file can't be removed, and leaves recently-written files alone, flagging them as possibly still live (history_siblings_remain).

Related

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

·Internal
Under the hood
Useful2 Signal2
Data Retention

New cleanup category for crash-leftover history staging files#

The purge scan now covers staging copies left beside the history file by a crashed rewrite.

Details 0 0 Feedback

The purge-eligible-paths scan now includes a history-siblings category, covering staging copies that a crashed history rewrite left beside the history file. This cleans up leftovers from a previously-interrupted rewrite.

·Internal
Under the hood
Useful2 Signal2
Workflows

New telemetry: workflow_relaunch_soon#

Relaunching a named workflow soon after a previous run now reports the gap and that run's settle state.

Details 0 0 Feedback

A new workflow_relaunch_soon telemetry event fires when a named workflow is relaunched shortly after a previous run of the same name. It records the seconds since the previous launch, the previous run's settle state (open, killed, settled, or unknown), and whether that run had been steered.

Related

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

·Internal
Under the hood
Useful2 Signal2
Terminal UI

Slash-command submission gains explicit input-mode override and submit timestamp#

Submitting input records a timestamp and can override input mode, with a callback restoring a handed-back prompt.

Details 0 0 Feedback

The chat input submit handler now accepts an inputModeOverride option and records a submittedAtMs timestamp at submit time, passed through to downstream processing. A new restoreHandedBackPrompt callback, tied to rate-limit auto-continue, restores a previously handed-back prompt via consumeRateLimitAutoContinuePrefill().

·Internal
Under the hood
Useful2 Signal2
Elsewhere

isAgentsJsonInvocation added to early-input bypass check#

An agents-json invocation now also skips capturing early stdin at startup.

Details 0 0 Feedback

CLI startup now also checks isAgentsJsonInvocation alongside the existing MCP-serve, plugin-eval, and remote-control checks when deciding whether to start capturing early stdin input.

Related

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

·Internal
Under the hood
Useful2 Signal2
Telemetry

CCR internal-event uploader gains drop telemetry and tunable limits#

The internal-event uploader takes tunable failure, batch-size and timeout limits and reports dropped batches.

Details 0 0 Feedback

The CCR internal-event batch uploader now accepts maxConsecutiveFailures, maxBatchBytes, and requestTimeoutMs overrides, and reports a new tengu_ccr_internal_events_dropped telemetry event when a batch is given up on, distinguishing 'give_up' from '4xx' drop reasons.

Related

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

·Internal
Under the hood
Useful2 Signal2
Subagents

Agent transcript resumption now falls back to on-demand hydration with reason telemetry#

A missed subagent transcript read now triggers on-demand hydration and a retry before reporting it unresumable.

Details 0 0 Feedback

Fetching a subagent's transcript now first tries a fast local read, and if that misses for a reason other than a load-time throw with no partial content found, it triggers on-demand hydration and retries. If it still fails, it logs a structured agent_transcript_unresumable warning with the specific miss reason.

·Internal
Under the hood
Useful2 Signal2
Sandbox

Relaxed filesystem policy disables the new block#

Under a relaxed sandbox filesystem policy, the outside-reads block does nothing and this is now logged.

Details 0 0 Feedback
blockReadsOutsideWorkingDirectories

When the sandbox filesystem policy mode is relaxed, blockReadsOutsideWorkingDirectories enforcement is a no-op: relaxed policy drops every denyRead at wrap time, so this is now explicitly logged rather than silently ignored.

Related

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

·Internal
Under the hood
Useful2 Signal2
Telemetry

Turn-level tracking of when first text is painted#

Turns now record when the assistant's first text became visible, separating a mid-turn paint from a turn-end one.

Details 0 0 Feedback

The conversation turn engine now records precise timestamps for when the assistant's first text becomes visible, distinguishing a block_complete paint (a tool result shown mid-turn) from a turn_end paint (text held until the turn finishes while the streaming preview is in focus mode). This is internal telemetry for query timing spans, not a user-facing setting.

·Internal
Under the hood
Useful2 Signal2
Session State

Initial/launch prompt submission reworked into an explicit state machine#

The launch prompt is now submitted through an explicit state machine instead of a boolean and a polling loop.

Details 0 0 Feedback

Submission of the initial launch prompt now runs through an explicit _launchPromptPhase state machine (idle/taking/dispatched) driven by a watchLaunchPrompt/_takeLaunchPrompt subscription that reacts to changes in initialMessage and loading state. This replaces the previous single boolean flag and its 100ms polling loop.

Related

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

·Internal
Under the hood
Useful2 Signal2
Teammates

Command queue's discard/consume events centralized via a new emitter registry#

Command-queue events move to a shared registry, and peer-message admission failures are now recorded first.

Details 0 0 Feedback

The internal dun() command-queue constructor now gets its commandsDiscarded/commandsConsumed event emitters from a shared Z6e() registry instead of module-level singletons. Peer-message admission failures are now also recorded through a peer_loop_guard telemetry call before falling back to the existing hop-chain/queue-full admission checks.

Related

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

·Internal
Under the hood
Useful2 Signal2
Terminal UI

REPL controller can now detect when the app is 'waiting on the user'#

The REPL can now tell it is waiting on you, counting an open elicitation, worker or sandbox request.

Details 0 0 Feedback

The REPL controller can now detect when the app is "waiting on the user." A new internal check, _isWaitingOnUser, considers an open elicitation dialog, a pending worker request, or a pending sandbox request as reasons the UI is blocked on user input, and a new _syncUserWaiting helper pushes this state into the first-text/input widget so it can reflect a waiting state.

·Internal
Under the hood
Useful2 Signal2
SDK

SDK session tracks in-flight user permission decisions#

The SDK marks a user decision as in flight around a permission request, keeping idle and waiting state accurate.

Details 0 0 Feedback

The SDK's control-request path for tool permission requests now calls sessionState.beginUserDecision() and endUserDecision() around the request lifecycle, and matches pending requests by object identity before deleting them, making session state such as idle/waiting more accurate while a user decision is outstanding.

·Internal
Under the hood
Useful2 Signal2
Settings

Settings directory appearance triggers a rehome/rescan#

A settings directory appearing now triggers a rescan, so new settings files are picked up without a restart.

Details 0 0 Feedback

When a previously-missing settings directory is detected as created, the watcher logs its appearance and triggers a settings rescan, picking up newly-created settings files without requiring a restart.

·Internal
Under the hood
Useful2 Signal2
Workflows

Workflow v2 gains kill/steer/run outcome telemetry#

The workflow engine now reports structured outcomes for kills, steering, run settlement and calls after a kill.

Details 0 0 Feedback

The v2 workflow engine now emits structured telemetry across its lifecycle: workflow_kill on kill, workflow_steer for programmatic steering via put/retract/script, workflow_run on run settlement with subtypes like script_failed, killed, error_result, rule_error, and no_result, and workflow_after_kill when a call happens after a run has already been killed.

Related

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

·Internal
Under the hood
Useful2 Signal2
MCP

MCP enterprise-policy block errors now carry a reason#

An MCP server blocked by enterprise policy now carries a structured reason on the error.

Details 0 0 Feedback

When enterprise-managed policy blocks an MCP server, the resulting error now carries a structured reason attached via a new nnn(...) call, rather than a generic denial. The error message itself also now wraps the server name with a formatting helper (yr), as in "MCP server ${yr(Et)} is blocked by enterprise managed policy".

·Internal
Under the hood
Useful2 Signal2
Telemetry

New time-to-first-text telemetry for assistant turns#

A new event tracks how long the first visible text of a turn takes, including time spent waiting on you.

Details 0 0 Feedback

A new analytics event, tengu_turn_first_text, tracks how long it takes for the first visible text of an assistant turn to appear. It records whether the text arrived after tool use, time spent waiting on the user, and the latency between prompt submission and send.

·Internal
Under the hood
Useful2 Signal2
Sandbox

Session sandbox/settings scan now also protects a new policy-limits path pair#

Two more policy-limits paths join the fixed set always treated as reach-relevant during settings scans.

Details 0 0 Feedback
policy-limits.json

The fixed set of paths always treated as reach-relevant during session sandbox/settings scans now includes two additional policy-limits.json locations, returned by helper functions, alongside the existing set of scheduled_tasks.json, launch.json, CLAUDE.md, daemon.json, and policy-limits.json.

Related

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

·Internal
Under the hood
Useful2 Signal2
MCP

MCP server env-var scrubbing for allow/deny display now covers a fallback env too#

Env-var masking in allow and deny server displays now also covers a fallback env source.

Details 0 0 Feedback

The env-var scrubbing used when building deniedMcpServers and allowedMcpServers display lists now also redacts and normalizes a fallback env source (yxn().fallbackEnv) in addition to the primary env map, so MCP server commands and URLs shown for allow/deny rules stay masked regardless of which env the values came from.

·Internal
Under the hood
Useful2 Signal2
Settings

Managed settings merge mode gains sandbox config exceptions#

Two sandbox config keys are now documented as owned whole by the highest-priority source rather than merged.

Details 0 0 Feedback
sandbox.credentials.awsPairssandbox.ripgrep

Managed settings documentation for the "merge" composition mode now lists sandbox.credentials.awsPairs and sandbox.ripgrep as additional keys owned whole by the highest-priority source rather than merged, joining the existing allowlist exceptions.

Related

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

·Internal
Under the hood
Useful2 Signal2
Sandbox

Sandboxed grep/awk argument allowlisting#

New parsers pull file-path operands out of grep and awk arguments so they can be allowlisted for the sandbox.

Details 0 0 Feedback
sandbox.ripgrep

New helper functions parse grep and awk command-line arguments to extract path-like operands for sandboxing, recognizing flags such as -e/--regexp and -A/--after-context for grep, and -F/--field-separator, -f/--file, -E/--exec for awk. This distinguishes which arguments are file paths versus regex or script content, supporting path-allowlisting tied to the sandbox.ripgrep managed setting.

Related

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

·Internal
Under the hood
Useful2 Signal2
Auth

Gateway TLS refresh now proxies through configured HTTP proxy and follows no redirects#

Gateway token refresh now goes through the configured HTTP proxy and follows no redirects.

Details 0 0 Feedback

The gateway token refresh request now routes through an httpsAgent built from the configured HTTP proxy and no longer follows redirects (maxRedirects: 0). It also classifies specific transient failure reasons.

·Internal
Under the hood
Useful2 Signal2
Permissions

allowManagedPermissionRulesOnly semantics clarified/expanded#

The allowManagedPermissionRulesOnly description now spells out exactly which rule sources it ignores and which still apply.

Details 0 0 Feedback
allowManagedPermissionRulesOnly

The description of allowManagedPermissionRulesOnly has been rewritten for precision: it now explicitly ignores permission rules from user, project, local, and --settings files, as well as allow rules from --allowedTools, while --disallowedTools and other deny/ask rules from the CLI or session still apply.

Related

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

·Internal
Under the hood
Useful2 Signal2
Sandbox

Env var forwarding for whole-value masked credentials tightened#

An AWS credential pair is dropped when its env vars are not forwarded as whole-value masks, with the causes listed.

Details 0 0 Feedback
credentials.awsPairs

Sandbox credential handling now drops a credentials.awsPairs entry when the env vars it references aren't forwarded as whole-value mask entries. The resulting warning lists the possible causes: trust filtering, deny-override, the var never being declared, or extract/decode use.

Related

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

·Internal
Under the hood
Useful2 Signal2
Terminal UI no docs found

Dialog "yieldsToPanels" flag removed, replaced by hideWhile#

Dialogs drop the yields-to-panels property in favour of a hideWhile array coordinating visibility with side panels.

Details 0 0 Feedback
hideWhile

Confirmation-dialog schemas (cancel, retry, confirm, and others) no longer carry the yieldsToPanels property. Newer dialog schemas instead carry a hideWhile array, which coordinates how modal dialogs handle visibility alongside side panels.

·Internal
Under the hood
Useful2 Signal2
Telemetry no docs found

New tengu_tool_schema_sizes telemetry event with dedup cache#

A new event breaks down tool schema sizes by category, deduplicated and capped at 512 hashes.

Details 0 0 Feedback

API-success telemetry now emits a separate tengu_tool_schema_sizes event that breaks down tool schema character lengths by category (static, mcp_tool, skill_tool, other), deduplicated and capped at 512 distinct hashes. The existing tengu_api_success event also gains a new requestPrefixTelemetry block.

·Internal
Under the hood
Useful2 Signal2
Agent Proxy

Agent-proxy WebSocket open failures now report a probe error alongside retry exhaustion#

A failed proxy websocket open now reports the dial-time probe error and stops after one attempt.

Details 0 0 Feedback

When the WebSocket tunnel to the CCR agent-proxy fails to open, the error message now appends any probe error observed at dial time, giving more detail on the underlying cause. A probe error encountered at dial time also forces immediate exhaustion of the connection attempt (effectively capping it at 1 try) instead of going through the normal retry count.

Related

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

·Internal
Under the hood
Useful2 Signal2
MCP

MCP connection logs now sanitize server URLs before printing#

MCP connection diagnostics now redact server URLs before printing them.

Details 0 0 Feedback

MCP connection diagnostics, including the HTTP connectivity test and SSE/HTTP failure logs, now pass server URLs through a redaction/sanitization helper before printing them, rather than logging the raw URL.

·Internal
Under the hood
Useful2 Signal2
Sessions

New diagnostic when a daemon.lock names a PID this user can't signal#

An unsignalable daemon lock PID is now checked for recycling or predating boot before the lock is replaced as stale.

Details 0 0 Feedback
daemon.lock

When the supervisor can't signal a process referenced by daemon.lock for a reason other than ESRCH, it now checks via a new helper whether the PID is recycled or predates the current boot. If so, it writes a supervisor log line explaining that the lock is being replaced as stale, distinguishing predates_boot from a recycled PID belonging to another process.

Related

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

·Internal
Under the hood
Useful2 Signal2
Workflows

Workflow kill now passes an explicit signal to the run#

Killing a workflow now forwards an explicit signal, and notifications skip recovery and diagnostics blocks.

Details 0 0 Feedback

Killing a workflow now forwards an explicit signal to v2Run.kill(r) instead of an implicit kill. Workflow completion and failure notifications also skip the recovery and diagnostics blocks entirely when a v2Run is present.

Related

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

·Internal
Under the hood
Useful1 Signal2
Model Catalog

Model catalog telemetry now records catalog source and does session-masking comparisons#

Model catalog comparison telemetry now records which catalog the models came from and accounts for session-masked ids.

Details 0 0 Feedback

The tengu_model_catalog_compare telemetry event now includes a catalog_source field, and the shadow-compare logic that checks served catalogs against local ones now factors in session-masked model IDs (sessionMaskedIds) when comparing. The catalog source is also logged in the debug line.

Related

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

·Internal
Under the hood
Useful1 Signal2
Elsewhere

Teleport shown telemetry now distinguishes no-bridge state#

Teleport exposure telemetry now distinguishes shows where no bridge connection was available.

Details 0 0 Feedback

The Teleport UI's shown exposure telemetry event now logs a distinct value (shown_no_bridge) when there's no bridge connection available, letting analytics separate normal shows from shows where sending to the cloud isn't possible.

·Internal
Under the hood
Useful1 Signal2
Teammates

New swarm_inbox_poll telemetry event for repeated mark-read failures#

A new event reports the first time a run of mark-read failures happens in a multi-agent session.

Details 0 0 Feedback

A new swarm_inbox_poll telemetry event fires the first time a mark-read-failed streak occurs, tagged with reason mark_read_failed_streak, giving visibility into inbox synchronization problems in multi-agent/team sessions.

Related

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

·Internal
Under the hood
Useful1 Signal2
Tools

New telemetry for declared-tool-set repairs#

A new event tracks how often a session has to defer late tools or redeclare dropped ones.

Details 0 0 Feedback

A new telemetry event, tengu_declared_tool_set_held, fires when a session's declared tool set has to defer late-arriving tools or redeclare previously-dropped tools, tracking how often that repair happens.

·Internal
Under the hood
Useful1 Signal2
Models no docs found

New telemetry for unrecognized/unserved model spellings at startup#

Startup now reports when an org's default model name is unrecognized or a requested family spelling went unserved.

Details 0 0 Feedback
family_spelling_unserved

Startup model resolution now tracks two new conditions: whether the org's default model name is unrecognized, and whether a "family spelling" requested by the user went unserved (family_spelling_unserved). Both are now reported as telemetry outcomes.

Related

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

·Internal
Under the hood
Useful1 Signal2
Sessions

Stale daemon lock replacement telemetry#

Replacing a stale daemon lock now reports the proof type, holder age and whether it ran a different version.

Details 0 0 Feedback

When the background daemon detects and replaces a stale lock file, either because the holder predates boot or its PID was recycled, it now emits a tengu_daemon_stale_lock_replaced telemetry event recording the proof type, the holder's age, and whether the holder was running a different version.

·Internal
Under the hood
Useful1 Signal2
Prompt Caching

Prompt-cache-break diagnostics expanded#

Prompt-cache-break warnings now record whether the build version changed and the baseline message counts.

Details 0 0 Feedback

The internal warning logged when the prompt cache unexpectedly breaks now also records versionChanged (whether the build version changed since the cached baseline) and how many messages were in the baseline versus the new conversation, making it easier to diagnose the cause of cache invalidation.

Related

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

·Internal
Under the hood
Useful1 Signal2
Sessions no docs found

New default-on internal flag tengu_rosy_donut#

A new internal flag, on by default, gates some turn and line attribution behavior.

Feature flag
tengu_rosy_donut 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.257: on

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

A new internal flag, tengu_rosy_donut, defaulting to true, gates some turn/line-attribution behavior via a helper LSe().

Related

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

·Internal
Under the hood
Useful1 Signal2
Sessions no docs found

cli_bg_dispatch telemetry gains cwd_gone reason#

Background dispatch telemetry records a missing working directory as its own reason.

Details 0 0 Feedback
cwd_gone

The claude --bg dispatch failure telemetry (cli_bg_dispatch) now records a distinct cwd_gone reason, tracked through the same success/failure counter as gate_blocked, instead of grouping it with generic spawn failures.

·Internal
Under the hood
Useful1 Signal2
Sessions

Background worker retirement log now reports worker CLI version#

The worker-retirement log now includes the worker's CLI version when the daemon considers it stale.

Details 0 0 Feedback

The daemon's log line for retiring a background worker now includes the worker's CLI version, sanitized against a strict pattern, when the daemon considers that version stale, alongside the existing idle time and cause.

·Internal
Nothing to try yet
Useful1 Signal2
Elsewhere no docs found

tengu_fizzy_grove gate swaps the interrupt error code#

A gate decides which of two error codes an interrupt-triggered abort reports.

Feature flag
tengu_fizzy_grove 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.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

On abort or interrupt, a helper now picks between two different error-code constants based on the tengu_fizzy_grove gate: when the gate is true and the abort reason is 'interrupt', a different constant is returned than on the default path. Multiple call sites already use this for turn-abort error reporting, so only the gate value decides which code ships.

·Internal
Under the hood
Useful2 Signal1
Auth

OAuth callback server errors now carry distinct user-facing names#

OAuth callback failures such as port-in-use or timeout now carry distinct short names.

Details 0 0 Feedback

Errors from the local OAuth callback listener, covering port-in-use, server failure, timeout, and unexpected auth result, now carry a distinct short name alongside the detailed message instead of being plain Error objects.

·Internal
Under the hood
Useful2 Signal1
Directory Sync no docs found

Directory sync adds a local-wait recheck interval parameter#

Directory sync gains an option controlling how often local wait states are rechecked.

Details 0 0 Feedback
localWaitRecheckMs

Directory sync adds a localWaitRecheckMs option controlling how often local wait states are rechecked, added alongside the renamed upload-subject and offline-republish parameters.

·Internal
Under the hood
Useful2 Signal1
Terminal UI

New emoji shorthand alias table#

A new table maps emoji shorthand names such as thumbsup to their canonical gemoji names.

Details 0 0 Feedback

A new emoji shorthand alias table maps common shorthand names, such as thumbsup and gb, to their canonical gemoji names, such as +1 and uk, for use in rendering or validating emoji references in UI text or plugin content.

·Internal
Under the hood
Useful2 Signal1
Updater

npm cache stale-entry cleanup reworked to scan on-disk index files directly#

Stale npm cache entries are now cleaned by walking the cache index directly and removing both record and blob.

Details 0 0 Feedback

The periodic cleanup of stale @anthropic-ai/claude-* entries in the npm cache no longer goes through the npm cache library's streaming API. It now walks the cache's index-v5 directory directly, parsing entries itself, and removes both the index record and the content blob for expired or duplicate entries.

Related

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

·Internal
Under the hood
Useful1 Signal1
Artifacts

Unattended/Artifact monitoring: kill-agents chord no longer threaded through rearm call#

The kill-agents chord binding is no longer passed when re-arming an artifact live watch on mount.

Details 0 0 Feedback

In rearmArtifactLiveOnMount, the killChord: () => Oh("chat:killAgents", ...) option has been removed from the call, so the kill-agents chord binding for this path is no longer set here.

Related

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

·Internal
Under the hood
Useful1 Signal1
Workflows

World engine retract() made iterative#

The workflow engine's retract now loops instead of recursing, avoiding stack limits on deep fact trees.

Details 0 0 Feedback

The world engine's retract() was rewritten from recursive child-retraction to an explicit stack-based loop using beginRetract and a while loop, avoiding stack depth issues on deeply nested workflow fact trees.

Related

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

·Internal
Under the hood
Useful1 Signal1
MCP

MCP OAuth scope also redacted in step-up-pending log#

The step-up-pending log now redacts the pending OAuth scope value.

Details 0 0 Feedback

The 'Step-up pending' log message now redacts the pending OAuth scope value instead of interpolating it directly, matching the existing redaction of refresh_token.

Related

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

·Internal
Under the hood
Useful1 Signal1
Agent Proxy

Agent proxy exhausted-retry telemetry#

A CA-fetch retry loop that keeps failing past a threshold now reports it as exhausted and keeps retrying.

Details 0 0 Feedback

When the CA-fetch retry loop keeps failing past a threshold, it now emits an agent_proxy_init_ca_exhausted telemetry event marking the loop as exhausted, then continues retrying anyway.

Related

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

·Internal
Under the hood
Useful1 Signal1
Plugins

Plugin path-traversal errors can now include a reason#

The path-escapes-plugin-directory error can now append a reason when the underlying error carries one.

Details 0 0 Feedback

The "Path escapes plugin directory" error message can now append an optional — {reason} suffix when the underlying error carries one, giving more context on why a plugin path was rejected.

·Internal
Under the hood
Useful1 Signal1
Telemetry

tengu_heron_brook telemetry now also reports client-data-provided values consistently#

A flag's applied-event telemetry is now emitted once from the caller instead of at duplicated call sites.

Feature flag
tengu_heron_brook 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.257: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

The tengu_heron_brook value resolution, choosing between a client-data override and a local flag, has been refactored so the tengu_heron_brook_applied telemetry event is emitted once from the caller after a value is chosen, unifying previously duplicated call sites.

·Internal
Under the hood
Useful1 Signal1
Directory Sync

New telemetry field for what's holding a sync pass#

Sync pass telemetry now records which snapshot-refusal reason held the pass back.

Details 0 0 Feedback

The passEnded telemetry event emitted by the directory-sync pass function now includes a heldBy field, recording the snapshot-refusal reason that held the pass back, alongside the existing outcome/landed/kept fields.

·Internal
Under the hood
Useful1 Signal1
Remote Control

Remote bridge teardown/recovery internals reworked (mostly renames)#

Bridge teardown and recovery internals were reworked, mostly renames, with no separately visible behavior change.

Details 0 0 Feedback

The remote-bridge session module handling owner-change events, proactive OAuth refresh, and teardown archiving was substantially reworked internally, including tracking duration through recovery calls via Date.now(). No new externally visible behavior beyond what's covered elsewhere in this release was identified.

·Internal
Under the hood
Useful1 Signal1
Artifacts

Telemetry event for steered legacy artifact verbs#

A telemetry event records which legacy artifact verb was steered onto the new schema.

Details 0 0 Feedback

When a legacy artifact verb call gets steered onto the new schema/tool, a new tengu_artifact_legacy_verb telemetry event records which verb was used and that it was steered.

·Internal
Under the hood
Useful1 Signal1
Telemetry

Queued prompt latency now tracked#

Queued prompts now carry submit and dequeue timestamps so queue latency is tracked.

Details 0 0 Feedback

processUserInput now computes submittedAtMs and dequeuedAtMs for prompts still in mode prompt, threading this queued-latency timing into the query run call.

Related

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

·Internal
Under the hood
Useful1 Signal1
Sessions

Transcript-compaction helper gains a bypass parameter#

The transcript-compaction helper takes a parameter that makes it return its input untouched.

Details 0 0 Feedback

The transcript-compaction helper (now udn) takes a third parameter that, when truthy, makes it return its input untouched, skipping the summarization and grouping pass entirely.

·Internal
Under the hood
Useful1 Signal1
Telemetry

Simplified cloud/CI environment detection#

Detection of external orchestration now checks env var names against allowlists, dropping several individual checks.

Details 0 0 Feedback

The heuristic that detects whether Claude Code is running under external orchestration (for telemetry/attribution) now checks environment variable names against allowlists more generically, using set-membership checks. Several individually-checked variables, including CLAUDE_CODE_OAUTH_TOKEN, CLAUDE_CODE_ARTIFACTS_API_TOKEN, and the CLAUDE_BG_* vars, were dropped in favor of this approach.

·Internal
Under the hood
Useful1 Signal1
Updater

AutoUpdaterWrapper now emits update_detection telemetry#

Detecting the install type at startup now reports its duration and the detected type.

Details 0 0 Feedback

Detecting the installation type (native vs. package-manager) during auto-update startup now emits an update_detection telemetry event recording the duration, whether it's the first detection in the current process, and the detected installation type.

Related

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

·Internal
Under the hood
Useful1 Signal1
Permissions

User-rejected tool prompt now can trigger a TTY-only UI action#

Rejecting a tool prompt now runs extra UI cleanup before exiting, only at a real terminal.

Details 0 0 Feedback

When a tool permission prompt is rejected at a terminal that isn't suppressing TTY output, Claude Code now runs additional UI cleanup/paint calls before exiting, but only when process.stderr.isTTY is true and a separate condition is false.

·Internal
Under the hood
Useful1 Signal1
Telemetry

Error-field truncation size increased/reworked#

Error text is sliced to 4096 characters before being truncated for display, with the total count appended.

Details 0 0 Feedback

Error message truncation used for logs and telemetry now first slices input to 4096 characters before truncating to a 512-code-unit display limit, appending a suffix with the total character count when truncation occurs.

·Internal
Under the hood
Useful1 Signal1
Sessions

Lock-deadline telemetry gains an 'other_eperm_stale' state#

Lock-deadline telemetry now separates a live unsignalable process from one that looks stale.

Details 0 0 Feedback

The lock deadline check now distinguishes a live-but-unsignalable other process, other_eperm, from one that appears stale by the same predates-boot/pid-recycled check, other_eperm_stale, replacing the previous single other_eperm outcome.

·Internal
Under the hood
Useful1 Signal1
Remote Control no docs found

Maple-rung nudge eligibility check reworked#

A nudge's eligibility check was rewritten around a different allowed-state helper, still gated by the same flag.

Feature flag
tengu_maple_rung 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.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

The Maple-rung nudge's isRelevant eligibility check has been reworked from !ch() || !NV() || !Mt("allow_remote_control") to !$ve() || !Oq(), where $ve() now checks _S() && oFe() === "allowed". The nudge still ultimately gates on tengu_maple_rung.

·Internal
Under the hood
Useful1 Signal0
Terminal UI no docs found

Left-arrow editing guard function reworked but same gate#

The left-arrow editing guard was refactored internally and still gates on the same flag.

Feature flag
tengu_left_arrow_editing_guard 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.257: on

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

The left-arrow key debounce/attach-absorb state machine was refactored with renamed internals, but its default behavior still gates on the same tengu_left_arrow_editing_guard flag.

·Internal
Under the hood
Useful1 Signal0
MCP

MCP tool XML-tag stripping flag unchanged but renamed call sites#

MCP result post-processing still uses the same flag to decide whether to strip trailing XML-like tags.

Feature flag
tengu_mcp_strip_trailing_xml_tags 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.257: off

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

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

Details 0 0 Feedback

MCP tool result post-processing still checks the same tengu_mcp_strip_trailing_xml_tags experiment flag to decide whether to strip trailing XML-like tags from tool output.

·Internal
Under the hood
Useful1 Signal0
MCP no docs found

MCP client reconnect state merge moved into a shared helper#

Merging a reconnected MCP server's tools, commands and resources moved into one shared helper.

Details 0 0 Feedback
mcp_reconnect

The manual splicing of a reconnected MCP client's tools, commands, and resources into both the per-request state and the global MCP client list, previously around 30 inline lines handling wt.clients, wt.tools, tool/command dedupe by prefix, and resource replacement, has been collapsed into a single shared call used during mcp_reconnect.

Related

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

·Internal
Under the hood
Useful1 Signal0
MCP

Refactor: MCP permission_request handler destructures fields#

The permission-request handler destructures its fields; behavior is unchanged.

Details 0 0 Feedback

handlePermissionRequest now destructures tool_use_id and request_id from the request object instead of reading each property separately. This is a code-style change only; it still warns when either field is missing.

·Internal
Under the hood
Useful1 Signal0
Terminal UI no docs found

Confirmation dialog rename: windowAnchorMs → openedAt#

A confirmation dialog's timing-window prop was renamed to openedAt to reflect the dialog's own open time.

Details 0 0 Feedback
openedAt

The Yes/No confirmation prompt component's timing-window prop has been renamed from windowAnchorMs to openedAt, still paired with windowMs. The new name makes explicit that the anchor is the dialog's own open timestamp rather than an arbitrary passed-in value.

·Internal
Under the hood
Useful1 Signal0
Terminal UI

Left-arrow gesture blocked telemetry consolidated into one dispatcher#

Left-arrow gesture blocked telemetry now runs through one dispatcher keyed by stage, with no behavior change.

Details 0 0 Feedback

The left-arrow (background/agents-view) gesture handling's blocked-state telemetry calls, covering arm, attach-arm, attach-absorb, and reject, are now consolidated into a single dispatcher keyed by gesture stage. The tengu_left_arrow_blocked event still fires with reasons like editing-quiet, attach-quiet-hint, attach-quiet, and not-solo, with no apparent behavior change.

5 entries

Removedopen

Removed
You'll notice
Useful3 Signal3
Images

Sharp-based native image processing removed from bundled binary#

Native builds no longer bundle the sharp library, and the warning now says image processing is simply unavailable.

Details 0 0 Feedback

The vendored sharp native image processing library has been removed from the bundled binary. The fallback warning now states plainly that no image processing is available in native builds, instead of implying a working fallback.

Related

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

Removed
You'll notice
Useful3 Signal2
Artifacts

Removed standalone 'note' version-description field#

The publish-time note field is gone; version naming now goes through label alone.

Details 0 0 Feedback
label

The standalone publish-time note parameter ("publish only: what changed in this version") has been dropped from the schema. Version naming is now covered solely by label, whose description was reworded to also mention a version alias under live-edit.

Removed
You'll notice
Useful3 Signal2
Permissions

"Explain" toggle removed from Bash/PowerShell permission prompts#

Bash and PowerShell approval prompts lose the explain panel that toggled a dimmed command preview.

Details 0 0 Feedback

The permission-approval dialogs for Bash and PowerShell commands no longer include the hideable "explain" panel that previously showed a dimmable command preview toggled between "hide" and "explain" via a keyboard chord.

Removed
You'll notice
Useful2 Signal2
Permissions

Auto-mode edit classification no longer overridable by env var#

An env var no longer overrides whether edits get classified for auto mode; only remote config decides.

Details 0 0 Feedback

The function that decides whether to classify edits for auto-mode no longer honors a CLAUDE_CODE_AUTO_MODE_CLASSIFY_EDITS environment-variable override; the decision now comes solely from the classifyEditsModels growth-book config.

A new lookup also resolves whether auto-mode uses a "segmented transcript," checked first via the CLAUDE_CODE_AUTO_MODE_SEGMENTED_TRANSCRIPT environment variable, then a remote segmentedTranscript growthbook config key, defaulting to false.

Removed
You'll notice
Useful2 Signal2
Permissions no docs found

Request-access one-time-confirmation reminder message removed#

The guidance telling the model to call request_access again in the same turn has been removed.

Details 0 0 Feedback
request_access

A long guidance string instructing the model to call request_access again within the same turn has been removed.

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.257. 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.

Of these 104 bullets, 33 name something an entry on this page also names, 29 name something no entry here does, and 42 name nothing specific enough to line up either way. The pairings are made on names both sides wrote down, a flag or a setting or a slash command, so read one as probably the same thing rather than as a fact, and read the middle number as candidates rather than as a miss count.

System prompt

1 added and 1 removed, of 225 lines, about 4 words, in the prompt 17 of 27 arms receive. 3 other prompts also changed. 1 of 28 tool descriptions changed. The appended system-reminder blocks moved: 3 lines added, 3 lines removed.

Claude Code, interactive mode

Documentation

What the docs did around this release

463 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 245 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