← All changelogs v2.1.221 claude · claude-opus-5 (effort medium)
Claude Code · Source-level changelog

Version 2.1.221

MCP startup is the biggest change in this release: servers can now come up in a "cached" state or start from a discovery cache and connect lazily, so sessions no longer block on every connect, with cached servers surfaced in /mcp status and reported to the model as usable right away. Sandbox credential handling gains a mask mode with regex extraction, AWS SigV4 re-signing through the proxy, a persistent TLS-inspection CA on Windows, and claude doctor checks for misconfigured masks. Auto-compaction is now ungated and configurable through /autocompact and a new --autocompact flag, and the claude-api skill adds a prompt-audit subcommand that migrate runs on completion. Artifacts pick up environment variables, consent prompts when publishing from plan mode, and approve bindings on published PR-review pages. Notable fixes include token usage totals that account for cache tokens, deny rules checked against every form of a path, and lock files that expire rather than blocking indefinitely.

Official notes ✓ synced Package @anthropic-ai/claude-code Diff v2.1.220 → v2.1.221Provider claudeModel claude-opus-5 (effort medium)
28
Use it now
152
You'll notice
44
Not switched on
30
Env Vars / Flags

Official Changelog

Official · Anthropic
Anthropic’s official release notes
Published verbatim by Anthropic for v2.1.221 — shown here alongside the source-level analysis below. Text is unmodified from the upstream changelog.
View on GitHub ↗
  • [VSCode] Added Focus view: a chat-menu toggle that hides tool activity behind an expandable per-turn summary with a live running-tool indicator, toggled with Ctrl+Alt+F or the "Claude Code: Toggle Focus view" command
  • Added mode: "mask" for sandbox credential files on Linux and WSL — sandboxed commands read a sentinel copy (the whole file, or just the spans captured by an extract regex) while the sandbox proxy substitutes the real value on egress; on macOS file masking falls back to deny
  • Added warnings to claude plugin validate when a marketplace or plugin name would be rejected by Claude Desktop's managed marketplace sync
  • Added a prompt-audit subcommand to the claude-api skill for auditing prompts and tool descriptions for patterns written for older models
  • Fixed a Bash tool permission-check bypass where zsh could execute hidden commands in [[ ]] regex conditionals; affected commands now prompt for permission
  • Fixed PowerShell permission checks mishandling paths containing quote characters on Windows; such paths now prompt for approval
  • Fixed the thinking toggle having no effect for the rest of a session that started with thinking off; disabling an MCP server mid-connect no longer silently reverts
  • Fixed MCP servers from --mcp-config not being connected before the first turn in print mode (-p), which made the model emit tool calls as literal text
  • Fixed @-mentioned files being silently dropped when pressing Esc to retract a prompt and resubmitting it
  • Fixed a crash when preparing API requests for SDK MCP tools named after built-in object properties such as constructor
  • Fixed WebSearch failing with a 400 error at effort xhigh/max when thinking is disabled
  • Fixed sandboxed large uploads failing with TLS errors through the sandbox proxy
  • Fixed Team and Enterprise spend-limit message incorrectly blaming the org's monthly limit instead of your individual spend limit
  • Fixed Bedrock authentication with AWS SSO named profiles failing in desktop-managed sessions on Windows machines that set a stray HOME environment variable
  • Fixed CLAUDE_CODE_RESUME_INTERRUPTED_TURN=0 not disabling interrupted-turn auto-resume; falsy values are now honored
  • Fixed a rare wake-from-sleep race where two Claude Code processes could both refresh the same MCP connector or WIF OAuth token at once, forcing re-authentication
  • Fixed renaming a session from Claude Code Desktop or claude.ai not updating the CLI's session name; session names from every rename surface are now sanitized
  • Fixed plugin- and org-delivered skills named after terminal-only built-ins (e.g. /help, /feedback) being un-invocable in non-interactive sessions
  • Fixed the "Plugins changed" notification lingering after plugins were reloaded instead of clearing
  • Fixed Vim mode: the yank register now survives dialogs, history search, and the transcript view instead of being silently emptied
  • Fixed Vim mode: undoing back to an empty prompt now arms the "press ← again" confirm before returning to the agent view
  • Improved tool search on Google Vertex AI: re-enabled for Claude 4.5-generation and newer models
  • Improved auto mode: permission checks for parallel tool calls are now cache-efficient, and switching modes while a check is pending reliably prompts instead of applying the stale result
  • Reduced prompt-cache costs for auto-mode permission checks by reusing the cached conversation prefix across decisions
  • Improved Stats panel to count cache tokens in its token totals, with a breakdown by input, output, cache read, and cache write
  • Improved /ultrareview error messages when a repo shares no history with its base: a checkout with no branches is now refused up front with advice to create one, and refusal hints no longer suggest git fetch --unshallow on clones that are already complete
  • Improved Windows startup: process creation times are now read via a native kernel32 call instead of spawning PowerShell, so endpoint security tools that gate powershell.exe no longer prompt
  • Changed background sessions to commit and push to preserve work, open a draft PR only when the task calls for one, follow your CLAUDE.md git instructions, and always end by reporting where the work lives
  • Changed /plugin install to refresh a stale marketplace catalog and retry before reporting a plugin not found
  • Changed plugins installed from /plugin to activate immediately when safe, instead of always requiring /reload-plugins
  • Changed plugins to accept "." as a skills path, and the root-level SKILL.md validation error now suggests using the plugin root
  • Changed /status to show the session kind: interactive, or a background job that is attached or unattended
  • Changed emoji autocomplete to accept common alternate shortcodes like :thumbsup:, :thumbsdown:, and :love:
  • Changed sessions forked with /fork to create a new worktree of their own instead of working in the original session's checkout
  • Changed Claude in Chrome to close the browser tabs it opens once it no longer needs them
  • Changed fast mode to report on the stream when usage credits run out mid-session, instead of failing silently
  • Changed Monitor: a watch that exits without producing any output now says so instead of reporting "stream ended"
  • Changed the Gateway model field validation: non-string values are rejected with a 400 instead of being forwarded
  • Removed the repeated "Permission mode changed while the auto-mode classifier call was queued" notice from approval prompts
Source: anthropics/claude-code · CHANGELOG.md · 39 entries · synced automatically when Anthropic publishes official notes for a version.
Source-Level Analysis
Reverse-engineered from a diff of the bundled CLI — deeper, structured detail. Unofficial.

Highlights

12 of 308

Present but switched off

10 of 49
Shipped inside the bundle with its gate off, its guard hardcoded false, or nothing calling it. What the code shows, not a roadmap: no claim about what is released, announced or planned.
Filter

What probably matters to you

78 items

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

/autocompact ungated, plus an --autocompact CLI option #

Juicy

You can now set when auto-compaction kicks in with a new --autocompact flag, and /autocompact works for everyone.

--autocompact/autocompact
Use it now · Compaction

/sandbox install provisions and trusts the managed TLS CA on Windows #

On Windows, sandboxed HTTPS now works after /sandbox install without a manual certificate trust step.

/sandbox install
Use it now · Sandbox

Inline /mcp enable/disable detects changes made in another session #

When /mcp enable or disable does nothing, it now tells you if another session already changed it.

/mcp enable/mcp disable
Use it now · MCP

Sandbox credential masking documents its platform limits #

Juicy

Sandbox credential masking now documents that it falls back to deny on macOS and Windows.

maskdenyextract
Use it now · Sandbox

