Skip to content

Releases

v2.1.319

Choose a tag to compare

@claude-code-publisher claude-code-publisher released this 06 Nov 17:04
Immutable release. Only release title and notes can be modified.

What's changed

  • Changed auto mode with telemetry or feature flags off, including behind LLM gateways: calls the server can't check are asked about or denied, with no fallback to the built-in classifier; set CLAUDE_CODE_AUTO_MODE_SERVER=0 to keep using it (Bedrock, Vertex and Foundry are unchanged)
  • Changed auto mode behind an LLM gateway: CLAUDE_CODE_AUTO_MODE_SERVER=1 turns on the server-side check even with CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS set; if managed settings set the latter, they must set the 1 too
  • Added support for MCP tasks in the terminal: when an MCP server runs a tool call as a task, Claude Code moves it to the background right away and tells Claude the result when it finishes
  • Added the CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND environment variable to make Claude Code wait for an MCP task inside its tool call instead of moving it to the background right away
  • Added permissions.denyInsteadOfPrompting setting: a tool call that would wait on a permission prompt is denied and the turn continues, in terminal sessions, subagents and teammates
  • Added /claude-api latency-optimize to find where your Claude API code makes people wait and try faster settings against your eval
  • Added the CLAUDE_CODE_DISABLE_FEATURE_FLAGS environment variable, which stops feature-flag fetching without turning off telemetry; every flag then uses its built-in default
  • Added spend for today, this week and this month to /usage for developers behind a Claude apps gateway who have no spend limit, when the gateway runs this version or later
  • Added admin.pooled_conflict_rule and admin.pooled_priority_order to the Claude apps gateway, to set which pooled group budget pays first for a developer in several groups
  • Added an optional login_notice setting to the Claude apps gateway that shows an operator-defined message on the gateway's browser verification page and on Claude Code's sign-in screen
  • Added CLAUDE_GATEWAY_LOG_FORMAT=json to the Claude apps gateway: operational log lines become JSON with severity, time and message, for log collectors that read the level from a field
  • Added a Claude apps gateway boot warning for a case where another policy's availableModels also allows a custom model id that one policy lists by name
  • Added start-up warnings to the Claude apps gateway for policies with no desktopHome that rely on coworkTabEnabled: false or chatSessionRetentionDays, ahead of Claude Desktop's November 10 change
  • Added a warning when your claude.ai login ends and Claude Code continues on the sign-in from ant auth login, which bills usage to your Claude Console organization
  • Added a line at startup naming the Claude Console organization that is billed in a case where Claude Code uses the sign-in from ant auth login
  • Added an "Earlier in this session" row to /tasks that lists finished subagents, so you can reopen one and message it even after it leaves the list or you restart
  • Added a note to /loop confirmations in cloud sessions that a timer stops with its container, with an offer of a loop that survives
  • Fixed MCP servers on the older handshake failing to connect, or returning empty results, because Claude Code declared an extension that it only uses with newer servers
  • Fixed a long-running MCP tool call on a claude.ai connector sometimes never reporting its result after --resume
  • Fixed a session's diff failing to load on claude.ai and the mobile apps when the folder Claude Code runs in has a file or folder named HEAD
  • Fixed /diff showing "Diff unavailable" when a git repository has a file or folder named HEAD at its top level
  • Fixed the /diff pane opening blank in sessions where 64 or more turns edited files
  • Fixed slash commands typed after a leading space, tab or newline being sent to Claude as plain text instead of running
  • Fixed a request that kept failing with a 401 refreshing your login on every retry and causing 401s in your other sessions
  • Fixed /context sending its full visual grid to Claude on every later turn; Claude now reads only the table
  • Fixed claude -p exiting 0 in auto mode when its actions were refused because no safety check was available: text and JSON output now exit 1
  • Fixed a case where Claude Code listed every project file at start on Linux for projects on a network file system (NFS, SMB, Lustre and similar)
  • Fixed a case where auto mode was wrongly refused when a client sent a model change and a request for auto mode back to back
  • Fixed /status showing "Auto mode server: Enabled" when the server-side review isn't reaching the session, for example behind an LLM gateway that drops it
  • Fixed Claude-drafted feedback, surveys and /feedback continuing to appear after the server refused feedback for your organization
  • Fixed Claude drafting feedback on third-party gateways, where it can't be sent
  • Fixed auto mode refusing actions without saying why when permission rules or autoMode settings are very large: it now explains and, unless autoMode deny rules are set, asks you in the terminal
  • Fixed a case where Bash deny and ask rules missed commands written with quoted words
  • Fixed subagent hand-back reports showing an internal marker and provenance note when expanded outside verbose mode
  • Fixed claude -p --resume with a prompt losing a deferred tool call when its MCP server is missing: the run now exits 1, keeps the call and refuses later input
  • Fixed a case where text was dropped from informational messages sent to SDK clients
  • Fixed a case where Agent SDK hosts got a generic exit-code error instead of a failed run's own error message when the disk was full
  • Fixed CLAUDE_CODE_RESUME_INTERRUPTED_TURN re-running a turn that was interrupted in plan mode when the session resumes in another permission mode
  • Fixed edits to a settings file being ignored when made within a few seconds of Claude Code writing that file
  • Fixed a config file left at the legacy name hiding your setup with no warning: Claude Code now says on stderr when a home holds two config files, and which is in use
  • Fixed ~/.claude.json, settings and edited files ending up empty or cut off when the disk fills during a save in a read-only folder or to a bind-mounted file (one session saving at a time)
  • Fixed Write ending the turn as a refusal when it couldn't read the file to overwrite
  • Fixed background Bash commands that finish almost instantly losing their output while being reported as completed
  • Fixed the Bash tool's diff of changed files missing a file that the command wrote just before it ended
  • Fixed a mistyped model name, such as opus-5-5, telling you to update Claude Code instead of suggesting the model you meant
  • Fixed a case where NotebookEdit changed the wrong cell when the notebook changed while a permission prompt was open
  • Fixed a ~0.5s hang after pressing Enter on the /login success screen: the dialog now dismisses immediately and the post-login refresh runs in the background
  • Fixed Ctrl+G not opening the external editor while typing an "Other" answer to a question in screen reader mode
  • Fixed Monitor's WebSocket watch failing with "could not resolve" behind a proxy when CLAUDE_CODE_PROXY_RESOLVES_HOSTS is set and the machine has no DNS of its own
  • Fixed claude plugin eval warnings suggesting max: 0 for a tool that must not be called, which could never pass
  • Fixed background plugin auto-update not installing a dependency added by the updated plugin version
  • Fixed Cmd+click not opening links in Ghostty over tmux in sessions opened from the agents view
  • Fixed a mod's hot reload in .claude/skills missing a file that was deleted just after it appeared, and missing its return
  • Fixed /rewind failing with "No files were restored" when restoring code to a checkpoint from before /branch
  • Fixed the /claude-api skill saying Console web settings don't apply to Managed Agents sessions, and tightened its credential and permission examples
  • Fixed needless permission prompts for read-only commands wrapped in a plain timeout DURATION, such as timeout 30 rg foo
  • Fixed WebFetch describing claude.ai shared-chat links as empty pages; it now says shared chats can't be read and to paste the conversation instead
  • Fixed Artifact database calls being re-sent to artifacts without a database; errors now say whether republishing helps
  • Fixed a case where artifact database reads that save to a folder (out_dir) were refused
  • Fixed detailed beta tracing not presenting CLAUDE_CODE_CLIENT_CERT to collectors that require a client certificate
  • Fixed the OpenTelemetry claude_code.session.count metric counting Agent SDK prewarm() processes that were never claimed; a pre-started process now counts once, when it is claimed
  • Fixed /clear killing running commands of background agents, teammates and workflows that keep running, and foreground subagents of background agents and teammates
  • Fixed a terminal whose Claude apps gateway sign-in had expired sending telemetry and managed-settings requests that the gateway refused and logged as invalid_token
  • Fixed the agents view appearing to send a reply to a background session waiting on a permission prompt; the reply now stays in the box with a hint to open the session and answer
  • Fixed agent view removing a draft saved by another agent view in the same directory when exiting
  • Fixed a case where agent view came back with another agent view's input text after restarting itself for an update
  • Fixed the agents view preview cutting off long commands, results and status lines without an ellipsis, and dropping **, backticks and tags from commands waiting for approval
  • Fixed Claude in Chrome reporting the extension as not connected when the connection dropped mid-action; Claude now checks the page before repeating an action that may have run
  • Fixed Remote Control sessions still showing "Limit reached" on other devices after a usage limit was lifted outside...
