Skip to content

Releases: anthropics/claude-code

v2.1.241

Choose a tag to compare

@ashwin-ant ashwin-ant released this 23 Aug 00:52

What's changed

  • Bug fixes and reliability improvements

v2.1.240

Choose a tag to compare

@ashwin-ant ashwin-ant released this 22 Aug 14:45

What's changed

  • Bug fixes and reliability improvements

v2.1.239

Choose a tag to compare

@ashwin-ant ashwin-ant released this 21 Aug 19:54

What's changed

  • Cost estimates (/cost, status line, --max-budget-usd) now include the 1.1× US-only-inference premium for data-residency workspaces
  • Added the one-time fullscreen renderer offer on Bedrock, Vertex, Foundry and other previously excluded setups; new installs there now start in fullscreen
  • Added /claude-api upgrade to migrate Python projects from anthropic 0.x to 1.x, and updated the skill's Python reference for 1.x (timeouts use anthropic.Timeout, not httpx.Timeout)
  • Cloud sessions: plugins synced from claude.ai now show as name@synced, work with claude plugin enable/disable <name>@synced, and never override a same-named plugin you installed
  • Alpine/musl builds: native image paste, clipboard, and audio-capture add-ons now load (musl-built binaries instead of glibc ones refused by the runtime)
  • The usage-limit message shown when your monthly spend limit is already used up now also says when your session or weekly limit resets
  • Fixed Bedrock streaming behind proxies that strip the response Content-Type header, which silently doubled billed API calls by re-running every turn non-streaming
  • Fixed Claude Code hanging at startup behind an HTTPS proxy when using Bedrock with an SSO profile and awsAuthRefresh — the credential pre-check now honors HTTPS_PROXY
  • Fixed a raw crash dump when starting Claude Code from a directory that no longer exists; it now prints a clear message
  • Fixed Edit and Write calls pausing for about 5 seconds in JetBrains IDE terminals when the Claude Code plugin is connected
  • Fixed a race where pressing Esc with a prompt queued could let the next turn finish early, leaving the session idle while Claude was still working and letting a later resubmit repeat actions
  • Fixed WebFetch retaining expired page content in memory for the whole session instead of the intended 15 minutes
  • Fixed cloud sessions (Claude Code on the web, desktop and mobile apps) resuming out of plan mode after an idle worker restart
  • Fixed MCP elicitation forms taller than the terminal being clipped in fullscreen mode: the form now fits the window, with hidden fields reachable by scrolling and Accept/Decline always visible
  • Fixed remote MCP servers staying failed after a transient 5xx on a mid-session reconnect in cloud sessions or via SDK setMcpServers()
  • Fixed custom session titles disappearing from /resume after more than ~64 KB of conversation was written following the rename
  • Fixed claude -c/resume picking up sessions from a different directory whose path differed only by characters like _, -, or .
  • Fixed /resume and the agents view showing a session as recently changed (and reordering it) when only its file was touched or it was merely reopened
  • Fixed /resume in all-projects mode telling you to cd into a deleted directory (e.g. a removed worktree); such sessions now resume in the current directory
  • Fixed the dark-ansi theme rendering expanded tool results in fullscreen mode with text the same color as the background
  • Fixed the fullscreen renderer prompt reappearing on every launch when it could never be answered; it now stops after being shown on three launches
  • Fixed .worktreeinclude patterns starting with **/ silently matching nothing when the target lived in a gitignored directory
  • Fixed agents, skills, and commands whose .md file starts with a UTF-8 BOM being silently ignored
  • Fixed /insights echoing literal <message> tags in its response on some models
  • Fixed marketplace metadata.pluginRoot having no effect: bare plugin source names now resolve under it as the docs describe
  • Fixed mouse movement in browser-based terminals inserting text like "35;150;7M" into the prompt when a mouse report arrived split across writes
  • Fixed custom theme overrides for the effort/ultracode status badge colors being ignored
  • Fixed OpenTelemetry trace fragmentation: tool executions deferred by a PreToolUse hook now resume in the original turn's trace instead of starting a new trace
  • Fixed vim mode in the agent view: Escape now switches to NORMAL mode and keeps your text instead of clearing the prompt
  • Fixed the selection:copy keybinding silently dropping a text selection that had been extended with Shift+Arrow keys
  • Fixed the /voice startup tip still appearing after voice dictation was enabled via the voice.enabled setting
  • Fixed shell-mode (!) Tab completion dropping the ./ from a ./script path, which left a command the shell couldn't run
  • Fixed fullscreen mode answering a permission prompt or pressing a button when you clicked the terminal window only to bring it back into focus
  • Fixed slash-command panels (e.g. /config, /model) in fullscreen mode covering the latest messages; the conversation now stays pinned above the panel
  • Fixed the /workflows detail dialog overflowing the terminal and losing its header off-screen when opened while Claude is still responding
  • Fixed the Linux sandbox making a nonexistent .git/config.worktree unreadable, which broke every sandboxed git command in repos with extensions.worktreeConfig set
  • Fixed hooks failing with "posix_spawn ENOENT" after the session's working directory was deleted; they now run from the project root or home directory instead
  • Fixed claudeMdExcludes not excluding a symlinked .claude/rules file when the pattern names the rules directory or the symlink rather than its target
  • Fixed runaway session-title syncing to Remote Control when two Claude Code processes shared one background job's state (2.1.232 regression); title updates are now deduplicated and rate-limited
  • Fixed sessions whose title starts with / being unaddressable by SendMessage and shown as "(untitled)" in ListAgents
  • Fixed Ctrl+W, Ctrl+U, Ctrl+K, Option+Backspace, Option+D and vim df/dt leaving a broken [Pasted text #N] placeholder when the cursor was inside it
  • Fixed masked (password-style) inputs such as the login code field letting their text be pasted back with Ctrl+Y elsewhere or saved to prompt history when cleared with double Esc
  • Fixed Ctrl+Backspace deleting one character instead of a word in search boxes
  • Fixed a request rejected by an organization policy check being re-sent before the rejection was shown
  • Improved the reminder shown after compaction so a skill's original arguments are not re-run as a new request
  • Long file paths on tool-use rows now truncate in the middle to stay on one line
  • Remote sessions keep sending keep-alives while a long SessionStart or Setup hook runs, so the container is not idle-reaped mid-hook
  • /goal: repeat check-ins on long-running background work now back off (30 min, then 1 h, then every 2 h) instead of repeating every 30 minutes
  • /goal: resuming a session from the claude --resume picker now restores its active goal
  • ListAgents now tells a session its own name (the one peers use to message it), and SendMessage to your own name says so instead of "no agent named …"
  • ListAgents and /list-agents now list your live teammates (previously only subagents and other sessions appeared, so a reachable teammate looked absent)
  • keybindingFlavor: "readline" now also matches Bash for word keys: Alt+F and Ctrl/Option+→ stop at the end of the word, Alt+D deletes to it (Ctrl+Y pastes it back), and punctuation separates words
  • Persistent retry mode (CLAUDE_CODE_RETRY_WATCHDOG) now fails immediately on organization spend-limit and out-of-credits errors instead of waiting indefinitely for a reset
  • Claude in Chrome: /clear now closes the session's Chrome tab group, and empty groups are closed on /resume and when Claude Code exits
  • Remote sessions: images uploaded from mobile now include their saved file path, so Claude can copy them into files it creates
  • Claude Code on the web: requests from Bash and other tools to non-API anthropic.com hosts (e.g. www, docs) now go through the session's network proxy, so your environment's allowed domains apply
  • Remote Control: clearer message and claude doctor wording when Remote Control isn't enabled for your account
  • Windows: cross-session messaging is now available, so Claude Code sessions across your machines can message each other with SendMessage and find each other with ListAgents, as on macOS and Linux
  • [VSCode] "View usage" in the usage-limit banner now sits inline with the warning text instead of floating mid-banner

v2.1.238

Choose a tag to compare

@ashwin-ant ashwin-ant released this 20 Aug 20:33

What's changed

  • Added a keybindingFlavor setting: set it to "readline" to make Ctrl+W in the prompt delete back to the previous whitespace, as in Bash; the default ("classic") is unchanged
  • Plugin marketplaces: headersHelper on a url marketplace or a catalog entry runs a command that mints HTTP headers (e.g. a short-lived token) for catalog and same-origin archive fetches
  • A catalog entry's headersHelper runs only when you install or update that plugin, after its command is shown; claude plugin install/update ask [y/N] (or pass -y)
  • Added claude self-hosted-runner --defer-shutdown-max-min <minutes>: on SIGTERM, keep serving attached sessions, park what is left after that many minutes, then exit
  • Added claude self-hosted-runner --proxy-authorization-command / --proxy-authorization-file for egress proxies that require a freshly issued Proxy-Authorization header on every connection
  • Fixed unbounded memory growth in long interactive sessions: subagent tool results are now released once they leave the recent display window
  • Fixed custom, project, and plugin output styles drifting back to the default voice mid-session
  • Fixed CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=true not keeping prompt suggestions on when your account is near, but not over, its usage limit
  • Fixed worktree-isolation Bash refusals telling you to remove a redirect when the command had none
  • Fixed self-hosted runners occasionally being removed by the server after a single slow or lost poll request, handing their healthy session to another runner
  • Fixed MCP elicitation dialogs showing nothing for URLs longer than 4,096 characters, and permission prompts dropping the "don't ask again" option when the project path didn't fit the terminal width
  • Fixed leftover /tmp/claude-*-cwd files when a Bash command is killed, times out, or is interrupted
  • Fixed held Backspace being ignored on terminals that send Ctrl+H for Backspace when keystrokes arrive in large bursts (slow SSH/mosh links)
  • Fixed text-wrapping in permission prompt diffs: lines containing wide multi-code-point characters (such as emoji) or tabs are no longer clipped
  • Fixed killing a suspended (Ctrl+Z) session sometimes leaving the terminal in bracketed-paste mode with the cursor hidden
  • Fixed stdio MCP servers receiving a server/discover request before initialize, forcing lazy servers to start their backend on every session open
  • Fixed a proxy's refusal of a connection being reported as a generic network error instead of naming the proxy
  • Fixed the /model and /effort cache-miss warning appearing when the prompt cache had already expired
  • Fixed per-task Stop from the Remote Control tasks panel doing nothing on CLI-hosted sessions
  • Fixed remote sessions exiting when a client delivered a user message without a valid role
  • Fixed Remote Control sessions started by claude remote-control inheriting session-scoped environment variables from the launching shell
  • Fixed a Remote Control session whose process crashed staying unavailable until claude remote-control was restarted; it can now be reused when you next message it
  • Fixed Remote Control messages sent from the web or Desktop while Claude is mid-turn disappearing from the transcript after the turn finishes
  • Fixed Remote Control model picks made on a phone or web not updating the model shown in the terminal
  • Fixed Remote Control disconnecting with "login expired" when a brief network hiccup delays renewing your sign-in; it now retries and stays connected
  • Fixed Remote Control reporting a failed reconnect on sign-out; signing out now ends the session with a clear message
  • Fixed ListAgents/SendMessage reporting "Remote Control is not connected" in sessions run by claude remote-control (server mode) or Desktop/IDE hosts; they now list and reach Remote Control peers
  • Fixed ListAgents and SendMessage exposing the idle worker that the agent view pre-warms for your next background session; it now appears only once a task claims it
  • Cross-session messaging: sending to a session on this machine that refuses inbound messages (e.g. crossSessionInbound: "refuse") now reports "refused" to the sender instead of a silent success
  • Cross-session messaging: a session whose inbox drops your messages (rate limit or full queue) now tells your session, instead of the messages vanishing silently
  • Improved startup: bare claude starts sooner on macOS
  • Improved Bash tool permission checking for zsh-specific syntax in shell conditionals
  • Improved Remote Control connection resilience: brief HTTP 403 refusals from a network edge, VPN, or proxy are now tolerated for up to 3 minutes, with the refusing party named when a block persists
  • Improved startup responsiveness: the automatic update check now runs about 10 seconds after launch instead of competing with startup for CPU
  • Updated the bundled claude-api skill for the Managed Agents Aug 19 release: web search/fetch domain settings and memory stores on self-hosted sandboxes
  • Changed Ctrl+L and Cmd+K in fullscreen to always just repaint — the double-press /clear shortcut was removed, and 1-row nvim terminals no longer trigger automatic /clear loops
  • Changed claude mcp list and claude mcp get to show disabled servers as ⊘ Disabled instead of connecting to them for a health check
  • MCP headersHelper in a project .mcp.json, and inline MCP servers in project or --add-dir agent files, now require that folder's trust dialog to have been accepted (also under claude -p)
  • MCP headersHelper from a project .mcp.json, plugin, or agent file runs without inherited credential env vars; user, managed and claude.ai-scope helpers now run from the Claude config dir

v2.1.237

Choose a tag to compare

@ashwin-ant ashwin-ant released this 20 Aug 00:54

What's changed

  • Fixed prompt caching for sessions using an LLM gateway or custom base URL
  • Added a built-in "Concise" output style: Claude leads with results and skips preamble and narration, while doing the work just as thoroughly. Select it under Output style in /config.

v2.1.236

Choose a tag to compare

@ashwin-ant ashwin-ant released this 19 Aug 20:02

What's changed

  • Added ANTHROPIC_DEFAULT_MODEL environment variable: sets the model new sessions start on, while a /model pick still overrides it and persists across restarts (unlike ANTHROPIC_MODEL)
  • Added notify_when_idle to cross-session SendMessage: ask another Claude Code session on this machine to send one notice when it next goes idle — opt-in, one-shot, no polling (macOS and Linux)
  • Sandbox: on macOS, wildcard read-deny rules (e.g. **/.env) now take precedence inside allowed read regions, cover matched directories' contents, and can't be bypassed by renaming the denied file
  • Fixed clipboard copy, background housekeeping, background sessions, and local MCP logs breaking after the directory a session had switched into was removed (since 2.1.229)
  • Fixed the fullscreen renderer failing permanently after a single failed start: it now falls back to the classic renderer instead of exiting on every subsequent launch
  • Fixed the /model picker rendering taller than the terminal: it now shows only as many models as fit the window, with the rest reachable by scrolling
  • Fixed SendMessage calls being rejected when a malformed closing tag left the message text inside the summary field
  • Fixed unhandled promise rejections when a subprocess fails to start, for example powershell.exe on WSL with Windows interop disabled (regression in 2.1.234)
  • Fixed fullscreen mode sometimes not showing a newly sent message until the next update after the terminal was resized
  • Fixed a blank band that could remain above the prompt after clearing a multi-line prompt, and panes not repainting after resizing the terminal away and back, in fullscreen mode
  • Fixed the managed-settings approval prompt sometimes not appearing at startup while still capturing the first keypress as approval
  • Fixed terminal tab titles jumping in tmux (iTerm tmux integration): the title is now written only when its text changes instead of animating every 960ms
  • Fixed an unclear error when the cloud environments list came back empty or malformed
  • Fixed the Fable 5 first-time usage-credits prompt auto-selecting the fallback model after 60 seconds with no answer when using Remote Control
  • Fixed spinner tips never appearing, with a repeated background error, when the cached guest-pass reward in ~/.claude.json was malformed
  • Fixed skills hot-reload in SDK/VS Code sessions raising an error on every skills change after the session's working directory was deleted (2.1.229+)
  • Fixed self-hosted runner sessions released on idle, retire, or startup timeout occasionally resuming on another runner before the post-session hook had finished
  • Fixed the Clawd mascot's eyes and feet rendering unevenly in iTerm2 at some font sizes
  • Fixed occasional runaway session recaps: recap text (automatic and /recap) is now capped at 400 characters, cut at a word boundary
  • Improved startup performance: the session counter is now written in the background
  • Improved auto mode: Monitor allow rules are now set aside while auto mode is active, so Monitor commands are reviewed the same way Bash commands are
  • Improved auto mode on Bedrock, Vertex AI, and Foundry, and when telemetry is disabled: the classifier now uses the same defaults as on the Claude API, including severity-scored classification
  • Improved auto mode: the git status check can no longer be fooled by a repo's status.showUntrackedFiles=no setting into reporting a clean tree
  • Changed the /model picker to highlight only the newest model's name, so the highlight marks the new release rather than an arbitrary subset of the list
  • /goal: an idle session whose goal is parked behind long-running background work now checks in automatically after 30 minutes (then 1h, 2h) instead of waiting for you to return
  • /usage now shows the usage-credits spend row for Team and Enterprise members, and shows a capped row at 0% before anything is spent
  • SIGTERM in print/SDK mode no longer records an interrupted turn or synthetic tool denials before exiting; running commands are still terminated and the process still exits with code 143
  • Pressing Enter on a slash-command typo or a command unavailable in this session now reports it instead of running the closest fuzzy match; prefixes and aliases still run
  • Remote Control now marks a session offline within seconds when the CLI exits or its terminal closes
  • SendMessage now refuses further messages to a session up front once a rapid burst would exceed what that session's inbox accepts, instead of reporting them sent while they were dropped
  • Aligned the session title chip on the prompt border with the footer's right edge
  • Right-aligned footer items (goal indicator, session state, background agent status) and truncated notices now share a consistent right margin with the rest of the prompt area
  • [VSCode] Added screen reader support for the transcript: live announcements for replies, permission requests, errors, and status changes, plus per-turn heading navigation

v2.1.235

Choose a tag to compare

@ashwin-ant ashwin-ant released this 18 Aug 20:38

What's changed

  • Added an optional spellcheck setting that underlines misspelled words in the prompt input as you type, using your installed aspell, hunspell, or ispell
  • Fixed whole-prompt-cache invalidation when a language server disconnected or reconnected mid-session
  • Fixed nested markdown list items misaligning at depth 3+ and added a hanging indent to wrapped list items in the terminal UI
  • Fixed prompt input highlights (slash commands, keywords, mentions) appearing shifted by one or more characters in some multi-line prompts
  • Fixed Shift+Tab inside the permission prompt's comment field approving the edit and granting session-wide edit permission instead of closing the field
  • Fixed the Agent tool advertising a general-purpose default in sessions where that agent is unavailable: an omitted subagent_type there now gets a clear error listing the available agents
  • Fixed notebook cell delete/replace approval dialogs silently omitting the existing cell content when the notebook or cell could not be read; the dialog now says why
  • Fixed slash commands run while Claude is responding showing HTML entities instead of the actual characters
  • Fixed the prompt footer not showing the "Update installed" restart notice after a background auto-update
  • Fixed the expanded task list (ctrl+t) always starting collapsed when resuming or relaunching into a session that still has open tasks
  • Improved memory and CPU usage while cloud sessions such as /ultrareview or /autofix-pr run in the background — their event streams are no longer re-scanned and re-rendered on every update
  • Improved permission dialogs: display text and "don't ask again" options now always match what a grant would cover, and "don't ask again" is withheld when contents cannot be fully displayed
  • Improved the embedded grep in native macOS/Linux builds: pathological patterns now fail fast instead of exhausting memory, and -m N with -A/-C prints correct context
  • Improved the context-limit error to say when auto-compact is off and point to /config to re-enable it
  • Vim mode: NORMAL mode and cursor position are now preserved when toggling the detailed transcript (ctrl+o) or closing a panel
  • Dialogs: arrow keys and Enter pressed in quick succession now select the option you navigated to instead of the previously highlighted one
  • SendMessage now refuses messages too large for cross-session delivery up front instead of silently dropping them
  • Remote Control: claude rc now applies the same enterprise-gateway availability check as interactive startup
  • [VSCode] Fixed focus jumping between open Claude tabs on its own when a window with several Claude panels is restored or reloaded

v2.1.234

Choose a tag to compare

@ashwin-ant ashwin-ant released this 17 Aug 20:20

What's changed

  • Added the optional CLAUDE_CODE_PROJECT_DIR_NAME environment variable: hosts that give each session its own config directory can choose a short name for the per-project transcript directory
  • Added the selection:clear keybinding action, so a key can be bound to clear an in-app text selection; also works in the agents view
  • Added a GitLab merge request badge to the footer and statusline: repos with a GitLab remote and an authenticated glab CLI show MR !N with draft/pending/green states
  • Claude Code now continues your session automatically when a claude.ai usage limit resets; turn it off in /config ("Continue automatically at usage limit")
  • Claude is now told to use your account email only to identify you, and not to send it to unrelated services unless you ask
  • Security: remote file reads, session restore, CLAUDE.md includes, workflow scripts and file uploads now reject Windows NT-namespace (\??\) paths, hardening the remaining pre-approval file accesses against the NTLM credential-leak vector
  • Fixed auto mode in very long sessions repeatedly re-checking and denying sandboxed commands' network access after the conversation had been compacted
  • Fixed session-scoped permission answers (including denies) being dropped when answering background subagent tool permission prompts
  • Fixed a crash when an API response on the non-streaming fallback path (typically via third-party gateways) contained a thinking block missing its thinking field or a text block missing its text field
  • Fixed markdown rendering becoming extremely slow for some messages containing unusual Unicode sequences
  • Fixed SendMessage rejecting a recipient copied from ListAgents when the session name is at the 200-character cap or emoji-heavy
  • Fixed repository detection mis-reading the host of git remotes with unusual userinfo, producing links and repo-specific behavior for the wrong host
  • Fixed MCP diagnostics printing resolved secrets: scope-conflict warnings now show the configured ${VAR} form, and connection-failure details show only the server origin
  • Fixed strictKnownMarketplaces allowlists accepting SCP-style git marketplace sources whose host differs from the one git would actually connect to
  • Fixed modal text such as the /login OAuth URL losing characters when copied in fullscreen
  • Fixed a --- horizontal rule in rendered markdown running into the line after it
  • Fixed consecutive shell commands splitting into multiple "Ran 1 shell command" rows when todo/task updates were interleaved between them
  • Fixed dialogs like /permissions opened while a ! shell command was running being dismissed when the command finished
  • Fixed a queued ! shell command being sent to the model as plain text after pressing up-arrow to edit the queued input
  • Fixed queued messages reappearing in the prompt history while still queued, Esc while selecting a queued message no longer interrupts the turn, and ! mode no longer sticks after a mid-turn submit
  • Fixed accepting the "Try the new fullscreen renderer?" prompt restarting the session without its permission mode (e.g. --dangerously-skip-permissions), tool allow/deny rules, model or effort flags
  • Fixed /tui dropping launch --allowed-tools/--disallowed-tools rules when it restarts; it now declines to switch, with the reason, when the session has restrictions a restart can't carry over
  • Fixed trust prompts omitting the repository-wide scope warning when the directory was first seen before the repository existed there
  • Fixed a case where an IDE diff tab closing during a permission re-prompt could answer the new prompt with the previous input
  • Fixed: files sent to the user during Remote Control sessions hosted by Claude Code Desktop or VS Code now upload, so they open on phone and web instead of showing an empty card
  • Fixed: after /login while CLAUDE_CODE_OAUTH_TOKEN is set, the stale-token reminder no longer leaks into Claude's automatically resumed turn — it now appears only to you
  • Fixed: permission previews now relay only to channel servers admitted by the inbound trust gate, and a server's explicit permission-capability opt-out is honored
  • Fixed: credential masking on relayed permission previews can no longer hide commands, paths, or destinations from the approver; oversized private-key blocks now redact under full-strength redaction
  • Fixed: provider API tokens that mask on permission previews now mask even when directly followed by shell delimiters
  • Fixed Claude Desktop inter-session messages being silently dropped by the recipient session when cross-session messaging read as disabled, which left the sender's query "thinking" for many minutes
  • Remote Control: signing this computer in to a different claude.ai account or organization now stops the running session within seconds and says why, instead of a misleading HTTP 404 hours later
  • Remote Control sessions started from Claude Code Desktop or VS Code now keep phones and claude.ai/code updated on the session's permission mode (and claude.ai/code on the model) as they change
  • Remote Control: effort picks made on a phone or on claude.ai/code now apply to terminal- and Desktop/VS Code-hosted sessions, and the session publishes its effort level to connected clients
  • SendMessage and ListAgents now say when your account's session list was too long to check completely, instead of treating unseen sessions as absent
  • Expired Anthropic profile credential now points you at /login when a claude.ai login would take precedence
  • Improved the transcript: your own prompts now render markdown (highlighted code blocks, inline code, lists) the same way replies do
  • Improved the "API returned an empty or malformed response" error to say what came back (content type, body kind, size, request ID) and why the original streaming request failed
  • Improved auto-generated session titles to read as short, specific names (e.g. "Login button bug") rather than sentences restating your request (e.g. "Fix the login button on mobile")
  • Reduced the context cost of loading the built-in claude-api skill from ~200k+ tokens to ~25k by loading reference docs on demand
  • /permissions can now be opened while Claude is working — rule changes apply to the rest of the current turn
  • /add-dir <path> can now be used while Claude is working; /add-dir, /autocompact, /theme, /help, /config and /advisor dialogs open mid-turn in the fullscreen TUI
  • /goal now clears itself with a notice when a turn dies on an unrecoverable error (e.g. revoked auth, an exhausted credit balance, or a context overflow) instead of staying armed
  • /goal: when background tasks keep a goal waiting for 30+ minutes, Claude now checks in on them instead of waiting indefinitely (set CLAUDE_CODE_GOAL_CHECKIN_MINUTES=0 to opt out)
  • claude setup-token now rejects unexpected extra arguments instead of silently ignoring them
  • Changed Esc in fullscreen mode to no longer clear a mouse text selection: it interrupts or dismisses as usual and the selection stays highlighted
  • Removed the redundant "Allowed by auto mode classifier" line that auto mode showed under every Agent tool call
  • Removed the "Default teammate model" setting from /config; agent-team teammates now use the leader's model unless the spawn names one
  • Dimmed the elapsed-time counter on the running tool header so it no longer competes with the bold counts
  • Background task notifications delivered between turns are now sent to the model inside <system-reminder> tags, matching mid-turn delivery
  • Mantle: skip the admin-pin availability probe at startup when a main-loop model is already picked
  • Windows: startup no longer stalls on repeated rename retries when ~/.claude.json is read-only

v2.1.233

Choose a tag to compare

@ashwin-ant ashwin-ant released this 14 Aug 22:20

What's changed

  • Added GitLab merge request URL support to the --worktree flag and the claude agents view (where MRs display as !N)
  • Added an opt-in forward_user_identity apps gateway setting on Anthropic upstreams that sends the signed-in user's identity as headers, so a proxy behind the gateway can attribute spend per user
  • Added opt-in memory cgroup support for Bash tool commands on Linux (CLAUDE_CODE_TOOL_MEMORY_LIMIT) so a runaway build can't stall the session
  • Added CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS environment variable to configure the WebFetch session URL cache TTL (default unchanged: 15 minutes)
  • Fixed cloud sessions occasionally being marked as lost when the environment shut down while Claude was waiting on a permission prompt
  • Fixed MCP v2 connections endlessly reopening the subscriptions/listen stream against servers that terminate long-held streams on a fixed timeout (e.g. serverless hosts)
  • Fixed Notification hooks not firing for permission prompts when running under Claude Desktop or VS Code
  • Fixed idle sessions on Linux sometimes keeping one CPU core at 100% when sandboxing is enabled
  • Fixed bundled skill aliases like /checkup and /review reporting "Unknown command" in -p mode or with plugins/MCP loaded when a user or project skill shadows the bundled skill
  • Fixed skill/command argument substitution to prevent argument values from being re-expanded as template markers
  • Fixed Windows paths spelled with the NT \??\ device prefix bypassing UNC path validation, closing an NTLM credential-leak vector
  • Improved claude self-hosted-runner session start time: the session branch is now created without rewriting the working tree, and two server round trips no longer block the agent's launch
  • Improved apps gateway error forwarding: 400/413 errors from Vertex, Foundry, and Claude Platform on AWS upstreams now carry the upstream's own message; fixes a bug with auto-compact on apps gateway
  • Improved claude plugin validate to check a bare .claude/skills directory, reporting SKILL.md files whose frontmatter fails to parse
  • Improved screen reader mode: the /effort selector renders as a numbered list with a typed-number prompt, and hint and dialog text is no longer clipped
  • Improved print mode diagnostics: a [claude-code:unrecognized_model] line is written to stderr when a request goes out for a model ID Claude Code doesn't recognize; map it with modelOverrides to silence
  • Changed the GitHub app setup tip to no longer appear in repositories whose origin remote is on gitlab.com or bitbucket.org; the enterprise marketplace tip now covers non-GitHub internal git hosts
  • Todo/task-tracking tools (TaskCreate/Get/Update/List, TodoWrite) are no longer available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, and newer models; set CLAUDE_CODE_ENABLE_TODO_TOOLS=1 to bring them back
  • Windows: fixed auto mode repeatedly stopping for manual approval on ordinary cd <dir> && <command> > file Bash commands (a 2.1.232 regression)
  • Reverted the 2.1.232 Bash permission changes for Cygwin-style symlinks on Windows and for input redirections (< file); a narrower version will return in a later release

v2.1.232

Choose a tag to compare

@ashwin-ant ashwin-ant released this 13 Aug 23:29

What's changed

  • Subagent forking is now on by default: a subagent_type: "fork" subagent inherits the full conversation and prompt cache, and non-teammate agent spawns in interactive sessions now run in the background by default
  • Type @ in the prompt to mention another Claude session by name; Claude then uses SendMessage to reach that session directly
  • SendMessage now delivers to a bare name that exactly matches one live session, instead of asking to confirm with a ref first
  • Interactive sessions on one machine now keep unique names: starting or renaming a session to a name another live session already uses gives it a name-word-word variant and tells you
  • Added /config rows for "Dialog expiry" and "Messages from your other sessions" (cross-session inbound accept/hold/refuse)
  • Added secret redaction for GitLab token families (glrt-, gloas-, glptt-, glagent-, glimt-, glsoat-, glcbt-, glft-, glffct-) and full redaction of routable glpat-/gldt- tokens; the glab CLI config store gets the same sandbox and credential-path protection as gh
  • Added GitLab support to plugin marketplaces: bare gitlab.com repo URLs (including nested subgroups) now clone like github.com URLs, and clone auth-failure hints name your actual git host
  • Settings: additionalMarketplaces and allowedMarketplaces are now accepted as friendlier aliases for extraKnownMarketplaces and strictKnownMarketplaces
  • Enterprise policy: a url-typed blockedMarketplaces entry for a bare repo URL keeps blocking that URL when the CLI classifies it as a git clone
  • Gateway: the desktop: overlay now accepts every released Desktop setting (was 11 hand-listed keys), validated at boot against Desktop's own schema; unknown or invalid keys fail boot
  • Gateway: empty managed.policies[].match.groups/admin.admin_groups entries and malformed email_domain values (empty, or containing @, whitespace, or commas) now fail at boot instead of silently matching no one or granting admin access
  • Fable 5 is offered as an advisor in /advisor again for organizations with Fable access, with usage-credits consent set up through /model fable
  • Fixed a PowerShell permission bypass where variable-writing parameters could silently overwrite $PSDefaultParameterValues and redirect later commands' file access
  • Fixed a Windows permission bypass where Git Bash followed Cygwin-style symlinks that path validation saw as regular files; writes through them now require permission approval
  • Fixed nested git repositories inheriting trust from a parent directory; each repository now requires its own trust confirmation
  • Fixed MCP connections hanging for the full 30-second connect timeout when a server fails to answer or sends a malformed reply to the protocol-version probe
  • Fixed Remote Control sessions hosted by a bridge inside a cloud session inheriting that session's transcript or credentials
  • Fixed Remote Control sessions started from Claude Desktop or an IDE appearing as a new claude.ai session each time the local session was resumed; they now reattach to the existing one
  • Fixed Remote Control sessions appearing unreachable to newly attached clients while idle
  • Fixed Remote Control bridge sessions not restoring conversation history when the session worker restarts
  • Remote Control: resuming a conversation whose session was deleted from claude.ai or the app now starts a replacement instead of failing with a message about your login (regressed in v2.1.227)
  • Fixed Cloud gateway /login exiting silently or leaving an unresponsive terminal after "Press Enter to continue" when managed settings failed to load; the reason is now shown
  • Fixed voice mode on native builds getting stuck on "listening…" when the voice service rejected the connection; the rejection is now shown immediately
  • Fixed mTLS client certificate rotation requiring a restart; Claude Code now reloads the rotated cert and key automatically on connection errors
  • Fixed malformed AWS or Vertex region values being used to build request URLs; they now fall back to the default region
  • Fixed stream idle timeout errors failing the request instead of recovering on Bedrock, Vertex, and gateway deployments
  • Fixed content-sized overlays containing truncated text rendering one column too wide, and start-truncated text collapsing to an ellipsis
  • Fixed a stray garbled character where a long shell-command or agent-description preview was cut off mid-emoji
  • Fixed a startup race that could silently unregister a plugin marketplace due to concurrent writes to known_marketplaces.json
  • Fixed /update and /tui refusing to restart while work that survives the relaunch was running
  • Fixed usage-limit guidance suggesting unavailable slash commands in SDK and remote sessions
  • Fixed the consent message for interactive --advisor fable launches, which told you to run /model fable in an interactive session that had just exited
  • Improved fullscreen streaming: long sessions stay responsive because the whole conversation is no longer re-normalized on every update
  • Improved the managed settings approval dialog: shows endpoint URLs, uses clearer wording for telemetry-only changes, skips routine OpenTelemetry options, and requires approval for server-managed sandbox binary overrides (sandbox.bwrapPath, sandbox.socatPath, sandbox.ripgrep)
  • /feedback and /bug now open immediately when invoked while Claude is responding, instead of waiting for the turn to finish
  • /plugin install plugin@marketplace now refreshes the marketplace first, so newly published plugins install without a manual marketplace update
  • /code-review at high, xhigh, and max effort now runs in a background agent like the other levels
  • Pasted and clipboard images are read without blocking the event loop
  • Remote Control now keeps reconnecting for about 30 minutes after a network blip and no longer drops after a few blips spread across an hour
  • Remote Control: resuming a conversation no longer silently takes Remote Control away from another Claude Code on the same machine that still has it; run /remote-control there to move it
  • Updated agent panel: completed subagents hide immediately with a /tasks footer hint, and the "↓ N more" overflow indicator moved left for visibility
  • Remote Control: the terminal now says whether a session was taken over by another device, ended from another app, or deleted, and stops suggesting a reconnect that would undo it
  • Bash input redirections (< file) are now permission-checked like their argument spellings on all platforms
  • Shortened the message shown when resuming a completed background agent
  • Cowork sessions no longer inline external @-imports from user-scope memory files
  • Hardened the auto-generated cross-session messaging socket directory on shared /tmp: a pre-planted symlink or another user's directory is now refused instead of used
  • Hardened the Linux filesystem sandbox against a protected-path bypass
  • Changed sandbox.ripgrep to be honored only from user, managed, and --settings settings; project settings can no longer override the sandbox's ripgrep binary
  • Removed the startup tip suggesting you create custom subagents, and the matching nudge in the /powerup tour