Vim register and last-find state persist across inputs in a session #

Vim yanks and f/t searches now carry over between prompts instead of resetting each time.

Use it now · Terminal UI

claude-api skill gains a prompt-audit subcommand #

Juicy

You can run /claude-api prompt-audit to scan prompts and tool descriptions for outdated patterns and get a diff.

/claude-api prompt-audit
Use it now · Skills

A tools refresh that returns empty due to expired auth no longer wipes the tool list #

Your MCP tools no longer vanish when a server's auth expires during a tool refresh.

You'll notice · MCP

Claude.ai export importer hardened, project instructions moved out of CLAUDE.md #

Claude.ai imports are validated, and project instructions now land in project-instructions.md instead of CLAUDE.md.

project-instructions.md
You'll notice · Internals

Disabling an MCP server mid-session unloads its tools, commands and resources #

Disabling an MCP server mid-session now actually removes its tools, commands and resources.

You'll notice · MCP

Fast mode credit rejections show a notification instead of silently turning fast mode off #

Fast mode stays on and shows an error notification when credit limits reject overage.

fastMode
You'll notice · Models

Lock files expire instead of blocking forever #

A crashed process no longer leaves a lock that blocks you forever; locks expire after a minute.

You'll notice · MCP

MCP servers can start in a new "cached" state instead of blocking on connect #

Juicy

MCP servers with a saved cache now show tools instantly and only connect when you first use them.

MCP_DISCOVERY_CACHE/mcp
You'll notice · MCP

Plugin install now tells you when the plugin failed to load #

Installing a plugin now tells you if it activated, needs a reload, or failed to load.

/reload-plugins/plugin
You'll notice · Plugins

Rating a session memory "bad" no longer deletes it #

Rating a session memory bad now just records the rating instead of deleting the memory.

You'll notice · Sessions

Sandboxed shells inherit git safe.directory settings #

Git commands inside a sandbox no longer complain about dubious ownership of your repo.

You'll notice · Sandbox

Tool search no longer disabled on Vertex AI #

Juicy

Tool search now runs on Vertex AI instead of being refused outright.

ENABLE_TOOL_SEARCHANTHROPIC_BASE_URL
You'll notice · Tool Use

Usage stats now count and show cache tokens #

Usage stats now count cache tokens and show a read/write breakdown per model.

/usage
You'll notice · Usage & Limits

Artifact comment auto-reply subsystem #

Juicy

Claude can watch artifact comment threads and post replies or edits, off unless you set the env var.

CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT
Not switched on · Artifacts

/mcp enable and disable report per-server failures #

Enabling or disabling MCP servers now tells you when some didn't actually change.

/mcp
Use it now · MCP

/sandbox reports whether the TLS inspection CA is trusted #

The /sandbox status now shows whether the HTTPS inspection certificate is trusted and how to fix it.

/sandbox/sandbox install
Use it now · Sandbox

claude doctor reports sandbox credential-mask problems #

claude doctor now lists each sandbox credential-masking problem separately with a specific fix.

claude doctor
Use it now · Sandbox

In non-interactive runs, built-in help and feedback no longer reserve those command names #

Juicy

You can name a plugin or custom command help or feedback and it will work in claude -p runs.

claude -p/help/feedback
Use it now · Slash Commands

MCP server menu hides Authenticate for disabled or blocked servers #

In /mcp, Authenticate is hidden for disabled or policy-blocked servers, with an explanation if you try.

/mcp
Use it now · MCP

Sandbox filesystem.disabled description corrected on credential masks #

Juicy

Settings docs now explain that masked credential files survive a relaxed sandbox filesystem policy while denied ones do not.

filesystem.disabledcredentials.files
Use it now · Sandbox

The Agent SDK validates skills entries before turning them into permission rules #

The SDK now rejects malformed skill names with a clear reason instead of creating a rule that never matches.

skills
Use it now · Agents

Artifact tool: replies validated, and comment text stripped from stored transcript #

Juicy

Artifact reviewer comment text is no longer kept in stored transcripts, and blanket allow rules skip several artifact actions.

thread_idlive-editwatchread_page_dataread_decisions
You'll notice · Artifacts

Fast-path AWS SSO credential resolution for profile-based auth #

Juicy

AWS SSO profile logins resolve faster via a direct fast path, falling back if anything unusual is configured.

AWS_CONFIG_FILEsso_account_idsso_role_name
You'll notice · Auth

Model picker colours the new model names #

Juicy

The model picker now colours Fable 5, Mythos 5 and Sonnet 5 in its list.

claude-fable-5claude-mythos-5
You'll notice · Models

Artifacts gain comment-thread reading and replying #

Juicy

The artifact tool gains comments and reply actions with terminal rendering, though whether they're live is unresolved.

Not switched on · Artifacts

Auto mode can be told to do its work through Bash ("thrifty sonic") #

Juicy

Auto mode can be told to use Bash for reads and edits if you set the env var.

CLAUDE_CODE_THRIFTY_SONIC
Not switched on · Auto Mode

MCP protocol-era negotiation (2026-07-28 "modern" revision) added behind per-transport gates #

Juicy

A newer MCP protocol handshake exists per transport but every gate falls back to legacy here.

MCP_PROTOCOL_NEGOTIATION=legacyMCP_PROTOCOL_NEGOTIATION=auto
Not switched on · MCP

New MCP protocol-era negotiation with probe and legacy fallback #

Juicy

In auto mode MCP connections would probe for a modern protocol and fall back to legacy, but nothing enables it.

MCP_PROTOCOL_NEGOTIATION
Not switched on · MCP

New artifact-diagramming skill and slash command #

Juicy

A new /artifact-diagramming command gives guidance on hand-authoring inline SVG diagrams inside Artifacts.

/artifact-diagrammingCLAUDE_CODE_ARTIFACTenableArtifact
Not switched on · Artifacts

Background sessions emit "interactive-mark" frames #

Juicy

Background sessions now send readiness marks so attaching knows when a session is actually interactive.

Under the hood · Sessions

Auto-memory session logs #

Juicy

Claude has the machinery to write dated session log files for auto-memory, but nothing calls it.

tengu_hazel_quire
Not switched on · Memory

Gate for skipping subagent event reads during delta rehydrate #

Juicy

A switch can skip one hydration read to speed session resume, but it is off.

tengu_ccr_subagent_skip_on_delta
Not switched on · Sessions

New namespaced storage key factory ("storageV5") #

Juicy

A new namespaced storage-key system exists for transcripts, settings and memory, but nothing supplies its backend.

Not switched on · Internals

Transcripts, session listings and the changelog can be read and written through a v5 storage backend #

Juicy

Transcripts, session listings and the changelog can be read from a storage backend instead of local files.

Not switched on · Internals

New --autocompact flag for the auto-compact window #

Juicy

You can set the auto-compact window at launch with --autocompact, using auto or 100k to 1M.

--autocompactautoCompactWindow
Use it now · Compaction

Explore/plan agents no longer read a remote gate #

Juicy

Explore and plan agents are now always on unless you set the disable environment variable yourself.

CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS
Use it now · Agents

Installed plugins activate in place instead of waiting for /reload-plugins #

Plugins you install from /plugin now activate immediately instead of making you run /reload-plugins.

/plugin/reload-plugins
Use it now · Plugins

Sandbox proxy re-signs AWS SigV4 requests made with masked credentials #

Juicy

AWS calls from inside the sandbox now work with masked credentials, since the proxy re-signs them for you.