Read more

v2.1.318

Choose a tag to compare

@ashwin-ant ashwin-ant released this 04 Nov 00:01
Immutable release. Only release title and notes can be modified.

What's changed

  • Added a record of your answer when Claude Code asks to turn on the mods it writes in a session
  • Added assume_role on mantle upstreams of the Claude apps gateway, for a role in another AWS account and for per-developer AWS cost attribution
  • Added an effort option to a mod's $.model.fork, so a quick side job can run at low whatever effort the session uses; the result reports the effort sent
  • Added the date a stored claude.ai sign-in ends to claude auth status (loginExpiresAt) and to claude -p JSON results (credential_expires_at)
  • Added a one-line stderr warning to claude -p text output, starting 10 days before a stored claude.ai sign-in ends
  • Fixed --continue sometimes losing the earlier conversation after a malformed tool call's retries ran out (regression in 2.1.314)
  • Fixed macOS sessions with many running Bash commands stalling while memory grew
  • Fixed permission prompts being answered by keys typed just after sending a message, or before a slow prompt appeared
  • Fixed /logout, claude auth logout and claude mcp remove reporting success, and changes to trust, consent or MCP settings being dropped with no word, when the config file could not be updated on a shared network home directory
  • Fixed jobs exiting with Not logged in when another terminal or host signs in again to the same account and organization on the same home
  • Fixed claude mcp add and remove writing the config without its lock: they now wait for it or exit 1, though another job's save can still replace a saved server
  • Fixed claude plugin commands exiting before a slow token refresh was saved, which could sign you out on the next run
  • Fixed claude plugin validate passing a custom-named marketplace file that claude plugin marketplace add rejects
  • Fixed stdio MCP servers that exit on the version probe being re-probed on every start; a server that dies in under 3s for its own reason is also pinned to the legacy handshake for 7 days
  • Fixed sessions being refused at startup by an allowedProviders list that another login on the same machine had stored
  • Fixed idle compaction replacing a conversation with a reply that was not a summary
  • Fixed the "Now using usage credits" notice reappearing about every 30 seconds while a background subagent is running
  • Fixed custom slash commands that fail, or that only Claude can invoke, printing nothing in claude -p and SDK sessions
  • Fixed claude -p and Agent SDK sessions reporting success when an API error cut off a reply while a mod hooked turn.step
  • Fixed a message sent right after a model change still running after Stop in headless sessions: Stop now cancels or stops it as it would a queued message
  • Fixed a deleted session transcript being re-created with its last prompt when an idle non-interactive session exited
  • Fixed claude remote-control hosts, the background daemon and self-hosted runners failing to start new sessions (spawn ENOENT) after an update or version cleanup removed the binary of a still-running process
  • Fixed a running Claude Code process owned by another user (for example one left by sudo claude) being treated as dead by version cleanup, which could delete its binary
  • Fixed /remote-control showing a session as available after a failed connection
  • Fixed /design revoke reporting success when the request failed with a 404
  • Fixed a shell command approved after a self-hosted runner or cloud session restart running in the session's start folder, not the folder it was asked in; if that folder can't be entered, it is not run
  • Fixed Claude not being told when an approved connector tool was unavailable after a cloud session restart
  • Fixed cloud sessions being stopped in the middle of a turn when the service refuses uploads for several minutes
  • Fixed variables a Setup hook writes to CLAUDE_ENV_FILE not reaching the Bash tool in some cloud sessions
  • Fixed the iPhone app showing a cloud session's turn as finished while it kept running, after a response was cut off at a tool call or a refused image or document was removed
  • Fixed a restarted session re-sending a message that failed with an API error, ahead of the newer message waiting behind it
  • Fixed a restarted session dropping its interrupted turn when the restart came right after Claude read a large image or retried a tool call
  • Fixed every connection failing when the NODE_EXTRA_CA_CERTS file is empty, not PEM, or starts with a damaged certificate: readable certificates are now used, with a warning on stderr
  • Fixed workflows re-running finished agents when resumed after a usage limit
  • Fixed /mcp in cloud sessions counting tools the model can't use; a server's row now shows how many of its tools are available
  • Fixed a duplicate notification when Claude left the status field out of a PushNotification call
  • Fixed the error for a too-large image in a request with more than 20 images always saying the limit was 2000px; it now shows the API's limit
  • Fixed the runtime in background shell details not updating while the dialog is open
  • Fixed a mod's turn.step hook making a stopped reply finish as a success in headless runs
  • Fixed retention cleanup leaving a home that only runs claude -p with no ~/.claude.json backup: it now takes a fresh backup before deleting the last good one
  • Fixed the stored login being replaced by an empty file when a network home directory has no room left for data but still takes new files
  • Fixed tokens from setup-token being refused at start on machines with forceLoginOrgUUID, when the token belongs to a permitted organization
  • Fixed non-interactive launches replacing a ~/.claude.json that isn't valid JSON with defaults; the start now fails, says how to restore the file, and leaves it as is (#87551)
  • Fixed an empty ~/.claude.json with no backup being reported as corrupted; Claude Code now starts as it does when the file is missing
  • Fixed the restore command printed for a damaged or missing ~/.claude.json naming an empty or cut-off backup, or failing on a read-only file
  • Fixed the sign-in failure when a stored claude.ai login reaches its time limit: it now says so, and in claude -p names claude auth login and claude setup-token
  • Improved how ~/.claude.json, settings files and the stored login survive saves on shared network home directories: they are less often deleted, briefly emptied or replaced by a near-empty or older copy
  • Improved sessions on network file systems to look again when the configuration file is wrongly reported as missing, so fewer start without your MCP servers and trusted folders
  • Improved MCP tool errors: a call made before the tool is loaded now returns its input schema
  • Improved the reliability of git commits and pull request creation when the Bash tool runs macOS's built-in /bin/bash
  • Improved "Ask your admin for more usage" in the usage limit menu to send the request in one step
  • Improved how fast remote sessions reconnect after a pause or sleep
  • Improved You should know toasts to say "try again" instead of "press 2", which only works in the terminal
  • Improved auto-update reliability: a brief network failure while verifying a release is now retried right away instead of waiting for the next check
  • Improved unattended runs (claude -p, SDK apps) to stop rewriting ~/.claude.json on every run when nothing in it changed
  • Changed Claude Code to no longer install or update the IDE extension when started in an IDE terminal; use /ide from an outside terminal or your editor's extensions view
  • Changed subagents to stop instead of switching models when "Switch models when a message is flagged" is set to "Ask each time"
  • Changed background subagents to move a shell command to the background after 3 minutes on all providers, so the prompt cache doesn't expire while it runs
  • Changed subagent progress summaries on Bedrock, Vertex, Foundry, or with telemetry off: on a cold prompt cache, one can now wait up to 5 minutes for the subagent's pending response
  • Changed what a mod attaches at prompt.submit to stay in the user's turn rather than go out as a system message
  • Changed deniedMcpServers URL entries to also block Anthropic-provided servers whose upstream URL matches, and connectors in cloud sessions and on self-hosted runners, where the session is given the connector's own URL; otherwise deny a connector by name
  • Changed the /permissions rule details, built-in rules and delete confirmation views to use the standard dialog; pressing Ctrl+C twice there now goes back or cancels instead of quitting
  • Changed /claude-api managed-agents-onboard to give a new agent's built-in tools, and a quickstart template's MCP tools, the auto permission policy ("Judge risky actions") by default, matching the Claude Console; say "run without asking" to opt out
  • Removed the 2.1.288 fix that kept the model's earlier thinking when resuming a conversation started on 2.1.286 or earlier; that thinking can now be dropped
  • Gateway: Added a log warning when the Google access token from a federation (external_account) credentials file is about to expire
  • Gateway: Improved the log hints about listen.trusted_proxies: they now say to list only a proxy that adds the connecting address to X-Forwarded-For itself
  • Gateway: Improved the warning when AWS CountTokens fails on Amazon Bedrock: it says Claude Code, not the gateway, counts after the 501, and points at IAM only when AWS denies access
  • Self-hosted runner: Added CLAUDE_RUNNER_SPAWN_REASON to the orchestrator's spawn-runner hook environment: why Anthropic sent the request (e.g. runner_lost, resumed); unset when none was sent
  • Self-hosted runner: Added a startup warning when --release-idle-session-min is the last argument with no value (still ignored) or has a value of only spaces (still read as 0)
  • Self-hosted runner: Changed the orchestrator's log lines: ok session=… now prints at ...
