Skip to content

Releases

v2.1.325

Choose a tag to compare

@claude-code-publisher claude-code-publisher released this 13 Nov 20:40
Immutable release. Only release title and notes can be modified.

What's changed

  • Fixed a security issue in how zstd-compressed responses are decoded
  • Added a spinner tip in VS Code and similar integrated terminals about re-running a notebook cell, shown once Claude has read or edited a Jupyter notebook
  • Added a line under the error shown when your organization's policy blocks a request, saying how to continue: run /rewind and change the message, or run /clear
  • Added a note for Claude when a sandboxed git checkout, git stash or autostash pull cannot update protected files such as those in .claude
  • Fixed /security-review and skills' inline git commands stopping with an error in worktrees of bare repositories, --separate-git-dir checkouts and Android repo checkouts
  • Fixed subagents with their own model being moved to the plan-mode model when the model setting is opusplan or haiku
  • Fixed subagents on a different model sizing file reads and MCP results with the main session's model
  • Fixed sessions on many third-party gateways and Foundry stopping with a context length error on every turn instead of compacting
  • Fixed recent turns sometimes going missing from a resumed session after Claude Code stopped without a clean exit
  • Fixed shell commands running in the launch directory after the working directory was deleted; the command now fails with a message and can be re-issued
  • Fixed an approved plan edit being lost when the plansDirectory folder can't take it: the plan is now saved in the default plans folder, and a warning says where and why
  • Fixed a saved sonnet[1m] model setting being rewritten on a new install to a model id the API rejects
  • Fixed focus view hiding the reply to your prompt when a scheduled task replied after it
  • Fixed the prompt sometimes missing from a background subagent's view when fullscreen is off
  • Fixed long options in lists and permission prompts being partly overwritten when they wrap, and first-run screens losing lines on narrow terminals
  • Fixed startup warnings about permission rules and the "N MCP servers need authentication" notice being recorded as seen when they were scrolled out of view
  • Fixed the welcome header showing control characters or splitting across lines when an agent's name or the working folder contains them or a line break
  • Fixed the red error shown when Claude tries a command only you can run: a dim line now says it runs only when you type it at the prompt
  • Fixed /stats showing an Active days total that was one day too high
  • Fixed /insights saying a report was ready when no session qualified for analysis, and writing two values into its HTML report without escaping them
  • Fixed /voice saying voice mode changed when managed settings, --settings, or the project's .claude/settings.json or .claude/settings.local.json kept it as it was; it now says what holds it
  • Fixed the IDE welcome dialog showing Cmd+Esc for Quick Launch on Windows and Linux
  • Fixed Slack app tips showing when your organization's policy denies cloud sessions
  • Fixed claude purge hanging silently when there is no terminal to read keys from, and its project picker and -i prompts ignoring the keyboard when stdin is piped
  • Fixed claude plugin eval --output-dir '' writing the report into the current folder; it now exits with an error
  • Fixed claude -p text output on a terminal passing control sequences other than text styling; pipes and files are unchanged
  • Fixed leftover .oauth_refresh.lock.owner.tmp.* files piling up in the config directory
  • Fixed /fast saying "Fast mode has been disabled by your organization" under the keyless Console sign-in, where Claude Code had not asked the server
  • Fixed /model saying that your organization restricts a model when Claude Code could not check that, for example with no network
  • Fixed "Sign in with your Console account" in /login replacing your existing login when you pressed Esc right after the browser step
  • Fixed the browser showing the sign-in success page in some cases where sign-in failed or was canceled
  • Fixed claude auth status and other short commands leaving a lock behind on a Console profile, which made the next session hang for about a minute
  • Fixed background sessions started on your claude.ai login using (and billing) an API key or token from the shell that started the background service
  • Fixed more cases of a session moving to another sign-in in the background; these moves are now refused, with a message saying what works
  • Fixed a second Enter in the exit dialog stopping background work after the move to the background was refused
  • Fixed token counting on Amazon Bedrock sending the conversation to Bedrock when the allowedProviders managed setting does not allow it
  • Fixed AWS credential_process helpers and Google Cloud default credentials failing when Claude Code is started without a HOME environment variable
  • Fixed a session sometimes going back to an earlier permission mode after a subagent's plan was approved
  • Fixed one invalid value in an Agent SDK applyFlagSettings() call silently discarding all settings from earlier calls; a call that would do this is now refused with an error
  • Fixed sessions showing as waiting for input when a finished pull request only needed your own review or merge
  • Fixed an unrecognized teammateMode settings value being ignored without a warning: claude -p, the startup warning and claude doctor now list it as a skipped entry (still not applied)
  • Fixed --worktree skipping a WorktreeCreate hook from a plugin in CLAUDE_CODE_PLUGIN_SEED_DIR on the first run in a new home directory
  • Fixed brief-mode sessions, such as Dispatch, sending a reply again after the turn had already replied
  • Fixed Claude saying a working Atlassian, Asana or Sentry connector had failed in cloud sessions when a plugin listed it at a different URL
  • Fixed Claude Desktop and SDK sessions listing a folder's own MCP servers (.mcp.json, local) as host-added or not at all, and not connecting WebSocket ones, after a folder move or pre-warmed start
  • Fixed /mcp still listing a plugin's MCP server after a plugin reload removed it while it was connecting
  • Fixed an MCP server staying "needs authentication", and its mcp_tool hooks being skipped, after a token refresh that was refused only for a moment
  • Fixed MCP elicitation requests being cancelled without asking in headless mode after a server's connection was replaced during a tool call
  • Fixed MCP tool calls from an SDK host answering "Not connected" after a tool call had reconnected the MCP server
  • Fixed an MCP task getting stuck after its question was closed with Esc or asked again: the footer now says it needs your input, and Enter in /tasks shows the question again
  • Fixed background MCP tasks that stopped updating after another call to the same server lost the connection, when a later call reconnects
  • Fixed a background MCP task's question opening over a message you were still typing; it now waits until you send or clear the draft, and the spinner and turn timer keep running
  • Fixed worktree.sparsePaths and sparse plugin and marketplace clones leaving out the repository's root files on older git versions, such as 2.34
  • Fixed self-hosted runner sessions with several repositories being unable to use a repository added mid-session
  • Fixed Claude asking for permission before reading your own artifact or its data
  • Fixed deny and ask permission rules and hooks for the Artifact tool not applying in some cloud sessions
  • Fixed Code Mode scripts ignoring a worktree entered with EnterWorktree, writing ~ paths into the project, and leaving /mcp showing an MCP server as connected after its sign-in expired
  • Fixed words typed with a Yes at a permission dialog or plan approval not reaching Claude in Code Mode
  • Fixed Claude starting work by itself when you resumed a session that ended during a Code Mode script; it now waits for your next prompt
  • Fixed a missing OpenTelemetry user_prompt event for a message sent while tool calls run. The event has delivery.mode: "mid_turn" and the running turn's prompt.id
  • Fixed the OpenTelemetry user_prompt event leaving out earlier messages' text when queued messages merged into one turn in VS Code, or when one message had an image
  • Fixed a slash command's allowed-tools grants applying to background agents woken during or after its turn
  • Fixed /feedback and /bug to upload other sessions only when they were recorded by the signed-in account or organization
  • Fixed relative deny and ask permission rules (e.g. Read(./.env)) no longer covering the project after a cd; they now also apply in added directories
  • Fixed deny and ask permission rules starting with mcp__plugin_*_ missing a plugin's MCP server or tool spelled in another letter case
  • Fixed deny rules not being applied to a permission approval that arrives after Claude Code restarts, in self-hosted runner and claude remote-control sessions
  • Fixed a case where a committed .claude/settings.local.json could be treated as the user's own when Claude Code was started in certain subfolders of a repository
  • Fixed some deny and ask rules not applying to certain Bash commands
  • Fixed a gap in Bash permission checks where some compound commands could run without asking; these now ask for permission
  • Fixed a case where a Bash allow rule could run a different program than the one it names
  • Fixed a connector tool's approval prompt in cloud sessions being answered automatically while plugins were still loading
  • Fixed some subagents changing an artifact that people outside your organization can see, or uploading files to it, without asking first when an allow rule is set or uploads were approved earlier
  • Fixed some artifact publishes skipping the confirmation for pages that people outside your organization can see when "don't ask again" had been chosen for Artifact
  • Fixed auto mode judging only the first change to an artifact that people outside you...