credentials.sigv4
Use it now · Sandbox

Windows sandbox install provisions a persistent TLS-inspection CA #

On Windows, /sandbox install now sets up the certificate needed for sandboxed HTTPS, reporting partial success on failure.

/sandbox install
Use it now · Sandbox

sandbox.credentials.files gains a mask mode with regex extraction #

Juicy

You can mask secrets in credential files so sandboxed commands see placeholders while real values are swapped in on egress.

sandbox.credentials.filesmaskextractonExtractNoMatchmaskDuplicates
Use it now · Sandbox

Deny rules are checked against every form of a path #

Your deny rules now block a path even when it's written a different way.

You'll notice · Permissions

Esc cancel has a scope that leaves background tasks alone #

Pressing Esc to cancel a turn no longer kills your background tasks.

You'll notice · Background Tasks

Fast mode no longer offered on Opus 4.7 #

Juicy

Fast mode is no longer offered on Opus 4.7, only on newer Opus models.

fast_mode
You'll notice · Models

MCP servers can start from a discovery cache and connect lazily #

Juicy

Startup no longer dials cached HTTP or SSE MCP servers; they restore from cache and connect on first use.

MCP_DISCOVERY_CACHE
You'll notice · MCP

MCP subscriptions/listen streams are re-opened after drops #

MCP notification streams now reconnect after a server drop or redeploy instead of silently going dead.

You'll notice · MCP

Plugin install retries after a marketplace catalog refresh #

Installing a plugin missing from the cached catalog now refreshes the marketplace and retries.

You'll notice · Plugins

Rewind clears tracked file state for the removed messages #

After rewinding, Claude can read files again instead of complaining about stale read state.

You'll notice · Sessions

Token usage totals now include cache tokens #

Your usage totals now include cache reads and writes, so numbers look higher but accurate.

You'll notice · Usage & Limits

Tool search refused for pre-4.5 models on Vertex #

Fixes older Vertex models erroring on tool search; they now just load MCP tools normally.

You'll notice · MCP

Windows PowerShell permission checks consider every quote interpretation #

On Windows, cleverly quoted shell paths can no longer sneak past your deny rules.

You'll notice · Permissions

PR review artifacts can carry an "Approve on GitHub" button #

Juicy

PR review artifact pages can show a pinned button that approves the pull request from your GitHub account.

CLAUDE_CODE_ARTIFACTenableArtifact
Not switched on · Artifacts

/rename rejects names that resolve to nothing #

/rename now tells you when a name is empty or can't be generated instead of silently blanking it.

/rename
Use it now · Slash Commands

/status shows a "Session kind" row #

/status now tells you whether the session is interactive or a background job, attached or unattended.

/status
Use it now · Terminal UI

Artifact environment variables, with the API token treated as a credential #

Juicy

Three artifact environment variables are now recognised, with the API token stripped from spawned processes as a secret.

CLAUDE_CODE_ARTIFACTS_API_TOKENCLAUDE_CODE_ARTIFACT_ASSET_BASE_URLCLAUDE_CODE_ARTIFACT_LIVE_BASE_URL
Use it now · Artifacts

MCP server details show the negotiated protocol version #

MCP server details now show the protocol version negotiated with each connected server.

/mcp
Use it now · MCP

Official marketplace auto-install opt-out relocated, behaviour unchanged #

Juicy

You can still skip auto-installing the official plugin marketplace with the same environment variable; nothing changed.

CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL
Use it now · Plugins

Plugin manifest skills path may be the plugin root #

You can point a plugin's skills entry at "." to use the plugin root itself.

skills.
Use it now · Plugins

Synced project memory can be read-write #

Juicy

Shared project memory can now be written to, with warnings when a write stays local instead.

orgMemoryWritesorgMemoryWritesAccount
Use it now · Memory

Windows sandbox no longer attempts TLS termination without CA material #

Juicy

On Windows, TLS interception is skipped unless you supply both a CA cert and key path.

network.tlsTerminatecaCertPathcaKeyPath
Use it now · Sandbox

Bug hunter runs code-quality checks by default #

Juicy

Bug hunter now runs a code-quality pass automatically unless you set code_quality to false.

code_qualityBUGHUNTER_CODE_QUALITY
You'll notice · Agents

MCP SDK handles input_required over multiple round trips #

Juicy

MCP tools that ask for extra input are now answered automatically, up to ten back-and-forth rounds.

inputRequired.maxRoundsinputRequired.autoFulfillallowInputRequired
You'll notice · MCP

Artifact auto-reply subscriptions can be stopped from the cancel gestures #

Juicy

Escape or double ctrl+x ctrl+k now also turns off automatic replies to comments on your artifacts.

CLAUDE_CODE_ARTIFACT_COMMENTS
Not switched on · Artifacts

Auto mode bash-first prompt variant #

Juicy

Auto mode can be told to do file reads, searches and edits through Bash, but it's off by default.

CLAUDE_CODE_THRIFTY_SONIC
Not switched on · Auto Mode

Auto-replies to artifact comments #

Juicy

Claude could answer artifact comments automatically, but the whole path is inert unless you turn it on.

CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT
Not switched on · Artifacts

New "prototype" skill, present in the bundle but hard-disabled #

Juicy

A built-in "prototype" skill for one-page HTML mockups ships but is hard-disabled.

prototype
Not switched on · Skills

New artifact comment threads: read, reply, resolve #

Juicy

Reading, replying to and resolving comment threads on published artifacts is built in but off unless enabled.

CLAUDE_CODE_ARTIFACT_COMMENTS
Not switched on · Artifacts

Windows sandbox TLS termination can now use the managed sandbox CA #

Juicy

Windows sandbox TLS interception could use a persistent managed certificate authority, but that path is disabled here.

CLAUDE_CODE_NANKEEN_KESTREL/sandbox installsandbox.network.tlsTerminatecaCertPathcaKeyPath
Not switched on · Sandbox

Approvable PR-review artifact pages, switched off in this build #

Juicy

Approvable, stampable PR-review artifact pages are built in but completely unreachable in this build.

/artifact-pr-review
Not switched on · Artifacts

Auto-mode outcome-code visibility moved behind a wrapper with a dead conditional #

Juicy

The switch controlling outcome codes in auto mode now runs through a wrapper with an empty branch.

CLAUDE_CODE_AUTO_MODE_OUTCOME_CODES
Not switched on · Auto Mode

Leaner Bash tool description behind the thrifty-sonic gate #

Juicy

A much shorter Bash tool description exists, but only when the thrifty-sonic gate is switched on.

CLAUDE_CODE_THRIFTY_SONIC
Not switched on · Tool Use

Plan mode prototype-artifact offer #

Plan mode can offer to build a prototype artifact first, but the offer never appears in this build.

Not switched on · Plan Mode

Remote worker heartbeats can adopt refreshed credentials #

Juicy

Long-running remote sessions can pick up refreshed tokens mid-flight instead of dying when credentials expire.

CLAUDE_CODE_REMOTE
Under the hood · Sessions
Everything else · 230
Smaller changes and internals, grouped as the pipeline found them. Nothing is dropped, it is only further down.

New Features

14 items

migrate now ends with a prompt audit, and a TODO note ships inside the prompt #

The migrate command now finishes by auditing your prompts and tool descriptions for stale wording.

/claude-api migrate
You'll notice · Skills

Project tool can download non-document uploads whole #

Reading images, spreadsheets and binaries from a project now downloads the actual file instead of returning nothing.