Read more

v2.1.317

Choose a tag to compare

@ashwin-ant ashwin-ant released this 03 Nov 01:25
Immutable release. Only release title and notes can be modified.

What's changed

  • Added a warning to /schedule when a new cloud scheduled task gets connectors you did not ask for, with how to remove them
  • Added a check that asks before a web or shell tool call sends your account email address to the network
  • Added onFailure: "block" for Agent SDK hook callbacks, so a callback that fails blocks the action instead of letting it run
  • Added a notice in Claude Desktop's Code tab when your organization's remote managed settings haven't loaded for the session, and another once they do
  • Added a notice when auto mode's check has no answer for a subagent's tool call, which used to leave nothing in the main view
  • Added anthropic.plan, anthropic.seat_type, anthropic.provider and anthropic.custom_base_url to OTel metrics, events and spans
  • Added a cost report to the Claude apps gateway admin API, GET /v1/organizations/analytics/cost, for reading past spend over a date range in total, per developer, per day or per IdP group
  • Added a daily record of each developer's IdP groups on Claude apps gateways with admin: set, kept for admin.identity_retention_days, which the cost report groups by
  • Added CLAUDE_CODE_DISABLE_NESTED_SESSION_ID: set it to 1 on a self-hosted runner to have claude -p run inside a session use that session's ID and transcript, as in earlier versions
  • Fixed project and local MCP servers disconnecting after the first turn in some Claude desktop sessions
  • Fixed auto mode failing every turn when an LLM gateway set as the base URL answers 403 or 422 to its server-side safety check (a 403 with an apiKeyHelper is unchanged)
  • Fixed claude auth status exiting before a slow token refresh was saved, which could sign you out on the next run
  • Fixed a project's effortLevel setting being ignored by sessions that an app starts ahead of time and then opens in the project, such as new sessions in the desktop app's Code tab
  • Fixed claude --from-pr reporting "No conversations found" in projects with many sessions when the linked session was older than the first page
  • Fixed the second of two simultaneous permission prompts showing no file path or command on claude.ai and the mobile apps
  • Fixed Remote Control and SDK hosts offering "don't ask again" on a mod's tool calls
  • Fixed session titles being lost in cloud and SDK sessions when a new message or Stop arrived while the title was generating
  • Fixed self-paced /loop wakeups sometimes not being scheduled when Claude left a field out of its request
  • Fixed auto mode in cloud sessions stopping for approval when the Artifact tool uploaded, wrote to a database or saved a file through the outputs folder
  • Fixed skills synced from claude.ai being lost or downloaded again every ten minutes when they can't be written to disk
  • Fixed /schedule leaving a cloud scheduled task's next run time and link out of its results after creating or updating it
  • Fixed screen readers speaking a running subagent's elapsed time and token count on every change in screen reader mode
  • Fixed a region or network block (HTTP 403) being shown as a sign-in failure; the error now explains the block
  • Fixed Claude saying a working claude.ai connector needed authorization or had failed in cloud sessions when a synced plugin included the same server
  • Fixed claude -p exiting 0 when a full disk or quota lost its transcript or ~/.claude.json writes; it now prints an error and, in text and json output, exits 1. Full NFS exports may be missed
  • Fixed edits to settings files made in the first second or so after launch not taking effect until a settings file changed again
  • Fixed old transcripts not being cleaned up on machines where some runs skip cleanup, such as runs using --setting-sources
  • Fixed deleted agent team inboxes being re-created by a teammate's late message
  • Fixed a re-created agent teammate being removed from its team by an earlier shutdown approval
  • Fixed stored scheduled tasks being impossible to list or delete after scheduled tasks were turned off
  • Fixed Claude deleting your most recently updated /team-onboarding guide when asked to delete one without naming which
  • Fixed Claude saying a /team-onboarding guide was deleted when the server refused the delete
  • Fixed the Claude apps gateway hiding Amazon Bedrock's "Input is too long." error, which left sessions failing every turn with "upstream rejected the request" instead of compacting
  • Fixed self-hosted runner sessions losing recent turns or the whole conversation when restarted while a plan waited for approval
  • Fixed "Prompt is too long" after automatic compaction in sessions whose very large CLAUDE.md changed since it was last sent
  • Fixed high memory use and slow startup in headless sessions with many plugins that register commands
  • Fixed stdio MCP servers receiving an empty AWS_BEARER_TOKEN_BEDROCK when their env config sets it to empty; the variable is now unset, so the server can use the machine's own AWS credentials
  • Fixed API requests failing with "unable to get local issuer certificate" behind some TLS-inspecting proxies after a root certificate renewal
  • Fixed very long conversations losing their earlier summary when compaction had to shorten its own request
  • Fixed a PDF's own metadata being able to make Read and @-mentions under-count its pages
  • Fixed DISABLE_PROMPT_CACHING_OPUS and DISABLE_PROMPT_CACHING_SONNET having no effect on [1m], other-region and undated spellings of the default model
  • Fixed /artifacts and the Artifact tool's shared list showing no shared artifacts when you have 200 or more of your own
  • Fixed Claude treating partial Grep and Glob results as complete when a search hit its time limit
  • Fixed OpenTelemetry exports to an https:// endpoint through a proxy never being sent when they started while another export was still in progress
  • Fixed a flood of connection attempts to a proxy that blocks (HTTP 403) OpenTelemetry exports to an http:// endpoint
  • Fixed OpenTelemetry exports hanging indefinitely behind a proxy that never answers; they now time out after 10 seconds, or OTEL_EXPORTER_OTLP_TIMEOUT up to 30 seconds
  • Fixed resumed sessions telling Claude again about a file change it already knew about
  • Fixed Claude sometimes not using a built-in tool in a resumed session after an earlier call failed because the tool was switched off
  • Fixed /remote-control answering "Unknown command" instead of saying that Remote Control is turned off by the disableRemoteControl setting
  • Fixed agent team teammates in tmux or iTerm2 panes starting in auto mode when the lead session was in manual mode
  • Fixed a background session sometimes losing a just-made change of permission mode when it was upgraded or retired
  • Fixed Ctrl+C stopping all running background agents when pressed to clear typed text at the prompt
  • Fixed /feedback showing "Enter to confirm" while a report is being sent
  • Fixed child processes of a stopped shell command sometimes being sent SIGTERM twice, which could make some programs skip their cleanup
  • Fixed claude -p run inside a cloud or self-hosted runner session sharing that session's ID: it wrote into the session's transcript, and a restart could resume the wrong conversation
  • Fixed claude -p run inside a cloud or self-hosted runner session generating a title of its own and sending it to that session
  • Improved the error shown on Microsoft Foundry when Azure credentials can't be loaded: it now says to check or refresh them, and reports as cloud_credential_error
  • Improved /design-sync to say up front when your design system has moved to Claude, and stop before building instead of failing at upload
  • Improved the startup error when a required Claude apps gateway can't be reached: it points to the network instead of a sign-in, and says when the gateway's TLS certificate can't be verified
  • Improved the "Resume this session with" hint shown at exit to repeat the flags you launched with (for example --chrome --debug) ahead of --resume
  • Improved how self-hosted runners recover from server errors: after a 5xx other than 501 or 529, a runner's next poll now opens a new connection instead of reusing the one that failed
  • Improved how self-hosted runner sessions recover from server errors: after a 5xx other than 501 or 529, a session now opens new connections instead of reusing the one that failed
  • Improved how self-hosted runner sessions recover when connections stop answering: after a heartbeat gets no answer, a session now opens new connections instead of trying each idle one in turn
  • Changed SendMessage so a message to a running background agent arrives earlier: its running command moves to the background, without being stopped
  • Changed subagents and teammates on a different model from the main conversation to use that model's saved effort level or its default, instead of the session's effort level
  • Changed exit to skip the "Background work is running" prompt for plugin monitors
  • Changed the built-in plugin-authoring skill to offer once, after a mod you built works, to help share the mod
  • Removed the Read tool's "file unchanged since your last Read" stub: reading an unchanged file again returns its content
  • Windows: Fixed every tool call being refused on some volumes where the native path lookup fails; the working-directory check now compares the folder's identity instead
  • Windows: Fixed the session scratchpad and other temporary paths growing with your project's path length in sessions not started by Claude Desktop, which made repositories cloned into them hit the 260-character path limit
  • Gateway: Fixed the status line and /usage showing a developer's own spend limit as 100% used after their group's pooled budget ran out
  • Self-hosted runner: Fixed Claude not seeing the interrupted tool call when a session moves to a new runner and the turn is older than CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS
  • Self-hosted runner: Fixed an MCP server that was switch...
