Skip to content

Claude Code v2.1.295

Released · Anthropic

Changes hooks, skills and plugins

What the release notes say

What's changed

  • Added onFailure: "block" for command and HTTP hooks: a hook that can't start, times out, or exits with an unexpected code blocks the action instead of letting it through
  • Added Program Status Protocol (OSC 7501) support: terminals that implement it can show whether Claude Code is working, waiting on you, or done
  • Added quoted text to the /copy picker, so a drafted message copies without its > markers
  • Added a warning to claude plugin install, enable, disable and marketplace add when the settings file they write to does not load
  • Added a line on stderr, when it is a terminal, that says what a claude -p run is waiting for when it stays open after its last turn
  • Added support for timeouts.upstream_ttfb_ms on the Claude apps gateway's Bedrock, Vertex, Foundry and other cloud upstreams: a value you set now limits how long a stream may take to start there, after which it fails over or gets a 502
  • Added a "Backgrounding cancelled" message when you stop the turn while ← is waiting for the current tool to finish
  • Added an optional models list to every Claude apps gateway upstream: only the listed models are sent there, on failover too, and one * in an entry is a wildcard
  • Added support for forceLoginMethod: "gateway" and forceLoginGatewayUrl in your own user settings on machines with no managed settings, so /login opens on that Claude apps gateway
  • Added advice to claude plugin validate when a plugin's README has no install line: it prints the line to paste and never changes the exit code, even with --strict
  • Added upstream_request_id to the Claude apps gateway's inference audit event: the request ID from Amazon Bedrock, the Anthropic API or another upstream, for support cases
  • Added $.ui.notify for mods: raises a native notification through your own notification setting and says which channel sent it
  • Added children to a mod's Button: strings and Text, so a row of a list is one pressable with a chip or a dim detail inside
  • Added CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS to limit how long unattended retry mode (CLAUDE_CODE_RETRY_WATCHDOG) waits out 429 and 529 errors
  • Added a request-id header to the Claude apps gateway's successful inference responses, so request_id in Claude Code telemetry matches the gateway's audit log
  • Fixed every request failing on a [1m] model when a gateway, Bedrock, Vertex or Foundry refuses the context-1m beta; Claude Code now resends without it
  • Fixed claude -p text output dropping earlier responses when background work started another turn; each turn's response now prints when the turn ends
  • Fixed remote MCP servers in headless and SDK sessions staying disconnected after an outage longer than 15 seconds, or reconnecting in a tight loop to a server that drops each connection right after it connects; repeated drops now back off, up to 30s
  • Fixed remote MCP connections being dropped when a server's error reply happened to contain a network error name
  • Fixed MCP servers that repeat a pagination cursor being asked for the same page up to 20 times at every connect
  • Fixed CSS, JavaScript and XML files returned by MCP tools being saved as .bin, which the Read tool refuses; font and icon files now get their own extension too
  • Fixed Bash tool calls failing when the model passes command_description instead of description
  • Fixed Claude in Chrome not applying a site deny rule written with port 80 (host:80) to plain http:// pages on that host
  • Fixed /plugin's Errors tab removing a marketplace that failed to load, and uninstalling its plugins, on Enter without asking first
  • Fixed claude plugin marketplace add reporting success for a marketplace whose name no plugin can be installed under; such an add is now refused
  • Fixed CLAUDE_AUTO_BACKGROUND_TASKS moving a subagent to the background while an edit or shell command waited behind it, which started that call before the subagent finished
  • Fixed PushNotification saying a push was not sent in claude remote-control sessions right after a phone message, without the /config toggle, or when started from inside Claude Code
  • Fixed files sent from remote sessions being refused as "could not be vouched for" when more than 256 were sent at once
  • Fixed a rare failure to load managed settings at startup right after a login refresh
  • Fixed /tui exiting without a message, or with a raw system error, when Claude Code could not be started again
  • Fixed a link address shown as text being hidden by a colour or conceal style a reply left on, including where it wraps in a table or a question preview
  • Fixed Fable models listed in availableModels not appearing in the /model picker for sessions signed in to a Claude apps gateway; such a model now shows its built-in row in place of a modelPicker row added for the same model
  • Fixed the Claude apps gateway's admin spend view showing a developer's old groups and group cap after their session stopped carrying groups
  • Fixed CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC hiding the Claude apps gateway spend limit in /usage and the status line. The spend limit request goes to the gateway the session is signed in to
  • Fixed subagents in their own linked worktree being shown the parent session's git branch, status and recent commits
  • Fixed Claude stopping at the end of the current tool when text typed in the prompt cancelled backgrounding with ←; Claude now keeps working in the foreground
  • Fixed --tools and --restricted not applying to built-in tools that register after launch, and deprecated tool names reaching tools outside the caller's tool set
  • Fixed an interrupt not ending the turn until a timeout while Claude waited for an MCP server's resource list
  • Fixed a mod's hook being handed a deeply nested tool input cut short with no error, so a guard could pass content it never saw