project_readallow_projects_tool
You'll notice · Agents

CCR client can adopt refreshed auth pushed over the event stream #

Long sessions can pick up fresh credentials pushed over the live connection instead of dropping out.

CLAUDE_CODE_ENVIRONMENT_KIND
Under the hood · Auth

Web sessions can adopt refreshed credentials from the heartbeat #

Web sessions can swap in a refreshed credential mid-run instead of waiting for the old one to expire.

CLAUDE_CODE_ENVIRONMENT_KIND
Under the hood · Auth

Async agents may now use the plugin and skill discovery tools #

Background agents can now search and list plugins and skills instead of being blocked from those tools.

You'll notice · Agents

Review-page publishes are validated for capabilities and approve stamps #

PR review pages you publish are now strictly validated, with a clear refusal message when something is off.

You'll notice · Artifacts

Tools can declare a fail-closed permission posture #

If a tool's permission check crashes in plan mode, the action is now denied instead of quietly allowed.

You'll notice · Permissions

ReconnectMcp output tells the model cached servers are usable right away #

Claude's MCP status summary now lists cached servers and notes their tools are callable immediately.

You'll notice · MCP

/mcp status surfaces cached servers #

The /mcp view now counts cached servers separately so you can tell them from live connections.

/mcp
You'll notice · MCP

Stamp control and workshop deliverable lists on published pages #

Published pages can now show a stamp region and workshop docs can list deliverables next to decisions.

You'll notice · Artifacts

Published PR-review pages carry an approve binding #

Published PR review pages now carry an approve action, and republishing can't quietly change it.

You'll notice · Artifacts

Workshop skill raises a prototype-vs-direct build decision #

The workshop skill now asks once whether to build a clickable prototype first, but only for UI-ish work.

You'll notice · Skills

Plan mode now needs a real human for artifact page-data reads and publishes #

In plan mode, artifact page reads and publishes always need you to approve them yourself.

You'll notice · Permissions

Improvements

85 items

Stop-details refusal categories documented as an open set #

Docs now say refusal categories are an open list, so generated code stops assuming only two.

Under the hood · Elsewhere

resources/list and prompts/list stop recording an error when the server lacks the method #

MCP servers that don't support resource or prompt listing no longer show a bogus error.

You'll notice · MCP

MCP: server/discover answered from the cached projection on the stateless proxy #

Some MCP server discovery calls are answered from cache, avoiding an extra round trip.

Under the hood · MCP

Background-session prompt rewritten around committing and a final report #

Background jobs now commit and push when possible and end with an actionable report instead of always opening a draft PR.

CLAUDE.md
You'll notice · Sessions

Security review prompt handles subagent hand-back messages #

Security review no longer misses issues when a subagent's hand-back message is the last thing in the transcript.

You'll notice · Elsewhere

MCP slash-command prompts extracted, now abortable #

You can now cancel a running MCP prompt slash command without seeing a bogus error message.

You'll notice · MCP

/sandbox install error classification by code, and a longer timeout #

Windows sandbox install failures now report the real cause, and the timeout message correctly says two minutes.

/sandbox install
You'll notice · Sandbox

Cloud review: better messages for detached HEAD and wrong base branch #

Cloud review now tells you to create a branch on detached HEAD instead of failing with a vague error.

You'll notice · Code Review

MCP error classification recognises typed HTTP and OAuth errors #

MCP auth and HTTP failures are classified more accurately, and cancelled tool calls no longer trigger slow-call warnings.

You'll notice · MCP

Bash sandbox prompt no longer promises $TMPDIR everywhere #

Claude now makes its own scratch directory in sandboxed shells instead of assuming a temp variable exists.

$TMPDIRmktemp -d
You'll notice · Sandbox

Reconnecting a disabled MCP server tells you to enable it #

Reconnecting a disabled MCP server now just tells you to enable it first.

/mcp
You'll notice · MCP

read_page_data needs a human approval in plan mode #

In plan mode, reading artifact page data now needs your actual approval, not an auto-approval.

You'll notice · Permissions

Sandbox read config is cached and no longer fatal on failure #

Sandbox file-read config is cached and no longer crashes when the native lookup fails.

You'll notice · Sandbox

Spend-limit message distinguishes an org spend cap #

Hitting a spend cap now says whether it's your individual limit rather than always the org's.

You'll notice · Usage & Limits

Plugin discovery tools handle a missing SuggestPluginInstall #

Plugin search and list results now come back as plain text when install cards aren't available.

You'll notice · Plugins

Memory recall index is prewarmed at startup #

Claude warms the memory recall index at startup so your first recall is faster.

--resume--continue--from-pr
You'll notice · Memory

MCP OAuth refresh retries on error codes and preserves issuer and redirect URI #

MCP OAuth token refresh retries smarter and keeps your saved redirect URI across reconnects.

You'll notice · MCP

Windows sandbox errors carry a code and the failing subcommand #

Windows sandbox failures now carry a specific error code, though one remediation hint was dropped.

You'll notice · Windows

Installed-but-inactive plugins say why #

Inactive plugins now tell you whether they ship disabled or your settings disabled them.

You'll notice · Plugins

Routines connector list says "available", not "connected" #

Routines now list MCP servers as "available" since they connect only when needed.

You'll notice · MCP

Draft-prompt nudge cap comes from remote config #

How often the draft-prompt notice appears is now set by the server, defaulting to three per session.

Under the hood · Elsewhere

Auto mode always sees same-turn sibling tool uses #

Permission checks in auto mode now always see other tool calls from the same turn.

You'll notice · Permissions

Two more Claude-in-Chrome failures get classified error types #

Two more Chrome browser failures now get proper error labels instead of showing up unclassified.

Under the hood · Elsewhere

MCP elicitation schemas are validated with a clear error #

A bad MCP elicitation schema now shows a clear error instead of a misleading reconnect message.

You'll notice · MCP

Org spend-cap limits get their own wording #

Hitting an org spend cap now shows its own message with links matched to your account type.

You'll notice · Usage & Limits

Marketplace install reports which plugins were disabled by default #

Marketplace install summaries now separate plugins you disabled from ones that ship disabled by default.

You'll notice · Plugins

Sandbox prompt lists temp directories per mode #

Sandbox instructions now hide or collapse temp directory paths depending on your platform and sandbox mode.

$TMPDIR
You'll notice · Sandbox

MCP OAuth handles the RFC 9207 issuer parameter #

MCP OAuth logins now verify the issuer and give clearer errors when client registration is rejected.

You'll notice · MCP

Rewritten inline /mcp replies for cross-session enable/disable #

/mcp now tells you when another session already enabled or disabled a server, and how to make your change stick.

/mcp
You'll notice · MCP

/plugin reload checks prompt-cache impact #

Activating plugins from the /plugin dialog now warns you before it invalidates your conversation's prompt cache.

/plugin/reload-plugins
You'll notice · Plugins

Agent SDK rejects skill names containing parentheses, commas or control characters #

Skill names with parentheses, commas or control characters now fail validation immediately instead of silently breaking.

You'll notice · Skills

Session titles are normalised and blank titles rejected #

Session titles are trimmed and cleaned, and blank ones are simply ignored instead of set.

--name
You'll notice · Sessions

Workshop skill re-described as an incremental design build #

The workshop skill now describes itself as building a design with you one decision at a time.

You'll notice · Skills

MCP task restore dials lazily-cached servers instead of giving up #

Resuming a long-running MCP task after a restart now reconnects cached servers instead of failing.

