- Update Vertex AI prose references to Agent Platform across the example
(READMEs, script/terraform comments, config template). Functional
identifiers are unchanged: the 'provider: vertex' config key,
roles/aiplatform.user, aiplatform.googleapis.com, and the terraform
resource label (renaming it would recreate the IAM binding in existing
states). First mentions keep '(formerly Vertex AI)' for searchability.
- Drop the README's self-referential public-mirror link.
- Fixed single-segment `dir/**` allow rules like `Edit(src/**)` auto-approving writes to nested `dir/` directories anywhere in the tree instead of only `<cwd>/dir`
- Fixed a permission-check bypass affecting commands run in Windows PowerShell 5.1 sessions
- Fixed Bash permission checks to fail closed on file-descriptor redirect forms that bash parses differently than the permission analyzer
- Fixed Bash permission checks misjudging very long commands — commands over 10,000 characters now always prompt instead of running automatically
- Fixed Bash permission checks treating zsh variable subscripts and modifiers in `[[ ]]` comparisons as inert text — these commands now prompt for approval
- Fixed Bash permission checks to no longer auto-approve certain `help` and `man` commands that could run unsafe options, command substitutions, or backslash paths
- Fixed permission prompts on remote sessions that could proceed before the local confirmation dialog
- Added the EndConversation tool: Claude can end sessions with highly abusive users or jailbreak attempts, as on claude.ai since 2025 — see https://www.anthropic.com/research/end-subset-conversations
- Added a periodic progress heartbeat for long-running tool calls that previously went silent
- Added an ISO `modified` timestamp to memory file frontmatter
- Added `message.uuid`, `client_request_id`, and `tool_source` attributes to OpenTelemetry log events for message-level correlation and tool provenance
- Added `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` to configure the 60 KB truncation limit on OpenTelemetry content attributes
- Added reasoning effort to the `subagentStatusLine` payload, so custom agent rows can render model and effort
- Added permission prompts for `docker` commands (including the Podman `docker` shim) carrying daemon-redirect flags (`--url`, `--connection`, `--identity`, and Podman's remote mode) that previously ran without one
- Fixed a crash when a GrowthBook feature evaluates to null, and a bug where a malformed flag payload could wipe the cached feature flags
- Fixed Bash tool killing the Claude session when a `pkill -f` pattern accidentally matched the CLI's own process (Linux)
- Fixed unbounded memory growth when `--settings` points at a device file or multi-GB file; oversized (>2 MiB) settings files now fail at startup with a clear error
- Fixed streaming turns failing with "Socket is closed" behind corporate proxies on Windows
- Fixed stream-json output truncation at exit for slow-reading SDK/pipeline consumers; the exit drain now scales with queued bytes instead of a flat 2s cap
- Fixed scheduled tasks refusing their own configured prompt as untrusted input — the fired prompt is now delivered as the session's assigned task
- Fixed PowerShell tool commands hanging until timeout when a child process waited on standard input (Windows)
- Fixed Python scripts under the PowerShell tool crashing with UnicodeDecodeError when reading non-UTF-8 data from standard input (Windows)
- Fixed Python scripts run via the PowerShell tool crashing with UnicodeEncodeError on non-ASCII output, and PowerShell 7 error messages containing raw ANSI escape sequences (Windows)
- Fixed the PowerShell tool reporting `where.exe`, `fc.exe`, and `diff.exe` as errors when they return a valid negative answer (Windows)
- Fixed `>` and `>>` under the PowerShell tool on Windows PowerShell 5.1 writing UTF-16LE files that other tools couldn't read as UTF-8
- Fixed a displaced background daemon deleting its successor's control socket on shutdown, which made the next client kill the healthy replacement daemon
- Fixed background sessions parked with `←` or `/background` and left idle keeping the background daemon and a worker process alive indefinitely
- Fixed completed background sessions being impossible to remove via `claude rm` or the agent view once the background service had gone idle
- Fixed background sessions dispatched from a non-git folder being impossible to delete from the agents view
- Fixed reopening a stopped background session failing to restore its saved conversation when an unreadable folder exists in the session store
- Fixed the Remote Control "session ready" push notification firing for sessions where Remote Control was not explicitly enabled
- Fixed `/install-github-app` and the `/mcp` settings menu being blocked in agent-view sessions — they're now refused only in background sessions with no terminal attached
- Fixed plugins enabled via the `--settings` CLI flag not loading (regression since v2.1.181)
- Fixed feature flags going stale in long-running sessions after the OAuth token rotates
- Fixed `/ultrareview` refusing to run in repos with no merge base — it now offers to review all tracked files
- Fixed `claude update` and `claude doctor` hanging silently, and the `/status` System diagnostics section going blank, when a shell-config path is a directory
- Fixed memory frontmatter values being silently truncated at an inline `#` when memory files are saved
- Fixed session cost and token telemetry double-counting on streams that emit multiple cumulative `message_delta` frames
- Fixed a spurious "check your network" warning that appeared while the advisor was thinking
- Fixed hooks with exit code 2 not blocking as documented when the hook's stdout JSON fails schema validation
- Fixed OTel log events emitted outside the turn's async context missing the interaction span's trace context
- Fixed MCP transient errors during prompts/resources refresh clearing the server's slash commands and resources
- Improved the `claude rc` workspace-trust error in the home directory to say trust there is never saved and to suggest running from a project directory
- Changed single-segment `dir/**` hook `if:` conditions to match only `<cwd>/dir`; write `**/dir/**` for any-depth matching. `deny`/`ask` permission rules keep their any-depth match.
- Changed `file` commands using `-m`/`--magic-file` or `-f`/`--files-from` to require permission instead of being auto-allowed as read-only
- Changed keep-alive connection pooling to disable after a stale-connection error, so retries open a fresh socket
- Changed SessionStart hooks to report source `"fork"` when a session begins as a fork instead of `"resume"`
## 2.1.212
-`/fork` now copies your conversation into a new background session (its own row in `claude agents`) while you keep working; the in-session subagent it used to launch is now `/subtask`
- Added `claude auto-mode reset` to restore the default auto-mode configuration, with a confirmation prompt (pass `--yes` to skip)
- Added a session-wide limit on WebSearch tool calls (default 200, tunable via `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION`) to stop runaway search loops
- Added a per-session cap on subagent spawns (default 200, override with `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION`) to stop runaway delegation loops; `/clear` resets the budget
- MCP tool calls running longer than 2 minutes now move to the background automatically so the session stays usable; configure the threshold or disable with `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`
- Typing `/resume` in the agent view now opens a picker of past sessions — including sessions deleted from the list — and resumes your pick as a background session
- Fixed plan mode auto-running file-modifying Bash commands (e.g. `touch`, `rm`) without a permission prompt or SDK `canUseTool` callback
- Fixed worktree creation following a repository-committed symlink at `.claude/worktrees`, which could create files outside the repository
- Fixed a `continue:false` hook's halt being dropped when the tool fails or completes mid-stream, and hook infrastructure errors being misreported as user rejections
- Fixed SIGTERM during a running Bash tool orphaning the command's process tree in print/SDK mode; the CLI now aborts the turn, kills the tree, and exits 143
- Fixed `/background` and `claude --bg` failing with "EUNKNOWN: unknown error, uv_spawn" on Windows when Group Policy blocks PowerShell 5.1; the daemon now prefers PowerShell 7
- Fixed shell mode (`!`) not executing commands containing file paths while the path autocomplete popup was open
- Fixed auto-mode denial notifications rendering broken characters when a long denial reason was truncated mid-emoji
- Fixed Ctrl+J not inserting a newline in the agent view dispatch input on terminals with extended key reporting, and surfaced the newline shortcut in the `?` help overlay
- Fixed `/ultrareview` rejecting PR references like `#123`, `PR 123`, and pasted PR URLs; error hints now name the command you actually typed
- Fixed `/ultrareview <branch>` not fetching the branch from origin when it exists remotely; it now suggests the closest branch name on typos
- Fixed `/ultrareview` skipping the billing confirmation in a new conversation after `/clear`
- Fixed `/ultrareview`'s "not a git repository" error on Claude Desktop now suggesting the project's repository folder instead of terminal commands
- Fixed hosted (host-managed) sessions failing at startup when repository settings configured mTLS certs, extra CA bundles, or OAuth scopes; these transport settings are now ignored with a warning
- Fixed a spurious "File has not been read yet" error when editing a file that had been read with offset/limit before resuming a session
- Fixed `ExitWorktree` failing with "no active EnterWorktree session" after resuming a session with `--continue`/`--resume` in print/SDK mode
- Fixed the workflow agent grid staying empty for Remote Control clients that join a session mid-run
- Fixed streaming-mode control requests being marked complete before their handler finished, which could lose the request on session restart
- Fixed background sessions created with `/fork` losing their live-parent protection after a state write failure
- Fixed reopening a stopped background session from the agent view failing silently — it now resumes the session, or shows why it can't and lets you force a restart
- Fixed agent teams: a stopping teammate could send the leader duplicate idle notifications when team initialization re-ran within a session
- Fixed the plan-approval dialog footer splitting "ctrl+g to edit in <editor>" apart when the file path is long
- Fixed the welcome banner keeping its old panel widths after a combined width+height terminal resize in fullscreen mode
- Fixed diff previews losing their line numbers and +/- markers in narrow layouts
- Fixed @-mentions attaching nothing after a partial file read, plugin uninstall targeting the wrong marketplace, and false "Command timed out" on exit code 143
- Fixed OpenTelemetry HTTP exports being rejected with 411/400 by Azure Monitor and other endpoints that don't accept chunked transfer encoding
- Fixed OTLP event log records missing `trace_id`/`span_id` when `TRACEPARENT` is set in SDK/headless mode
- Fixed conversations with many images incorrectly failing with "Request too large" errors, and improved the error message to explain the actual cause
- Fixed web search and web fetch returning "API Error" text as search results or page content when the API was overloaded
- Improved web search and web fetch reliability by retrying 529 errors and rate-limited requests with bounded backoff
- Improved prompt caching: the mid-conversation system block now works behind LLM gateways and custom base URLs (Bedrock, Vertex, 1P)
- Improved background agent attach: cold-attaching now instantly shows the formatted transcript while the session boots, instead of a blank wait
- Reduced token usage in inter-agent messaging: `SendMessage` bodies are no longer duplicated into replayed history and tool results
- Changed `/fork` to name the copy after your prompt when the session has no title, so the row is recognizable in the agent view
- Changed bare `/btw` to reopen the side-question panel on your most recent exchange so you can browse earlier answers
- Changed the `←` footer hint to pulse `N done` for a moment when a background agent finishes while nothing needs your input
- Deprecated the Task tool's `mode` parameter (now ignored); subagents inherit the parent session's permission mode by default
- Changed Enterprise `forceLoginMethod` to be enforced for VS Code extension, SDK, `setup-token`, and `install-github-app` logins, not just the terminal
- Changed session transcripts to record the reasoning effort level on each assistant message
- Changed headless/SDK sessions to apply a `set_model` control request mid-turn; the next model round-trip uses the new model instead of waiting for the next turn
- Changed agent view / `claude agents --json`: sessions waiting on a sandbox, MCP-input, or managed-settings prompt now show as "Needs input" instead of "Working"
- Updated the auth status panel title from "Cloud authentication" to "Authentication"
- Corrected an earlier release note (2.1.200): tmux through the 3.6 series lacks synchronized output; newer tmux with support is detected automatically
## 2.1.211
- Added `--forward-subagent-text` flag and `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` environment variable to include subagent text and thinking in stream-json output
- Fixed permission previews relayed to chat channels not neutralizing bidirectional-override, zero-width, and look-alike quote characters, so tool inputs cannot visually alter the approval message
- Fixed auto mode overriding a PreToolUse hook's `ask` decision for unsandboxed Bash — a hook `ask` now floors the decision at a prompt
- Fixed parallel Claude Code sessions all logging out simultaneously after wake-from-sleep when many sessions share one credential store
- Fixed plugin MCP servers not reconnecting after an idle web session woke, leaving MCP calls failing until the next message
- Fixed Claude Code on Vertex and Bedrock attempting the default Opus model at startup and printing a spurious fallback notice when a model is explicitly configured
- Fixed subagents spawned with an explicit model override reverting to the parent's model when resumed or sent a follow-up message
- Fixed nested `.claude/rules/*.md` files loading even when setting sources exclude project settings
- Fixed file upload validation: filenames ending in a DOS device suffix (`.prn`) or trailing dot are now accepted, and files with multiple hard links are refused
- Fixed file uploads to Claude in Chrome from remote and CLI sessions
- Fixed edits that leave the input as "?" being silently swallowed and toggling the shortcuts panel
- Fixed a startup hang when the Claude in Chrome extension is enabled but Chrome is not running
- Fixed a 300ms delay revealing async content (Settings tabs, Stats, diff views, and other loading states)
- Fixed reopening a just-stopped background session from the agents view starting a blank conversation under the same session id
- Fixed `/loop` hiding the session from `/resume` after a single use
- Fixed screen reader users losing the audible terminal bell after `/terminal-setup` or onboarding terminal setup
- Fixed background jobs on LLM gateway auth (`ANTHROPIC_AUTH_TOKEN` + `ANTHROPIC_BASE_URL`) coming back "Not logged in" after the daemon respawns them
- Fixed `claude agents` jobs becoming permanently undeletable when git no longer recognizes their worktree — the row now shows why the delete was refused instead of silently reappearing
- Fixed `/clear` not resetting the session cost counter — the statusline's cost now starts at $0 after `/clear`
- Fixed Claude in Chrome setup pages failing to open in the browser on Windows
- Fixed headless print-mode sessions on Windows crashing or silently exiting when stdin is unreadable
- Fixed background session titles in the agents view showing the naming model's refusal text when the prompt contains a link
- Fixed background agents killed by the user auto-respawning, and revived agents re-running stale prompts from old sessions
- Fixed routines with no schedule reporting a next run time in the year 1
- Hardened synced skill/plugin directory naming on Windows and kept CCR web fetch/search proxies working after `/clear`
- Improved terminal layout and rendering performance
- Improved background agent result reporting — Claude now reports the status of still-running agents and waits for the real completion instead of fabricating results
- Improved the memory index over-limit warning to measure only loaded content, excluding frontmatter and HTML comments
- Updated integer environment variables (timeouts, token budgets, retry counts) to accept scientific notation and digit-separator spellings like `1e6` and `64_000`
- Updated documentation links to the current docs sites
- Changed "always allow" permission rules to save at the repository root, so approvals granted in a git worktree persist across sessions and worktrees
- Changed `/usage-credits` to ask for confirmation before sending a request to organization admins
- Changed Vim mode `s` and `S` (substitute char/line) to work in NORMAL mode, matching vim behavior
- [VSCode] Updated the Remote Control banner to describe what it does
- Claude in Chrome: hardened file-upload path validation
- Claude in Chrome: `save_to_disk` on screenshot actions now writes the image to disk and returns the path; previously it did nothing
- Fixed a prompt-caching regression on Bedrock, Vertex, Mantle, and Foundry that billed the trailing system context block as fresh input tokens on every request.
## 2.1.210
- Added a live elapsed-time counter to the collapsed tool summary line so long-running tool calls visibly tick instead of looking stuck
- Added a startup warning for `Write(path)`, `NotebookEdit(path)`, and `Glob(path)` permission rules — use `Edit(path)` or `Read(path)` instead
- Fixed `isolation: 'worktree'` subagents being able to run git-mutating commands against the main repo checkout instead of their own isolated worktree
- Fixed the `ultracode` keyword opt-in firing on non-human-originated input such as webhook payloads and relayed PR comments
- Fixed a rendered text fragment leaking into crash telemetry when a UI component returned content outside a styled text element
- Fixed paste markers leaking into external editors opened from Claude Code, which could appear as stray È/É characters around pasted text
- Fixed `claude attach` sometimes failing with "job not found" or "agent is still starting" errors during session transitions — attach now waits for the daemon to settle, and terminal resizes during a slow attach are applied once it completes
- Fixed a session crash when a tool's result renderer returned a numeric bigint value or plain text instead of a UI element
- Fixed a hook callback timeout being misreported to the model as a user rejection, which made unattended sessions stop and wait
- Fixed Claude assuming a `cd` took effect after its command was moved to the background; the tool result now states the working directory is unchanged
- Fixed plugin-provided MCP servers being torn down when MCP servers are re-synced mid-session
- Fixed plan approvals without edits being labeled "(edited by user)" and overwriting the plan file with a stale snapshot
- Fixed `/doctor` skipping its auto-mode-default proposal on Bedrock, Vertex, and Foundry, where auto mode no longer needs an opt-in
- Fixed Grep content mode claiming "No matches found" when paginating past the end of results
- Fixed unmatched `$1`/`$2` positional placeholders in skills and commands being silently stripped; they are now preserved verbatim
- Fixed plugin cache writes leaving temp files behind on failure and failing on locked-file renames on Windows and network filesystems
- Fixed background workers crash-looping when a client resets its connection to the background service
- Fixed `claude agents --effort ultracode` not reaching dispatched sessions; the value was silently dropped
- Fixed pressing ← to open the agents view dropping the task tracker when returning to the session
- Fixed the agents dashboard retaining pasted images from abandoned reply drafts after their session was deleted
- Fixed killed background sessions leaving a permanent `git worktree lock` behind; the periodic sweep now releases locks whose owning process is gone
- Fixed SDK MCP servers registered via an `initialize` control request waiting until the next turn to start connecting
- Fixed returning to the agents view from a session leaving overlapping ghost frames with `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`
- Fixed late-appearing `.claude/*` symlinks not being reconciled into the sandbox deny-write list
- Hardened the Agent tool against indirect prompt injection via content a subagent read
- Improved the Bash/PowerShell tool message when a command hits its timeout and is auto-backgrounded, so the model can distinguish a hang from an explicit background request
- Improved auto mode: the permission classifier now defaults to Sonnet 5 for external sessions, validated on the session's first request and pinned for the session
- Improved the bundled dataviz skill's chart color validation with perceptual OKLab color difference and recalibrated color-blindness thresholds
- Memory writes that leave a MEMORY.md index over its read limit now produce an explicit error instead of silent truncation
- Screen reader mode now announces permission mode changes aloud when cycling modes with Shift+Tab
- The agents footer hint now shows how many background agents are waiting on your input, with a brief color emphasis when the count changes
- Agent view: the session you pressed ← from stays visibly marked even after mouse hover or arrow keys move the selection
- Fable temporarily shows as unavailable in the advisor picker while a server-side issue causing Fable advisor failures is fixed
## 2.1.209
- Fixed /model and other dialogs being blocked in `claude agents` background sessions (reverts an overly broad guard)
## 2.1.208
- Added screen reader mode: opt-in plain-text rendering for screen reader users. Run `claude --ax-screen-reader`, set CLAUDE_AX_SCREEN_READER=1, or add "axScreenReader": true to settings.
- Added `vimInsertModeRemaps` setting: map two-key insert-mode sequences like `jj` to Escape in vim mode
- Added `CLAUDE_CODE_PROCESS_WRAPPER`: agent view and the background service now honor a corporate launcher by running every Claude Code self-spawn through a required wrapper executable
- Added mouse-click support for multi-select menus and "Other" input rows in fullscreen mode
- Fixed fast mode staying off after switching back to a model that supports it — it now restores automatically when enabled in settings
- Fixed replies typed to a background agent being lost when delivery fails — the text is now saved and delivered when the session restarts
- Fixed background-session attach failing permanently ("Couldn't start the background daemon") after an update replaced the binary a running `claude agents` process was launched from
- Fixed the context window (and auto-compact indicator) briefly resetting to 200k after the CLI auto-updates, causing a false "100% context used" when resuming long-context sessions
- Fixed supervised and background sessions crashing when a server closed an HTTP/2 connection with a GOAWAY while requests were in flight
- Fixed truncated stream-json/JSON output and missing result message when piping large responses from `claude -p`
- Fixed `CLAUDE_CODE_MAX_OUTPUT_TOKENS` and similar env vars silently using the mantissa of scientific-notation values (`1e6` became `1`)
- Fixed very large markdown tables stalling rendering or using excessive memory; tables over 200 rows show the first 200 with a "… N more rows" notice
- Fixed the Edit tool failing on files modified after reading when the target text still matches uniquely
- Fixed Read reporting empty files as "shorter than offset", Grep silently returning "No files found" for invalid regex patterns, Grep count mode under-reporting totals when paginated, and Glob crashing with an unclear error when the pattern, path, or working directory contained a null byte
- Fixed `apiKeyHelper` script failures being hidden behind a generic 401 after ~10 silent retries; the script's own error is now shown within 3 attempts
- Fixed Bedrock streaming requests failing with a misleading "Truncated event message received" when a gateway transforms the response — the error now names the content-type and points at the proxy
- Fixed `/upgrade` showing a login flow instead of the upgrade URL when the browser fails to open
- Fixed stream-json input killing the session on blank CRLF or whitespace-only lines from Windows-style SDK hosts
- Fixed headless stream-json sessions hanging permanently when a `control_request` carried a non-string `set_model` payload; the CLI now answers with an error response
- Fixed repeated "No completion record was found" notices on session resume — orphaned background tasks now collapse into a single summary
- Fixed Remote Control clients attaching to a terminal-hosted session not seeing background agents and workflow progress until a task started or stopped
- Fixed the Agent tool launching with no tools when a subagent's `tools` list resolves to nothing — it now returns a clear error naming the unrecognized entries
- Fixed `/usage` showing stale cached bars over fresher data, and `/mcp` not reclassifying placeholder servers after config edits
- Fixed "Change directory" in SDK hosts (e.g. Claude Desktop) failing with "A turn is in progress" on idle sessions that have a running background task
- Fixed the workflow save dialog showing `~/.claude/workflows/` instead of the `CLAUDE_CONFIG_DIR` location for user-scope saves
- Fixed `/release-notes` adding the viewed notes to the model's context — "Show all" previously injected the entire changelog into every subsequent request
- Fixed a memory leak in the agent view where pasted images were retained for the screen's lifetime after sending peek replies
- Fixed SDK sessions losing agents defined via the initialize request when a plugin refresh ran before the client attached
- Fixed several memory leaks in long sessions: MCP stdio server stderr accumulating up to 64 MB per server, LSP documents staying open indefinitely (now LRU with 50-doc cap), async hook output retained after backgrounding, and unbounded growth in headless/SDK sessions from large tool-result payloads
- Fixed a memory blowup when reading files with extremely long single lines using offset/limit — the read now returns a clean error instead of loading the whole line
- Fixed multi-second per-turn slowdowns in sessions with many permission deny/ask rules — rule matchers are now compiled once and cached
- Improved input responsiveness while agent task lists update — task updates no longer re-render the entire UI
- Reduced per-tool-call CPU overhead in print/SDK sessions with many MCP tools by caching tool-pool assembly (up to 7x faster tool rounds at high tool counts)
- Reduced memory usage by bounding the file edit read cache to 16 MB instead of pinning up to 1,000 full files
- Reduced session transcript size (up to 79x in edit-heavy sessions) and bounded checkpoint disk usage by pruning superseded file-history backups
- Reduced memory usage when resuming sessions with background agents or forks spawned from large conversations
- Completed background agents now stay listed in `/tasks` until cleanup instead of vanishing the moment they finish
- Attaching to a stopped background agent now shows its transcript immediately while the session warms up, instead of a blank "Session is starting" screen
- Background sessions: an older daemon no longer silently restarts workers spawned by a newer version onto the older binary
- Agent view: Ctrl+X now deletes renamed-branch worktrees, never destroys unpushed commits, keeps the session row when a worktree is kept, and reused worktree names reset to the current base
- Catastrophic removals (e.g. `rm -rf ~`) in commands containing `$(…)`/backticks/`<(…)` now prompt in `--dangerously-skip-permissions` and auto mode, matching the plain form
-`/install-github-app` and the `/mcp` settings menu no longer open in background sessions
- MCP servers configured with an empty URL now show as "not configured" in `/mcp` instead of a config error
-`/usage` now shows your last-known usage bars with an "as of" note when the usage endpoint is rate-limited, instead of an error screen
- Fixed Bedrock auth failing with "Session token not found or invalid" for AWS SSO profiles whose sso_region differs from the Bedrock region (2.1.207 regression)
## 2.1.207
- Auto mode is now available without `CLAUDE_CODE_ENABLE_AUTO_MODE` opt-in on Bedrock, Vertex AI, and Foundry; disable via `disableAutoMode` in settings
- Fixed the terminal freezing and keystrokes lagging while streaming responses containing very long lists, tables, paragraphs, or code blocks
- Fixed remote managed settings from a non-interactive run (`claude -p`, the SDK) being permanently recorded as consented without ever showing the security consent dialog
- Fixed the auto-updater overwriting a custom launcher script or symlink at `~/.local/bin/claude` on every release; `/doctor` now reports an externally managed launcher
- Fixed compound commands with `cd` prompting for permission when the only output redirect was to `/dev/null`
- Fixed the transcript jumping above the start of the answer when a response finishes streaming
- Fixed `extensions.worktreeConfig` being left in the repo's `.git/config` (breaking go-git tools like `tea`) after the last `worktree.sparsePaths` worktree was removed
- Fixed malformed bracket patterns in rules globs, skill paths, `.ignore`, and `.worktreeinclude` breaking file reads, file suggestions, and worktree creation
- Fixed a crash loop in agent teams where a malformed teammate mailbox message caused repeated errors every second until the mailbox file was manually deleted
- Fixed background sessions auto-named by accepting a plan not showing that name on their agent-view row
- Fixed background sessions that entered a git worktree resuming blank after a cold reopen from the agent list
- Fixed Remote Control task status updates being lost when the connection recovered from a network interruption or credential refresh
- Fixed Remote Control sessions hosted by the desktop app not showing background agent and workflow progress on mobile and web
- Fixed Deep research runs labeling every Fetch-phase agent "unknown" — chips now show the source hostname
- Fixed Bedrock repeatedly requesting fresh AWS SSO credentials from IAM Identity Center on every API request
- Improved agent view: pasting the same text again now expands the collapsed `[Pasted text #N]` placeholder instead of adding a second one
- Improved agent view: blocked session peeks now lead with the question and show a worded staleness clock (`waiting 3m`) instead of the same timestamp twice
- Changed Bedrock, Vertex, and Claude Platform on AWS to default to Claude Opus 4.8
- Changed auto mode to no longer read `autoMode` from `.claude/settings.local.json` (repo-resident); use `~/.claude/settings.json` instead
- Fixed an indefinite hang on Windows when AWS credential resolution stalls (e.g. a stuck `credential_process`): the 60-second stall guard now fires instead of waiting forever.
- Plugin hooks/monitors/MCP headersHelper: `${user_config.*}` in shell-form commands is now rejected (shell-injection fix). Hooks: use exec form (`args` array) or `$CLAUDE_PLUGIN_OPTION_<KEY>`; monitors and headersHelper: read the value inside the script (config file or the server's `env` block).
- Plugin option values (`pluginConfigs`) are no longer read from project-level `.claude/settings.json`; only user, `--settings`, and managed settings are honored
- Fixed `/usage-credits` amount inputs silently stripping malformed values (e.g. a pasted timestamp) to digits; malformed amounts are now rejected with an error, and amounts over $1,000 require a typed confirmation
## 2.1.206
- Added directory path suggestions to `/cd`, matching `/add-dir` behavior
- Added a `/doctor` check that proposes trimming checked-in `CLAUDE.md` files by cutting content Claude could derive from the codebase
-`/commit-push-pr` now auto-allows `git push` to the repo's configured push remote (`remote.pushDefault`, or the sole remote when only one is configured) in addition to `origin`
- Gateway: `/login` now supports Anthropic-operated public gateway endpoints
-`EnterWorktree` now asks for confirmation before entering a git worktree outside the project's `.claude/worktrees/` directory
- Background agents now upgrade to a new version in the background right after a Claude Code update, instead of paying a slow stale-session upgrade when you attach
- Fixed an expired login failing every model with a misleading "There's an issue with the selected model" error instead of prompting to run `/login`
- Fixed `claude --resume` and `--continue` not responding to keyboard input on startup
- Fixed MCP servers configured via `--mcp-config` or `.mcp.json` ignoring a per-server `request_timeout_ms`, which caused long-running MCP tool calls to time out at the 60s default in fresh sessions
- Fixed `CLAUDE_CODE_EXTRA_BODY` being silently ignored by `claude agents` / `--bg` background workers; the shell-exported override now follows the dispatching session
- Fixed OAuth MCP servers requiring manual re-authentication after a single failed token refresh
- Fixed `--permission-prompt-tool` pointing at an MCP server crashing with "MCP tool not found" on cold start before the server finishes connecting
- Fixed `/model` picker rows printing a price for a different model than the row named, and stopped quoting first-party list prices on providers that don't bill them
- Fixed server-provided model rows being misplaced in the `/model` picker when an entitlement or allowlist restriction drops the row they were positioned against
- Fixed desktop sessions getting stuck showing "running" after a slash command was sent mid-turn
- Fixed keyboard input being ignored in the agents view when a setup prompt appeared before a bare `claude --resume` on Windows
- Fixed `claude rm` leaving the removed job in the daemon roster, causing the row to reappear in `claude agents`
- Fixed `/remote-control` showing "Unknown command" when logged out — it now explains how to sign in
- Fixed left arrow not stepping back out of a phase or agent in the workflow detail view
- Fixed `/status` listing the same broken-install warning twice
- Fixed false "disused plugin" tips and skewed disuse telemetry for LSP plugins
- Fixed `/doctor`'s update check to compare Homebrew installs against their cask's channel instead of the settings channel
- Fixed the fullscreen jump-to-bottom pill suggesting Ctrl+End on macOS, not showing rebound chords, and wrapping over the transcript
- Bedrock: fixed a multi-minute startup hang when using an `awsCredentialExport` helper on networks with restricted egress
- Improved `/code-review` findings quality on claude-opus-4-8 across all effort levels
- Improved agents view: status column now uses full terminal width instead of truncating at 64 characters
- Changed agents view: Ctrl+X now permanently removes a completed session, and sessions no longer render twice; deleted background jobs stay deleted
## 2.1.205
- Added an auto mode rule that blocks tampering with session transcript files
- Fixed `--json-schema` silently producing unstructured output when the schema was invalid, and schemas using the `format` keyword being rejected
- Fixed a message sent while Claude was working being silently lost when the turn ended at the `--max-turns` limit
- Fixed Windows worktree removal deleting files outside the worktree when an NTFS junction or directory symlink existed inside it
- Fixed background agents staying shown as "failed" or "completed" in the agent list after being resumed with `SendMessage`
- Fixed background jobs flipping from "needs input" back to "working" in the agent list when the agent's turn contained no readable text
- Fixed `claude attach` erroring when a background agent was mid-upgrade restart instead of waiting for it to come back
- Fixed session-to-PR linking missing a PR created in a Bash call whose output exceeded the 30K inline limit
- Fixed `claude mcp add-from-claude-desktop` getting stuck when a server name contains unsupported characters; invalid names are now reported and remaining servers still import
- Fixed a plugin LSP server that fails to initialize preventing a valid LSP server from another plugin handling the same file extension
- Fixed a Windows crash when the directory Claude was launched from is deleted, locked, or unmounted while a command is running
- Fixed a crash when a file watcher was closed while a directory scan was still in flight
- Fixed project verify skills being rewritten on every session instead of only when a documented command changed
- Fixed the agent view rendering one line too high and clipping its header when the job list slightly overflowed the screen
- Fixed background tasks in the web and mobile Remote Control panels showing stale "Running" status by forwarding full task state on every membership change
- Improved auto mode to ask before running `rm -rf` on a variable it can't resolve from context
- Auto-update binary downloads now stream to disk instead of buffering in memory, cutting the updater's peak memory usage by roughly 400 MB
- Background task notifications now explicitly state that no human input has occurred, preventing fabricated in-transcript approvals from being acted on
- Improved agent view: sessions that edit, merge, comment on, or push to an existing PR now link it in `claude agents`
- Improved agent view: rows now show a colored state word and a classifier-written headline instead of raw tool call text, and the peek opens with full status including the exact ask for blocked sessions
-`/doctor` is now a full setup checkup that can diagnose and fix issues; `/checkup` is its alias
- Reserved the "Claude Browser" MCP server name (alongside "Claude Preview") ahead of the Claude Desktop pane rename; user-configured MCP servers can no longer register under either name
- Fixed Cowork VM-mode local-agent sessions failing to start with "Not logged in · Please run /login" on CLI 2.1.203+
## 2.1.204
- Fixed hook events not streaming during SessionStart hooks in headless sessions, which could cause remote workers to be idle-reaped mid-hook
## 2.1.203
- Added a warning when your login is about to expire, so you can re-authenticate before background sessions are interrupted
- Added a grey ⏸ badge to the footer when in manual permission mode, making the active mode always visible
- Added the session's additional working directories to MCP `roots/list`, with `notifications/roots/list_changed` sent when the set changes
- Fixed opening or switching background agent sessions on macOS stalling for 15–20 seconds due to a false low-memory detection (regression in 2.1.196)
- Fixed background sessions becoming permanently unresponsive to attach, replies, and stop when the daemon's session token went stale — the session now recovers automatically
- Fixed returning to `claude agents` silently stopping running subagents and re-running the prompt from scratch — their work now carries over
- Fixed a memory and per-turn CPU regression in interactive sessions: the context-usage indicator no longer re-analyzes the entire transcript after every turn
- Fixed background agents inheriting a stale `PATH` from the daemon instead of the dispatching shell, causing missing tools on Windows
- Fixed background and agent-view sessions dropping a shell-exported `ANTHROPIC_BASE_URL`, which sent API keys to the default endpoint and failed with 401
- Fixed Bash failing with "argument list too long" in repos with many git worktrees
- Fixed worktree-isolated subagents sometimes running shell commands in the parent checkout instead of their own worktree
- Fixed worktree creation rejecting nested repositories in multi-repo workspaces, leaving background sessions unable to isolate and edit
- Fixed background agents crash-looping when their working directory was deleted, replaced by a file, or became an invalid path — they now fail once with a clear error
- Fixed a background daemon auto-upgrade failure silently killing all running background sessions
- Fixed `TaskStop` and `TaskOutput` failing to find background agents spawned by another agent — errors now list running agents by id and description
- Fixed the `claude agents` composer discarding your typed message when a slash command isn't available there
- Fixed the agent list crashing when opening a stopped session whose conversation was already open in another session
- Fixed background sessions showing "Needs input" in the agent list after the question was already answered
- Fixed background agent startup failures showing only "exit_with_message" instead of the actual error
- Fixed background sessions ignoring `effortLevel` changes in settings.json when forked through the daemon
- Fixed attached background sessions ignoring `CLAUDE_CODE_DISABLE_MOUSE` and `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` opt-outs
- Fixed `/exit` incorrectly warning about running background agents after all named agents had completed
- Fixed background sessions started from a non-git directory unable to edit files when a `WorktreeCreate` hook was configured
- Fixed the `@` directory picker in `claude agents` not showing registered git worktrees
- Fixed background task output on Windows being permanently replaced by an empty file after `/clear`
- Fixed content jumping when scrolling up through long transcript history
- Fixed the terminal flickering and jumping while typing in bash mode when a shell-history suggestion was shown
- Fixed literal `^[[I` / `^[[O` escape codes being printed when reattaching to a background session
- Fixed LSP-only plugins being incorrectly flagged for disuse when their language servers deliver diagnostics or answer navigation requests
- Improved responsiveness while long responses stream: live-preview updates no longer re-render the whole screen
- Improved subagent behavior: agents are now less likely to re-delegate their entire task to another subagent
- Reduced binary size by ~7 MB and startup memory by ~7 MB by loading a large bundled dependency lazily instead of inlining it
- Changed left arrow to no longer close the background tasks, diff, and workflow detail views — press Esc instead
- Changed the empty `claude agents` view to always show the organized sections (Needs input / Working / Completed) with descriptions
- Removed the startup "claude command missing or broken" warnings — they now appear in `/doctor` and `/status` instead
- Removed a redundant navigation hint from the `claude agents` footer
- [VSCode] Added a Settings toggle for "Enable Remote Control for all sessions"
## 2.1.202
- Added a "Dynamic workflow size" setting in `/config` for controlling how large Claude generally makes dynamic workflows (small/medium/large agent counts) — an advisory guideline, not an enforced cap
- Added `workflow.run_id` and `workflow.name` OpenTelemetry attributes to telemetry emitted by workflow-spawned agents, so a workflow run's activity can be reconstructed from OTel data
- Fixed a crash in the inline Ctrl+R history search when accepting or cancelling while the search was still scanning the history file
- Fixed `/rename` on background sessions being reverted when the job restarts, which broke addressing the session by its new name
- Fixed transient mTLS handshake failures when settings were re-applied during an in-place client certificate rotation
- Fixed commands sent from Remote Control (mobile/web) into an interactive session failing with "Unknown command"
- Fixed images and files sent from the Remote Control mobile or web app without a caption being silently dropped
- Fixed the sign-in URL printed by `claude auth login` and `claude mcp login --no-browser` not being reliably clickable when it wraps over SSH — it is now emitted as a single hyperlink
- Fixed opening a chat from `claude agents` sometimes failing with "currently running as a background agent" followed by a worker crash/respawn loop
- Fixed workflow scripts with unicode quote escapes in strings being corrupted before parsing; workflow parse errors now show the offending line instead of always blaming TypeScript
- Fixed voice dictation retrying in an unbounded loop when the microphone or audio recorder fails — repeated capture failures now pause voice input
- Fixed `/remote-control` sessions showing the wrong permission mode in the mobile and web apps
- Fixed resuming a session by name, or opening the resume picker, taking minutes and using a large amount of memory in repositories with many git worktrees
- Fixed installer and updater downloads failing immediately with "aborted" when a proxy or network drops the connection mid-download — transient connection drops now retry
- Fixed re-invoking an already-loaded skill appending a duplicate copy of its instructions to context
- Improved `/workflows` agent list layout: wider titles, a dedicated time column, shorter model names, and no per-row tool-call counts
- Improved MCP error messages: clearer error when a server config has `url` but no `type`, suggesting `"type": "http"` instead of the misleading "command: expected string"
- Changed `/review <pr>` back to a fast single-pass review; use `/code-review <level> <pr#>` for the multi-agent review at a chosen effort level
## 2.1.201
- Claude Sonnet 5 sessions no longer use the mid-conversation system role for harness reminders
## 2.1.200
- Changed `AskUserQuestion` dialogs to no longer auto-continue by default; opt into an idle timeout via `/config`
- Changed the "default" permission mode to "Manual" across the CLI, `--help`, VS Code, and JetBrains; `--permission-mode manual` and `"defaultMode": "manual"` are accepted alongside `default`
- Fixed a crash at startup when `disabledMcpServers` or `enabledMcpServers` in `.claude.json` is set to a non-array value
- Fixed background sessions silently stopping mid-turn after sleep/wake or when reopening a stalled session
- Fixed background sessions re-running a turn cancelled with Esc after a stall respawn
- Fixed background agents never starting again after a crash left a stale `daemon.lock` whose PID the OS reused
- Fixed background-agent daemon handover so a reinstalled older build can no longer take over the daemon; build recency is now judged by the version's embedded build timestamp
- Fixed background-agent roster issues: transient corruption permanently disabling orphan cleanup, older binaries not preserving fields written by newer versions, and socket auth tokens being stripped during daemon restarts
- Fixed subagents cut off by a rate limit before producing any text output returning an empty result instead of failing cleanly
- Fixed control bytes from background-agent output reaching the terminal in the agent view
- Fixed `claude agents --plugin-dir <dir>` not showing the plugin's agents and skills in the agent view when the flag is placed after `agents`
- Fixed project-scoped plugins not loading correctly from git worktrees of the same repository
- Fixed `/mcp` server list not tracking focus for screen readers and magnifiers
- Fixed voice dictation showing a misleading "Voice connection failed" message when a recording captures no audio
- Fixed rendering flicker under tmux 3.4+ by enabling synchronized terminal output
- Improved screen-reader output: decorative glyphs are now hidden, transcript symbols read as short labels, and nested tables read as `Header: value.` lines
- Improved the install script to explain when installation is killed by the system running out of memory
## 2.1.199
- Stacked slash-skill invocations like `/skill-a /skill-b do XYZ` now load all leading skills (up to 5), not just the first
- Fixed SSL certificate errors (TLS-inspecting proxies, missing `NODE_EXTRA_CA_CERTS`, expired certs) burning retries before showing actionable guidance — they now fail immediately with the fix hint
- Fixed streaming responses being discarded when the API emits a mid-stream overloaded/server error after partial output — the partial is now kept with an incomplete-response notice
- Fixed subagents cut off by a rate limit or server error silently failing instead of returning their partial work to the parent
- Fixed subagents reporting API errors (e.g. usage limit reached) as successful results — the error is now reported to the parent agent
- Fixed the background-agent daemon on Linux killing itself and every running agent every ~50 seconds after an unclean shutdown left a corrupted worker record
- Fixed background agents failing to cold-start over SSH on macOS with "Could not switch to audit session" (regression in 2.1.196)
- Fixed `claude stop` being silently undone when it raced a background-agent respawn — the respawn now honors the stop
- Fixed background job progress indicators stalling for minutes while the job ran long commands
- Fixed background sessions on memory-starved machines showing a generic error — they now indicate low memory and suggest freeing resources
- Fixed remote sessions briefly flapping between Working and Idle in the agent view when a background agent completes
- Fixed idle subagents vanishing from the agent panel while other subagents were still working; surplus idle agents now collapse into an expandable summary row
- Fixed typing `/model` or `/fast` while viewing a subagent silently opening the lead's model picker — a notice now explains the command applies to the lead
- Fixed `SessionStart`, `Setup`, and `SubagentStart` hooks silently hiding stderr when exiting with code 2 — the error is now shown in the transcript
- Fixed `claude --dangerously-skip-permissions daemon <subcommand>` being treated as a chat prompt instead of running the subcommand
- Fixed `SendMessage` silently misrouting when a re-spawned agent reuses a previous agent's name — the tool now detects the mismatch and asks the caller to retarget
- Fixed opening or resuming a session with no new messages needlessly growing the transcript file
- Fixed backgrounding a session with `←` or `/background` dropping its `/color` from the agent view row
- Fixed resetting a corrupted config file from the startup recovery dialog destroying it unrecoverably — it now backs up the file first
- Fixed Claude in Chrome repeatedly opening the reconnect page when sessions run from different builds or config directories
- Fixed plan mode not prompting for state-changing browser tool calls; read-only `browser_batch` calls are now correctly auto-allowed
- Transient server rate-limit errors (429s unrelated to your usage limit) are now retried automatically with backoff for subscribers instead of failing the turn
-`CLAUDE_CODE_RETRY_WATCHDOG` now raises the default retry count for non-capacity transient errors to 300 and lifts the cap of 15 on `CLAUDE_CODE_MAX_RETRIES`
-`claude agents` session rows now show pull-request links as bare `#N` without the redundant "PR" label
## 2.1.198
- Subagents now run in the background by default, so Claude keeps working while they run and is notified when they finish (previously a gradual rollout)
- Claude in Chrome is now generally available
- Added background agent notifications in `claude agents` — sessions that need input or finish now fire the `Notification` hook (`agent_needs_input` / `agent_completed`)
- Added `/dataviz` skill for chart and dashboard design guidance with a runnable color-palette validator
- Gateway: added Claude Platform on AWS (anthropicAws) as an upstream provider; model-not-found responses now advance the failover chain
- Background agents launched from `claude agents` now commit, push, and open a draft PR when they finish code work in a worktree, instead of stopping to ask
- The built-in Explore agent now inherits the main session's model (capped at opus) instead of running on haiku
- Subagents and context compaction now inherit the session's extended thinking configuration, improving output quality on delegated tasks
- Fixed brief network drops mid-response aborting the turn — transient errors like ECONNRESET now retry with backoff instead of failing
- Fixed excessive background classifier requests when sandboxed processes repeatedly accessed the same network host
- Fixed background tasks in web, desktop, and VS Code task panels getting stuck on "Running" after they finish or after resuming a session
- Fixed agent teams: a teammate that dies on an API error now reports "failed" to the lead, and messaging a stuck teammate wakes it to retry immediately
- Fixed the `/diff` panel not refreshing when you switch branches or commit outside the session
- Fixed markdown tables overflowing and wrapping their right border when rendered in fullscreen mode
- Fixed Claude Platform on AWS and Mantle sessions dead-ending with "Please run /login" when the STS token expires — `awsAuthRefresh` now runs automatically
- Fixed "no route to host" for local-network hosts in macOS background agent sessions by declaring Local Network entitlements
- Fixed `/desktop` failing with "Cannot determine working directory" after entering and exiting a worktree
- Fixed background agents repeatedly showing "Reconnecting…" every ~52 seconds on macOS while the agents view was open
- Fixed pressing `←` inside `claude attach <id>` exiting to the shell instead of opening the agent view
- Fixed `claude --bg` silently creating an unattachable session when combined with `--print`/`-p`; the conflicting flags are now rejected up front
- Fixed the workflow progress view dropping the earliest agents from the list while the phase counter stayed correct in SDK and desktop-app sessions
- Fixed `.claude/rules/` conditional rules not loading when the target file is reached via a symlinked path
- Fixed Cmd+click not opening URLs in fullscreen mode in Warp on macOS
- Fixed double-click word selection in fullscreen mode to select the entire URL including the scheme
- Fixed plan mode not auto-allowing read-only tool calls when a session starts in plan mode
- Fixed `/branch` deriving its default fork name from the compaction summary instead of the first real prompt
- Improved focus mode: subagents launched in a turn now appear in its activity summary, and completed background notifications fold into a single count
- Improved syntax highlighting accuracy in code blocks, diffs, and file previews by upgrading to highlight.js 11
- Keyboard shortcut hints now show opt/cmd instead of alt/super when connected from a Mac over SSH
- Improved API retry UX: the error reason is now shown after the second attempt, and a status page link replaces the spinner tip when the API is overloaded
-`/login` now opens the sign-in dialog from the `claude agents` view instead of saying it isn't available
- Subagents now treat messages from the agent that launched them as normal task direction; an agent's message is still never treated as the user's approval
- Removed the `/agents` wizard; ask Claude to create or manage subagents, or edit `.claude/agents/` directly
## 2.1.197
- Introducing Claude Sonnet 5: now the default model in Claude Code, with a native 1M-token context window and promotional pricing of $2/$10 per Mtok through August 31. Update to version 2.1.197 for access. https://www.anthropic.com/news/claude-sonnet-5
## 2.1.196
- Added support for organization default models — admins set it in the org console; it shows as "Org default" (or "Role default") in `/model` when you haven't picked one yourself
- Added readable default names for sessions at start, making them easier to identify and message
- Added clickable file attachments in chat — Cmd/Ctrl-click reveals the file in Finder/Explorer
- Security: `claude mcp list`/`get` no longer spawn `.mcp.json` servers that a repo self-approved via a committed `.claude/settings.json`; untrusted workspaces show `⏸ Pending approval`
- Fixed waking a background job permanently deleting its conversation and re-running the original prompt when the transcript probe misread a real transcript; the file is now set aside, never deleted
- Fixed the rate-limit warning flickering off and rate-limit telemetry being over-counted when multiple parallel requests were in flight at the moment a usage limit was hit
- Fixed duplicate recap lines after a background session's turn: a schema-rejected StructuredOutput attempt no longer renders alongside its retry
- Fixed PowerShell `git diff`/`git grep`, `egrep`/`fgrep`, and quoted search patterns containing `|` being reported as failures when they exit 1, matching Bash behavior
- Fixed multiple `claude agents` side panel issues: keyboard focus getting stuck when opening an agent, background jobs losing their subagent types on every open, and sessions showing incorrect status while actively running
- Fixed `claude agents --dangerously-skip-permissions` silently falling back to auto mode instead of showing the bypass disclaimer and applying bypass mode to spawned agents
- Fixed mid-turn crash recovery for Remote sessions — sessions interrupted by a server restart now auto-resume on the next worker
- Fixed sessions moved with `/cd` reappearing in the old directory's resume list after a non-graceful exit when the old path contained special characters
- Fixed `claude plugin validate` skipping local plugins whose source is "." and stopping after the first error class
- Fixed Esc Esc at an idle prompt not opening the rewind menu (regression); use Ctrl+C or Ctrl+X Ctrl+K to stop background agents
- Fixed MCP OAuth requesting the authorization server's full `scopes_supported` catalog when no scope is specified, causing `invalid_scope` failures on GitLab self-hosted and other enterprise IdPs
- Fixed `/context` showing 0 tokens for all tool groups on Bedrock
- Fixed `/deep-research` misreporting verifier failures as "all claims refuted" instead of `unverified`
- Fixed plugin dependency version pins not being honored when the marketplace was added as a local folder path backed by a git repo
- Fixed `claude agents` session status: completed rows no longer flip between "Done" and "Needs your input", stalled agents are now labeled "Needs attention", and results that mention a PR show a clickable link
- Fixed voice dictation swallowing spaces and spuriously starting a recording during very fast typing when voice mode is enabled
- Improved background session reliability: long-running commands and workflows now survive the session's process being stopped, restarted, or updated — including on Windows, where background shells are handed off instead of being killed
- Improved background agents: workers killed by a daemon restart are now automatically resumed from where they left off the next time the agents view opens
- Improved `/code-review` workflow: merged five cleanup finders into one, cutting token usage by roughly 25%
- Reduced per-frame rendering work in the terminal UI by skipping no-op subtree walks during streaming
- The streaming idle watchdog is now on by default for all providers — it aborts and retries when a response stream produces no events for 5 minutes. Set `CLAUDE_ENABLE_STREAM_WATCHDOG=0` to disable.
- Remote Control is now disabled when `ANTHROPIC_BASE_URL` points at a non-Anthropic host, matching the existing behavior under `CLAUDE_CODE_USE_BEDROCK`/`_VERTEX`/`_FOUNDRY`
- Changed opening the agents view from a foreground session to require a single `←` press instead of two, matching the behavior in background sessions
## 2.1.195
- Added `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` to disable mouse click/drag/hover in fullscreen mode while keeping wheel scroll
@@ -3162,7 +3660,7 @@
## 2.1.15
- Added deprecation notification for npm installations - run `claude install` or see https://docs.anthropic.com/en/docs/claude-code/getting-started for more options
- Added deprecation notification for npm installations - run `claude install` or see https://code.claude.com/docs/en/setup for more options
- Improved UI rendering performance with React Compiler
- Fixed the "Context left until auto-compact" warning not disappearing after running `/compact`
- Fixed MCP stdio server timeout not killing child process, which could cause UI freezes
<contenttype="html"><p>• Fixed single-segment dir/ allow rules like Edit(src/) auto-approving writes to nested dir/ directories anywhere in the tree instead of only &lt;cwd&gt;/dir</p>
<p>• Fixed a permission-check bypass affecting commands run in Windows PowerShell 5.1 sessions</p>
<p>• Fixed Bash permission checks to fail closed on file-descriptor redirect forms that bash parses differently than the permission analyzer</p>
<p>• Fixed Bash permission checks misjudging very long commands — commands over 10,000 characters now always prompt instead of running automatically</p>
<p>• Fixed Bash permission checks treating zsh variable subscripts and modifiers in [[ ]] comparisons as inert text — these commands now prompt for approval</p>
<p>• Fixed Bash permission checks to no longer auto-approve certain help and man commands that could run unsafe options, command substitutions, or backslash paths</p>
<p>• Fixed permission prompts on remote sessions that could proceed before the local confirmation dialog</p>
<p>• Added the EndConversation tool: Claude can end sessions with highly abusive users or jailbreak attempts, as on claude.ai since 2025 — see https://www.anthropic.com/research/end-subset-conversations</p>
<p>• Added a periodic progress heartbeat for long-running tool calls that previously went silent</p>
<p>• Added an ISO modified timestamp to memory file frontmatter</p>
<p>• Added message.uuid, client_request_id, and tool_source attributes to OpenTelemetry log events for message-level correlation and tool provenance</p>
<p>• Added CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH to configure the 60 KB truncation limit on OpenTelemetry content attributes</p>
<p>• Added reasoning effort to the subagentStatusLine payload, so custom agent rows can render model and effort</p>
<p>• Added permission prompts for docker commands (including the Podman docker shim) carrying daemon-redirect flags (--url, --connection, --identity, and Podman's remote mode) that previously ran without one</p>
<p>• Fixed a crash when a GrowthBook feature evaluates to null, and a bug where a malformed flag payload could wipe the cached feature flags</p>
<p>• Fixed Bash tool killing the Claude session when a pkill -f pattern accidentally matched the CLI's own process (Linux)</p>
<p>• Fixed unbounded memory growth when --settings points at a device file or multi-GB file; oversized (&gt;2 MiB) settings files now fail at startup with a clear error</p>
<p>• Fixed streaming turns failing with "Socket is closed" behind corporate proxies on Windows</p>
<p>• Fixed stream-json output truncation at exit for slow-reading SDK/pipeline consumers; the exit drain now scales with queued bytes instead of a flat 2s cap</p>
<p>• Fixed scheduled tasks refusing their own configured prompt as untrusted input — the fired prompt is now delivered as the session's assigned task</p>
<p>• Fixed PowerShell tool commands hanging until timeout when a child process waited on standard input (Windows)</p>
<p>• Fixed Python scripts under the PowerShell tool crashing with UnicodeDecodeError when reading non-UTF-8 data from standard input (Windows)</p>
<p>• Fixed Python scripts run via the PowerShell tool crashing with UnicodeEncodeError on non-ASCII output, and PowerShell 7 error messages containing raw ANSI escape sequences (Windows)</p>
<p>• Fixed the PowerShell tool reporting where.exe, fc.exe, and diff.exe as errors when they return a valid negative answer (Windows)</p>
<p>• Fixed &gt; and &gt;&gt; under the PowerShell tool on Windows PowerShell 5.1 writing UTF-16LE files that other tools couldn't read as UTF-8</p>
<p>• Fixed a displaced background daemon deleting its successor's control socket on shutdown, which made the next client kill the healthy replacement daemon</p>
<p>• Fixed background sessions parked with ← or /background and left idle keeping the background daemon and a worker process alive indefinitely</p>
<p>• Fixed completed background sessions being impossible to remove via claude rm or the agent view once the background service had gone idle</p>
<p>• Fixed background sessions dispatched from a non-git folder being impossible to delete from the agents view</p>
<p>• Fixed reopening a stopped background session failing to restore its saved conversation when an unreadable folder exists in the session store</p>
<p>• Fixed the Remote Control "session ready" push notification firing for sessions where Remote Control was not explicitly enabled</p>
<p>• Fixed /install-github-app and the /mcp settings menu being blocked in agent-view sessions — they're now refused only in background sessions with no terminal attached</p>
<p>• Fixed plugins enabled via the --settings CLI flag not loading (regression since v2.1.181)</p>
<p>• Fixed feature flags going stale in long-running sessions after the OAuth token rotates</p>
<p>• Fixed /ultrareview refusing to run in repos with no merge base — it now offers to review all tracked files</p>
<p>• Fixed claude update and claude doctor hanging silently, and the /status System diagnostics section going blank, when a shell-config path is a directory</p>
<p>• Fixed memory frontmatter values being silently truncated at an inline # when memory files are saved</p>
<p>• Fixed session cost and token telemetry double-counting on streams that emit multiple cumulative message_delta frames</p>
<p>• Fixed a spurious "check your network" warning that appeared while the advisor was thinking</p>
<p>• Fixed hooks with exit code 2 not blocking as documented when the hook's stdout JSON fails schema validation</p>
<p>• Fixed OTel log events emitted outside the turn's async context missing the interaction span's trace context</p>
<p>• Fixed MCP transient errors during prompts/resources refresh clearing the server's slash commands and resources</p>
<p>• Improved the claude rc workspace-trust error in the home directory to say trust there is never saved and to suggest running from a project directory</p>
<p>• Changed single-segment dir/ hook if: conditions to match only &lt;cwd&gt;/dir; write /dir/** for any-depth matching. deny/ask permission rules keep their any-depth match.</p>
<p>• Changed file commands using -m/--magic-file or -f/--files-from to require permission instead of being auto-allowed as read-only</p>
<p>• Changed keep-alive connection pooling to disable after a stale-connection error, so retries open a fresh socket</p>
<p>• Changed SessionStart hooks to report source "fork" when a session begins as a fork instead of "resume"</p></content>
<contenttype="html"><p>• /fork now copies your conversation into a new background session (its own row in claude agents) while you keep working; the in-session subagent it used to launch is now /subtask</p>
<p>• Added claude auto-mode reset to restore the default auto-mode configuration, with a confirmation prompt (pass --yes to skip)</p>
<p>• Added a session-wide limit on WebSearch tool calls (default 200, tunable via CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION) to stop runaway search loops</p>
<p>• Added a per-session cap on subagent spawns (default 200, override with CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION) to stop runaway delegation loops; /clear resets the budget</p>
<p>• MCP tool calls running longer than 2 minutes now move to the background automatically so the session stays usable; configure the threshold or disable with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS</p>
<p>• Typing /resume in the agent view now opens a picker of past sessions — including sessions deleted from the list — and resumes your pick as a background session</p>
<p>• Fixed plan mode auto-running file-modifying Bash commands (e.g. touch, rm) without a permission prompt or SDK canUseTool callback</p>
<p>• Fixed worktree creation following a repository-committed symlink at .claude/worktrees, which could create files outside the repository</p>
<p>• Fixed a continue:false hook's halt being dropped when the tool fails or completes mid-stream, and hook infrastructure errors being misreported as user rejections</p>
<p>• Fixed SIGTERM during a running Bash tool orphaning the command's process tree in print/SDK mode; the CLI now aborts the turn, kills the tree, and exits 143</p>
<p>• Fixed /background and claude --bg failing with "EUNKNOWN: unknown error, uv_spawn" on Windows when Group Policy blocks PowerShell 5.1; the daemon now prefers PowerShell 7</p>
<p>• Fixed shell mode (!) not executing commands containing file paths while the path autocomplete popup was open</p>
<p>• Fixed auto-mode denial notifications rendering broken characters when a long denial reason was truncated mid-emoji</p>
<p>• Fixed Ctrl+J not inserting a newline in the agent view dispatch input on terminals with extended key reporting, and surfaced the newline shortcut in the ? help overlay</p>
<p>• Fixed /ultrareview rejecting PR references like #123, PR 123, and pasted PR URLs; error hints now name the command you actually typed</p>
<p>• Fixed /ultrareview &lt;branch&gt; not fetching the branch from origin when it exists remotely; it now suggests the closest branch name on typos</p>
<p>• Fixed /ultrareview skipping the billing confirmation in a new conversation after /clear</p>
<p>• Fixed /ultrareview's "not a git repository" error on Claude Desktop now suggesting the project's repository folder instead of terminal commands</p>
<p>• Fixed hosted (host-managed) sessions failing at startup when repository settings configured mTLS certs, extra CA bundles, or OAuth scopes; these transport settings are now ignored with a warning</p>
<p>• Fixed a spurious "File has not been read yet" error when editing a file that had been read with offset/limit before resuming a session</p>
<p>• Fixed ExitWorktree failing with "no active EnterWorktree session" after resuming a session with --continue/--resume in print/SDK mode</p>
<p>• Fixed the workflow agent grid staying empty for Remote Control clients that join a session mid-run</p>
<p>• Fixed streaming-mode control requests being marked complete before their handler finished, which could lose the request on session restart</p>
<p>• Fixed background sessions created with /fork losing their live-parent protection after a state write failure</p>
<p>• Fixed reopening a stopped background session from the agent view failing silently — it now resumes the session, or shows why it can't and lets you force a restart</p>
<p>• Fixed agent teams: a stopping teammate could send the leader duplicate idle notifications when team initialization re-ran within a session</p>
<p>• Fixed the plan-approval dialog footer splitting "ctrl+g to edit in &lt;editor&gt;" apart when the file path is long</p>
<p>• Fixed the welcome banner keeping its old panel widths after a combined width+height terminal resize in fullscreen mode</p>
<p>• Fixed diff previews losing their line numbers and +/- markers in narrow layouts</p>
<p>• Fixed @-mentions attaching nothing after a partial file read, plugin uninstall targeting the wrong marketplace, and false "Command timed out" on exit code 143</p>
<p>• Fixed OpenTelemetry HTTP exports being rejected with 411/400 by Azure Monitor and other endpoints that don't accept chunked transfer encoding</p>
<p>• Fixed OTLP event log records missing trace_id/span_id when TRACEPARENT is set in SDK/headless mode</p>
<p>• Fixed conversations with many images incorrectly failing with "Request too large" errors, and improved the error message to explain the actual cause</p>
<p>• Fixed web search and web fetch returning "API Error" text as search results or page content when the API was overloaded</p>
<p>• Improved web search and web fetch reliability by retrying 529 errors and rate-limited requests with bounded backoff</p>
<p>• Improved prompt caching: the mid-conversation system block now works behind LLM gateways and custom base URLs (Bedrock, Vertex, 1P)</p>
<p>• Improved background agent attach: cold-attaching now instantly shows the formatted transcript while the session boots, instead of a blank wait</p>
<p>• Reduced token usage in inter-agent messaging: SendMessage bodies are no longer duplicated into replayed history and tool results</p>
<p>• Changed /fork to name the copy after your prompt when the session has no title, so the row is recognizable in the agent view</p>
<p>• Changed bare /btw to reopen the side-question panel on your most recent exchange so you can browse earlier answers</p>
<p>• Changed the ← footer hint to pulse N done for a moment when a background agent finishes while nothing needs your input</p>
<p>• Deprecated the Task tool's mode parameter (now ignored); subagents inherit the parent session's permission mode by default</p>
<p>• Changed Enterprise forceLoginMethod to be enforced for VS Code extension, SDK, setup-token, and install-github-app logins, not just the terminal</p>
<p>• Changed session transcripts to record the reasoning effort level on each assistant message</p>
<p>• Changed headless/SDK sessions to apply a set_model control request mid-turn; the next model round-trip uses the new model instead of waiting for the next turn</p>
<p>• Changed agent view / claude agents --json: sessions waiting on a sandbox, MCP-input, or managed-settings prompt now show as "Needs input" instead of "Working"</p>
<p>• Updated the auth status panel title from "Cloud authentication" to "Authentication"</p>
<p>• Corrected an earlier release note (2.1.200): tmux through the 3.6 series lacks synchronized output; newer tmux with support is detected automatically</p></content>
<contenttype="html"><p>• Added --forward-subagent-text flag and CLAUDE_CODE_FORWARD_SUBAGENT_TEXT environment variable to include subagent text and thinking in stream-json output</p>
<p>• Fixed permission previews relayed to chat channels not neutralizing bidirectional-override, zero-width, and look-alike quote characters, so tool inputs cannot visually alter the approval message</p>
<p>• Fixed auto mode overriding a PreToolUse hook's ask decision for unsandboxed Bash — a hook ask now floors the decision at a prompt</p>
<p>• Fixed parallel Claude Code sessions all logging out simultaneously after wake-from-sleep when many sessions share one credential store</p>
<p>• Fixed plugin MCP servers not reconnecting after an idle web session woke, leaving MCP calls failing until the next message</p>
<p>• Fixed Claude Code on Vertex and Bedrock attempting the default Opus model at startup and printing a spurious fallback notice when a model is explicitly configured</p>
<p>• Fixed subagents spawned with an explicit model override reverting to the parent's model when resumed or sent a follow-up message</p>
<p>• Fixed nested .claude/rules/*.md files loading even when setting sources exclude project settings</p>
<p>• Fixed file upload validation: filenames ending in a DOS device suffix (.prn) or trailing dot are now accepted, and files with multiple hard links are refused</p>
<p>• Fixed file uploads to Claude in Chrome from remote and CLI sessions</p>
<p>• Fixed edits that leave the input as "?" being silently swallowed and toggling the shortcuts panel</p>
<p>• Fixed a startup hang when the Claude in Chrome extension is enabled but Chrome is not running</p>
<p>• Fixed a 300ms delay revealing async content (Settings tabs, Stats, diff views, and other loading states)</p>
<p>• Fixed reopening a just-stopped background session from the agents view starting a blank conversation under the same session id</p>
<p>• Fixed /loop hiding the session from /resume after a single use</p>
<p>• Fixed screen reader users losing the audible terminal bell after /terminal-setup or onboarding terminal setup</p>
<p>• Fixed background jobs on LLM gateway auth (ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL) coming back "Not logged in" after the daemon respawns them</p>
<p>• Fixed claude agents jobs becoming permanently undeletable when git no longer recognizes their worktree — the row now shows why the delete was refused instead of silently reappearing</p>
<p>• Fixed /clear not resetting the session cost counter — the statusline's cost now starts at $0 after /clear</p>
<p>• Fixed Claude in Chrome setup pages failing to open in the browser on Windows</p>
<p>• Fixed headless print-mode sessions on Windows crashing or silently exiting when stdin is unreadable</p>
<p>• Fixed background session titles in the agents view showing the naming model's refusal text when the prompt contains a link</p>
<p>• Fixed background agents killed by the user auto-respawning, and revived agents re-running stale prompts from old sessions</p>
<p>• Fixed routines with no schedule reporting a next run time in the year 1</p>
<p>• Hardened synced skill/plugin directory naming on Windows and kept CCR web fetch/search proxies working after /clear</p>
<p>• Improved terminal layout and rendering performance</p>
<p>• Improved background agent result reporting — Claude now reports the status of still-running agents and waits for the real completion instead of fabricating results</p>
<p>• Improved the memory index over-limit warning to measure only loaded content, excluding frontmatter and HTML comments</p>
<p>• Updated integer environment variables (timeouts, token budgets, retry counts) to accept scientific notation and digit-separator spellings like 1e6 and 64_000</p>
<p>• Updated documentation links to the current docs sites</p>
<p>• Changed "always allow" permission rules to save at the repository root, so approvals granted in a git worktree persist across sessions and worktrees</p>
<p>• Changed /usage-credits to ask for confirmation before sending a request to organization admins</p>
<p>• Changed Vim mode s and S (substitute char/line) to work in NORMAL mode, matching vim behavior</p>
<p>• [VSCode] Updated the Remote Control banner to describe what it does</p>
<p>• Claude in Chrome: hardened file-upload path validation</p>
<p>• Claude in Chrome: save_to_disk on screenshot actions now writes the image to disk and returns the path; previously it did nothing</p>
<p>• Fixed a prompt-caching regression on Bedrock, Vertex, Mantle, and Foundry that billed the trailing system context block as fresh input tokens on every request.</p></content>
<contenttype="html"><p>• Added a live elapsed-time counter to the collapsed tool summary line so long-running tool calls visibly tick instead of looking stuck</p>
<p>• Added a startup warning for Write(path), NotebookEdit(path), and Glob(path) permission rules — use Edit(path) or Read(path) instead</p>
<p>• Fixed isolation: 'worktree' subagents being able to run git-mutating commands against the main repo checkout instead of their own isolated worktree</p>
<p>• Fixed the ultracode keyword opt-in firing on non-human-originated input such as webhook payloads and relayed PR comments</p>
<p>• Fixed a rendered text fragment leaking into crash telemetry when a UI component returned content outside a styled text element</p>
<p>• Fixed paste markers leaking into external editors opened from Claude Code, which could appear as stray È/É characters around pasted text</p>
<p>• Fixed claude attach sometimes failing with "job not found" or "agent is still starting" errors during session transitions — attach now waits for the daemon to settle, and terminal resizes during a slow attach are applied once it completes</p>
<p>• Fixed a session crash when a tool's result renderer returned a numeric bigint value or plain text instead of a UI element</p>
<p>• Fixed a hook callback timeout being misreported to the model as a user rejection, which made unattended sessions stop and wait</p>
<p>• Fixed Claude assuming a cd took effect after its command was moved to the background; the tool result now states the working directory is unchanged</p>
<p>• Fixed plugin-provided MCP servers being torn down when MCP servers are re-synced mid-session</p>
<p>• Fixed plan approvals without edits being labeled "(edited by user)" and overwriting the plan file with a stale snapshot</p>
<p>• Fixed /doctor skipping its auto-mode-default proposal on Bedrock, Vertex, and Foundry, where auto mode no longer needs an opt-in</p>
<p>• Fixed Grep content mode claiming "No matches found" when paginating past the end of results</p>
<p>• Fixed unmatched $1/$2 positional placeholders in skills and commands being silently stripped; they are now preserved verbatim</p>
<p>• Fixed plugin cache writes leaving temp files behind on failure and failing on locked-file renames on Windows and network filesystems</p>
<p>• Fixed background workers crash-looping when a client resets its connection to the background service</p>
<p>• Fixed claude agents --effort ultracode not reaching dispatched sessions; the value was silently dropped</p>
<p>• Fixed pressing ← to open the agents view dropping the task tracker when returning to the session</p>
<p>• Fixed the agents dashboard retaining pasted images from abandoned reply drafts after their session was deleted</p>
<p>• Fixed killed background sessions leaving a permanent git worktree lock behind; the periodic sweep now releases locks whose owning process is gone</p>
<p>• Fixed SDK MCP servers registered via an initialize control request waiting until the next turn to start connecting</p>
<p>• Fixed returning to the agents view from a session leaving overlapping ghost frames with CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1</p>
<p>• Fixed late-appearing .claude/* symlinks not being reconciled into the sandbox deny-write list</p>
<p>• Hardened the Agent tool against indirect prompt injection via content a subagent read</p>
<p>• Improved the Bash/PowerShell tool message when a command hits its timeout and is auto-backgrounded, so the model can distinguish a hang from an explicit background request</p>
<p>• Improved auto mode: the permission classifier now defaults to Sonnet 5 for external sessions, validated on the session's first request and pinned for the session</p>
<p>• Improved the bundled dataviz skill's chart color validation with perceptual OKLab color difference and recalibrated color-blindness thresholds</p>
<p>• Memory writes that leave a MEMORY.md index over its read limit now produce an explicit error instead of silent truncation</p>
<p>• Screen reader mode now announces permission mode changes aloud when cycling modes with Shift+Tab</p>
<p>• The agents footer hint now shows how many background agents are waiting on your input, with a brief color emphasis when the count changes</p>
<p>• Agent view: the session you pressed ← from stays visibly marked even after mouse hover or arrow keys move the selection</p>
<p>• Fable temporarily shows as unavailable in the advisor picker while a server-side issue causing Fable advisor failures is fixed</p></content>
<contenttype="html"><p>• Fixed /model and other dialogs being blocked in claude agents background sessions (reverts an overly broad guard)</p></content>
<contenttype="html"><p>• Added screen reader mode: opt-in plain-text rendering for screen reader users. Run claude --ax-screen-reader, set CLAUDE_AX_SCREEN_READER=1, or add "axScreenReader": true to settings.</p>
<p>• Added vimInsertModeRemaps setting: map two-key insert-mode sequences like jj to Escape in vim mode</p>
<p>• Added CLAUDE_CODE_PROCESS_WRAPPER: agent view and the background service now honor a corporate launcher by running every Claude Code self-spawn through a required wrapper executable</p>
<p>• Added mouse-click support for multi-select menus and "Other" input rows in fullscreen mode</p>
<p>• Fixed fast mode staying off after switching back to a model that supports it — it now restores automatically when enabled in settings</p>
<p>• Fixed replies typed to a background agent being lost when delivery fails — the text is now saved and delivered when the session restarts</p>
<p>• Fixed background-session attach failing permanently ("Couldn't start the background daemon") after an update replaced the binary a running claude agents process was launched from</p>
<p>• Fixed the context window (and auto-compact indicator) briefly resetting to 200k after the CLI auto-updates, causing a false "100% context used" when resuming long-context sessions</p>
<p>• Fixed supervised and background sessions crashing when a server closed an HTTP/2 connection with a GOAWAY while requests were in flight</p>
<p>• Fixed truncated stream-json/JSON output and missing result message when piping large responses from claude -p</p>
<p>• Fixed CLAUDE_CODE_MAX_OUTPUT_TOKENS and similar env vars silently using the mantissa of scientific-notation values (1e6 became 1)</p>
<p>• Fixed very large markdown tables stalling rendering or using excessive memory; tables over 200 rows show the first 200 with a "… N more rows" notice</p>
<p>• Fixed the Edit tool failing on files modified after reading when the target text still matches uniquely</p>
<p>• Fixed Read reporting empty files as "shorter than offset", Grep silently returning "No files found" for invalid regex patterns, Grep count mode under-reporting totals when paginated, and Glob crashing with an unclear error when the pattern, path, or working directory contained a null byte</p>
<p>• Fixed apiKeyHelper script failures being hidden behind a generic 401 after ~10 silent retries; the script's own error is now shown within 3 attempts</p>
<p>• Fixed Bedrock streaming requests failing with a misleading "Truncated event message received" when a gateway transforms the response — the error now names the content-type and points at the proxy</p>
<p>• Fixed /upgrade showing a login flow instead of the upgrade URL when the browser fails to open</p>
<p>• Fixed stream-json input killing the session on blank CRLF or whitespace-only lines from Windows-style SDK hosts</p>
<p>• Fixed headless stream-json sessions hanging permanently when a control_request carried a non-string set_model payload; the CLI now answers with an error response</p>
<p>• Fixed repeated "No completion record was found" notices on session resume — orphaned background tasks now collapse into a single summary</p>
<p>• Fixed Remote Control clients attaching to a terminal-hosted session not seeing background agents and workflow progress until a task started or stopped</p>
<p>• Fixed the Agent tool launching with no tools when a subagent's tools list resolves to nothing — it now returns a clear error naming the unrecognized entries</p>
<p>• Fixed /usage showing stale cached bars over fresher data, and /mcp not reclassifying placeholder servers after config edits</p>
<p>• Fixed "Change directory" in SDK hosts (e.g. Claude Desktop) failing with "A turn is in progress" on idle sessions that have a running background task</p>
<p>• Fixed the workflow save dialog showing ~/.claude/workflows/ instead of the CLAUDE_CONFIG_DIR location for user-scope saves</p>
<p>• Fixed /release-notes adding the viewed notes to the model's context — "Show all" previously injected the entire changelog into every subsequent request</p>
<p>• Fixed a memory leak in the agent view where pasted images were retained for the screen's lifetime after sending peek replies</p>
<p>• Fixed SDK sessions losing agents defined via the initialize request when a plugin refresh ran before the client attached</p>
<p>• Fixed several memory leaks in long sessions: MCP stdio server stderr accumulating up to 64 MB per server, LSP documents staying open indefinitely (now LRU with 50-doc cap), async hook output retained after backgrounding, and unbounded growth in headless/SDK sessions from large tool-result payloads</p>
<p>• Fixed a memory blowup when reading files with extremely long single lines using offset/limit — the read now returns a clean error instead of loading the whole line</p>
<p>• Fixed multi-second per-turn slowdowns in sessions with many permission deny/ask rules — rule matchers are now compiled once and cached</p>
<p>• Improved input responsiveness while agent task lists update — task updates no longer re-render the entire UI</p>
<p>• Reduced per-tool-call CPU overhead in print/SDK sessions with many MCP tools by caching tool-pool assembly (up to 7x faster tool rounds at high tool counts)</p>
<p>• Reduced memory usage by bounding the file edit read cache to 16 MB instead of pinning up to 1,000 full files</p>
<p>• Reduced session transcript size (up to 79x in edit-heavy sessions) and bounded checkpoint disk usage by pruning superseded file-history backups</p>
<p>• Reduced memory usage when resuming sessions with background agents or forks spawned from large conversations</p>
<p>• Completed background agents now stay listed in /tasks until cleanup instead of vanishing the moment they finish</p>
<p>• Attaching to a stopped background agent now shows its transcript immediately while the session warms up, instead of a blank "Session is starting" screen</p>
<p>• Background sessions: an older daemon no longer silently restarts workers spawned by a newer version onto the older binary</p>
<p>• Agent view: Ctrl+X now deletes renamed-branch worktrees, never destroys unpushed commits, keeps the session row when a worktree is kept, and reused worktree names reset to the current base</p>
<p>• Catastrophic removals (e.g. rm -rf ~) in commands containing $(…)/backticks/&lt;(…) now prompt in --dangerously-skip-permissions and auto mode, matching the plain form</p>
<p>• /install-github-app and the /mcp settings menu no longer open in background sessions</p>
<p>• MCP servers configured with an empty URL now show as "not configured" in /mcp instead of a config error</p>
<p>• /usage now shows your last-known usage bars with an "as of" note when the usage endpoint is rate-limited, instead of an error screen</p>
<p>• Fixed Bedrock auth failing with "Session token not found or invalid" for AWS SSO profiles whose sso_region differs from the Bedrock region (2.1.207 regression)</p></content>
<contenttype="html"><p>• Auto mode is now available without CLAUDE_CODE_ENABLE_AUTO_MODE opt-in on Bedrock, Vertex AI, and Foundry; disable via disableAutoMode in settings</p>
<p>• Fixed the terminal freezing and keystrokes lagging while streaming responses containing very long lists, tables, paragraphs, or code blocks</p>
<p>• Fixed remote managed settings from a non-interactive run (claude -p, the SDK) being permanently recorded as consented without ever showing the security consent dialog</p>
<p>• Fixed the auto-updater overwriting a custom launcher script or symlink at ~/.local/bin/claude on every release; /doctor now reports an externally managed launcher</p>
<p>• Fixed compound commands with cd prompting for permission when the only output redirect was to /dev/null</p>
<p>• Fixed the transcript jumping above the start of the answer when a response finishes streaming</p>
<p>• Fixed extensions.worktreeConfig being left in the repo's .git/config (breaking go-git tools like tea) after the last worktree.sparsePaths worktree was removed</p>
<p>• Fixed malformed bracket patterns in rules globs, skill paths, .ignore, and .worktreeinclude breaking file reads, file suggestions, and worktree creation</p>
<p>• Fixed a crash loop in agent teams where a malformed teammate mailbox message caused repeated errors every second until the mailbox file was manually deleted</p>
<p>• Fixed background sessions auto-named by accepting a plan not showing that name on their agent-view row</p>
<p>• Fixed background sessions that entered a git worktree resuming blank after a cold reopen from the agent list</p>
<p>• Fixed Remote Control task status updates being lost when the connection recovered from a network interruption or credential refresh</p>
<p>• Fixed Remote Control sessions hosted by the desktop app not showing background agent and workflow progress on mobile and web</p>
<p>• Fixed Deep research runs labeling every Fetch-phase agent "unknown" — chips now show the source hostname</p>
<p>• Fixed Bedrock repeatedly requesting fresh AWS SSO credentials from IAM Identity Center on every API request</p>
<p>• Improved agent view: pasting the same text again now expands the collapsed [Pasted text #N] placeholder instead of adding a second one</p>
<p>• Improved agent view: blocked session peeks now lead with the question and show a worded staleness clock (waiting 3m) instead of the same timestamp twice</p>
<p>• Changed Bedrock, Vertex, and Claude Platform on AWS to default to Claude Opus 4.8</p>
<p>• Changed auto mode to no longer read autoMode from .claude/settings.local.json (repo-resident); use ~/.claude/settings.json instead</p>
<p>• Fixed an indefinite hang on Windows when AWS credential resolution stalls (e.g. a stuck credential_process): the 60-second stall guard now fires instead of waiting forever.</p>
<p>• Plugin hooks/monitors/MCP headersHelper: ${user_config.*} in shell-form commands is now rejected (shell-injection fix). Hooks: use exec form (args array) or $CLAUDE_PLUGIN_OPTION_&lt;KEY&gt;; monitors and headersHelper: read the value inside the script (config file or the server's env block).</p>
<p>• Plugin option values (pluginConfigs) are no longer read from project-level .claude/settings.json; only user, --settings, and managed settings are honored</p>
<p>• Fixed /usage-credits amount inputs silently stripping malformed values (e.g. a pasted timestamp) to digits; malformed amounts are now rejected with an error, and amounts over $1,000 require a typed confirmation</p></content>
<contenttype="html"><p>• Added directory path suggestions to /cd, matching /add-dir behavior</p>
<p>• Added a /doctor check that proposes trimming checked-in CLAUDE.md files by cutting content Claude could derive from the codebase</p>
<p>• /commit-push-pr now auto-allows git push to the repo's configured push remote (remote.pushDefault, or the sole remote when only one is configured) in addition to origin</p>
<p>• Gateway: /login now supports Anthropic-operated public gateway endpoints</p>
<p>• EnterWorktree now asks for confirmation before entering a git worktree outside the project's .claude/worktrees/ directory</p>
<p>• Background agents now upgrade to a new version in the background right after a Claude Code update, instead of paying a slow stale-session upgrade when you attach</p>
<p>• Fixed an expired login failing every model with a misleading "There's an issue with the selected model" error instead of prompting to run /login</p>
<p>• Fixed claude --resume and --continue not responding to keyboard input on startup</p>
<p>• Fixed MCP servers configured via --mcp-config or .mcp.json ignoring a per-server request_timeout_ms, which caused long-running MCP tool calls to time out at the 60s default in fresh sessions</p>
<p>• Fixed CLAUDE_CODE_EXTRA_BODY being silently ignored by claude agents / --bg background workers; the shell-exported override now follows the dispatching session</p>
<p>• Fixed OAuth MCP servers requiring manual re-authentication after a single failed token refresh</p>
<p>• Fixed --permission-prompt-tool pointing at an MCP server crashing with "MCP tool not found" on cold start before the server finishes connecting</p>
<p>• Fixed /model picker rows printing a price for a different model than the row named, and stopped quoting first-party list prices on providers that don't bill them</p>
<p>• Fixed server-provided model rows being misplaced in the /model picker when an entitlement or allowlist restriction drops the row they were positioned against</p>
<p>• Fixed desktop sessions getting stuck showing "running" after a slash command was sent mid-turn</p>
<p>• Fixed keyboard input being ignored in the agents view when a setup prompt appeared before a bare claude --resume on Windows</p>
<p>• Fixed claude rm leaving the removed job in the daemon roster, causing the row to reappear in claude agents</p>
<p>• Fixed /remote-control showing "Unknown command" when logged out — it now explains how to sign in</p>
<p>• Fixed left arrow not stepping back out of a phase or agent in the workflow detail view</p>
<p>• Fixed /status listing the same broken-install warning twice</p>
<p>• Fixed false "disused plugin" tips and skewed disuse telemetry for LSP plugins</p>
<p>• Fixed /doctor's update check to compare Homebrew installs against their cask's channel instead of the settings channel</p>
<p>• Fixed the fullscreen jump-to-bottom pill suggesting Ctrl+End on macOS, not showing rebound chords, and wrapping over the transcript</p>
<p>• Bedrock: fixed a multi-minute startup hang when using an awsCredentialExport helper on networks with restricted egress</p>
<p>• Improved /code-review findings quality on claude-opus-4-8 across all effort levels</p>
<p>• Improved agents view: status column now uses full terminal width instead of truncating at 64 characters</p>
<p>• Changed agents view: Ctrl+X now permanently removes a completed session, and sessions no longer render twice; deleted background jobs stay deleted</p></content>
<contenttype="html"><p>• Added an auto mode rule that blocks tampering with session transcript files</p>
<p>• Fixed --json-schema silently producing unstructured output when the schema was invalid, and schemas using the format keyword being rejected</p>
<p>• Fixed a message sent while Claude was working being silently lost when the turn ended at the --max-turns limit</p>
<p>• Fixed Windows worktree removal deleting files outside the worktree when an NTFS junction or directory symlink existed inside it</p>
<p>• Fixed background agents staying shown as "failed" or "completed" in the agent list after being resumed with SendMessage</p>
<p>• Fixed background jobs flipping from "needs input" back to "working" in the agent list when the agent's turn contained no readable text</p>
<p>• Fixed claude attach erroring when a background agent was mid-upgrade restart instead of waiting for it to come back</p>
<p>• Fixed session-to-PR linking missing a PR created in a Bash call whose output exceeded the 30K inline limit</p>
<p>• Fixed claude mcp add-from-claude-desktop getting stuck when a server name contains unsupported characters; invalid names are now reported and remaining servers still import</p>
<p>• Fixed a plugin LSP server that fails to initialize preventing a valid LSP server from another plugin handling the same file extension</p>
<p>• Fixed a Windows crash when the directory Claude was launched from is deleted, locked, or unmounted while a command is running</p>
<p>• Fixed a crash when a file watcher was closed while a directory scan was still in flight</p>
<p>• Fixed project verify skills being rewritten on every session instead of only when a documented command changed</p>
<p>• Fixed the agent view rendering one line too high and clipping its header when the job list slightly overflowed the screen</p>
<p>• Fixed background tasks in the web and mobile Remote Control panels showing stale "Running" status by forwarding full task state on every membership change</p>
<p>• Improved auto mode to ask before running rm -rf on a variable it can't resolve from context</p>
<p>• Auto-update binary downloads now stream to disk instead of buffering in memory, cutting the updater's peak memory usage by roughly 400 MB</p>
<p>• Background task notifications now explicitly state that no human input has occurred, preventing fabricated in-transcript approvals from being acted on</p>
<p>• Improved agent view: sessions that edit, merge, comment on, or push to an existing PR now link it in claude agents</p>
<p>• Improved agent view: rows now show a colored state word and a classifier-written headline instead of raw tool call text, and the peek opens with full status including the exact ask for blocked sessions</p>
<p>• /doctor is now a full setup checkup that can diagnose and fix issues; /checkup is its alias</p>
<p>• Reserved the "Claude Browser" MCP server name (alongside "Claude Preview") ahead of the Claude Desktop pane rename; user-configured MCP servers can no longer register under either name</p>
<p>• Fixed Cowork VM-mode local-agent sessions failing to start with "Not logged in · Please run /login" on CLI 2.1.203+</p></content>
<contenttype="html"><p>• Fixed hook events not streaming during SessionStart hooks in headless sessions, which could cause remote workers to be idle-reaped mid-hook</p></content>
<contenttype="html"><p>• Added a warning when your login is about to expire, so you can re-authenticate before background sessions are interrupted</p>
<p>• Added a grey ⏸ badge to the footer when in manual permission mode, making the active mode always visible</p>
<p>• Added the session's additional working directories to MCP roots/list, with notifications/roots/list_changed sent when the set changes</p>
<p>• Fixed opening or switching background agent sessions on macOS stalling for 15–20 seconds due to a false low-memory detection (regression in 2.1.196)</p>
<p>• Fixed background sessions becoming permanently unresponsive to attach, replies, and stop when the daemon's session token went stale — the session now recovers automatically</p>
<p>• Fixed returning to claude agents silently stopping running subagents and re-running the prompt from scratch — their work now carries over</p>
<p>• Fixed a memory and per-turn CPU regression in interactive sessions: the context-usage indicator no longer re-analyzes the entire transcript after every turn</p>
<p>• Fixed background agents inheriting a stale PATH from the daemon instead of the dispatching shell, causing missing tools on Windows</p>
<p>• Fixed background and agent-view sessions dropping a shell-exported ANTHROPIC_BASE_URL, which sent API keys to the default endpoint and failed with 401</p>
<p>• Fixed Bash failing with "argument list too long" in repos with many git worktrees</p>
<p>• Fixed worktree-isolated subagents sometimes running shell commands in the parent checkout instead of their own worktree</p>
<p>• Fixed worktree creation rejecting nested repositories in multi-repo workspaces, leaving background sessions unable to isolate and edit</p>
<p>• Fixed background agents crash-looping when their working directory was deleted, replaced by a file, or became an invalid path — they now fail once with a clear error</p>
<p>• Fixed a background daemon auto-upgrade failure silently killing all running background sessions</p>
<p>• Fixed TaskStop and TaskOutput failing to find background agents spawned by another agent — errors now list running agents by id and description</p>
<p>• Fixed the claude agents composer discarding your typed message when a slash command isn't available there</p>
<p>• Fixed the agent list crashing when opening a stopped session whose conversation was already open in another session</p>
<p>• Fixed background sessions showing "Needs input" in the agent list after the question was already answered</p>
<p>• Fixed background agent startup failures showing only "exit_with_message" instead of the actual error</p>
<p>• Fixed background sessions ignoring effortLevel changes in settings.json when forked through the daemon</p>
<p>• Fixed attached background sessions ignoring CLAUDE_CODE_DISABLE_MOUSE and CLAUDE_CODE_DISABLE_MOUSE_CLICKS opt-outs</p>
<p>• Fixed /exit incorrectly warning about running background agents after all named agents had completed</p>
<p>• Fixed background sessions started from a non-git directory unable to edit files when a WorktreeCreate hook was configured</p>
<p>• Fixed the @ directory picker in claude agents not showing registered git worktrees</p>
<p>• Fixed background task output on Windows being permanently replaced by an empty file after /clear</p>
<p>• Fixed content jumping when scrolling up through long transcript history</p>
<p>• Fixed the terminal flickering and jumping while typing in bash mode when a shell-history suggestion was shown</p>
<p>• Fixed literal ^[[I / ^[[O escape codes being printed when reattaching to a background session</p>
<p>• Fixed LSP-only plugins being incorrectly flagged for disuse when their language servers deliver diagnostics or answer navigation requests</p>
<p>• Improved responsiveness while long responses stream: live-preview updates no longer re-render the whole screen</p>
<p>• Improved subagent behavior: agents are now less likely to re-delegate their entire task to another subagent</p>
<p>• Reduced binary size by ~7 MB and startup memory by ~7 MB by loading a large bundled dependency lazily instead of inlining it</p>
<p>• Changed left arrow to no longer close the background tasks, diff, and workflow detail views — press Esc instead</p>
<p>• Changed the empty claude agents view to always show the organized sections (Needs input / Working / Completed) with descriptions</p>
<p>• Removed the startup "claude command missing or broken" warnings — they now appear in /doctor and /status instead</p>
<p>• Removed a redundant navigation hint from the claude agents footer</p>
<p>• [VSCode] Added a Settings toggle for "Enable Remote Control for all sessions"</p></content>
<contenttype="html"><p>• Added a "Dynamic workflow size" setting in /config for controlling how large Claude generally makes dynamic workflows (small/medium/large agent counts) — an advisory guideline, not an enforced cap</p>
<p>• Added workflow.run_id and workflow.name OpenTelemetry attributes to telemetry emitted by workflow-spawned agents, so a workflow run's activity can be reconstructed from OTel data</p>
<p>• Fixed a crash in the inline Ctrl+R history search when accepting or cancelling while the search was still scanning the history file</p>
<p>• Fixed /rename on background sessions being reverted when the job restarts, which broke addressing the session by its new name</p>
<p>• Fixed transient mTLS handshake failures when settings were re-applied during an in-place client certificate rotation</p>
<p>• Fixed commands sent from Remote Control (mobile/web) into an interactive session failing with "Unknown command"</p>
<p>• Fixed images and files sent from the Remote Control mobile or web app without a caption being silently dropped</p>
<p>• Fixed the sign-in URL printed by claude auth login and claude mcp login --no-browser not being reliably clickable when it wraps over SSH — it is now emitted as a single hyperlink</p>
<p>• Fixed opening a chat from claude agents sometimes failing with "currently running as a background agent" followed by a worker crash/respawn loop</p>
<p>• Fixed workflow scripts with unicode quote escapes in strings being corrupted before parsing; workflow parse errors now show the offending line instead of always blaming TypeScript</p>
<p>• Fixed voice dictation retrying in an unbounded loop when the microphone or audio recorder fails — repeated capture failures now pause voice input</p>
<p>• Fixed /remote-control sessions showing the wrong permission mode in the mobile and web apps</p>
<p>• Fixed resuming a session by name, or opening the resume picker, taking minutes and using a large amount of memory in repositories with many git worktrees</p>
<p>• Fixed installer and updater downloads failing immediately with "aborted" when a proxy or network drops the connection mid-download — transient connection drops now retry</p>
<p>• Fixed re-invoking an already-loaded skill appending a duplicate copy of its instructions to context</p>
<p>• Improved /workflows agent list layout: wider titles, a dedicated time column, shorter model names, and no per-row tool-call counts</p>
<p>• Improved MCP error messages: clearer error when a server config has url but no type, suggesting "type": "http" instead of the misleading "command: expected string"</p>
<p>• Changed /review &lt;pr&gt; back to a fast single-pass review; use /code-review &lt;level&gt; &lt;pr#&gt; for the multi-agent review at a chosen effort level</p></content>
<contenttype="html"><p>• Changed AskUserQuestion dialogs to no longer auto-continue by default; opt into an idle timeout via /config</p>
<p>• Changed the "default" permission mode to "Manual" across the CLI, --help, VS Code, and JetBrains; --permission-mode manual and "defaultMode": "manual" are accepted alongside default</p>
<p>• Fixed a crash at startup when disabledMcpServers or enabledMcpServers in .claude.json is set to a non-array value</p>
<p>• Fixed background sessions silently stopping mid-turn after sleep/wake or when reopening a stalled session</p>
<p>• Fixed background sessions re-running a turn cancelled with Esc after a stall respawn</p>
<p>• Fixed background agents never starting again after a crash left a stale daemon.lock whose PID the OS reused</p>
<p>• Fixed background-agent daemon handover so a reinstalled older build can no longer take over the daemon; build recency is now judged by the version's embedded build timestamp</p>
<p>• Fixed background-agent roster issues: transient corruption permanently disabling orphan cleanup, older binaries not preserving fields written by newer versions, and socket auth tokens being stripped during daemon restarts</p>
<p>• Fixed subagents cut off by a rate limit before producing any text output returning an empty result instead of failing cleanly</p>
<p>• Fixed control bytes from background-agent output reaching the terminal in the agent view</p>
<p>• Fixed claude agents --plugin-dir &lt;dir&gt; not showing the plugin's agents and skills in the agent view when the flag is placed after agents</p>
<p>• Fixed project-scoped plugins not loading correctly from git worktrees of the same repository</p>
<p>• Fixed /mcp server list not tracking focus for screen readers and magnifiers</p>
<p>• Fixed voice dictation showing a misleading "Voice connection failed" message when a recording captures no audio</p>
<p>• Fixed rendering flicker under tmux 3.4+ by enabling synchronized terminal output</p>
<p>• Improved screen-reader output: decorative glyphs are now hidden, transcript symbols read as short labels, and nested tables read as Header: value. lines</p>
<p>• Improved the install script to explain when installation is killed by the system running out of memory</p></content>
<contenttype="html"><p>• Stacked slash-skill invocations like /skill-a /skill-b do XYZ now load all leading skills (up to 5), not just the first</p>
<p>• Fixed SSL certificate errors (TLS-inspecting proxies, missing NODE_EXTRA_CA_CERTS, expired certs) burning retries before showing actionable guidance — they now fail immediately with the fix hint</p>
<p>• Fixed streaming responses being discarded when the API emits a mid-stream overloaded/server error after partial output — the partial is now kept with an incomplete-response notice</p>
<p>• Fixed subagents cut off by a rate limit or server error silently failing instead of returning their partial work to the parent</p>
<p>• Fixed subagents reporting API errors (e.g. usage limit reached) as successful results — the error is now reported to the parent agent</p>
<p>• Fixed the background-agent daemon on Linux killing itself and every running agent every ~50 seconds after an unclean shutdown left a corrupted worker record</p>
<p>• Fixed background agents failing to cold-start over SSH on macOS with "Could not switch to audit session" (regression in 2.1.196)</p>
<p>• Fixed claude stop being silently undone when it raced a background-agent respawn — the respawn now honors the stop</p>
<p>• Fixed background job progress indicators stalling for minutes while the job ran long commands</p>
<p>• Fixed background sessions on memory-starved machines showing a generic error — they now indicate low memory and suggest freeing resources</p>
<p>• Fixed remote sessions briefly flapping between Working and Idle in the agent view when a background agent completes</p>
<p>• Fixed idle subagents vanishing from the agent panel while other subagents were still working; surplus idle agents now collapse into an expandable summary row</p>
<p>• Fixed typing /model or /fast while viewing a subagent silently opening the lead's model picker — a notice now explains the command applies to the lead</p>
<p>• Fixed SessionStart, Setup, and SubagentStart hooks silently hiding stderr when exiting with code 2 — the error is now shown in the transcript</p>
<p>• Fixed claude --dangerously-skip-permissions daemon &lt;subcommand&gt; being treated as a chat prompt instead of running the subcommand</p>
<p>• Fixed SendMessage silently misrouting when a re-spawned agent reuses a previous agent's name — the tool now detects the mismatch and asks the caller to retarget</p>
<p>• Fixed opening or resuming a session with no new messages needlessly growing the transcript file</p>
<p>• Fixed backgrounding a session with ← or /background dropping its /color from the agent view row</p>
<p>• Fixed resetting a corrupted config file from the startup recovery dialog destroying it unrecoverably — it now backs up the file first</p>
<p>• Fixed Claude in Chrome repeatedly opening the reconnect page when sessions run from different builds or config directories</p>
<p>• Fixed plan mode not prompting for state-changing browser tool calls; read-only browser_batch calls are now correctly auto-allowed</p>
<p>• Transient server rate-limit errors (429s unrelated to your usage limit) are now retried automatically with backoff for subscribers instead of failing the turn</p>
<p>• CLAUDE_CODE_RETRY_WATCHDOG now raises the default retry count for non-capacity transient errors to 300 and lifts the cap of 15 on CLAUDE_CODE_MAX_RETRIES</p>
<p>• claude agents session rows now show pull-request links as bare #N without the redundant "PR" label</p></content>
<contenttype="html"><p>• Subagents now run in the background by default, so Claude keeps working while they run and is notified when they finish (previously a gradual rollout)</p>
<p>• Claude in Chrome is now generally available</p>
<p>• Added background agent notifications in claude agents — sessions that need input or finish now fire the Notification hook (agent_needs_input / agent_completed)</p>
<p>• Added /dataviz skill for chart and dashboard design guidance with a runnable color-palette validator</p>
<p>• Gateway: added Claude Platform on AWS (anthropicAws) as an upstream provider; model-not-found responses now advance the failover chain</p>
<p>• Background agents launched from claude agents now commit, push, and open a draft PR when they finish code work in a worktree, instead of stopping to ask</p>
<p>• The built-in Explore agent now inherits the main session's model (capped at opus) instead of running on haiku</p>
<p>• Subagents and context compaction now inherit the session's extended thinking configuration, improving output quality on delegated tasks</p>
<p>• Fixed brief network drops mid-response aborting the turn — transient errors like ECONNRESET now retry with backoff instead of failing</p>
<p>• Fixed excessive background classifier requests when sandboxed processes repeatedly accessed the same network host</p>
<p>• Fixed background tasks in web, desktop, and VS Code task panels getting stuck on "Running" after they finish or after resuming a session</p>
<p>• Fixed agent teams: a teammate that dies on an API error now reports "failed" to the lead, and messaging a stuck teammate wakes it to retry immediately</p>
<p>• Fixed the /diff panel not refreshing when you switch branches or commit outside the session</p>
<p>• Fixed markdown tables overflowing and wrapping their right border when rendered in fullscreen mode</p>
<p>• Fixed Claude Platform on AWS and Mantle sessions dead-ending with "Please run /login" when the STS token expires — awsAuthRefresh now runs automatically</p>
<p>• Fixed "no route to host" for local-network hosts in macOS background agent sessions by declaring Local Network entitlements</p>
<p>• Fixed /desktop failing with "Cannot determine working directory" after entering and exiting a worktree</p>
<p>• Fixed background agents repeatedly showing "Reconnecting…" every ~52 seconds on macOS while the agents view was open</p>
<p>• Fixed pressing ← inside claude attach &lt;id&gt; exiting to the shell instead of opening the agent view</p>
<p>• Fixed claude --bg silently creating an unattachable session when combined with --print/-p; the conflicting flags are now rejected up front</p>
<p>• Fixed the workflow progress view dropping the earliest agents from the list while the phase counter stayed correct in SDK and desktop-app sessions</p>
<p>• Fixed .claude/rules/ conditional rules not loading when the target file is reached via a symlinked path</p>
<p>• Fixed Cmd+click not opening URLs in fullscreen mode in Warp on macOS</p>
<p>• Fixed double-click word selection in fullscreen mode to select the entire URL including the scheme</p>
<p>• Fixed plan mode not auto-allowing read-only tool calls when a session starts in plan mode</p>
<p>• Fixed /branch deriving its default fork name from the compaction summary instead of the first real prompt</p>
<p>• Improved focus mode: subagents launched in a turn now appear in its activity summary, and completed background notifications fold into a single count</p>
<p>• Improved syntax highlighting accuracy in code blocks, diffs, and file previews by upgrading to highlight.js 11</p>
<p>• Keyboard shortcut hints now show opt/cmd instead of alt/super when connected from a Mac over SSH</p>
<p>• Improved API retry UX: the error reason is now shown after the second attempt, and a status page link replaces the spinner tip when the API is overloaded</p>
<p>• /login now opens the sign-in dialog from the claude agents view instead of saying it isn't available</p>
<p>• Subagents now treat messages from the agent that launched them as normal task direction; an agent's message is still never treated as the user's approval</p>
<p>• Removed the /agents wizard; ask Claude to create or manage subagents, or edit .claude/agents/ directly</p></content>
<contenttype="html"><p>• Introducing Claude Sonnet 5: now the default model in Claude Code, with a native 1M-token context window and promotional pricing of $2/$10 per Mtok through August 31. Update to version 2.1.197 for access. https://www.anthropic.com/news/claude-sonnet-5</p></content>
<contenttype="html"><p>• Added support for organization default models — admins set it in the org console; it shows as "Org default" (or "Role default") in /model when you haven't picked one yourself</p>
<p>• Added readable default names for sessions at start, making them easier to identify and message</p>
<p>• Added clickable file attachments in chat — Cmd/Ctrl-click reveals the file in Finder/Explorer</p>
<p>• Security: claude mcp list/get no longer spawn .mcp.json servers that a repo self-approved via a committed .claude/settings.json; untrusted workspaces show ⏸ Pending approval</p>
<p>• Fixed waking a background job permanently deleting its conversation and re-running the original prompt when the transcript probe misread a real transcript; the file is now set aside, never deleted</p>
<p>• Fixed the rate-limit warning flickering off and rate-limit telemetry being over-counted when multiple parallel requests were in flight at the moment a usage limit was hit</p>
<p>• Fixed duplicate recap lines after a background session's turn: a schema-rejected StructuredOutput attempt no longer renders alongside its retry</p>
<p>• Fixed PowerShell git diff/git grep, egrep/fgrep, and quoted search patterns containing | being reported as failures when they exit 1, matching Bash behavior</p>
<p>• Fixed multiple claude agents side panel issues: keyboard focus getting stuck when opening an agent, background jobs losing their subagent types on every open, and sessions showing incorrect status while actively running</p>
<p>• Fixed claude agents --dangerously-skip-permissions silently falling back to auto mode instead of showing the bypass disclaimer and applying bypass mode to spawned agents</p>
<p>• Fixed mid-turn crash recovery for Remote sessions — sessions interrupted by a server restart now auto-resume on the next worker</p>
<p>• Fixed sessions moved with /cd reappearing in the old directory's resume list after a non-graceful exit when the old path contained special characters</p>
<p>• Fixed claude plugin validate skipping local plugins whose source is "." and stopping after the first error class</p>
<p>• Fixed Esc Esc at an idle prompt not opening the rewind menu (regression); use Ctrl+C or Ctrl+X Ctrl+K to stop background agents</p>
<p>• Fixed MCP OAuth requesting the authorization server's full scopes_supported catalog when no scope is specified, causing invalid_scope failures on GitLab self-hosted and other enterprise IdPs</p>
<p>• Fixed /context showing 0 tokens for all tool groups on Bedrock</p>
<p>• Fixed /deep-research misreporting verifier failures as "all claims refuted" instead of unverified</p>
<p>• Fixed plugin dependency version pins not being honored when the marketplace was added as a local folder path backed by a git repo</p>
<p>• Fixed claude agents session status: completed rows no longer flip between "Done" and "Needs your input", stalled agents are now labeled "Needs attention", and results that mention a PR show a clickable link</p>
<p>• Fixed voice dictation swallowing spaces and spuriously starting a recording during very fast typing when voice mode is enabled</p>
<p>• Improved background session reliability: long-running commands and workflows now survive the session's process being stopped, restarted, or updated — including on Windows, where background shells are handed off instead of being killed</p>
<p>• Improved background agents: workers killed by a daemon restart are now automatically resumed from where they left off the next time the agents view opens</p>
<p>• Improved /code-review workflow: merged five cleanup finders into one, cutting token usage by roughly 25%</p>
<p>• Reduced per-frame rendering work in the terminal UI by skipping no-op subtree walks during streaming</p>
<p>• The streaming idle watchdog is now on by default for all providers — it aborts and retries when a response stream produces no events for 5 minutes. Set CLAUDE_ENABLE_STREAM_WATCHDOG=0 to disable.</p>
<p>• Remote Control is now disabled when ANTHROPIC_BASE_URL points at a non-Anthropic host, matching the existing behavior under CLAUDE_CODE_USE_BEDROCK/_VERTEX/_FOUNDRY</p>
<p>• Changed opening the agents view from a foreground session to require a single ← press instead of two, matching the behavior in background sessions</p></content>
<contenttype="html"><p>• Added /rewind support for resuming a conversation from before /clear was run</p>
<p>• Fixed scroll position jumping to the bottom while reading earlier output during a streaming response</p>
<p>• Fixed background agents resurrecting after being stopped — stopping an agent from the tasks panel is now permanent</p>
<p>• Fixed /voice showing a generic "not available" message when disabled by an organization's policy — it now explains the restriction</p>
<p>• Fixed /login URL opening truncated in Windows Terminal when it wraps across lines</p>
<p>• Fixed Cmd+click on links in fullscreen mode for Ghostty over ssh/tmux</p>
<p>• Fixed claude agents sending builtin slash commands like /usage to background sessions as prompt text instead of showing a hint</p>
<p>• Fixed claude agents job rows showing full filesystem paths for pasted images instead of the [Image #N] placeholder</p>
<p>• Fixed hooks with comma-separated matchers (e.g. "Bash,PowerShell") silently never firing</p>
<p>• Fixed /permissions Recently-denied tab: approving a denial now persists on close instead of being silently discarded</p>
<p>• Fixed the agent panel jumping by one row when scrolling the roster past the overflow cap</p>
<p>• Fixed the welcome splash art overflowing the default 80×24 macOS Terminal window</p>
<p>• Fixed managed settings: forceRemoteSettingsRefresh now takes effect when set via MDM or file policy, and the fetch sends Cache-Control: no-cache to prevent proxies from serving stale responses</p>
<p>• Improved sandbox network permission dialog: hosts you allow with "Yes" are now remembered for the rest of the session instead of re-prompting on every connection</p>
<p>• Improved MCP server reliability: capability discovery (tools/list, prompts/list, resources/list) now retries transient network errors with short backoff</p>
<p>• Improved MCP OAuth: discovery and token requests now retry once after transient network errors, and headless environments skip the browser popup and go straight to the paste-the-URL prompt</p>
<p>• Improved MCP error messages: HTTP 404 errors now show the URL and point to your MCP config</p>
<p>• Improved vim mode prompt-history search (NORMAL /) to hint how to reach slash commands</p>
<p>• Reduced CPU usage during streaming responses by ~37% by coalescing text updates to 100ms</p>
<p>• Reduced long-session memory growth from terminal output cache</p></content>
<contenttype="html"><p>• Added sandbox.credentials setting to block sandboxed commands from reading credential files and secret environment variables</p>
<p>• Added org-configured model restrictions to the model picker, --model, /model, and ANTHROPIC_MODEL, with a "restricted by your organization's settings" message when a restricted model is selected</p>
<p>• Added mouse click support to select menus (permission prompts, /model, /config, etc.) in fullscreen mode</p>
<p>• Fixed --resume failing with "No conversation found" when the original -p run produced no model turns</p>
<p>• Fixed --json-schema and workflow agent({schema}) structured output: the model can no longer re-call StructuredOutput indefinitely after a successful call, and follow-up turns now reliably return structured output</p>
<p>• Fixed remote MCP tool calls that hang with no response for 5 minutes — they now abort with an error instead of blocking indefinitely (override with CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT)</p>
<p>• Fixed Claude Code Remote sessions taking ~2.7s longer to start after the agent proxy CA system-trust install was added</p>
<p>• Fixed pasted Korean/CJK text turning into mojibake in terminals that deliver paste as per-byte extended-key events</p>
<p>• Fixed /update over Remote Control hanging when a startup trust dialog would have shown</p>
<p>• Fixed background jobs in the agents view getting stuck in "working" indefinitely when the agent ended a turn without producing structured output</p>
<p>• Fixed channel connections dropping after navigating to the agents view and back, and after /bg, /tui, or /update</p>
<p>• Fixed agent stop notifications not correctly attributing who stopped the agent, and improved wording ("finished"/"stopped" instead of "came to rest")</p>
<p>• Fixed subagent depth tracking: resumed subagents now restore their original spawn depth, and forked subagents now count toward the depth cap</p>
<p>• Fixed leaked agent worktree registrations: locked .git/worktrees/ entries from killed agents are now cleaned up automatically</p>
<p>• Fixed Cmd+click not opening URLs in fullscreen mode in Ghostty on macOS</p>
<p>• Fixed claude --help not listing the --bg/--background flag</p>
<p>• Fixed Esc, Ctrl-C, and Ctrl-D not working while /share is uploading</p>
<p>• Improved /install-github-app: GitHub Actions workflow setup is now optional — you can install just the GitHub App and skip the workflow/secret steps</p>
<p>• Improved /btw with ←/→ arrow navigation to step through earlier answers</p>
<p>• Improved /plugin to surface plugins you haven't used recently so you can clean them up</p>
<p>• [VSCode] Fixed extension becoming unresponsive when resuming a large session</p></content>
<contenttype="html"><p>• Added claude mcp login &lt;name&gt; and claude mcp logout &lt;name&gt; to authenticate MCP servers from the CLI without opening the interactive /mcp menu, with --no-browser stdin redirect support for completing over SSH</p>
<p>• Added status filtering (press f) to the /workflows agent detail view</p>
<p>• Added a "Skills" section to the /plugin Installed tab</p>
<p>• Added teammateMode: "iterm2" setting with a warning when auto mode cannot find the it2 CLI</p>
<p>• Added "Claude Platform on AWS - refresh credentials" option to /login when awsAuthRefresh is configured</p>
<p>• ! bash commands now trigger Claude to respond to the output automatically; set "respondToBashCommands": false in settings.json to keep the previous context-only behavior</p>
<p>• Fixed streaming requests failing with "Content block not found" or JSON parse errors after the machine wakes from sleep</p>
<p>• Fixed subagent transcript scroll position bleeding into the main transcript on exit</p>
<p>• Fixed background task previews flashing raw tool names before the agent's plan loaded</p>
<p>• Fixed Chrome tab-group isolation not applying when the in-product permissions gate is off for concurrent CLI sessions</p>
<p>• Fixed background session recaps being duplicated; the agent's own end-of-turn summary now shows as the recap line</p>
<p>• Fixed opening a background session from claude agents leaving the previous screen painted behind it</p>
<p>• Fixed Agent(type) deny rules and Agent(x,y) allowed-types restrictions not being enforced for named subagent spawns</p>
<p>• Fixed Esc and Ctrl+C not responding while background agents are still running after the main turn ends</p>
<p>• Fixed misaligned option numbers in permission prompts when the option text overflows</p>
<p>• Fixed pressing x on a finished subagent in the agent panel not dismissing it</p>
<p>• Fixed a misleading "MCP server disconnected" notice for intentionally retired tools when resuming older sessions</p>
<p>• Fixed /plugin Installed showing a "more above" indicator when already scrolled to the top</p>
<p>• Fixed ~~strikethrough~~ showing literal tildes in assistant messages instead of rendering as strikethrough</p>
<p>• Fixed --tools allowing feature-gated tools to slip through before flags loaded on a cold first launch</p>
<p>• Fixed background job status in claude agents showing a stale "needs input" message after replying</p>
<p>• Fixed a dark-theme flash when opening a background session from claude agents on a light terminal</p>
<p>• Fixed mouse-selected text staying highlighted after deleting it in claude agents</p>
<p>• Fixed session cost not showing for usage-based Enterprise and Team subscribers</p>
<p>• Fixed agent teams: teammates spawned via tmux/pane backends now inherit the leader's --effort level</p>
<p>• Fixed Workflow agent({schema}) subagents looping forever on repeated schema validation failures instead of aborting after 5 attempts</p>
<p>• Improved claude mcp get and claude mcp remove to suggest the closest configured server name on a typo and truncate long server lists</p>
<p>• Improved memory: the agent is now reminded to compact its MEMORY.md index when nearing the size limit</p>
<p>• Improved skill frontmatter: display-name, default-enabled, fallback, and metadata.* keys now accept kebab-case, snake_case, and camelCase</p>
<p>• Improved malformed SKILL.md YAML frontmatter handling: loads the skill body with empty metadata instead of failing silently</p>
<p>• Changed CLAUDE_CODE_MAX_RETRIES to cap at 15; for unattended sessions, use CLAUDE_CODE_RETRY_WATCHDOG instead</p>
<p>• Changed background subagents to surface permission prompts in the main session instead of auto-denying; the dialog shows which agent is asking, and Esc denies just that tool</p>
<p>• Changed /review &lt;pr&gt; to use the same review engine as /code-review medium</p></content>
<contenttype="html"><p>• The stream-stall hint now reads "Waiting for API response · will retry in …" instead of "No response from API · Retrying in …", and triggers after 20s of silence instead of 10s</p></content>
<contenttype="html"><p>• Improved auto mode safety: destructive git commands (git reset --hard, git checkout -- ., git clean -fd, git stash drop) are now blocked when you didn't ask to discard local work, git commit --amend is blocked when the commit wasn't made by the agent this session, and terraform destroy/pulumi destroy/cdk destroy are blocked unless you asked for the specific stack</p>
<p>• Added a warning when the requested model is deprecated or automatically updated to a newer model, shown on stderr in print mode (-p) and now also covering models set in agent frontmatter</p>
<p>• Added attribution.sessionUrl setting to omit the claude.ai session link from commits and PRs in web and Remote Control sessions</p>
<p>• Added /config --help to list all available shorthand keys for /config key=value</p>
<p>• Changed /config toggle behavior: Enter and Space both change the selected setting, and Esc now saves and closes instead of reverting</p>
<p>• Removed the startup "setup issues" line under the logo — run /doctor to see configuration issues or use --debug</p>
<p>• Fixed thinking.disabled.display: Extra inputs are not permitted 400 errors on subagent spawns and session-title generation for affected configurations</p>
<p>• Fixed WebSearch returning empty results in subagents</p>
<p>• Fixed the terminal cursor being stranded above the prompt after navigating history in vim mode with the native cursor enabled</p>
<p>• Fixed fullscreen TUI corruption (statusline mid-screen, duplicated spinner rows, merged text) in Windows Terminal under heavy nested-subagent load</p>
<p>• Fixed turns silently completing with no visible output when the model returned only a thinking block; Claude now re-prompts once</p>
<p>• Fixed user-level skills appearing multiple times in slash-command autocomplete when multiple plugins are enabled</p>
<p>• Fixed MCP servers requiring authentication exposing auth-stub tools to the model in headless/SDK mode</p>
<p>• Fixed tmux teammate panes failing to launch when the shell has slow rc-file initialization, and keystrokes typed during agent spawn leaking into the new tmux pane instead of the leader prompt</p>
<p>• Fixed background tasks started by a teammate being killed when the teammate finishes a turn</p>
<p>• Fixed scheduled task and webhook trigger deliveries being treated as keyboard input; they now classify as task notifications and can no longer approve a pending action or set the session title in auto mode</p>
<p>• Fixed focus mode showing "Ran N PostToolUse hooks" timing lines under each response</p></content>
<contenttype="html"><p>• Added /config key=value syntax to set any setting from the prompt (e.g. /config thinking=false) — works in interactive, -p, and Remote Control</p>
<p>• Added sandbox.allowAppleEvents opt-in setting that lets sandboxed commands send Apple Events on macOS</p>
<p>• Added CLAUDE_CLIENT_PRESENCE_FILE environment variable: point it at a marker file to suppress mobile push notifications while you're at the machine</p>
<p>• Upgraded the bundled Bun runtime to 1.4</p>
<p>• Improved streaming of long paragraphs: text now appears line-by-line instead of waiting for the first line break</p>
<p>• Improved auto-retry: API connection drops mid-thinking now automatically retry instead of showing "Connection closed while thinking"</p>
<p>• Improved the subagent panel: idle subagents auto-hide after 30s, the list caps at 5 rows with scroll hints, and keyboard hints now show in the footer</p>
<p>• Improved the MCP OAuth browser page to match Claude Code's visual style and auto-close on success</p>
<p>• Changed the Improved N memories line to no longer list individual files outside verbose mode</p>
<p>• Fixed prompt caching not reading on custom ANTHROPIC_BASE_URL and on Foundry due to a per-request attestation token changing every turn</p>
<p>• Fixed Write/Edit producing 0-byte or truncated files on network drives and cloud-synced folders</p>
<p>• Fixed open, osascript, and browser-based auth flows failing with error -600 on macOS by adding the Apple Events entitlement</p>
<p>• Fixed a startup regression (~120ms per launch in fresh environments, introduced in 2.1.169): the first prompt no longer waits for the managed-settings fetch when no MCP servers are configured</p>
<p>• Fixed startup blocking with a blank terminal for up to 15 seconds when the account settings fetch is slow on a degraded network</p>
<p>• Fixed startup crash (TypeError: Cannot read properties of null) when .claude.json contains corrupted null project entries</p>
<p>• Fixed macOS TUI freezing at session start (Ctrl+C unresponsive) when Spotlight is busy reindexing</p>
<p>• Fixed long-running idle sessions losing their history when another Claude Code process ran the 30-day transcript cleanup</p>
<p>• Fixed foreground subagents spawning unbounded nested chains; they now respect the same 5-level depth limit as background subagents</p>
<p>• Fixed /recap and conversation forks using the previous model immediately after a model switch</p>
<p>• Fixed subagent "Thinking" duration showing the parent agent's elapsed time instead of the subagent's own</p>
<p>• Fixed subagents blocked on a nested agent showing a ticking elapsed time instead of "waiting" in the agent panel</p>
<p>• Fixed the API retry indicator ("Retrying in 0s · attempt N/10") staying on screen after the retry succeeded</p>
<p>• Fixed AWS awsCredentialExport credentials with a short remaining lifetime causing credential refreshes every minute, and now accepts the JSON shape from aws configure export-credentials</p>
<p>• Fixed claude mcp get/list showing ✓ Connected when tools/list fails; they now show ! Connected · tools fetch failed with the error detail</p>
<p>• Fixed /remote-control leaving a stale "connecting…" line; it now confirms in the transcript once connected</p>
<p>• Fixed ExitWorktree refusing to remove a clean worktree with "Could not verify worktree state" when bare git cannot be resolved on Windows</p>
<p>• Fixed settings changes (such as /effort or /model) failing with ENOENT when ~/.claude/settings.json is a relative symlink under a symlinked ~/.claude</p>
<p>• Fixed IDE selection line numbers in context reminders being off by one (IntelliJ and VS Code)</p>
<p>• Fixed Ctrl+C in fullscreen after a native terminal selection (modifier+drag) overwriting the clipboard with the app's prior selection</p>
<p>• Fixed Ctrl+V showing "No image found in clipboard" instead of pasting when the clipboard contains text</p>
<p>• Fixed agent creation failing with "EEXIST: file already exists" when the agents directory already exists (Windows/OneDrive)</p>
<p>• Fixed AskUserQuestion preview content being cut off at the dialog edge instead of word-wrapping</p>
<p>• Fixed AskUserQuestion multi-select questions silently dropping a typed "Other" free-text answer when submitting</p>
<p>• Fixed /stats "Most active day" and daily token chart dates showing one day early in UTC-negative timezones</p>
<p>• Fixed /copy and copy-on-select on Linux not detecting a clipboard utility installed after Claude Code started</p>
<p>• Fixed tab-indented code rendering with incorrect indentation in the Write (create-file) preview</p>
<p>• Fixed user prompts queued mid-turn not showing a full-width background highlight in the transcript</p>
<p>• Fixed the activity spinner's pulse dwelling on the wrong glyph size in Ghostty</p></content>
<contenttype="html"><p>• Fixed mid-stream connection drops: partial responses are now preserved instead of showing a raw error, and the spinner no longer gets stuck at "running tool"</p>
<p>• Fixed mouse-wheel scrolling in WSL2 under Windows Terminal and VS Code (regression in 2.1.172)</p>
<p>• Fixed a sandbox denyRead/allowRead glob over a large directory tree making the Bash tool description enormous and the session unusable on Linux</p>
<p>• Fixed the feedback survey capturing a single-digit reply as a session rating immediately after a turn completes</p>
<p>• Fixed the welcome screen stacking multiple promotional banners — at most one promo now shows per session</p>
<p>• Fixed Ctrl+O not showing the subagent's transcript when viewing a subagent</p>
<p>• Fixed clicking the prompt input not returning focus from the subagent/footer panel</p>
<p>• Fixed remote session background tasks appearing stuck as "still running" between turns</p>
<p>• Improved plugin loading performance in remote sessions</p></content>
<contenttype="html"><p>• Agent teams: removed the TeamCreate and TeamDelete tools. With CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 set, every session now has one implicit team — spawn teammates directly with the Agent tool's name parameter, no setup step needed. The team_name parameter on the Agent tool is still accepted but ignored.</p>
<p>• Added Tool(param:value) syntax for permission rules to match a tool's input parameters (with * wildcard), e.g. Agent(model:opus) to block Opus subagents</p>
<p>• Skills in nested .claude/skills directories now load when working on files there; on a name clash, the nested skill appears as &lt;dir&gt;:&lt;name&gt; so both stay available</p>
<p>• Nested .claude/ directories: the agent, workflow, and output-style closest to the working directory now wins when names collide; project-scope workflow saves now target the closest existing .claude/workflows/</p>
<p>• Improved auto mode: subagent spawns are now evaluated by the classifier before launch, closing a gap where a subagent could request a blocked action without review</p>
<p>• Improved /doctor with consistent flat tree layout across all sections, clearer section status icons, and highlighted command names</p>
<p>• Improved the skill listing truncation warning to show how many skill descriptions are affected</p>
<p>• Changed the workflow prompt keyword to use a purple shimmer highlight and trigger only on explicit phrases like "run a workflow" or "workflow:", not on any mention of the word</p>
<p>• Improved Remote Control error messages: connection failures now show a persistent red "/rc failed" indicator in the footer, and the "not yet enabled" error now explains whether it's a gate, a check failure, stale entitlement, or org policy</p>
<p>• /bug now requires a description before submitting, and no longer uses model-refusal text as the GitHub issue title</p>
<p>• Fixed a crash (out-of-memory) when the CLI inherits a stale websocket/OAuth file-descriptor environment variable from a parent process</p>
<p>• Fixed Claude in Chrome silently failing to connect when the OAuth token belongs to a different account than the Claude Code login</p>
<p>• Fixed nested .claude/skills skills with directory-qualified names being blocked by permission prompts in non-interactive runs</p>
<p>• Fixed several subagent issues: viewing a subagent's transcript now shows tool results and live progress, messages sent while it finishes its turn are no longer dropped, and backgrounding a running subagent (ctrl+b) no longer restarts it from scratch</p>
<p>• Fixed claude agents workers failing with 401 Invalid bearer token when the daemon was started from a shell with a custom API gateway via ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN</p>
<p>• Fixed compaction not honoring --fallback-model: compaction now falls back to the configured fallback model chain on overload or model-availability errors</p>
<p>• Fixed model requests continuing to fail with auth errors after credentials were refreshed outside the session, due to a stale cached request configuration</p>
<p>• Fixed background sessions created with /bg or ←← after a turn finished showing "Working" forever in the agents list</p>
<p>• Fixed Linux sandbox failing to start when .claude/skills or .claude/hooks is a symlink</p>
<p>• Fixed CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1 preventing fresh marketplace installs from cloning</p>
<p>• Fixed MCP server-level specs (mcp__server, mcp__server__*, mcp__*) in subagent disallowedTools being silently ignored</p>
<p>• Fixed vim mode undo: u now steps through NORMAL/VISUAL-mode commands one at a time instead of merging commands in quick succession into a single undo step</p>
<p>• Fixed statusline links with custom URI schemes (e.g. vscode://) not opening when clicked in claude agents</p>
<p>• [VSCode] Fixed pressing Esc to dismiss a CJK IME candidate window canceling the running Claude task</p></content>
<contenttype="html"><p>• Session titles are now generated in the language of your conversation (set the language setting to pin a specific language)</p>
<p>• Added footerLinksRegexes setting for regex-matched link badges in the footer row, configurable via user or managed settings</p>
<p>• Improved Bedrock credential caching: credentials from awsCredentialExport are now cached until their Expiration instead of a fixed 1 hour</p>
<p>• Fixed availableModels enforcement: alias model picks can no longer be redirected to a blocked model via ANTHROPIC_DEFAULT_*_MODEL environment variables, and /fast now refuses to toggle when it would switch to a model outside the allowlist</p>
<p>• Fixed auto mode failing on Fable 5 for organizations without Opus 4.8 enabled — the classifier now falls back to the best available Opus model</p>
<p>• Fixed hook if conditions for Read/Edit/Write tool paths: documented patterns like Edit(src/), Read(~/.ssh/), and Read(.env) now match correctly</p>
<p>• Fixed Linux sandbox failing to start when .claude/settings.json is a symlink with an absolute target</p>
<p>• Fixed /copy and mouse-selection copy not reaching the system clipboard inside tmux over SSH, and tmux paste buffer not loading on versions older than 3.2</p>
<p>• Fixed Remote Control connecting from web/mobile silently switching the session's model</p>
<p>• Fixed Remote Control disconnect notifications showing a bare numeric code instead of a human-readable reason, and connection failures adding a duplicate line to the conversation transcript</p>
<p>• Fixed Remote Control sessions not disconnecting when you sign in to a different account</p>
<p>• Fixed /cd and worktree moves leaving the session reporting the previous directory's git branch</p>
<p>• Fixed claude agents: pressing back in one window no longer detaches other windows attached to the same session</p>
<p>• Fixed backgrounded sessions showing "Working" forever when /bg mid-turn had nothing left to continue</p>
<p>• Fixed background agent search by PR URL: PRs opened during scheduled wakeups or while a job was blocked now appear in claude agents search</p>
<p>• Fixed the agents view input showing no text cursor on Windows</p>
<p>• Fixed claude --bg -cn &lt;name&gt; not seeding the session name</p>
<p>• Fixed background sessions to neutralize Windows network paths in persisted state before respawn</p>
<p>• Fixed background-session respawn rejecting malformed resume IDs from corrupted state files</p>
<p>• Fixed the Windows background-service daemon not starting when ~/.claude/daemon has the ReadOnly attribute set</p>
<p>• Fixed cloud sessions failing with "Could not resolve authentication method" when idle for too long before being claimed</p>
<p>• Background sessions now show clearer guidance when a window left open across an auto-update can't submit a reply, and claude daemon status explains version-skew behavior</p></content>
<contenttype="html"><p>• Added enforceAvailableModels managed setting — when enabled, the availableModels allowlist also constrains the Default model (a Default that would resolve to a disallowed model now falls back to the first allowed model), and user or project settings can no longer widen a managed availableModels list</p></content>
<contenttype="html"><p>• Added wheelScrollAccelerationEnabled setting to disable mouse-wheel scroll acceleration in fullscreen mode</p>
<p>• Fixed the /model picker hiding the model family that Default resolves to — Opus now appears as its own row on Max/Team Premium/Enterprise plans, Sonnet on Pro/Team plans, and Opus on pay-as-you-go API accounts</p>
<p>• Fixed /model picker showing a hardcoded Sonnet version label when ANTHROPIC_DEFAULT_SONNET_MODEL pins a different Sonnet</p>
<p>• Fixed the "Fable 5 is now consuming usage credits" banner incorrectly showing for enterprise accounts with usage-based billing</p>
<p>• Fixed Bedrock GovCloud regions (us-gov-*) deriving the wrong inference profile prefix (global instead of us-gov), causing 400 errors on derived model IDs</p>
<p>• Fixed background sessions inheriting another session's ANTHROPIC_* provider env (gateway URL, custom headers, /model aliases) from the shell that started the background daemon</p>
<p>• Fixed a 1-2 second pause when exiting Claude Code shortly after a shell command was interrupted or killed on macOS and Linux</p>
<p>• Fixed git commit co-author attribution showing an incorrect model name for some models</p>
<p>• Fixed the /advisor dialog pre-selecting a saved advisor model that is blocked by the availableModels allowlist</p>
<p>• Fixed skill hot-reload re-sending the entire skill listing when a single skill changed; only changed skills are now re-announced</p>
<p>• [VSCode] Added usage attribution to the Account &amp; usage dialog (/usage) showing cache misses, long context, subagents, and per-skill/agent/plugin/MCP breakdowns over the last 24h or 7d</p>
<p>• Fixed pre-warmed background workers failing with "Could not resolve authentication method" when claimed after sitting idle</p></content>
<contenttype="html"><p>• Fixed Fable 5 model names with a [1m] suffix not being normalized — Fable 5 includes 1M context by default, so the suffix is now stripped automatically</p>
<p>• Fixed a spurious "sandbox dependencies missing" startup warning on Windows when sandbox was enabled in settings</p></content>
<contenttype="html"><p>• Sub-agents can now spawn their own sub-agents (up to 5 levels deep)</p>
<p>• Amazon Bedrock now reads the AWS region from ~/.aws config files when AWS_REGION isn't set, matching AWS SDK precedence; /status shows where the region came from</p>
<p>• Added a search bar when browsing a marketplace's plugins in /plugin</p>
<p>• Added model attribute to the claude_code.lines_of_code.count OTEL metric</p>
<p>• Fixed sessions using 1M context without usage credits getting permanently stuck — the session now automatically compacts back under the standard context limit</p>
<p>• Fixed a repeating "an image in the conversation could not be processed and was removed" error when the conversation contained multiple images</p>
<p>• Fixed the agents view keeping a session under Working with a busy spinner for up to 30 seconds after the worker replied</p>
<p>• Fixed background agents potentially reading another directory's project settings (.mcp.json approvals, trust) when dispatched onto a pre-warmed worker</p>
<p>• Fixed background-session attach failing with EAUTH for sessions started on an older version after the daemon auto-updated</p>
<p>• Fixed a background sub-agent staying stuck as "active" in the agent panel after a nested agent it spawned was stopped</p>
<p>• Fixed /model suggestions in the claude agents dispatch input rendering with a misleading slash prefix and showing models disabled for your org</p>
<p>• Fixed availableModels restrictions not being applied to subagent model overrides, the agent dispatch model picker, and the advisor model</p>
<p>• Fixed availableModels allowlists hiding the /model picker's Opus and Sonnet 1M rows when entries use version-specific IDs like claude-opus-4-8</p>
<p>• Fixed the /model picker on Bedrock offering models the provider doesn't serve — selecting one silently switched the session model and lit the selection marker on multiple rows</p>
<p>• Fixed model IDs getting a doubled 1M-context suffix (e.g. [1M][1m]) when ANTHROPIC_DEFAULT_OPUS_MODEL already includes one</p>
<p>• Fixed opusplan model setting not shipping with 1M context in plan mode for entitled users; the opusplan[1m] workaround now also correctly switches to Opus in plan mode</p>
<p>• Fixed WebFetch(domain:*.example.com) wildcard domain rules never matching subdomains in allow, deny, and ask position, and file permission rules with mid-pattern wildcards (e.g. Read(secrets-*/config.json)) being rejected at startup</p>
<p>• Fixed up-arrow prompt history showing the main agent's prompts while a subagent's chat tab is open</p>
<p>• Fixed memory recall not finding mounted team memory stores (CLAUDE_MEMORY_STORES) in remote sessions</p>
<p>• Disable mouse tracking on Windows consoles that don't fully support it</p>
<p>• Fixed the /plugin marketplace list losing its cursor after backing out of a long plugin list, and Esc from the plugin browser returning to the wrong tab</p>
<p>• Improved performance in long conversations by removing redundant message normalization and avoiding full message-history transforms when streaming tool-use state is unchanged</p>
<p>• Reduced idle CPU usage: /goal status chip no longer re-renders the terminal at 5 Hz while idle, and fewer UI re-renders while subagents run in parallel</p>
<p>• Improved Claude in Chrome tool loading: browser tools now load in a single batched call instead of one per tool</p>
<p>• Improved the non-interactive Usage Policy refusal message to suggest starting a new session or changing your model</p>
<p>• /code-review now keeps the ultra option visible when you're not signed in to claude.ai, with an explanation that the cloud review requires a claude.ai account</p>
<p>• Shortened the Remote Control footer indicator to "/rc active" and hid it on narrow terminals</p>
<p>• Stopped promoting /loop in remote sessions, where pending loops don't keep the container alive</p>
<p>• [VSCode] Fixed PowerShell tool calls rendering as raw JSON instead of a proper command display and permission dialog, and stripped ANSI escape codes from displayed shell output</p></content>
<contenttype="html"><p>• Introducing Claude Fable 5: a Mythos-class model that we’ve made safe for general use. Fable’s capabilities exceed those of any model we’ve ever made generally available. Update to version 2.1.170 for access. https://www.anthropic.com/news/claude-fable-5-mythos-5</p>
<p>• Fixed sessions not saving transcripts (and not appearing in --resume) when launched from the VS Code integrated terminal or any shell that inherited Claude Code environment variables.</p></content>
<contenttype="html"><p>• Self-hosted runner: added a post-session lifecycle hook that runs after the session ends and before the workspace is deleted, so you can snapshot uncommitted work or export logs; also made the child-process SIGTERM→SIGKILL window configurable (default unchanged at 5s)</p>
<p>• Added --safe-mode flag (and CLAUDE_CODE_SAFE_MODE) to start Claude Code with all customizations (CLAUDE.md, plugins, skills, hooks, MCP servers) disabled for troubleshooting</p>
<p>• Added /cd command to move a session to a new working directory without breaking the prompt cache mid-session</p>
<p>• Added a disableBundledSkills setting and CLAUDE_CODE_DISABLE_BUNDLED_SKILLS environment variable to hide bundled skills, workflows, and built-in slash commands from the model</p>
<p>• Fixed Up/Down arrows jumping to command history past the wrapped rows of a long input line — they now move through each visual row first, and history recall enters at the near edge</p>
<p>• Fixed enterprise managed MCP policies (allowedMcpServers/deniedMcpServers) not being enforced on reconnect, IDE-typed configs, --mcp-config servers during the first session after install, or before remote settings loaded; also fixed slow cold starts for orgs without remote settings</p>
<p>• Fixed a ~30-50ms UI stall at the start of each turn for macOS users logged in with claude.ai credentials</p>
<p>• Fixed claude -p being slow or appearing to hang on Windows while waiting for the slash-command/skill scan (regression in 2.1.161)</p>
<p>• Fixed Remote Control getting stuck on "reconnecting" after resuming a session when an OAuth token refresh happened at the same time</p>
<p>• Fixed Git Credential Manager's "Connect to GitHub" popup appearing on Windows at startup when background git commands ran without cached credentials</p>
<p>• Fixed footer hints (e.g. "esc to interrupt") not showing for users with a custom statusline</p>
<p>• Fixed stale permission and dialog prompts reappearing every time you reattached to a remote session whose worker had died while waiting on them</p>
<p>• Fixed claude agents --json omitting blocked and just-dispatched background sessions; added --all to include completed sessions, plus new id and state fields</p>
<p>• Fixed agents view leaving a stale/garbled frame after navigating back from an agent on WSL in Windows Terminal</p>
<p>• Fixed background agents ignoring project-level settings env values (e.g. ANTHROPIC_MODEL) when dispatched onto a pre-warmed worker</p>
<p>• Fixed MCPB plugin cache being spuriously invalidated on Windows, causing unnecessary re-extraction</p>
<p>• Fixed plugin .in_use PID lock files accumulating without bound; stale markers from crashed sessions are now swept once per day</p>
<p>• Fixed untrusted project settings being able to set OTEL client-certificate paths without trust confirmation</p>
<p>• /workflows now opens immediately even while a turn is in progress</p>
<p>• Improved TaskCreate reliability: malformed inputs are repaired automatically and validation errors for unloaded tools include the schema</p>
<p>• Improved the error message shown when your organization has disabled API key authentication, with guidance based on where the active API key comes from</p>
<p>• Reduced CPU usage while responses stream and during spinner animations</p>
<p>• Restored a default 5-minute idle timeout on Vertex/Foundry so a stalled stream aborts instead of hanging indefinitely; set API_FORCE_IDLE_TIMEOUT=0 to opt out</p>
<p>• Remote-managed settings with an invalid entry now apply their remaining valid policies and surface the validation error, instead of silently dropping the whole payload</p>
<p>• Background sessions now preserve --ide, --chrome, --bare, --remote-control, and other flags across retire→wake, and respawn state validation was hardened</p>
<p>• Background sessions are now told that shared-checkout edits are blocked until they enter a worktree, avoiding a wasted rejected edit before EnterWorktree</p>
<p>• The "CLAUDE.md is too long" warning threshold now scales with the model's context window</p>
<p>• Auto-updater on Windows now stops retrying within a session once claude.exe is held by another process</p>
<p>• Improved color contrast for skill tags in the slash-command menu</p>
<p>• Promo credit claims for Apple/Google-billed subscribers without a payment method now explain where to add one</p>
<p>• Added a tip suggesting claude agents when running multiple concurrent sessions</p></content>
<contenttype="html"><p>• Bug fixes and reliability improvements</p></content>
</entry>
</feed>
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.