Read more

v2.1.316

Choose a tag to compare

@ashwin-ant ashwin-ant released this 31 Oct 01:01
Immutable release. Only release title and notes can be modified.

What's changed

  • Added CLAUDE_CODE_DISABLE_ULTRATHINK, which turns the ultrathink keyword off
  • Added pooled group budgets to the Claude apps gateway: one monthly budget that a group's members share, on top of each member's own limit, set with pooled_budget on the spend limits admin API
  • Added CLAUDE_CODE_DISABLE_LOOPED_CROSS_CERT_DROP to keep system cross-certificates that certify each other in a loop, for servers whose private CA needs one
  • Added CLAUDE_CODE_SUBAGENT_EFFORT to set the effort level subagents run at when nothing else names one, instead of inheriting the session's
  • Added managed.policy_mode: layered to the Claude apps gateway: every policy that matches a developer applies, each merged over the ones listed below it, not only the first
  • Added guardrail.input_tagging on Claude apps gateway Bedrock upstreams, which wraps prompts in the input tags that an Amazon Bedrock guardrail's prompt attacks filter needs; all_messages_and_system also tags the system prompt
  • Deprecated fast mode for Opus 4.8 as of October 30, 2026; it will be removed on November 30, 2026. After removal, fast mode requests on Opus 4.8 return an error and do not fall back to standard Opus 4.8. Migrate to Opus 5.5 to keep the speedup
  • Fixed shell commands being left running on macOS and Linux when Claude Code exits by itself, for example when credentials are refused or a cloud session is archived
  • Fixed bash aliases with line breaks in their value (except in Git Bash), and functions whose names start with a dash, being garbled or lost in the Bash tool's shell
  • Fixed bash scripts started from the Bash tool stopping after their first command when SHELLOPTS is exported
  • Fixed PowerShell hooks not blocking on exit code 2 when the command begins with a type cast, param, using or an attribute
  • Fixed some network requests hanging when a compressed response was cut off or corrupted
  • Fixed sonnet, opus and haiku on Vertex AI and Amazon Bedrock showing an error mid-session instead of switching to an older model when the newest is not yet available to the account or region
  • Fixed the Claude apps gateway not checking every model a request names against availableModels, deniedModels and models; a request that names a blocked model now gets a 400 naming the field
  • Fixed claude auth login refusing to run where managed settings require a Claude apps gateway; in a terminal it now shows the gateway sign-in
  • Fixed --restricted sessions uploading files from outside the working directories when a Read allow rule covered them
  • Fixed prompts containing invisible characters needing a second Enter to send; plain prompts now send cleaned on the first Enter, and commands still wait for review
  • Fixed sub-agents that inherited a parent sub-agent's model moving to the main model when a background job or message woke them
  • Fixed a managed autoMode.allow list without "$defaults" getting the built-in exceptions back from a host app's --settings, a first rule added in /permissions, or /auto-mode-setup
  • Fixed cloud sessions and cloud scheduled tasks not being marked as failed when auto mode stopped a turn because the server returned no safety verdict
  • Fixed claude -p text output sometimes not saying why auto mode stopped a turn when a background agent was still running
  • Fixed CLAUDE_CODE_AUTO_MODE_SERVER=1 being ignored in sessions started by a host application (such as Claude Desktop) behind a proxy or LLM gateway with experimental betas turned off
  • Fixed plugin MCP headersHelper scripts receiving a corrupted CLAUDE_PLUGIN_ROOT and server URL when a credential-named environment variable was set to a switch value such as 1
  • Fixed the SDK register_repo_root control request not loading the CLAUDE.md of a directory outside the working directory (with CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1)
  • Fixed the Artifact tool showing ? for artifact database access rules at the self level, and not quoting those rules back when it refuses a republish that would drop them
  • Fixed /model <id> not warning when the model isn't recognized by this version and auto-compact will assume a 200K context window
  • Fixed the "hold space to speak" hint using up its three showings in one session, and showing an empty key when push-to-talk is unbound
  • Fixed Grep and Glob never returning when the search process is killed at the timeout but does not exit, seen on Windows
  • Fixed a rare case where resuming a conversation did not restore its plan, when /clear or /resume had been run while part of that conversation was still being saved
  • Fixed first-run setup dropping words from the security notes and the terminal-setup explanation in narrow terminals
  • Fixed the Enterprise survey card taking a typed 1 or 0 after a short pause; a typed answer now needs Enter
  • Self-hosted runner: Fixed a message sent while Claude was working being answered after a Stop, once the session's process had been replaced
  • Self-hosted runner: Fixed an MCP server's on/off switch sometimes being lost when a session moved to a new machine
  • Windows: Fixed the Bash tool losing your aliases and functions in Git Bash when the rc file sets errexit and pipefail and only winpty aliases, or none, are defined
  • Improved /code-review started from the Code tab in Claude Desktop or on the web: cloud and claude remote-control sessions now show the findings card, not a plain-text list
  • Improved /diff on large repositories: each refresh usually runs one fewer full-repository git command, and refreshes are spaced out when git is slow
  • Improved the messages shown when /ultrareview, a cloud session or a cloud agent finds no GitHub remote: they now say to create a repository at https://github.com/new, and /ultrareview no longer suggests a gh command that gh rejects
  • Improved SSL certificate errors to name the likely causes, among them a server that leaves out an intermediate certificate, and the fix for each
  • Changed auto mode so that an autoMode.allow list without "$defaults" no longer removes the built-in rule on scheduled-task prompts
  • Changed server-managed settings for Team and Enterprise logins: settings fetched from Anthropic's API now apply without an approval prompt, and a stored copy that doesn't verify is refused
  • [VSCode] Added sign-in to a Claude apps gateway from the chat panel, with no terminal needed
  • [VSCode] Changed ultrathink to run its turn at xhigh effort and show in a rainbow in the chat box, as in the terminal
  • [VSCode] Fixed the missing Effort slider, Ultracode switch and model name when the model setting has the [1m] tag, such as opus[1m]
  • [VSCode] Fixed saved /btw side-question history being deleted too early while a settings file has errors
  • [VSCode] Fixed a conversation coming back in Auto mode after a reload or restart when its plan was approved with "Yes, and manually approve edits"
  • [Cloud sessions] Added a form card to cloud sessions, so you can fill in or decline a form an MCP server asks for instead of the request being canceled without you seeing it
  • [Cloud sessions] Added a "Catching up…" line that shows while a cloud or Remote Control session you switch back to is still bringing its messages up to date
  • [Cloud sessions] Changed network secrets so Enterprise members can add and delete them on their own cloud environments, instead of only viewing them
  • [Cloud sessions] Improved the Changes pane for cloud sessions: the note about what the list leaves out is now a badge beside the branch name, not a row above the diff
  • [Cloud sessions] Fixed file search in a cloud session's Files pane showing folders as ../.. paths after Claude changed directory; results now show their path from the project's root
  • [Claude Tag] Fixed Claude refusing to edit or append to a canvas it made in a Slack channel, from that channel, once the canvas was also shared to another channel or a DM
  • [Claude Tag] Fixed untagged replies going unanswered in a Slack Connect thread when both organizations have installed Claude and Slack delivered the reply to the other organization's app
  • [Claude Tag] Fixed a cloud scheduled task's live status checklist in Slack staying half-done; a run can now edit the top-level messages it posted during that run
  • [Claude Tag] Changed a Slack channel's Respond automatically switch to a "How Claude participates" choice on the channel's Configure page and in Claude Tag admin settings
  • [Code Review] Added a findings-by-severity card to the Code Review analytics page, showing the period's total findings, a daily chart stacked by severity, and each severity's count

v2.1.314

Choose a tag to compare

@ashwin-ant ashwin-ant released this 30 Oct 01:06
Immutable release. Only release title and notes can be modified.