You'll notice · MCP

ListMcpResources works against cached servers and connects on demand #

Listing MCP resources now includes cached servers, connecting them on demand instead of skipping them.

You'll notice · MCP

Batch plugin install distinguishes disabled-by-default from disabled-in-settings #

Batch plugin installs now tell you which plugins are off by default versus off in your settings.

/plugin/reload-plugins
You'll notice · Plugins

Workshop skill: two-stage publish and cheaper template reads #

Workshop pages now publish a first shareable version faster, with decisions added in a second pass.

You'll notice · Artifacts

Workshop template CSS: theme-aware shadows and a bottom bar that stops jumping #

Workshop cards keep their shadow in dark mode and the bottom bar no longer jumps around.

You'll notice · Artifacts

Artifact comment and reply tool previews show the target and its sharing state #

Artifact comment and reply prompts now show which artifact you're acting on and whether it's shared.

You'll notice · Artifacts

srt-win helper rewritten with async spawning, timeouts and typed errors #

Windows sandbox setup no longer freezes the UI and reports specific failure reasons with timeouts.

/sandbox
You'll notice · Sandbox

Completed MCP OAuth is discarded if identity changed or the server was disabled #

A finished MCP login is now thrown away if you switched accounts or the server got disabled meanwhile.

You'll notice · MCP

Session-quality survey becomes a selectable option list #

The session-quality survey is now an arrow-key list and ignores stray keystrokes for the first moment.

You'll notice · Terminal UI

Prototyping skill prompt gains guidance on real data and real actions #

Prototypes now lean on your real connected data and actions instead of faking them, or stay fully static.

You'll notice · Artifacts

Sonnet 5 added to the prefill-removed pitfall #

Docs now warn that Sonnet 5 also rejects prefilled assistant turns with a 400.

You'll notice · Elsewhere

HTTP status codes read from the error's status instead of its code #

Fixes MCP re-authentication misfiring by reading the real HTTP status instead of guessing from messages.

You'll notice · MCP

Artifact live-update sockets send keepalive pings #

Live artifact updates now ping every 25 seconds so long sessions stop getting dropped.

You'll notice · Artifacts

Forked background sessions get clearer worktree guidance #

Forked background sessions are told to stay in their own worktree and never touch the original session's branch.

appendSystemPrompt
You'll notice · Sessions

Chrome browser core ToolSearch batch includes tab closing #

Browser automation now loads the tab-closing tool up front, so Claude can tidy tabs without another lookup.

mcp__claude-in-chrome__tabs_close_mcp
You'll notice · Elsewhere

Artifact skill prompt now states a page size limit #

Claude now knows artifacts have a hard page size limit, including embedded data URIs, so it builds smaller pages.

You'll notice · Artifacts

Design tool: clearer refusal when a project write grant is missing in non-interactive sessions #

Design tool now explains exactly how to get write access when running without an interactive session.

finalize_planplan_token
You'll notice · Artifacts

Plugin install now tells you when higher-precedence settings keep it disabled #

Plugin install now tells you when a higher-priority settings file is what's keeping the plugin disabled.

enabledPlugins
You'll notice · Plugins

Fast mode availability text drops Opus 4.7 #

Fast mode availability text now lists only Opus 5 and 4.8.

You'll notice · Models

Browser tabs: Claude is told to close tabs it opened #

Claude now closes browser tabs it opened, so you get fewer stray tabs left behind.

You'll notice · Chrome & Browser

live-edit is refused on published PR review pages #

Live-editing a published PR review page is now refused; republish through the command instead.

/artifact-pr-review
You'll notice · Artifacts

Windows sandbox helper: hidden windows and real timeout errors #

On Windows, sandbox helper windows stay hidden and timeouts now tell you a UAC prompt may be open.

You'll notice · Windows

Org-memory write grants get stricter verdicts and new telemetry #

Org memory now falls back to read-only when write permission is ambiguous, with new logging for why.

Under the hood · Elsewhere

Channels: new "era" block reason per connection #

You now get a per-server notice when a connection's protocol version can't deliver channels.

You'll notice · Elsewhere

New warning text for orchestrator env logs #

A warning about empty orchestrator environment logs was reworded after an old fallback was removed.

Under the hood · Elsewhere

MCP enable/disable failures report the underlying error #

Turning an MCP server on or off now shows the real error instead of a vague message.

/mcp
You'll notice · MCP

mcp_tool hooks require a live MCP session and refuse cleanly #

MCP tool hooks now fail fast with a warning instead of hanging when no session exists.

You'll notice · MCP

Plugin skill validation covers the plugin root #

A plugin skill pointing at a root SKILL.md now gets a helpful validation hint.

SKILL.md
You'll notice · Plugins

Monitor completion distinguishes an empty stream #

A monitor that exits without output now says so and shows its exit code.

You'll notice · Elsewhere

ListSkills prompt has a fallback when SuggestSkills is absent #

Skill listing falls back to searching when the suggestion tool is not available.

Under the hood · Skills

Managed MCP servers carry discover support and a cached discover response #

Managed MCP server configs now carry discovery data and strip more server-supplied junk before writing to your config files.

Under the hood · MCP

Auto mode exit message is tailored, and subagents no longer get it #

The auto mode exit notice now matches how you configured it, and subagents no longer see it.

You'll notice · Auto Mode

Artifact plan mode requires the live binding for stamps #

Artifact plan mode now rejects a stamp without its live binding, explaining why.

You'll notice · Artifacts

MCP OAuth tracks the issuer through the callback and token exchange #

MCP OAuth now tracks which authorization server issued your token through login, refresh, and storage.

Under the hood · MCP

Usage chart shows billions #

The usage chart now shows huge token totals in billions instead of unwieldy millions.

You'll notice · Usage & Limits

--cloud reattach hint spelled out in the error #

The --cloud conflict error now spells out how to pass a session id and where to find one.

--cloud
You'll notice · Elsewhere

MCP clients record a negotiated protocol era #

Claude now negotiates a protocol era with MCP servers and only uses the experimental permission channel for older ones.

Under the hood · MCP

SendFeedback per-session caps are remote-configurable #

How often Claude can send feedback or draft prompts per session is now tunable server-side.

Under the hood · Elsewhere

/mcp explains cross-session enable/disable drift #

/mcp gains clearer messages for cross-session enable/disable conflicts and servers blocked by managed policy.

/mcp
You'll notice · MCP

Plugin validation warns about Claude Desktop marketplace compatibility #

Plugin validation warns when marketplace or plugin names would be rejected by Claude Desktop's managed sync.

allowedPluginMarketplaces
You'll notice · Plugins

Chrome bridge gains roster change notifications, retained tool args and permission categories #

The Chrome bridge now refreshes the extension list on connect or disconnect and keeps pending tool arguments.

You'll notice · Chrome & Browser

Artifact credentials and artifact base URLs are stripped from child process environments #

Artifact tokens and artifact base URLs no longer leak into processes Claude spawns.

CLAUDE_CODE_OAUTH_TOKENANTHROPIC_API_KEY
You'll notice · Permissions

Safety clearing-bar prompt lists a "Synthetic Input Self Drive" rule #

Safety guidance names another self-driving input pattern that only you can clear as a false positive.

Under the hood · Permissions

Subagent frontmatter MCP servers connect through the shared bounded dial #

A hung MCP server listed in an agent's frontmatter can no longer stall subagent startup.

You'll notice · MCP