Read more

v2.1.323

Choose a tag to compare

@claude-code-publisher claude-code-publisher released this 12 Nov 22:12
Immutable release. Only release title and notes can be modified.

What's changed

  • Added Code Mode, an experimental opt-in in which Claude writes JavaScript to call its tools; see https://code.claude.com/docs/en/code-mode to turn it on, or to turn it off for an organization
  • Added engines["claude-code"] to plugin.json: plugins outside their stated Claude Code version range are not installed, updated or loaded, and install and update pick the newest version that fits
  • Added type checking of a plugin's TypeScript hooks module to claude plugin validate; each finding is a warning, and --strict fails on it
  • Added to claude plugin validate the $ nouns a mod's engine.create hook adds, withholds or replaces
  • Added support for CLAUDE_CODE_AUTO_MODE_MODEL in managed settings for Claude Desktop sessions on third-party providers (takes effect once Claude Desktop includes this version)
  • Added an options menu (stop, switch to usage credits, upgrade) when a model needs usage credits that are turned off or used up
  • Added a progress heartbeat every 30 seconds while hooks run long in claude -p and SDK sessions, so a host such as Claude Desktop won't end the turn as hung (once it includes this version)
  • Added .docx support to Artifact tool asset uploads
  • Added a /diff to close hint to the diff panel, and the keys that focus and close a panel to the ? shortcut guide
  • Added a start-up warning for Bash allow rules with a * in a variable's value, such as Bash(PORT=* npm run dev)
  • Added a warning when a plugin's language server can't start, naming the server and what to check
  • Added a one-time startup notice naming CLAUDE_CODE_PERFORCE_MODE when Perforce settings are found and the mode is off
  • Added CLAUDE_CODE_DISABLE_AGENT_PROGRESS_SUMMARIES (available since 2.1.318): set it to 1 to turn off subagent progress summaries and the requests that write them (#86879)
  • Added CLAUDE_CODE_RESUME_HINT_COMMAND, which a program that starts Claude Code can set to have the exit hint name its own resume command
  • Added unsetOptionCount to the claude plugin install --json result: how many userConfig options are not yet set
  • Added isPromptCovered to the props a mod's pane is drawn with, telling it when a dialog or a field above the prompt covers the prompt
  • Fixed running /compact again, or after a command such as /context, summarizing away a message that Claude had not answered yet
  • Fixed a resumed session joining your next message to an old interrupted message that was not resumed
  • Fixed a memory spike at the next prompt after Claude changed a very large file
  • Fixed a setting saved in a running session undoing a hand edit made to settings.json moments earlier; a settings file you delete during a session now stays deleted
  • Fixed claude plugin commands and claude mcp list signing you out of a Console profile when they ended while the token was being renewed
  • Fixed Edit and Bash running out of memory on certain /proc files, and Edit hanging or running out of memory on devices and named pipes
  • Fixed Claude Code failing to start, or to clear stored credentials at sign-out, when saving its configuration file failed with "Out of memory"
  • Fixed requests sent without streaming failing on errors that streamed requests recover from, such as a rejected image, thinking block or beta header
  • Fixed ExitWorktree, the worktree exit dialog and /resume leaving the session in the wrong folder when the folder the shell was in before entering the worktree had been deleted
  • Fixed accents and other combining marks sometimes landing left of the text, leaving stale copies on screen, or silently disappearing when text wraps
  • Fixed the last key of a key chord, such as Enter in ctrl+x enter, acting on a dialog's text field when the chord's own action isn't available there
  • Fixed ps processes piling up when the process listing Claude Code runs before stopping a command takes too long
  • Fixed subagent transcripts and large tool results being saved apart from the session's transcript after entering a worktree created by a WorktreeCreate hook or belonging to a nested repository
  • Fixed a session on a named Anthropic profile moving to another sign-in when /fork, the Left arrow or --bg continued it in the background; reopen any session that was open during the update
  • Fixed a background session sending a conversation under another sign-in when its named Anthropic profile is missing, changed or overridden; it now stops and says so
  • Fixed a session on an API key, auth token or workload identity from its shell (not a setup token) moving to another sign-in in the background; it now stops and says so
  • Fixed MCP tool calls ending in the sign-in server's error, such as TOKEN_EXPIRED, instead of asking you to sign in again
  • Fixed an expired claude.ai login showing "Credit balance too low" when a saved Console key or ant auth login profile without credit was used instead
  • Fixed a session on a named Anthropic profile being handed to an older background service that could not keep its sign-in; it now says to restart the service
  • Fixed a background session's sign-in leaving the previous account's login or other credentials in place; it now clears them for every session on the computer, and a refused sign-in can leave no login
  • Fixed background sessions moving between a profile and the stored login when an update restarted them
  • Fixed sessions opened before a sign-in keeping signed-out feature flags after the sign-in
  • Fixed sessions that kept failing after a Claude apps gateway sign-in expired: once you sign in again with /login in another terminal, they carry on at the next message
  • Fixed the billing notice naming your ant auth login organization when a custom X-Api-Key header is set
  • macOS: Fixed "Not logged in Β· Please run /login" coming back right after a successful /login or a token refresh when the keychain was slow to answer
  • Fixed turns failing in Claude Desktop when an organization's gateway answers an expired token with 403: Claude Code now asks Desktop for a fresh token and retries
  • Fixed the error shown when Amazon Bedrock refuses your account a model: it no longer says to refresh your AWS credentials, it says to enable the model
  • Fixed the awsAuthRefresh or gcpAuthRefresh command sometimes running twice for one request when three or more sessions needed a fresh sign-in at once
  • Fixed the claude -p warning about an ended claude.ai login to say that claude auth logout also removes saved MCP server logins and plugin secrets
  • Fixed Bash permission prompts offering "don't ask again" for commands that write to sensitive paths such as .git or .claude, where the saved rule did not stop the next prompt
  • Fixed a case where some lsof commands ran without a permission prompt
  • Fixed Bash commands that write a file with cat > file <<EOF being shown as "Read 1 file"
  • Fixed a case where Bash permission checks judged an rm from the wrong folder and skipped the dangerous-removal prompt under bypass permissions or a Bash allow rule
  • Fixed --permission-mode auto or a settings defaultMode: auto starting in a mode that could allow more when auto mode was unavailable. It now starts in Manual mode, which asks first
  • Fixed plan files sometimes being written outside the project when plansDirectory is set; a write that can't be shown to stay inside the project is now refused
  • Fixed a permission prompt when Claude read the output of its own background command or agent after entering a worktree
  • Fixed a case where Bash permission checks missed part of a command
  • Fixed a case where the Bash sandbox could switch off during a session
  • Fixed Bash allow rules with an attached wildcard, such as Bash(ls*), skipping the permission prompt in some cases; a rule that names a variable, such as Bash(NODE_ENV*), now asks
  • Fixed auto mode running behind a gateway at ANTHROPIC_BASE_URL on a model whose gateway name contains "haiku"; such a model, other than claude-haiku-5-5, is now refused, as Haiku 4.5 is
  • Fixed Bash deny and ask rules missing some commands run through sudo, env and similar wrappers
  • Fixed Bash allow rules written with combined sudo flags skipping the permission prompt in some cases
  • Fixed sandbox.excludedCommands letting a command that it does not name run outside the sandbox in some cases
  • Fixed a case where the Write and Edit tools could write to a path covered by a Read deny rule
  • Fixed a case where a Bash command ran without a permission prompt for zsh users with certain non-default shell options set
  • Fixed the Bash sandbox not fully protecting Claude Code's own config on installs still using the legacy config file
  • Fixed a permission prompt from a mod's tool.check hook naming every plugin hooked on the tool instead of the one that asked
  • Fixed sandboxed commands being able to read Claude Code's file checkpoint copies under the config directory
  • Fixed a rewind sometimes changing your permission mode
  • Fixed project settings sometimes being read through a symbolic link that leads to a different folder than the one Claude Code checked
  • Fixed HTTP hooks failing with HTTP 500 on Linux when CLAUDE_CODE_SUBPROCESS_ENV_SCRUB is set and sandbox.enabled is off
  • Fixed claude -p and the Agent SDK running Bash unsandboxed when --settings or SDK settings that turn the sandbox on fail validation; Claude Code now stops at start-up and names the invalid setting
  • Fixed /export silently stopping early after a long run of calls to an MCP tool that is no longer loaded
  • Fixed earlier MCP tool calls missing from a resumed conversation, and lines repeating in scrollback, when the server connects late
  • Fixed claude mcp add --help splitting long example commands across lines in narrow terminals and pipes, so a pasted example ran without its header
  • Fixed plugins with defaultEnabled: false staying off in a claude.ai chat's cloud session after you turn them on in c...
Read more

v2.1.322

Choose a tag to compare

@claude-code-publisher claude-code-publisher released this 10 Nov 02:29
Immutable release. Only release title and notes can be modified.

What's changed

  • Added fast mode on Vertex in the global, us and eu regions, falling back to standard speed if Vertex refuses it

v2.1.321

Choose a tag to compare

@claude-code-publisher claude-code-publisher released this 09 Nov 19:22
Immutable release. Only release title and notes can be modified.

What's changed

  • Added Claude Fable 5.2 (claude-fable-5-2), now the default Fable model β€” 1M context, $8/$40 per Mtok with $0.20/Mtok cache reads
  • Added --settings <file> to claude remote-control, which applies a settings file to every session it starts; if the file changes, no new session starts until you restart claude remote-control
  • Fixed MCP OAuth requests sending secrets such as refresh tokens to another host when a server redirected them
  • Fixed a case where a read-only Bash command ran outside the sandbox without a permission prompt
  • Fixed a case where Bash permission checks judged a file write from the wrong folder and didn't prompt
  • Fixed deny rules and protected-file prompts not applying to the file that a cp or mv into a directory writes
  • Fixed the "Draws from usage credits" note showing after a switch to Fable on Enterprise seats whose plan includes Fable
  • Fixed the fallback model sometimes declining a request or mentioning a stopped response when the first model was blocked before replying
  • Fixed claude mcp login printing a SEP-2352 issuer warning each time you sign in again to a server that Claude Code registered with
  • Fixed NotebookEdit deleting or overwriting a notebook's first cell when the call named no cell, on network paths (UNC shares, WSL folders, /net mounts)
  • Fixed Edit changing the first of several matches, replacing a whole file on an empty old_string, or editing a notebook as text, on network paths (UNC shares, WSL folders, /net mounts)
  • Fixed /config showing Manual as the default permission mode when new sessions start in auto mode; pressing Space on "Auto (default)" now saves Don't Ask, not Plan
  • Windows: Fixed FileChanged hooks stopping for paths set through watchPaths after the first shell command, when the session's working directory had a lowercase drive letter
  • Fixed --plugin-dir . and --plugin-dir ./builtin writing generated type files for Claude Code's built-in plugins into a builtin folder
  • Fixed context usage estimates overcounting tool definitions when exact token counts are unavailable
  • Fixed /compact showing twice in Remote Control on web and mobile
  • Fixed plugin auto-updates and /plugin marketplace updates downloading a plugin again for each worktree or folder of a repository
  • Fixed auto mode losing a background subagent's report that had started a turn when the conversation was compacted before Claude answered it
  • Fixed project skills, commands and agents staying missing after their folder was removed and came back mid-session, such as with git stash, including after entering a worktree
  • Fixed claude -p sometimes telling Claude that background commands get 30 minutes when they are stopped after 10
  • Fixed pkill, pgrep and pidwait in cloud sessions matching the session's own parent processes
  • Fixed Claude in Chrome and computer use server processes staying alive after their parent exits behind a proxy that stalls connections
  • Fixed a large hook output pointing Claude to a file that held another hook's output from the same tool call
  • Fixed apps that embed Claude Code getting their own PreToolUse hook's ask reason instead of another hook's when both asked
  • Fixed a PreToolUse hook's ask being lost when another hook's defer finished first and could not be honored
  • Fixed a rare crash on permission prompts and background tasks
  • Fixed project skills, commands and agents disappearing from the menu in SDK and desktop sessions after Claude entered a worktree
  • Fixed /desktop on macOS saying Claude Desktop is not installed when it is in ~/Applications
  • Fixed OpenTelemetry repository attributes (vcs.*) missing from Claude Desktop sessions that start on a pre-started process
  • Fixed WebFetch passing "No response from model" to Claude as page content when the model reading the page returned no text; the call now fails with a clear error
  • Fixed screen reader mode delaying the prompt at startup when the system clock moved back while Claude Code was starting
  • Fixed a command's panel sometimes not coming back after a dialog closed, leaving no panel or prompt on screen until the next redraw
  • Fixed a project's MCP server being disconnected after the first message in a Claude Desktop Code tab session when the desktop app has an MCP server or extension of the same name
  • Fixed a turn ending with "API Error: EPROTO: The TLS handshake failed" when the connection broke partway through a reply; the partial reply is kept or the request is retried, as before 2.1.302
  • Fixed high memory use in long sessions that repeatedly read single lines from large files
  • Fixed fast mode losing replies, switching models or retrying for minutes when fast serving is rate-limited, overloaded or failing; it now tries standard speed on the same model first
  • Fixed one request carrying far more background agent reports than intended after Claude was stopped while several were waiting
  • Fixed messages from a Claude Desktop Code tab session to your other sessions staying paused after you typed while Claude was still working
  • Fixed claude agents ignoring --permission-mode, --dangerously-skip-permissions, --model, --effort or --agent typed before agents when a flag such as --verbose was also on the line
  • Fixed a case where Remote Control showed as off with "login expired" in the desktop app while its connection was still up, because the app was briefly unable to hand over a sign-in token
  • Fixed a Remote Control message sent with "Queue for later" reaching Claude in the middle of the running turn
  • Fixed the git status given to Claude at session start reading as clean when git status failed; it now reads as unavailable
  • Fixed the git status given to Claude at session start showing the first listed file as staged when its changes were not staged
  • Fixed a hang or out-of-memory crash when a connector in a cloud session lists resources with very long names
  • Fixed Remote Control showing as connected after its connection closed for good while the session's history was still uploading
  • Fixed screen reader mode turning off when you return to a conversation from agent view
  • Fixed screen reader mode y/n questions taking as yes a stray "y" at the end of text typed as the question opened
  • Fixed cloud sessions telling Claude that a host is probably not allowed when it is allowed and the network proxy could not connect to it
  • Fixed an MCP server sometimes showing as connected with no tools after it was reconnected or the session's directory changed while its tools were still loading
  • Fixed Bash commands sometimes running in the wrong folder when Claude sent several at once and an earlier one changed folders
  • Fixed files Claude sends from cloud and Remote Control sessions failing at once when an upload gets an HTTP 507 from a proxy; the upload now gets a second try
  • Fixed new messages not being saved, and claude -p, SDK and VS Code sessions hanging, when memory ran out while the transcript was being read
  • Fixed sign-in, token refresh and logout waiting indefinitely when something on the network accepts the connection but never answers the TLS handshake
  • Fixed a sent file showing under a different name in the Claude apps when its name hid text-direction or control characters; Claude now refuses to send such a file
  • Fixed sub-agent progress summaries running a request to its end after the model replied with a tool call
  • Fixed Bash reads such as grep -r foo "$PWD/src" asking for permission when the same command with the path typed out runs without asking
  • Fixed Claude apps gateway refusing to start when a desktop setting holds a field newer than the gateway, such as a managed MCP server's oauth.omitResource; it now warns and serves it
  • Fixed Bash commands coming back empty for zsh users whose .zshrc sets KSH_OPTION_PRINT
  • macOS: Fixed "Unable to read managed policy settings" at startup when a valid MDM profile was slow to read: the read is retried once, and a timeout is now reported as a timeout
  • Fixed agent view erasing another agent view's saved input text when it restarted for an update with nothing typed
  • Fixed remote sessions giving no reply after a restart when a UserPromptSubmit hook blocked a replayed permission answer; these hooks no longer run on that replay
  • Fixed claude remote-control accepting a y typed without Enter at its first-run question when the terminal's input ended
  • Fixed Claude Desktop not showing spend limit warnings behind a Claude apps gateway whose policy has no code: rules
  • Fixed fullscreen sessions with some plugins ending with an error when a tool result that had got shorter scrolled off the top of the screen
  • Fixed prompt suggestions making extra API requests when the model replied with a tool call
  • Fixed PreToolUse mcp_tool hooks on stdio and HTTP MCP servers being skipped when their answer was over 16 MiB; the tool call is now refused
  • Fixed skill and command names holding a Bamum letter that some fonts draw as blank: they are now refused
  • Fixed claude -p on Linux exiting 0 in silence when a full NFS export or a used-up NFS quota lost transcript lines: it now prints an error and, in text and json output, exits 1
  • Fixed background agents being reported as stopped by the user, and refused a resume, when a service interrupted a cloud session and nobody pressed Stop
  • Fixed NotebookEdit reporting success to hooks and telemetry when the edit failed, for example when the notebook changed while the permission prompt was open
  • Fixed a blank screen or no answer at startup, and empty claude mcp list output, when a stored MCP sign-in record was null
  • Fixed the Artifact tool telling Claude to add filters when an artifact's database collection is too large to sort; it now says to read the collection page by page and sort the results
  • Fixed a restarted cloud session dropping a message with a large image when the restart came before Claude's first re...
Read more

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