What's changed

  • Added permissions.blockWritesOutsideWorkingDirectories: Write, Edit and NotebookEdit refuse paths outside the working directories in every permission mode
  • Added an optional groups list to Claude apps gateway upstreams: only developers in the listed IdP groups are sent to that upstream, on failover too
  • Added guardrail_trace to Claude apps gateway Bedrock upstreams, to log which Amazon Bedrock guardrail filter fired on a request, without the matched text
  • Added idle compaction to VS Code and Claude Desktop's Code tab: a 200K+ token conversation left idle is summarized, and the summary is used on your next message if the prompt cache has expired
  • Fixed sessions failing turn after turn with "Invalid effort level" when an organization's admin caps a model's effort: Claude Code now lowers the effort, retries, and says which level it uses
  • Fixed claude -p exiting with code 0 and no output when startup failed; it now prints the error and exits 1
  • Fixed Bedrock sessions with many images failing every turn and /compact with "400 Input is too long." instead of removing older images and compacting
  • Fixed Microsoft Foundry sessions failing when the resource has no deployment for the default Sonnet, Opus or Haiku model: Claude Code now falls back to an older model of that family
  • Fixed repeated refused requests behind a gateway that doesn't accept tool search's tool_reference blocks: the request is sent again once without tool search, and the session remembers
  • Fixed TLS connections failing with UNABLE_TO_GET_ISSUER_CERT when the system certificate store holds a renewed root certificate that is cross-signed with its predecessor
  • Fixed MCP servers that also work without sign-in showing "needs authentication" after their stored sign-in stopped working; they are now used signed out
  • Fixed claude mcp logout reporting success when the MCP sign-in was not removed, for example while the macOS keychain is locked over SSH
  • Fixed extra sign-in renewals when several sessions share an Anthropic profile login and the credentials lock is busy
  • Fixed claude ultrareview and claude remote-control asking the workspace trust question in a CI job that has a terminal; with CI set they now refuse an untrusted folder at once
  • Fixed an administrator's TLS trust settings in managed settings not being applied in Claude Desktop sessions
  • Fixed model switching being refused on machines with managed plugin settings when one of your own --plugin-dir or --plugin-url plugins had a broken manifest or failed to download
  • Fixed the Bedrock and Vertex model upgrade offer coming back at every start when managed settings pin the model
  • Fixed forceRemoteSettingsRefresh set only in remote managed settings no longer applying once the stored copy had expired, which let sessions start without policy when the server could not be reached
  • Fixed "Continue automatically at usage limit" continuing more than three times without a prompt from you when a task restarted itself between waits (a /goal check-in, a background or scheduled task)
  • Fixed background and cloud sessions started with Ultracode turning it back on at their next start after it had been switched off
  • Fixed the last broken reply and its retry prompts staying in the conversation after Claude gave up on a tool call that could not be parsed
  • Fixed a PreCompact hook with very large output making compaction fail or repeat; each hook's output is now cut at 10,000 characters
  • Fixed background diff refreshes briefly taking the repository's index lock, which could make a git command run at the same moment fail with "Unable to create '.git/index.lock': File exists"
  • Fixed markdown tables jumping between grid and stacked layouts on half-typed rows while streaming, and long tables falling back to raw pipes
  • Fixed the /resume picker showing the text of CLAUDE.md or CLAUDE.local.md as a session's title when the session only ran slash commands
  • Fixed /btw answering from the main conversation when asked from a subagent's open transcript
  • Fixed pasting an image over SSH to a Linux machine doing nothing silently; the prompt now says to copy the file over and paste its path
  • Fixed claude remote-control sessions that failed to start when the session service was slow for a moment: the worker's registration is now retried with growing waits
  • Fixed model switches over Remote Control that take over 8 seconds getting a "still pending" error instead of the final result
  • Fixed the sandbox.excludedCommands setting description saying listed commands always run outside the sandbox; it now says every command in a call must match an entry
  • Fixed shell and MCP calls that auto mode, a deny rule or a PreToolUse hook blocked, or that otherwise did not run, reading as if they ran in a collapsed tool group
  • Fixed sandbox protections not applying to a worktree entered by claude -p --resume or --continue
  • Fixed hooks matching Bash not running on shell commands started by the Monitor tool; such hooks can block or ask, but not approve or rewrite those commands
  • Fixed a settings file excluded with --setting-sources still supplying some settings, such as auto mode rules and saved permission consents
  • Fixed auto mode reporting a call as blocked, and listing it in /permissions, when its safety check gave no verdict
  • Fixed a Claude apps gateway Vertex upstream hanging for minutes when a Google token endpoint accepts the connection and never answers
  • Fixed the Claude apps gateway's start-up warning for a deprecated Claude Desktop key that it still serves as written saying "stops being accepted" after the key's end date
  • Fixed /upgrade opening the browser and starting a new login for plans billed through the App Store or Google Play; it now says where to change the plan
  • Fixed --resume, and rewinding past a switch to another model after a refusal, moving a session on a model name Claude Code doesn't recognize to a different model
  • Fixed requests failing when a gateway or cloud provider refuses one of Claude Code's beta headers by name: the request is sent again without it
  • Fixed model IDs spelled with a dot behind an LLM gateway, such as claude-opus-4.8, being treated as an older model with the wrong context window, output limit, effort, thinking mode and cost
  • Fixed Remote Control clients showing a stray "Compacted (ctrl+o to see full summary)" row after /compact
  • Fixed the cloud sessions tip and the Remote Control idle notice showing when an organization's policy turns those features off
  • Fixed a resumed claude.ai cloud session making a model call nobody asked for when the previous worker stopped just after receiving a new chat's files
  • Fixed WebFetch in Cowork cloud sessions silently dropping a PDF's text past 100,000 characters; it now says how much was unread and where to read on
  • Fixed Claude being told only that a command was declined after you stopped it with Esc or Stop in a cloud session or the IDE; it now also hears that the command may have run
  • Fixed blank lines at the top of a code block disappearing when the code block opens a quote
  • Fixed a blank line appearing above some ⎿ rows in the transcript view (Ctrl+O)
  • Fixed vim mode dw, dW, yw and yW carrying on past the end of the line, and made w and W stop on empty lines
  • Fixed x and Enter in the agent panel sometimes acting on the wrong agent when another agent started or finished
  • Fixed pasted text and dragged-in files being lost in Claude's question dialog unless the "Other" row had focus
  • Fixed pasted text being lost when a row in the prompt footer was selected
  • Fixed vim mode p over a character selection ignoring whether the yanked text was whole lines
  • Fixed vim mode aw and iw taking the line break at the end of a line
  • Fixed ↓ selecting footer items hidden by the ? help menu, the command list or a paste hint
  • Fixed Esc on a command's panel, such as /btw, also interrupting the subagent whose transcript is open
  • Fixed the welcome header in fullscreen mode showing the session's model while viewing a subagent or teammate that runs on a different model
  • Fixed the fullscreen transcript being left mid-conversation after "Restore conversation" in the rewind menu while scrolled up
  • Fixed a rare case where a deleted session could reappear in the resume list as an almost empty entry
  • Fixed prompts containing tags such as <bash-stdout> or <local-command-stdout> not being acknowledged to a local stream-json host
  • Fixed sessions staying untitled when the first prompt failed (for example on a usage limit) and the conversation continued afterward
  • Fixed the skill file watcher checking every removed skill kept in ~/.claude/skills/.trash, which added file system load that grew with each removal
  • Fixed the session name from /rename disappearing while Claude asks for permission or a plan decision, so side-by-side sessions stay identifiable
  • Fixed background sessions that fail to start being reported as a deleted daemon binary when the binary is still on disk
  • Fixed the tip and idle reminder about push notifications appearing when the push settings in /config are hidden or your organization has turned off Remote Control
  • Fixed ~/.claude/skills/.trash and ~/.claude/plugins/.trash growing without limit: each now holds about 1024 entries, whatever cleanupPeriodDays says
  • Fixed the Bash edit diff listing a whole file as changed when a CRLF file under git's line-ending conversion was re-saved unchanged or had one line edited
  • Self-hosted runner: Fixed an idle session moving to another runner instead of pausing when the runner's request to pause it lost its connection before Anthropic answered
  • Improved memory use in long headless and SDK turns that run many subagents: the parent session no longer keeps each subagent's tool results until the turn ends
  • Improved prompt history: Ctrl+R now matches text inside collapsed [Pasted text] pil...
Read more

v2.1.312

Choose a tag to compare

@ashwin-ant ashwin-ant released this 27 Oct 20:24
Immutable release. Only release title and notes can be modified.