Artifact tool skips the design skill for workshop-template pages #

Artifact pages made from the workshop template keep that look instead of being restyled.

You'll notice · Artifacts

Cache-backed MCP servers report as pending rather than unknown #

MCP servers restored from the discovery cache now report a proper 'pending' status instead of unknown.

Under the hood · MCP

Workshop page layout leads with the working draft #

Workshop pages now lead with the working draft above the decisions, with richer diagrams each round.

You'll notice · Artifacts

Workshop kickoff CTA markup spelled out for the direct-HTML lane #

Workshop pages now get a consistent get-started footer with clearer decision status wording.

You'll notice · Artifacts

Fetched artifact HTML has the server-appended comments island stripped #

Reading back a published artifact no longer dumps the server's trailing comments blob into the HTML.

You'll notice · Artifacts

MCP authentication is refused for servers disabled elsewhere or blocked by policy #

Claude now refuses to start MCP login for servers that are disabled or blocked by policy, and says why.

You'll notice · MCP

MCP policy URL predicates flag collapsible dot segments #

MCP URL allowlist patterns that could be rewritten by dot segments are now flagged with fix instructions.

You'll notice · MCP

Renaming a session propagates the new name #

Renaming a session now cleans up the title and pushes the new name everywhere, not just locally.

/rename
You'll notice · Sessions

Bug Fixes

27 items

Interrupts now tear down non-durable artifact watch/live subscriptions #

Interrupting a turn now shuts down leftover live artifact watch and edit subscriptions.

You'll notice · Artifacts

Terminal escape-sequence scanning handles CAN and SUB terminators #

Fixes garbled background session output when terminal escape sequences end oddly or split across reads.

You'll notice · Background Tasks

Onboarding steps guarded against double submission #

Setup no longer double-submits or saves twice if you click through steps quickly.

You'll notice · Terminal UI

Escaped backticks unescape correctly in template-literal strings #

Fixes escaped backticks being dropped when parsing template-literal strings.

You'll notice · Internals

Bash [[ ]] parser bails out on unbalanced parentheses #

Complex bash double-bracket tests now bail out early instead of being misjudged by the permission scanner.

Under the hood · Permissions

Extra HTTP/2 GOAWAY shape treated as retryable #

One more kind of dropped connection now retries quietly instead of showing you an error.

You'll notice · Internals

Keybinding config errors always report as parse errors #

Broken keybinding config now always reports an error instead of silently reverting to defaults.

You'll notice · Terminal UI

Output effort clamped when thinking is mechanically disabled #

Internal helper requests no longer fail from asking for high effort with thinking off.

You'll notice · Models

Published-page island parsing requires a JSON object #

Malformed published-page data now gives you a clear message instead of a confusing schema error.

You'll notice · Artifacts

Assorted validation and parsing tightening #

Assorted small fixes to browser tabs, plugin ids, web search categories and artifact labels.

You'll notice · Tool Use

Cleared sessions from the v5 store no longer stat the filesystem for a timestamp #

Cleared sessions get their date from what was already read instead of touching the disk.

Under the hood · Sessions

MCP reconnect and enable refuse to run against a disabled server #

Reconnecting or enabling a disabled MCP server now fails with a message telling you to enable it in /mcp.

/mcp
You'll notice · MCP

Background session names starting with "-" survive respawn #

Background sessions renamed to something starting with a dash now restart correctly.

--name-n
You'll notice · Sessions

"Bad" rating on session memory is shown and de-duplicated #

Rating a session memory bad now shows a red confirmation and only counts once.

You'll notice · Sessions

Shell output-redirection denials handle non-path targets #

Blocked shell redirects to non-file targets no longer show a bogus path or add-directory suggestion.

You'll notice · Permissions

Auto-reply stop notices survive a queue cancel #

Cancelling the queue no longer swallows the notice telling you artifact auto-replies stopped.

You'll notice · Artifacts

MCP resource prefetch no longer hangs when fewer clients report back #

Fixes startup hanging forever when MCP resource prefetch got fewer replies than expected.

You'll notice · MCP

Stale numeric queue files are removed instead of parsed #

Fixes odd leftover queue files piling up by deleting malformed ones instead of misreading them.

Under the hood · Internals

Plugin reload banner is dismissed instead of getting stuck #

The "reload plugins" banner now goes away on its own instead of sticking around.

You'll notice · Plugins

CLI argument rewriting handles values that start with a dash #

Flag values starting with a dash are no longer mangled into a separate flag.

You'll notice · CLI Arguments

Cached MCP initialize responses checked against supported protocol versions #

Cached MCP handshakes with an unsupported protocol version are now thrown away and redone.

You'll notice · MCP

Local HTTP API rejects non-string model fields #

The local HTTP API now returns a clear 400 when model isn't a string, instead of ignoring it.

You'll notice · Elsewhere

Respawn flags with dash-leading values are passed as --flag=value #

Restarting Claude Code no longer garbles flags whose values start with a dash.

You'll notice · CLI Arguments

PowerShell path permission checks consider every de-quoting of a path #

PowerShell commands touching sensitive paths are checked in every quoted form, so tricks can't slip past.

You'll notice · Permissions

Clear error when the Windows sandbox runs from a mapped network drive #

On Windows, launching from a mapped network drive now tells you that's the problem and names the drive.

You'll notice · Windows

MCP teardown handles cached clients, not just connected ones #

Cached MCP server connections are now cleaned up properly instead of being skipped.

Under the hood · MCP

Transcript write failures only degrade the session for the session's own files #

An unrelated file write failure no longer degrades your session's transcript recording.

You'll notice · Sessions

In Development

33 items

Failed negotiation probes now respawn or reconnect the server pinned to legacy #

Failed protocol probes would respawn or reconnect the MCP server on legacy, but auto mode is off.

Not switched on · MCP

Artifact comment errors distinguish egress-proxy blocks and non-activated threads #

Artifact comment failures would name the real cause, like a proxy block or an unactivated thread, once enabled.

CLAUDE_CODE_ARTIFACT_COMMENTS
Not switched on · Artifacts

Juniper feedback relay is configured remotely #

The feedback relay tool's wording and per-session limits can now be set from the server instead of hardcoded.

Under the hood · Elsewhere

Chrome bridge gains an activity-observer hook, not wired up #

The Chrome bridge can report browser tool activity to an observer, but nothing supplies one yet.

Under the hood · Chrome & Browser

Artifact publish can send a template, behind a gate #

Publishing an artifact can carry a template choice, switched off here, plus new edit attribution.

Not switched on · Artifacts

Plugin and skill tools hidden from the coordinator unless the plugin-skill tool is on #

Plugin and skill search tools are hidden in most sessions unless that tooling is switched on.

SearchPluginsSearchSkillsListPluginsListSkills
You'll notice · Plugins

Session state moves onto a pluggable storage backend #

Session history, resume and usage can now read from a pluggable backend, though files are still used.

/usage
Under the hood · Sessions

Whiteboard editing: multi-select, eight resize handles, theme toggle, text sizes #

The whiteboard editor gains multi-select, resize handles, theme toggle and text sizing, all unreachable.

Not switched on · Whiteboard

Whiteboard prompt: answer by drawing, and tell a viewer Submit apart from a send #

Whiteboard instructions teach Claude to answer by drawing and ignore plain saves; still disabled.

Not switched on · Whiteboard

Auto-react posts explicit notices when it stands down #

When auto-reply to artifact comments stands down, Claude now tells you once why instead of staying silent.