What's changed

  • Added oidc.user_id_claim to the Claude apps gateway, to identify people by an id_token claim other than sub, such as Microsoft Entra ID's oid
  • Added click to send: in fullscreen, clicking the "to send now" hint under a queued message sends it right away, as its key does
  • Fixed managed settings and organization policy not being fetched for the rest of the session after signing in from the VS Code extension
  • Fixed Claude overwriting a very large CLAUDE.md, rules file or @-included file in a subdirectory after seeing only its start; Write now asks Claude to read it all or edit in place
  • Fixed per-directory and paths: skills not being found after a Bash cd deeper into a git repository
  • Fixed a rare case where the first reply after resuming a session in the terminal could be missing the next time the session was resumed
  • Fixed a command with an invalid name stopping all commands from loading, which could leave claude -p with no output
  • Fixed the Read tool sometimes failing on PDF pages with "pdftoppm failed: Could not write image" when the clean-up of old session files ran at the same time
  • Fixed the spinner, OpenTelemetry effort values and transcripts naming a newly picked effort level during a task before the model applied it; they now show the level in force
  • Fixed the /model and /effort cache warning saying the re-read waits for your next message; a change made while Claude is working can trigger it sooner
  • Fixed some sessions showing as waiting on you when the last message only mentioned items waiting on you mid-sentence
  • Fixed agent view restoring input text on the next launch after it was cleared with Ctrl+C just before exiting
  • Fixed agent view reopening in shell mode after exiting with Ctrl+D from an empty ! input
  • Fixed vim mode d, c and y with a gj or gk count larger than the lines left deleting or copying text; like Vim, they now only move the cursor
  • Fixed /verify showing a long description meant for Claude in /help and the / command menu instead of a short one
  • Improved the prompt's effort indicator: a change made mid-task now says it may wait for your next message, and the note clears when it no longer applies
  • Improved WebFetch errors in cloud sessions: a host that does not resolve is now explained as possibly outside the allowed network domains, so Claude names the host to allow
  • Changed Bedrock, Vertex, Foundry and Mantle to use the shorter system prompt for model names Claude Code doesn't recognize, such as custom deployment names and inference profile ARNs, even when they front Sonnet or Haiku; set CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0 to keep the full prompt
  • Changed automatic model switches after a flagged message to also cover model names Claude Code doesn't recognize, such as custom deployment names; set CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK=1 to turn them off
  • Changed usage limit messages to call the 5-hour window the "5-hour limit" instead of the "session limit"
  • Changed cloud sessions started from the CLI to get their names and branch names from the server
  • Changed prompt and agent hooks to run at most 24 at a time per session, sub-agents included, plus at most 12 that have waited longer than their event's timeout; a timeout under 1 second now counts as 1 second
  • Changed a subagent's autoCompactWindow to lower the window set by CLAUDE_CODE_AUTO_COMPACT_WINDOW, where it had no effect before; it still never raises that window
  • Changed OpenTelemetry mcp_server.name to report the real name of fixed-URL remote MCP servers declared by plugins from the official Anthropic marketplace, instead of custom
  • Changed Claude Code to stop sending the claude_code.safety_event OpenTelemetry event
  • [VSCode] Fixed sessions ending on a bare exit code when your organization's settings couldn't be loaded or were refused at startup; the tab now says why and offers Retry or Sign in again
  • [VSCode] Changed usage limit resets to show a clock time ("Resets at 3:10 PM") and to say "5-hour limit"
  • [Cloud sessions] Added an effort level to the model picker when you create or edit a routine that runs in the cloud
  • [Cloud sessions] Added a Bash editor with colors, line numbers and a Copy button to the setup script box in cloud environment settings
  • [Cloud sessions] Improved the step shown when Claude adds a repository to a cloud session: opening it now shows a short table of what happened instead of raw JSON
  • [Cloud sessions] Fixed resending an unchanged message after a failed send in a cloud session sometimes running it twice
  • [Cloud sessions] Fixed a failed cloud environment creation showing its error only as a toast outside the open dialog; it now appears inside the dialog
  • [Cloud sessions] Fixed Edit in a routine's menu on the Routines page going to the routine's page without opening its edit dialog
  • [Remote Control] Fixed an unarchived Remote Control session showing as working until a computer reconnected; it now shows as idle
  • [Claude Tag] Improved Claude Tag's retry notice in Slack to name the model in use, or say rate limits were hit, instead of a generic API error
  • [Claude Tag] Fixed a Claude Tag channel's on/off switch and agent settings falling back to workspace defaults when an older private Slack channel goes public and gets a new ID
  • [Claude Tag] Fixed Claude in Slack not replying in channels whose environment has network access set to None
  • [Claude Tag] Fixed Claude in Slack sometimes posting a file in the wrong thread when it was answering in another thread of the same channel
  • [Code Review] Fixed Code Review reviewing an outdated commit, or none at all, when GitHub delivered a push event late; it now reviews the pull request's current commit

v2.1.311

Choose a tag to compare

@ashwin-ant ashwin-ant released this 26 Oct 21:51
Immutable release. Only release title and notes can be modified.

What's changed

  • Added --hold-idle-file and --max-hold-min to self-hosted-runner, to keep an idle session while your host reports processes it left running
  • Added a tip for the Explanatory output style, shown when you ask Claude for explanations
  • Fixed long freezes at startup and after reading or editing files when a CLAUDE.md file holds a very long list item
  • Fixed interrupting Claude not taking effect until a timeout while an MCP server had not answered a resource read or a skill was still downloading
  • Fixed standard-context sessions stopping with "Usage credits required for 1M context" when a request ran over 200K tokens; Claude Code now compacts the conversation and continues
  • Fixed Write and Edit stalling for up to 5 seconds after they ran, and reporting 0 lines changed, when changing thousands of lines in a file
  • Fixed subagents being unable to use MCP tools from servers that finish connecting after the subagent starts
  • Fixed Claude seeing stale MEMORY.md and CLAUDE.md content right after automatic compaction when those files were edited earlier in the session
  • Fixed claude -p and SDK sessions saving transcript messages out of order or keeping messages that were taken back
  • Fixed SubagentStop hooks running about twice a minute for each running subagent instead of once when it finishes
  • Fixed the @ file picker ignoring .ignore/.rgignore negation rules that re-include git-ignored files
  • Fixed a subagent's isolated worktree being removed while a background subagent it started was still working in it
  • Fixed background agents in auto mode that wait on their own shells starting a new main conversation turn on every wake
  • Fixed the Bash tool description claiming the working directory always persists between calls
  • Fixed the environment block naming a shell commands don't run in, such as fish when the Bash tool uses zsh
  • Fixed claude mcp add, claude mcp remove and /mcp naming the current folder instead of the project entry in ~/.claude.json that holds a local-scope server when run below a repository root
  • Fixed claude mcp list and claude mcp get showing the error code twice on failed-connection lines (for example ENOENT: ENOENT: …)
  • Fixed Remote Control sessions staying on "Connecting" for about two minutes when a network proxy blocks a startup request
  • Fixed messages that Claude sends to a cloud or Remote Control session appearing as your own message in the Claude mobile apps
  • Fixed Claude not being told the cause when a file attached to a message sent over Remote Control or to a cloud session could not be saved because the disk was full, or that a message's attachments past the first 20 were left out
  • Fixed WebFetch and WebSearch hanging on a stalled response in Cowork cloud sessions; an unfinished request now fails after 300 seconds
  • Fixed a background session that crashed between turns not being restarted while it was attached, pinned, or had a scheduled task or wake-up set
  • Fixed the "background service did not respond" error suggesting the disabled claude daemon restart; it now suggests claude daemon stop --any and says it ends background sessions
  • Fixed claude respawn <id> starting the background service before reporting that no background session matches the id
  • Fixed /effort not warning about a prompt cache miss in plan mode when the plan model differs from the session model
  • Fixed /ide saying the VS Code extension was installed before the install finished or when it failed
  • Fixed the Write tool's file preview skipping rows and miscounting hidden lines when a line is wider than the terminal
  • Fixed ↑ in an agent's chat tab recalling a message that was still waiting to be delivered, so resending it sent a second copy
  • Fixed Cowork cloud sessions losing their connectors and most tools after a restart when a plugin or your settings named an agent; Cowork cloud sessions now ignore that setting
  • Fixed agent teams sessions showing an empty task list when coming back with --resume, --continue, /resume or --session-id, including after /clear or a crash, and /branch writing to the original session's list
  • Fixed pasting text that mentions an image file, such as ! open /tmp/shot.png or /review look at /tmp/shot.png, attaching the image and dropping its path from the prompt
  • Fixed the feedback draft card showing its 1/2/0 and Esc shortcuts while the prompt has text, when those keys act on the prompt instead of the card
  • Fixed a lone backslash in quotes or brackets, like "\" or (\), disappearing from Claude's responses
  • Fixed agent teammates compacting their history when DISABLE_COMPACT is set
  • Fixed the rewind menu offering "Summarize from here" and "Summarize up to here" when DISABLE_COMPACT is set
  • Fixed a finished /code-review, or another skill that runs in a sub-agent, running a second time when a cloud or background session restarts
  • Fixed long hidden thinking being cut off as idle on Google Vertex AI, Microsoft Foundry and Claude Platform on AWS, where the endpoint sends thinking progress updates
  • Fixed /ide saying it had installed the JetBrains plugin when nothing was installed
  • Fixed Claude Pro and Max subscribers being told to ask their admin when their subscription can't be used; the message now points to billing settings
  • Fixed the diff pane opening by itself after an edit in wide fullscreen terminals when it had nothing to show
  • Fixed /mcp showing a remote server as failed after "Clear authentication" when the server works without sign-in
  • Fixed /mcp showing "authenticated" for a remote server that Claude Code sends no credentials to
  • Fixed a --plugin-dir folder of plugins loading as one plugin when an empty .mcp.json was at its top
  • Fixed /usage never showing large prompt-cache misses under "What's contributing to your limits usage?"
  • Fixed status line links staying plain text in background sessions after you open them from a terminal that supports links
  • Fixed the /rewind confirmation saying the conversation "will be forked" when the later messages are removed from the conversation
  • Fixed the /rewind warning that wrongly said manual and Bash edits are never affected by a code restore
  • Fixed plan approval in screen reader mode sending feedback you had dismissed with Escape
  • Fixed Claude Code retrying requests the API marked not to retry, which could hold a turn for minutes or, in unattended retry mode (CLAUDE_CODE_RETRY_WATCHDOG), indefinitely
  • Linux: Fixed sandboxed Bash commands failing with bwrap: Can't create file when a --plugin-dir folder was also an added directory and permissions.blockReadsOutsideWorkingDirectories was on
  • Self-hosted runner: Fixed a session failing to start when a rate limit (HTTP 429, or a git wrapper that exits 75) blocks an added read-only repository; it now starts without that repository
  • Improved startup time for Pro and Max accounts by skipping two network requests on launches within an hour of the last check
  • Improved /teleport and claude --teleport to warn when a compacted cloud session loads from its last compaction, so the messages it summarized aren't in the local copy
  • Improved the messages shown when a background session's process exits: they no longer promise a restart that isn't coming, and they say how to resume the session
  • Improved artifacts with several views: Claude now routes each view on the link's #name and no longer says the address bar stays the same as you switch views
  • Improved shell commands that reach their timeout: the result now shows the output so far and says the command is still running in the background
  • Improved compaction: when the model's reply has no summary in it, Claude Code now usually asks for the summary once more before it replaces the conversation
  • Improved the Artifact tool's choice between a page and a document: explainers and visual or interactive work become artifact pages; documents are for writing people keep editing or pass around
  • Improved startup time for launches whose only arguments are options and their values, such as claude --model opus
  • Improved the "Connection dropped" API error: it now says where to look first (the proxy or gateway in use, else VPN or firewall; Anthropic API only, Bedrock, Vertex and Foundry are unchanged)
  • Improved screen reader mode: deleting a rule in /permissions says "Deleted allow rule …" right away
  • Improved the message shown when a pasted sign-in code is refused: it now says the code may have expired or been used, and to sign in again
  • Improved Slack connector sends: Claude now checks a channel's topic for posting rules before messaging a channel you didn't name
  • Improved screen reader mode: Claude's questions are listed as "Questions: Color (answered), Pages", without arrows or symbols
  • Changed ultrathink in the interactive terminal to run its turn at xhigh effort on Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1 through Anthropic's API; typed while Claude is working, it raises the rest of that turn
  • Changed the ultrathink rainbow to appear only where the keyword can raise effort, and not when the word is quoted or part of a file path
  • Changed Ctrl+D in agent view to match the prompt: on an empty input, pressing it twice exits
  • Changed --output-format json and stream-json output to write DEL, C1 control and Unicode format characters inside strings as \uXXXX escapes; parsed values are unchanged
  • Changed model names and IDs to drop the [1m] suffix and its label on models where the suffix has no effect; the suffix is still accepted
  • Changed startup warnings about permission rules in settings files to show once per user until the rule changes
  • Changed /code-review to tell Claude to put the effort level first and use max only when asked
  • Changed DISABLE_COMPACT in settings files and in a mod's $.env.set so they can only turn compaction off, not back on
  • Changed Claude Code on Bedrock, Mantle, Vertex, and Fou...
Read more

v2.1.310

Choose a tag to compare

@ashwin-ant ashwin-ant released this 23 Oct 23:39
Immutable release. Only release title and notes can be modified.

What's changed

  • Added the Monitor tool and plugin monitors on Bedrock, Vertex, and Foundry, and when telemetry or nonessential traffic is disabled; long foreground sleeps are now blocked there too
  • Fixed requests failing behind some gateways and compatible servers that reject the effort-2025-11-24 beta value or mid-conversation system messages; Claude Code now retries without them
  • Fixed background cleanup deleting some recent files, such as pasted images, when cleanupPeriodDays is set to a very large value
  • Fixed compaction after a "Prompt is too long" error keeping too much of a conversation with dense text, such as base64 or SVG, so the next request could fail again
  • Fixed file read permission prompts not showing where a symbolic link leads
  • Fixed a question's auto-continue timeout firing the moment the external editor closed after a long edit
  • Windows: Fixed PreToolUse and PermissionRequest hooks letting a tool call through when Git Bash is missing and the hook's command is only quoted strings, such as a quoted path
  • Improved auto mode's prompt before the first read outside the working directories: it now says when blocking those reads makes shell commands ask for permission
  • Improved memory use of non-interactive sessions (-p, Agent SDK) during compaction when the transcript file is very large
  • Improved a mod's Image to draw inside tmux with allow-passthrough and focus-events on, in kitty, Ghostty, and iTerm2 3.5+ with fullscreen rendering, where it showed only its alt text
  • Linux: Improved /sandbox and the sandbox startup warning to name Ubuntu's AppArmor restriction on user namespaces, and how to lift it, when it keeps bubblewrap from starting the sandbox
  • Changed the error for an MCP tool call that times out in a non-interactive session while the server's elicitation is unanswered: it now tells Claude that no answer came and not to repeat the call
  • [VSCode] Fixed pressing Enter on the plan review card's "Send feedback and keep planning" button approving the plan instead of sending your comments back
  • [VSCode] Fixed the panel showing "Something went wrong" after "Switch branch & continue" on a cloud session opened from Session history's Web tab
  • [Cloud sessions] Added Claude Code cloud sessions and Remote Control permissions to Enterprise custom roles, so Owners can control access to each by role
  • [Cloud sessions] Added a Choose file button to load a cloud environment's setup script from a file
  • [Cloud sessions] Fixed failed saves and archives in the cloud environment edit dialog showing no error inside the dialog
  • [Cloud sessions] Fixed failed routine API token actions showing only a toast; the error now appears in the routine edit dialog
  • [Cloud sessions] Improved the session start checklist to show a cloud environment's setup script output in a scrolling box
  • [Cloud sessions] Changed turning on Cloud sessions or Remote Control in admin settings to ask for confirmation and list the custom roles that have that permission
  • [Cloud sessions] Changed the cloud environment dialog to open network access, setup script and environment variables from rows instead of listing every editor at once
  • [Claude Tag] Fixed Claude Tag treating ! commands such as !restart and !help as ordinary messages when sent in bold, italic or strikethrough
  • [Claude Tag] Fixed Claude Tag admin channel and workspace pages being replaced by a load error when a background refresh of the bundle list fails
  • [Claude Tag] Fixed Claude Tag's spend limits page in admin settings reporting that no channels match a filter while channel names are still loading
  • [Code Review] Fixed the Code Review admin section hiding its repositories and switches after a failed refresh of the repository list
  • [Code Review] Improved the Code Review admin section to retry the first load and show one Try again banner when it still fails

v2.1.309

Choose a tag to compare

@ashwin-ant ashwin-ant released this 22 Oct 22:18
Immutable release. Only release title and notes can be modified.