Not switched on · Artifacts

Custom MCP notification handlers skipped on modern-era connections #

MCP servers using a newer protocol era no longer get custom notification handlers, and you see a warning.

Not switched on · MCP

MCP schema validator strips known meta-schema $schema keys #

MCP tools that declare a standard $schema no longer fail validation over that one key.

You'll notice · MCP

Plan mode tracks a workshop doc path and offers a prototype path #

Plan mode now remembers your workshop doc and can offer a prototype path alongside it.

Not switched on · Plan Mode

Reply text is validated hard before it can be published #

Comment replies must be plain text under 4096 bytes, with emoji and invisible characters rejected.

Not switched on · Artifacts

Un-activated threads return guidance rather than an error #

Replying in a thread where Claude was never activated now explains the situation instead of erroring.

Not switched on · Artifacts

PR review payloads accept an in-page approve stamp binding #

Review pages can carry an in-page approve button that gets validated when published.

tengu_walnut_sconce
Not switched on · Artifacts

Prompt history can be written to a record store instead of history.jsonl #

Your prompt history could be saved to a record store instead of history.jsonl, but nothing uses it yet.

history.jsonl
Not switched on · Internals

tools/list uses the new client listTools path with retry backoff on modern servers #

Tool discovery uses a newer path with retries on servers that negotiate the modern protocol; older servers are unchanged.

Under the hood · MCP

Task storage gains an optional key-value store backend #

Task storage can run on a key-value backend instead of JSON files, but nothing uses it yet.

Under the hood · Background Tasks

Reply failure when the thread isn't activated #

A reply to an unactivated artifact thread would show as its own state, once comments are live.

Not switched on · Artifacts

Team memory mounts create the writable prompt-index directory #

Team memory mounts now also create a writable prompt-index folder; you can't turn this on yet.

Under the hood · Memory

Process markers gain a second, currently-unused start-time field #

Process marker files can write an alternate start-time field, but that path is hard-coded off.

Under the hood · Background Tasks

Workshop pages can declare a deliverables list #

Workshop pages can list deliverable links as a classified list, but workshop rendering is off here.

deliverables
Not switched on · Artifacts

Whiteboard artifact gains a Submit button that saves without pinging Claude #

The whiteboard gets a Submit button that saves without asking Claude to reply; whiteboard is disabled.

Not switched on · Whiteboard

Whiteboard hardening: permission verdicts, state sanitising, merge-state validation #

Whiteboard permission checks and board data validation got stricter, but none of it runs here.

Not switched on · Whiteboard

Auto-react composers treat comment threads as untrusted data #

Artifact comment text is fenced and treated as untrusted data so viewers can't inject instructions.

Not switched on · Artifacts

Republishing a PR review page from an older CLI is refused #

Republishing a PR review page made by an older CLI is refused, so you re-run the skill instead.

Not switched on · Artifacts

Artifact live-update arming carries auto-react wiring #

Artifact live-update watching now carries the plumbing needed for automatic comment replies and cancellation.

CLAUDE_CODE_ARTIFACT_COMMENTS
Not switched on · Artifacts

Memory-directory prefetch can block the turn briefly #

Your turn can pause up to two seconds waiting for memory directory files to load first.

Not switched on · Memory

Comment replies always ask, and the prompt names who will see them #

Replying to an artifact comment always asks first, and tells you whether the artifact is shared.

CLAUDE_CODE_ARTIFACT_COMMENTS
Not switched on · Permissions

Comment threads are rendered into the transcript as fenced, marked-up data #

Viewer comments appear in the transcript inside marked fences so their text cannot act as instructions.

Not switched on · Artifacts

Review pages are protected from overwrite and live-edit #

Claude refuses to publish over or live-edit a page it identifies as a review page.

tengu_walnut_sconcetengu_gable_onyx_sluice
Not switched on · Artifacts

Publishes are classified by template and reported #

Every publish is now labelled by what kind of page it is, and reported in telemetry.

Under the hood · Artifacts

Internal Changes

62 items

Connection telemetry gains negotiation and protocol fields #

MCP debug output now shows which protocol version and path a server connection used.

Under the hood · MCP

MCP client constructed with a JSON Schema validator and explicit listChanged settings #

MCP servers announcing tool or prompt list changes will not cause Claude to refetch them.

You'll notice · MCP

Server instructions truncation moved behind a helper #

Long MCP server instructions are still trimmed the same way, just through shared code now.

Under the hood · MCP

Version bumped to 2.1.221 #

Claude Code is now version 2.1.221, which shows up in /doctor and update checks.

/doctor
Under the hood · Elsewhere

MCP retroactive-approval retry check consolidated #

Retrying MCP calls that need approval now uses one shared rule, so behaviour is consistent.

Under the hood · MCP

New MCP policy-predicate telemetry for allowedMcpServers matching #

Claude now tracks whether your allowed-MCP-server rules could actually be evaluated.

allowedMcpServers
Under the hood · MCP

MCP task polling uses plain protocol requests instead of the experimental tasks client #

MCP task polling now uses plain protocol calls instead of an experimental client path.

Under the hood · MCP

Windows sandbox status panel loads via a promise instead of an effect #

The Windows sandbox status panel loads its data more directly, with less flicker-prone wiring.

Under the hood · Windows

Team memory "write steered" telemetry counts more mounts #

Team memory reporting now counts more of your writable team mounts.

Under the hood · Memory

Queued task notifications keep their origin and mode #

Messages from task notifications remember where they came from, so artifact subscriptions re-arm instead of replaying.

You'll notice · Artifacts

MCP request handlers moved to string method names and the new request object #

MCP request handling was updated to a newer library shape, including prompts and task status updates.

Under the hood · MCP

Background session records whether it booted via resume #

Background sessions now remember whether they resumed, so interactive behaviour is judged correctly.

Under the hood · Sessions

Async sandbox dependency checking #

Sandbox startup on Windows no longer blocks while checking dependencies, so it should feel snappier.

You'll notice · Sandbox

Teammate respawn records transcript restoration and first-paint marks #

Resumed teammate sessions now replay first-paint marks to clients that attach, so reattaching looks right.

Under the hood · Sessions

Session cron tasks moved into a per-context store #

Scheduled session tasks are now tracked per session context instead of globally.

Under the hood · Sessions

MCP tasks use raw requests instead of the experimental client helpers #

MCP task results and cancellations now use standard requests instead of an experimental helper.

Under the hood · MCP

Review-origin remote sessions skip some disk persistence #

Remote sessions started from review can skip writing some state to disk.

CLAUDE_CODE_REMOTECLAUDE_CODE_REMOTE_SESSION_ORIGIN
Under the hood · Sessions

MCP skill loading reports a surfaced count #

Claude now counts how many skills an MCP server surfaced when loading them.

Under the hood · MCP

Dead-probe telemetry pruned to two events #

Most of the one-shot probes checking whether old code paths still run were removed.

Under the hood · Telemetry

Telemetry values run through sanitizers in more places #

More analytics fields get cleaned before sending, and some events carry extra context.

Under the hood · Telemetry

Background attach telemetry gets cold-start and surface dimensions #

Background attach events now record cold starts, surface and first frame details.

Under the hood · Telemetry

Telemetry values are validated before being sent #

Unexpected telemetry values are replaced with a placeholder instead of being sent raw.

Under the hood · Telemetry

new_file and new_directory attachments are dropped from the converted message stream #

New file and new directory notices no longer clutter the converted message stream.