What's changed

  • Fixed sandboxed Bash commands on macOS and Linux running the shell's startup files outside the sandbox before each command
  • Fixed macOS sandbox denyWrite glob patterns not applying at a path's real location when the pattern's folder is reached through a symlink
  • Fixed sandboxed commands and auto-accepted edits being able to modify the MCP config file passed with --mcp-config
  • Fixed a disabled MCP server being reconnected by a later permission prompt in print and SDK sessions
  • Fixed the Bash permission check trusting a variable set by a command whose redirect can fail to open
  • Fixed Bash permission checks not prompting for some compound commands that change directory before running git when the cd is wrapped or prefixed, as they do for a plain cd
  • Fixed an Edit(path) deny rule not blocking a Bash redirect to that path in some commands that also held a subshell
  • Fixed worktree-isolated sessions accepting some locale-prefixed commands the isolation guard should refuse
  • Fixed worktree-isolated sessions on zsh accepting some arithmetic commands that the isolation guard should refuse
  • Fixed worktrees and branch checkouts that Claude Code creates so they ignore git replace refs, as its other git operations already do
  • Fixed profile store write protection not applying when the config directory is reached through a symlink
  • Fixed sessions compacting repeatedly after reading files under a very large nested CLAUDE.md; a nested CLAUDE.md over the size limit now loads only its start
  • Fixed ctrl+enter (send now) only queuing a message when pressed before the response had started, and restarting a prompt's hooks while leaving the message queued when pressed while those hooks were running
  • Fixed key-bound slash commands running in the shell from ! mode
  • Fixed ctrl+o not showing messages from other agents and sessions that are still waiting to be delivered; they now appear in full under the transcript, marked as waiting
  • Fixed long tool output previews being cut through an emoji, leaving session transcripts that jq could not parse
  • Fixed Read reporting "File does not exist" for PDF page ranges in Linux sandboxes that share the parent's /proc
  • Fixed messages from a Claude Desktop-hosted session sometimes being lost when its connection refreshed
  • Fixed features missing from Claude Code sessions in the Claude desktop app when the terminal on the same computer was signed in to a different account or organization
  • Fixed the claude remote-control status line showing HEAD as the branch for a folder that is not in a git repository
  • Fixed split-pane agent teammates not inheriting the tool deny and --tools rules given on the leader's command line
  • Fixed sessions renamed with /rename appearing to other sessions under a generated name after a VS Code window reload or a non-interactive --resume
  • Fixed the /rewind list showing "No code changes" for a turn that changed checkpointed files through /code-review --fix, a subagent or a shell command
  • Fixed /privacy-settings showing an out-of-date "Help improve our AI models" value; it now also says when the setting can't be fetched
  • Fixed feedback saying "try again later" when your organization does not accept feedback; it now shows the server's reason and where to report a bug
  • Fixed oversized /feedback reports failing instead of being resent without the transcript
  • Fixed a skill in an --add-dir folder being unreachable when another skill already held its name; it is now offered as <folder>:<name>
  • Fixed /verify and /code-review not finding a nested package's own skill when its files were changed from the shell
  • Fixed the /claude-api skill saying that ant beta:worker poll --on-work passes trace context to the command
  • Fixed the /claude-api skill's C# tracing setup missing spans from the cloud platform clients
  • Fixed the /claude-api skill saying that API spans for requests to Claude Platform on AWS can't join the caller's trace
  • Fixed hooks that run in PowerShell not blocking when the hook's program exits with code 2, and on Windows PreToolUse and PermissionRequest hooks with "shell": "powershell" failing open when Git for Windows isn't installed
  • Fixed a mod's turn.step hook that names a model by alias, such as haiku, failing every request with a model error: the alias now resolves to its model
  • Fixed plugins and skills synced from claude.ai being removed, sometimes mid-session, after a disk read error
  • Fixed artifact publishes and updates being refused for some ordinary pages, such as pages with certain minified scripts or artifacts Claude could not read first
  • Fixed Claude asking for permission on each artifact update for the rest of a turn after the conversation was compacted in that turn
  • Fixed fine-grained tool streaming staying off on Amazon Bedrock when ANTHROPIC_BEDROCK_BASE_URL is set to the default bedrock-runtime.<region>.amazonaws.com endpoint
  • Fixed the "Waiting for API response" hint flickering behind gateways that send only keepalive pings: routes off Anthropic's backend now wait 45 seconds
  • Fixed Claude notifying unrelated GitHub users by writing role names and placeholders as mentions in PRs, issues and comments
  • Linux: Fixed sandbox write denies lifting when a background command outlived the session
  • Windows: Fixed PowerShell permission checks auto-approving some Set-Location or cd commands that target the current directory and carry extra arguments; these now prompt for approval
  • macOS: Fixed the "Install Command Line Developer Tools" dialog opening each time Claude Code starts on a Mac without Xcode or the Command Line Tools
  • Self-hosted runner: Fixed --startup-timeout-min stopping a session whose first prompt, such as /code-review, was still working in a subagent; a frozen process is still stopped
  • Improved the speed of many git commands Claude Code runs for itself on Windows; on every platform, errors from those commands now show in English even when git is set to another language
  • Improved the error when a hooks module is nested too deep to load: it now names the file instead of showing a bare stack-overflow message
  • Improved disk-full handling: a Bash command cut off by a full disk now says so and names the folder to free up, and starting on a full temp volume prints a clear message, not a raw ENOSPC error
  • Improved the /claude-api skill to offer API tracing alongside SDK tracing when asked to add OpenTelemetry
  • Improved the /claude-api skill to check the live docs before saying a feature is unsupported
  • Self-hosted runner: Improved sessions that move to a new runner: Claude now sees the tool call that was interrupted, marked as outcome unknown
  • Updated the bundled dataviz skill to accept APCA as a text-contrast measure (keeping WCAG 2 ratios where AA conformance is required), add an apca(text, background) function to its palette validator scripts, and say whether a label inside a colored chart fill should be white or near-black
  • Updated the /claude-api skill: service account keys and Workload Identity Federation tokens can now manage OpenTelemetry destinations
  • Changed sed -i to get the standard Bash prompt and run as written, not a simulated file-edit preview; like other Bash edits, it is no longer restored by /rewind
  • Changed claude ultrareview to require workspace trust: it asks on a terminal, else refuses; scripts pass --trust-workspace, which takes no value (put a PR number or base branch before it), or set CLAUDE_CODE_DISABLE_ULTRAREVIEW_TRUST_CHECK=1
  • Changed the dangerous rm and rmdir prompt in bypass permissions mode in the Desktop app and VS Code to deny the command at once with a rewrite hint, so unattended sessions keep going
  • Changed commands the settings exclude from the sandbox to ask before writing to its write-list paths while the sandbox is enabled but cannot run; the unsandboxed fallback is refused there
  • Changed worktree creation and reuse so git no longer fetches objects on demand, in ordinary clones and in partial clones with a Bash sandbox configured; such a partial clone fetches them first
  • Changed the /claude-api skill to build Managed Agents subagent teams on multiagent_20261001 with dynamic workflows on by default, instead of coordinator
  • [VSCode] Added a log warning that says what to do when dictation or the extension's own requests fail certificate verification, such as behind a TLS-inspecting proxy
  • [VSCode] Fixed the Claude panel staying blank after the editor cached an incomplete copy of its files; it now recovers by itself, or says what went wrong and how to fix it
  • [VSCode] Fixed Session history filling up with empty "Untitled" sessions each time you start a new session without sending a message
  • [VSCode] Fixed long slash-command messages such as /goal filling the chat panel; they now fold behind Show more like other prompts (#97469)
  • [VSCode] Fixed long messages not folding behind Show more after the chat panel is made narrower
  • [VSCode] Fixed Ctrl+J in the chat input always inserting a newline: it is now left to VS Code and the OS when "ctrl+j" is set to null in the Chat context of ~/.claude/keybindings.json
  • [VSCode] Fixed a mod's "From the … plugin" label above the prompt being drawn over the slash command and @-mention menus (#102981)
  • [VSCode] Fixed an empty list item, paragraph or code block, and list items renumbered from 1, when pasting copied LaTeX math
  • [VSCode] Fixed the feedback error showing only an HTTP status when your organization does not accept feedback
  • [VSCode] Improved Edit and Write speed in the chat panel: the wait for new problems after each edit is now 0.75 seconds in most cases, down from 1 to 1.5 seconds
  • [Cloud sessions] Fixed the Add connector list in routine forms saying no connectors were available while they were still loading
  • [Cloud sessions] Fixed the cloud environment editor shuff...
Read more

v2.1.308

Choose a tag to compare

@ashwin-ant ashwin-ant released this 22 Oct 04:34
Immutable release. Only release title and notes can be modified.

What's changed

  • Bug fixes and reliability improvements