You'll notice · Attachments

Newly connected MCP clients are handed to a wiring hook that can fail safely #

Newly connected MCP servers can now replace a cached placeholder, and a failure there won't break the connection.

Under the hood · MCP

MCP connection-failure telemetry records negotiation outcome #

Failed MCP connections now record how the handshake was negotiated and whether it fell back.

Under the hood · MCP

Much richer background-attach timing telemetry #

Attaching to a background session now records detailed timing, including a 30-second timeout flag.

Under the hood · Sessions

Discovery-cache misses are classified in telemetry #

MCP tool discovery now logs whether the cache was used, and servers with skills or channels deliberately skip it.

Under the hood · MCP

Workshop artifact telemetry for turns, build start and build completion #

Workshop artifact builds now report progress from decisions through to completed deliverables.

Under the hood · Artifacts

MCP connection-failure telemetry normalizes the error code #

MCP failure codes are now cleaned up before reporting, so odd server values don't leak through.

Under the hood · MCP

MCP tool construction extracted and reused for cached servers #

MCP tools now get built the same way whether they come fresh from a server or from cache.

Under the hood · MCP

MCP skills funnel telemetry #

Skills fetched from MCP servers now report extra usage stats back to Anthropic.

Under the hood · MCP

Failure telemetry errorCode is now normalized against a fixed allowlist #

MCP connection failure reporting now uses a fixed set of error codes instead of raw values.

Under the hood · MCP

Connected client record exposes protocol details and goes through an adoption hook #

Connected MCP servers now track their negotiated protocol, and a failed wiring step no longer breaks the connection.

Under the hood · MCP

Plan-mode phase prompts extracted into a helper #

Plan mode's prompt text moved into one place with identical wording.

Under the hood · Plan Mode

Headless MCP pre-wait takes an options object and reports more telemetry #

Waiting for MCP servers before a headless run is tidied up and logs more detail.

Under the hood · MCP

Terminal attach gesture telemetry records how the attach happened #

Reattaching to a terminal session now records how the attach happened for diagnostics.

Under the hood · Elsewhere

MCP @-mention resource reads go through the shared reader with abort support #

Cancelling while an @-mentioned MCP resource loads no longer spits out an error.

You'll notice · MCP

Chrome bridge: activity observer runs before each tool call #

The browser bridge now rechecks the connection before each tool call and fails clearly if it dropped.

You'll notice · Chrome & Browser

MCP notification handlers registered through one helper #

MCP notification wiring for VS Code and daemon sessions now goes through one shared path.

Under the hood · MCP

WaitForMcpServers counts cached servers separately #

The MCP wait debug line now shows cached servers as their own count.

Under the hood · MCP

MCP HTTP auth errors matched on both code and errorCode #

Claude recognizes MCP login failures more reliably, so auth errors are handled instead of retried blindly.

Under the hood · MCP

Startup MCP wait is SDK-aware #

Startup waits less for MCP servers in some setups, only holding for local and deferred ones.

You'll notice · MCP

Daemon-boot gesture telemetry gets more fields #

Reconnect telemetry now records more detail about how your session came back up.

Under the hood · Sessions

Ephemeral sandbox CA takes options #

The sandbox's throwaway certificate authority can now be given a custom name and lifetime.

Under the hood · Sandbox

Chrome bridge takes an injected WebSocket factory and closes cleanly #

Fixes the Chrome bridge leaving half-open connections behind when it shuts down.

You'll notice · Chrome & Browser

Version bump to 2.1.221 #

This is build 2.1.221.

Under the hood · Elsewhere

Spare background job is rebooted when defaults change #

Fixes background jobs starting with stale settings by rebooting the pre-warmed spare when defaults change.

You'll notice · Sessions

Headless MCP startup wait reworked #

Headless runs decide more carefully whether to wait for MCP servers before starting.

CLAUDE_CODE_ENVIRONMENT_KIND
Under the hood · MCP

MCP connection dial-out deduped by a once-guard #

MCP tool and command collection is less likely to hang or finish twice.

You'll notice · MCP

Windows sandbox helpers throw typed errors with reason codes #

Windows sandbox failures now carry a reason code, though the message you see is unchanged.

Under the hood · Windows

Task-notification origins carry a subkind #

Scheduled-trigger notifications no longer get merged into ordinary task notifications.

You'll notice · Terminal UI

Background-session telemetry records how a session was attached #

Background session telemetry now records whether an attach was cold, spare or adopted.

Under the hood · Telemetry

New opt-in telemetry for org memory writes #

Claude logs an event just before asking you for an org-memory write credential.

Under the hood · Telemetry

Large amount of module-initializer churn with no visible behaviour #

Dozens of module-loading tweaks shuffled around internally with no effect you can see.

Under the hood · Internals

Stats panel rewritten as a compiler-memoized component #

The stats panel was rebuilt for faster redraws; one hidden 'Shot distribution' block still can never appear.

Under the hood · Usage & Limits

Background-attach outcomes are journaled to disk and recovered later #

Background session attaches now write a small journal file so crashed attaches still report what happened later.

Under the hood · Sessions

New telemetry for post-install plugin activation #

Claude now records whether a freshly installed plugin actually activated, and why it didn't.

Under the hood · Plugins

list_changed refreshes can be synthesized after a listen stream reopens #

Claude can now tell whether an MCP tool list refresh came from a reconnect or a server notification.

Under the hood · MCP

Whiteboard telemetry parsed out of published page state #

Publishing a whiteboard now counts its elements and pings by reading the page itself.

Under the hood · Artifacts

claude attach now measures time-to-interactive #

Attaching to a background session now times how long it takes to paint and reach an idle prompt.

claude attach
Under the hood · Sessions

Periodic feature-flag refresh loop with a remotely tunable interval #

Feature flags now refresh in the background every six hours instead of only at startup.

Under the hood · Internals

Fleet view attaches are instrumented with a gesture record #

Opening a job from the fleet view is now traced end to end for diagnostics.

Under the hood · Background Tasks

Removed

9 items

"Dead probe" telemetry removed across several code paths #

Temporary probes that checked whether old code paths still ran have been deleted; behaviour is unchanged.

Under the hood · Telemetry

Four dead-code probes deleted along with the legacy paths they measured #

Very old config files with legacy updater values now migrate to an unknown install method.

autoUpdaterStatus
You'll notice · Elsewhere

Five dead-code probes removed #

Five more leftover diagnostic probes were deleted, with no change to what you see.

Under the hood · Telemetry

Unused IDE "openFile" RPC helper deleted #

An unused helper for asking your IDE to open a file was deleted.

Under the hood · Elsewhere

"Don't ask again" in the session-memory rating survey no longer records a dismissal #

Picking don't ask again in the session-memory rating survey no longer sticks, so it returns later.

transcriptShareDismissed
You'll notice · Surveys

TaskOutput no longer honours the legacy wait_up_to parameter #

TaskOutput ignores the old wait_up_to setting and just uses the 30 second default timeout.

timeout
You'll notice · Tool Use

--cloud and --remote pre-parsing #

The --cloud and --remote flags no longer get special early handling and go straight to the normal parser.

--cloud--remote
You'll notice · Elsewhere

The "tmux" selection state was removed from the chat input #

A leftover tmux selection state that did nothing was removed from the chat input.

Under the hood · Elsewhere

Background-session pin store drops its legacy sidecar migration #

Background sessions pinned only by the very old marker file will no longer show as pinned.

You'll notice · Sessions