One read of Claude Code CLIclaude-code-20261113T003701Z
1 pages moved out of 203 read.
Pages moved
1
significant first
Pages read
203
in this capture
Captured
00:37 UTC
Corpus hash
00a1198ec2e3
corpus-hash
What this read moved
1-1 of 1changelog Changed · +312 / -2 lines
This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.
The two sides of this change are more than 400 edits apart, too far apart to line up, so this is the differ's own diff of it and the words inside a line are not marked.
from line 5
55This page is generated from the [CHANGELOG.md on GitHub](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md). Longer releases are grouped by type of change, with long lists of improvements and bug fixes collapsed.
66
77Run `claude --version` to check your installed version.
8
9**2.1.323**
10
11November 12, 2026
12
13**Added**
14
15* Added Code Mode, an experimental opt-in in which Claude writes JavaScript to call its tools; see [https://code.claude.com/docs/en/code-mode](https://code.claude.com/docs/en/code-mode) to turn it on, or to turn it off for an organization
16* Added `engines["claude-code"]` to `plugin.json`: plugins outside their stated Claude Code version range are not installed, updated or loaded, and install and update pick the newest version that fits
17* Added type checking of a plugin's TypeScript hooks module to `claude plugin validate`; each finding is a warning, and `--strict` fails on it
18* Added to `claude plugin validate` the `$` nouns a mod's `engine.create` hook adds, withholds or replaces
19* Added support for `CLAUDE_CODE_AUTO_MODE_MODEL` in managed settings for Claude Desktop sessions on third-party providers (takes effect once Claude Desktop includes this version)
20* Added an options menu (stop, switch to usage credits, upgrade) when a model needs usage credits that are turned off or used up
21* Added a progress heartbeat every 30 seconds while hooks run long in `claude -p` and SDK sessions, so a host such as Claude Desktop won't end the turn as hung (once it includes this version)
22* Added `.docx` support to Artifact tool asset uploads
23* Added a `/diff to close` hint to the diff panel, and the keys that focus and close a panel to the `?` shortcut guide
24* Added a start-up warning for Bash allow rules with a `*` in a variable's value, such as `Bash(PORT=* npm run dev)`
25* Added a warning when a plugin's language server can't start, naming the server and what to check
26* Added a one-time startup notice naming `CLAUDE_CODE_PERFORCE_MODE` when Perforce settings are found and the mode is off
27* Added `CLAUDE_CODE_DISABLE_AGENT_PROGRESS_SUMMARIES` (available since 2.1.318): set it to `1` to turn off subagent progress summaries and the requests that write them (anthropics/claude-code#86879)
28* Added `CLAUDE_CODE_RESUME_HINT_COMMAND`, which a program that starts Claude Code can set to have the exit hint name its own resume command
29* Added `unsetOptionCount` to the `claude plugin install --json` result: how many `userConfig` options are not yet set
30* Added `isPromptCovered` to the props a mod's pane is drawn with, telling it when a dialog or a field above the prompt covers the prompt
31* \[VSCode] Added a Claude Code trust prompt before the first session in a folder you haven't trusted; declining leaves the folder's settings and MCP servers unused
32* \[VSCode] Added the live output of a running Bash or PowerShell command to the chat, under the command's card
33* \[Claude Code on the web] Added a failure notification when a scheduled task's run can't start because its settings require a sandbox that isn't available where it runs
34* \[Claude Code on the web] Added the No repository option to the repository picker for new sessions on a self-hosted environment
35* \[Claude Code on the web] Added a warning to a cloud session's Delete dialog when deleting it will pause scheduled tasks that run in that session
36* \[Remote Control] Added a Try again button to the error shown when the computer running your session is signed out of Claude Code
37* \[Claude Tag] Added Claude Tag sessions started in Slack to the Compliance API on Enterprise plans, in beta: list the sessions and read their transcripts
38* \[Claude Tag] Added a confirmation step when an admin turns off Claude Tag for the organization, with a dialog that says what stops
39* \[Claude Tag] Added a Retry button to a Slack channel's Configure page for when its settings fail to load
40* \[Claude Tag] Added a Scope filter to the Network events tab of Claude Tag's Activity page, so admins can download one scope's events instead of the whole organization's
41* \[Code Review] Added a Download CSV button to Code Review admin settings: export review costs per repository by month, week or day, for one repository, one GitHub organization or all
42
43**Changed**
44
45* Self-hosted runner: Reverted the exit code of an on-demand runner whose work order was superseded to 1; 2.1.321 and 2.1.322 had changed it to 0
46* Changed `/security-review` to ask before Claude runs it, and skills' inline git commands to stop in bare-repository worktrees and similar folders until you allow them, outside auto mode and bypass
47* Changed how many messages each of your sessions on the same machine can send the others without a prompt from you, from about 20 to 100,000
48* Changed the number of messages a Claude Desktop Code tab session can send to your other sessions before it waits for you to type again from 20 to 100,000
49* Changed organization settings and policy requests to no longer use a proxy set only by `ALL_PROXY`; set `HTTPS_PROXY` if your network needs a proxy for them
50* Changed the context window assumed for a model ID that Claude Code doesn't recognize from 200K to 1M; use `/autocompact` to compact earlier, or `CLAUDE_CODE_DISABLE_1M_CONTEXT=1` to keep 200K
51* Changed sessions on other vendors' models with a smaller window: once full, they can fail every turn until `/clear`, so set `CLAUDE_CODE_DISABLE_1M_CONTEXT=1` before they fill
52* Changed Claude Code's own ripgrep and most internal git commands to run without most of its sign-in tokens and API keys, so a credential helper or hook under such a git command no longer finds them
53* Changed `MCP_SDK_GENERATION=v1` to run the v2 MCP client in a compatibility mode (earlier handshake, relaxed OAuth sign-in checks), because the v1 MCP client is removed
54* Changed the tool Claude uses to finish an MCP server sign-in so that it asks you to confirm, even in bypass and auto modes; where nobody can be asked, such as in `dontAsk` mode, use `/mcp`
55* Self-hosted runner: Changed a session at a connector's approval prompt or sign-in inside a running tool to be released as paused at the idle or lifetime limit; a late answer resumes from a fresh clone
56* Changed artifact updates to ask first, even under an allow rule, when people outside your organization can see the artifact or Claude can't check who can
57* Changed `glab config set` without `--global` or `--host`, and `glab config edit --local`, to fail read-only inside the Bash sandbox; run them outside it
58* Changed the Bash sandbox on macOS, Linux and WSL to ignore write access granted through a symlink in a writable folder that leads elsewhere or to a missing path; grant the real path instead
59* Changed "don't ask again" so an allow rule that looks like it holds a secret, or would be saved to a `settings.local.json` that git tracks, lasts for the session only and isn't saved
60* Changed the sandbox on macOS and Linux: `git worktree add`, `move` and `remove` now fail read-only, as do commits in a worktree the session wasn't started in or given, even one inside the project
61* Changed start-up to stop when a `--settings` file isn't valid JSON and has a `sandbox` key, even one that turns the sandbox off
62* Changed what happens when a tool's permission check fails with an error after a `PreToolUse` hook returned "allow": Claude Code now decides the call as if no hook had answered
63* Changed what happens when a tool's permission check fails on input that a `PermissionRequest` hook rewrote: Claude Code now asks again, or refuses the call where nobody can answer
64* Changed the GitLab merge request badge to show only for the repository a sandboxed session opened in
65* Changed the `claude mcp add --help` example to a local command
66* Changed mods: a `*`, namespace or negated hook on `engine.create` now only observes. To add or withhold a `$` noun, hook `engine.create` by name
67* Changed `claude plugin validate` to fail a mod whose `engine.create` hook isn't written in the one accepted form; installed mods keep loading
68* Changed marketplace and plugin installs to fail when a git submodule isn't on the commit its repository records
69* Changed project (`.mcp.json`) MCP server approvals to match the server's exact name; an approval entry written in another spelling now asks again
70* Changed self-hosted runners under `--trust-workspace false` and VS Code sessions in an untrusted folder: the repository's settings can no longer disable your hooks or turn plugins on or off
71* Changed `tool.list` plugin hooks so the tools they add or remove apply to the model and every agent
72* Changed `claude plugin install` and `/plugin` to show a warning instead of success when a plugin's install command writes to stderr
73* Changed claude.ai chats and Cowork tasks to check a plugin file for secret keys before sending it, and to ask first if it may hold one
74* Changed `claude rm` and the agents view to say a session is removed from the list, not deleted; `claude rm` help says the conversation is kept and `claude --resume` lists it
75* Changed `/stickers` to say that the sticker pack is all claimed for now, instead of opening a page in the browser
76* Changed a managed settings `policyHelper` to no longer take environment variables from user or `--settings` files; set what it needs in managed `env` or the launching shell
77* Changed a `/skill` or `@file` typed between two files picked in claude.ai or the desktop app, or after a picked file and a link, to no longer take effect
78* Changed split-pane agent teammates to check that requests come from their team lead: one that outlives its lead has its asks refused, and plan approvals must be re-sent after `/clear` or `/resume`
79* Changed worktree creation to refuse checkouts whose `.git` folders are links or hold hard links, such as git-new-workdir layouts and `cp -al` copies; use a plain clone
80* Changed what Claude is told after safeguards stop a forked skill or a workflow agent: retry with a narrower prompt or tell you, instead of doing the work itself
81* Changed browser tool calls (Claude in Chrome, the desktop browser pane) to refuse some escaped or JSON-text inputs and tell Claude how to respell them
82* Changed workflows so that a prompt an app marks as not typed no longer reaches their agents as your request
83* Changed computer use on macOS to refuse key chords that hold Space with Control or Option, and more system shortcuts that need your grant
84* Changed first-run setup in Terminal.app to name the "Use Option as Meta key" setting, what Option stops typing, and how to undo it before you agree
85* Changed the maximum of `CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS` from 64000 to 300000
86* Changed workflows in the desktop app's Code tab to pause at a usage limit and continue after it resets
87* Changed the spend limit and 1M context errors, and `/usage-credits`, in cloud sessions and under Remote Control: they no longer give a web address
88* Changed which MCP servers are reported by name in OpenTelemetry exports to follow the current connector directory
89* Changed `/logout` in a background session, which had no effect: it now signs out every session on the computer, deletes stored MCP logins and plugin secrets, and ends the session, as in a terminal
90* macOS: Changed the Bash sandbox so `lsof` and similar tools may show less about processes a command did not start
91* Changed cloud scheduled tasks: a `PostToolUse` hook from your own settings can no longer replace the plan in `ExitPlanMode`'s result
92* Changed `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` in Anthropic-hosted cloud sessions to stop applying to auto-memory extraction and, in some sessions, to `/btw`; the main conversation still follows it
93* Removed the `subagentStatusLine` setting: subagent rows always use the default look, and settings files that still hold the key load as before
94* Deprecated a plugin's `agent` setting: it still applies, and now warns at startup, in `claude plugin list` and in `claude plugin validate`
95* \[VSCode] Changed opening a Claude Code on the web session in a folder where Claude Code's sandbox is on: the extension no longer switches to the session's branch for you, and the dialog says why
96
97**21 improvements**
98
99* Improved sign-in errors in `/login` and `claude setup-token` for a rejected, unreachable or timed-out request: they now say what happened and what to check
100* Improved Bash permission checks so the same command more reliably gets the same answer on a slow or busy machine
101* Improved Bash permission checks: some commands that could run differently from how they were checked now ask for permission
102* Improved `/mcp` to show how many of a server's tools were left out because the API would reject their input schema, and why
103* Improved the "Not now" choice when Claude Code asks to turn on the mods it writes in a session: it now says when they load
104* Improved the error for an MCP tool call whose connector ID is mistyped by a character or two: for a server that the host application registered, it now names the tool to call
105* Improved Claude Desktop and cloud sessions for claude.ai accounts with more than 2,000 plugins turned on: a shorter wait at startup, and Claude can now say why plugins are missing
106* Improved memory use with many subagents: a finished subagent's transcript is freed sooner instead of staying in memory while later subagents run
107* Improved installing with the install script: the latest version is no longer downloaded twice
108* Improved WebFetch speed and memory use on deeply nested pages
109* Improved the `cleanupPeriodDays` cleanup to count folders it can't read as errors
110* Improved the Claude apps gateway's `/v1/models` to state `max_input_tokens` for models whose context window is certain on every upstream
111* Improved `ToolSearch` to say when a tool Claude searched for by its short name is already available, instead of only reporting no match
112* Improved start-up on Linux when `/home` is an autofs map: Claude Code no longer looks up files in `/home` itself. Set `CLAUDE_CODE_AUTOMOUNT_ROOTS` for a map root deeper than one folder below `/`
113* Improved the Fable limit message in `-p`, SDK, IDE and cloud sessions: it now says when the limit resets, along with how to continue
114* \[VSCode] Improved sign-in errors behind TLS-inspecting proxies: a certificate failure now says what to do, as the terminal does
115* \[Claude Code on the web] Improved the message when a file fails to upload to a cloud or Remote Control session: it now gives the reason, such as too many pages, a password or a time-out
116* \[Claude Code on the web] Improved adding a repository Claude can't access to a cloud session: a short message and a Reconnect GitHub button replace the long error
117* \[Claude Code on the web] Improved the message when some network secrets can't be added to a new cloud environment: it lists each host, says why where it can, and stays until you dismiss it
118* \[Claude Code on the web] Improved the new-session repository picker when GitHub single sign-on hides organizations: it now says so even with other repositories listed, and links to reconnect GitHub
119* \[Claude Code on the web] Improved the Git providers page when your GitHub sign-in has expired: it now asks you to reconnect instead of silently hiding organizations you can link
120
121**195 bug fixes**
122
123* Fixed running `/compact` again, or after a command such as `/context`, summarizing away a message that Claude had not answered yet
124* Fixed a resumed session joining your next message to an old interrupted message that was not resumed
125* Fixed a memory spike at the next prompt after Claude changed a very large file
126* Fixed a setting saved in a running session undoing a hand edit made to `settings.json` moments earlier; a settings file you delete during a session now stays deleted
127* Fixed `claude plugin` commands and `claude mcp list` signing you out of a Console profile when they ended while the token was being renewed
128* Fixed Edit and Bash running out of memory on certain `/proc` files, and Edit hanging or running out of memory on devices and named pipes
129* Fixed Claude Code failing to start, or to clear stored credentials at sign-out, when saving its configuration file failed with "Out of memory"
130* Fixed requests sent without streaming failing on errors that streamed requests recover from, such as a rejected image, thinking block or beta header
131* Fixed `ExitWorktree`, the worktree exit dialog and `/resume` leaving the session in the wrong folder when the folder the shell was in before entering the worktree had been deleted
132* Fixed accents and other combining marks sometimes landing left of the text, leaving stale copies on screen, or silently disappearing when text wraps
133* Fixed the last key of a key chord, such as Enter in ctrl+x enter, acting on a dialog's text field when the chord's own action isn't available there
134* Fixed `ps` processes piling up when the process listing Claude Code runs before stopping a command takes too long
135* Fixed subagent transcripts and large tool results being saved apart from the session's transcript after entering a worktree created by a `WorktreeCreate` hook or belonging to a nested repository
136* Fixed a session on a named Anthropic profile moving to another sign-in when `/fork`, the Left arrow or `--bg` continued it in the background; reopen any session that was open during the update
137* Fixed a background session sending a conversation under another sign-in when its named Anthropic profile is missing, changed or overridden; it now stops and says so
138* Fixed a session on an API key, auth token or workload identity from its shell (not a setup token) moving to another sign-in in the background; it now stops and says so
139* Fixed MCP tool calls ending in the sign-in server's error, such as `TOKEN_EXPIRED`, instead of asking you to sign in again
140* Fixed an expired claude.ai login showing "Credit balance too low" when a saved Console key or `ant auth login` profile without credit was used instead
141* Fixed a session on a named Anthropic profile being handed to an older background service that could not keep its sign-in; it now says to restart the service
142* Fixed a background session's sign-in leaving the previous account's login or other credentials in place; it now clears them for every session on the computer, and a refused sign-in can leave no login
143* Fixed background sessions moving between a profile and the stored login when an update restarted them
144* Fixed sessions opened before a sign-in keeping signed-out feature flags after the sign-in
145* Fixed sessions that kept failing after a Claude apps gateway sign-in expired: once you sign in again with `/login` in another terminal, they carry on at the next message
146* Fixed the billing notice naming your `ant auth login` organization when a custom `X-Api-Key` header is set
147* macOS: Fixed "Not logged in · Please run /login" coming back right after a successful `/login` or a token refresh when the keychain was slow to answer
148* Fixed turns failing in Claude Desktop when an organization's gateway answers an expired token with 403: Claude Code now asks Desktop for a fresh token and retries
149* Fixed the error shown when Amazon Bedrock refuses your account a model: it no longer says to refresh your AWS credentials, it says to enable the model
150* Fixed the `awsAuthRefresh` or `gcpAuthRefresh` command sometimes running twice for one request when three or more sessions needed a fresh sign-in at once
151* Fixed the `claude -p` warning about an ended claude.ai login to say that `claude auth logout` also removes saved MCP server logins and plugin secrets
152* Fixed Bash permission prompts offering "don't ask again" for commands that write to sensitive paths such as `.git` or `.claude`, where the saved rule did not stop the next prompt
153* Fixed a case where some `lsof` commands ran without a permission prompt
154* Fixed Bash commands that write a file with `cat > file <<EOF` being shown as "Read 1 file"
155* Fixed a case where Bash permission checks judged an `rm` from the wrong folder and skipped the dangerous-removal prompt under bypass permissions or a Bash allow rule
156* Fixed `--permission-mode auto` or a settings `defaultMode: auto` starting in a mode that could allow more when auto mode was unavailable. It now starts in Manual mode, which asks first
157* Fixed plan files sometimes being written outside the project when `plansDirectory` is set; a write that can't be shown to stay inside the project is now refused
158* Fixed a permission prompt when Claude read the output of its own background command or agent after entering a worktree
159* Fixed a case where Bash permission checks missed part of a command
160* Fixed a case where the Bash sandbox could switch off during a session
161* Fixed Bash allow rules with an attached wildcard, such as `Bash(ls*)`, skipping the permission prompt in some cases; a rule that names a variable, such as `Bash(NODE_ENV*)`, now asks
162* Fixed auto mode running behind a gateway at `ANTHROPIC_BASE_URL` on a model whose gateway name contains "haiku"; such a model, other than `claude-haiku-5-5`, is now refused, as Haiku 4.5 is
163* Fixed Bash deny and ask rules missing some commands run through `sudo`, `env` and similar wrappers
164* Fixed Bash allow rules written with combined `sudo` flags skipping the permission prompt in some cases
165* Fixed `sandbox.excludedCommands` letting a command that it does not name run outside the sandbox in some cases
166* Fixed a case where the Write and Edit tools could write to a path covered by a `Read` deny rule
167* Fixed a case where a Bash command ran without a permission prompt for zsh users with certain non-default shell options set
168* Fixed the Bash sandbox not fully protecting Claude Code's own config on installs still using the legacy config file
169* Fixed a permission prompt from a mod's `tool.check` hook naming every plugin hooked on the tool instead of the one that asked
170* Fixed sandboxed commands being able to read Claude Code's file checkpoint copies under the config directory
171* Fixed a rewind sometimes changing your permission mode
172* Fixed project settings sometimes being read through a symbolic link that leads to a different folder than the one Claude Code checked
173* Fixed HTTP hooks failing with HTTP 500 on Linux when `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` is set and `sandbox.enabled` is off
174* Fixed `claude -p` and the Agent SDK running Bash unsandboxed when `--settings` or SDK settings that turn the sandbox on fail validation; Claude Code now stops at start-up and names the invalid setting
175* Fixed `/export` silently stopping early after a long run of calls to an MCP tool that is no longer loaded
176* Fixed earlier MCP tool calls missing from a resumed conversation, and lines repeating in scrollback, when the server connects late
177* Fixed `claude mcp add --help` splitting long example commands across lines in narrow terminals and pipes, so a pasted example ran without its header
178* Fixed plugins with `defaultEnabled: false` staying off in a claude.ai chat's cloud session after you turn them on in claude.ai
179* Fixed `/fast on` and `/fast off` on Vertex not asking a plugin's `config.set` hook, as the `/fast` menu does
180* Fixed documents created through the Claude Docs connector not opening in your browser when you work in a terminal
181* Fixed the misleading "not cached" error for a plugin only a repository's settings enable: it now says it isn't installed, gives the install command, and shows in text and stream-json `-p` runs
182* Fixed mods being able to reword Claude Code's own confirmation questions
183* Fixed a mod's hot reload sometimes ignoring a file created just after a failed reload
184* Fixed marketplaces named `npm`, `pip`, `uv`, `cargo`, `github` or `gh` being refused as reserved names
185* Fixed a stopped MCP call, or a stopped shell command in fullscreen, reading as "Called" or "Ran" in a collapsed tool group: it now says no result was recorded and shows its input
186* Fixed load errors of plugins enabled by managed settings going only to the debug log in SDK and Desktop sessions: `init.plugin_errors` now lists them
187* Fixed plugin installs hiding what a plugin's install command wrote to stderr when that command succeeded, such as a note that the plugin has no skills yet
188* Fixed one malformed entry in a plugin marketplace's `renames` map making Claude Code ignore the marketplace's other renames
189* Fixed `claude --bg --safe-mode` sessions stopping at startup to ask about project MCP servers that safe mode never starts
190* Fixed MCP link prompts offering Accept for non-http links without saying the link wouldn't open
191* Fixed `/mcp` and `/plugins` opening an MCP server's page with the cursor on "Disable" when the server needs authentication but still holds its sign-in; the page now offers "Reconnect" and opens on it
192* Fixed plugins with a version list in `enabledPlugins` staying off with no message: `/plugin` and `claude plugin list` now say why
193* Fixed plugins and marketplaces failing to install on Windows when the path of a cloned file reaches 260 characters
194* Fixed a Stop pressed right after sending a message showing as an error in remote and SDK sessions while a `UserPromptSubmit` or plugin prompt hook was still running
195* Fixed an MCP server staying disconnected with no tools after an Agent SDK app or `claude -p` caller removed and re-added it, when a tool call had tried to reach it in between
196* Fixed text-output `claude -p` runs printing nothing to stderr when a `--plugin-dir` mod's hook hangs or crashes the hooks worker
197* Fixed SDK sessions giving an MCP server named by `--allowedTools` or an `mcp_tool` hook less than 2s before the first turn when settings lowered `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` after start-up
198* Fixed headless sessions ending when an SDK host sent a null entry in an MCP server's tools list
199* Fixed WebFetch dropping empty table cells and shifting later values a column left
200* Fixed temporary files of a session that had changed directory being left behind when the session expired under `cleanupPeriodDays`
201* Fixed managed settings (`managed-settings.json`, `managed-settings.d`) sometimes being missed at start-up while another program was rewriting the file: start-up now reads such a file a second time
202* Fixed `.claude/settings.local.json` not being ignored globally when the folder became a git repository later, or on a new machine
203* Fixed `/diff` waiting for Claude to finish before closing the diff panel in fullscreen
204* Fixed `/memory` showing wrong or roundabout paths for folders whose names start with the working directory's or home folder's name, and losing slashes in the file path on Windows
205* Fixed a broken emoji character in a tool call's parameter name being resent with later requests, which strict JSON parsers reject
206* Fixed a collapsed tool call looking as if it ran after you rejected it with a reason: it now shows "Not run · rejected"
207* Fixed a case where part of a saved session could be lost on NFS or FUSE file systems when Claude Code discarded a reply
208* Fixed WebFetch not rechecking organization policy and `CLAUDE_CODE_DISABLE_WEB_FETCH` at each call
209* Fixed file titles, app names and session names in @-mentions from claude.ai and the desktop app sometimes being treated as text you typed
210* Fixed a multi-row status line being pushed off screen by a long prompt in the fullscreen renderer
211* Fixed a case where certificate errors behind a TLS-inspecting proxy persisted when the proxy itself is reached over `https://`
212* Fixed Pro and Max accounts being offered feedback drafts that their organization would refuse
213* Fixed Claude in Chrome's policy message telling people to contact their admin when no admin setting can turn it on
214* Fixed the artifact preview sometimes opening a different artifact than the one Claude just published
215* Fixed certificate name-constraint errors being retried for minutes; they now fail at once with a message that says what to fix
216* Fixed `claude --teleport` opening an empty session when the server could not find the session's history, and `claude -p --teleport` exiting without an error when the resume failed
217* Fixed a misspelled keybinding modifier, such as `ctl+k`, binding the bare key; the binding is now ignored
218* Fixed `/btw` answers and recaps sometimes including earlier replies from the conversation
219* Fixed start-up requests switching from an organization's managed proxy and CA settings to user-set ones when a read of the managed settings file failed
220* Fixed Claude giving a wrong reason when a new message interrupted a file it was sending you
221* Fixed `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` re-running a turn that a hook's `continue: false` had stopped
222* Fixed Claude being told that automatic model switching is off when safeguards stopped a subagent whose model had no other model to switch to
223* Fixed the changed-files list of remote sessions leaving out files added with `git add -N` before the first commit
224* Fixed some Claude in Chrome tool calls, such as `browser_batch`, not showing the tool's name in the fullscreen transcript (ctrl+o) or in a subagent's progress
225* Fixed subagent progress summaries skipping an update when the reply took between 10 and 20 seconds
226* Fixed `claude doctor` and `/status` saying a linked managed settings file is still read when it could not be read
227* Fixed an interactive `--chrome` session giving no reason for starting without Claude in Chrome when your organization's policy turns it off: a line now says so
228* Fixed the `/rewind` list on network paths and hung folders: it named every tracked file as changed, was slow to show labels, and showed none at all when a file read never returned
229* Fixed `--debug` and `--debug-file` replacing a file named `latest` in the debug log's folder
230* Fixed a timed-out feedback send being reported as too large; it now says the request timed out
231* Fixed screen reader mode cutting off an announcement when the system clock moved forward while it was being read
232* Fixed screen reader mode dropping dictated or pasted text, and emoji, typed into an answer to a question or permission prompt
233* Fixed the name label under permission and plan dialogs hiding part of some agent names
234* Fixed a case where pressing Ctrl+C just as `claude update` finished removed the `claude` command
235* Fixed the fullscreen header naming the session's effort level for a viewed subagent on a different model, which that subagent doesn't use
236* Fixed the model picker and `/model` showing a picked effort level that `CLAUDE_CODE_EFFORT_LEVEL` overrides
237* Fixed the tip after a slow worktree creation suggesting a `sparsePaths` list without `.claude`, which left worktrees without your project settings and rules
238* Fixed the newest model's highlight missing from the `/model` picker
239* Fixed `/upgrade` and Ctrl+clicked links in fullscreen failing silently when no browser can open: the address is now shown
240* Fixed the Claude apps gateway's JSON logs escaping newlines and other control characters in a message twice
241* Fixed terminal control sequences in a subagent's message taking effect instead of showing as plain text when the message is expanded
242* Fixed Claude in Chrome setup saying `/chrome` finishes the connection; it now tells you to restart with `claude --chrome`
243* Fixed the Option-key hint appearing while typing ø or π inside words on Danish, Norwegian, Faroese and Greek keyboard layouts
244* Fixed a Claude Desktop session getting stuck as busy after another of your sessions sent it the same message twice or many messages at once
245* Fixed long tool results staying on disk after a session run with `--no-session-persistence`; they are now removed on normal exit, Ctrl+C or SIGTERM
246* Fixed `PreCompact`, `PostCompact` and post-compaction `SessionStart` hooks not receiving `agent_id` and `agent_type` when a subagent compacts
247* Fixed `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` dropping messages from the saved transcript when another process rewrote the file while it was being trimmed
248* Fixed the "Now using usage credits" notice repeating or not showing past the weekly Fable limit when Claude Code made a quick side request on a smaller model, such as naming the session
249* Fixed Fable's weekly limit showing no reset time and no options menu in the terminal
250* Fixed a wait chosen in the usage limit menu silently moving to a later reset when its request was refused; the menu now opens
251* Fixed the spend limit menu offering a lower limit when your current limit couldn't be loaded
252* Fixed `/usage` hiding limit bars for setup tokens and `CLAUDE_CODE_OAUTH_TOKEN`: it keeps the session and weekly bars and says why the rest are missing
253* Fixed `/usage` showing a whole-session percentage beside a subagent type's name, and saying sessions ran 8 hours when it only counts hours with requests
254* Remote Control: Fixed sessions showing as disconnected for a minute or more after a network change such as switching Wi-Fi or reconnecting a VPN
255* Fixed Remote Control showing nothing while Claude Code asks whether to use usage credits: the question now also shows in the Claude app
256* Fixed Remote Control showing a session as running while it waited on a permission prompt that can only be answered in the terminal
257* Remote Control: Fixed `claude remote-control` reconnecting as a new computer when restarted in the same folder more than 4 hours after it stopped; it now keeps its identity for up to 30 days
258* Remote Control: Fixed sessions left running at shutdown, and finished sessions holding their slot, when the disk stops responding
259* Remote Control: Fixed other devices and phone notifications not showing what Claude is asking permission for when `DISABLE_TELEMETRY` or `DO_NOT_TRACK` is set
260* Remote Control: Fixed the host exiting, or stopping reading a session's output, in verbose or debug mode when a tool call's `command` was a number, boolean or object
261* Remote Control: Fixed a host that could stall after sessions failed to start in folders on a filesystem that had stopped responding
262* Remote Control: Fixed sessions from the desktop app showing as idle on your phone while background subagents were still running
263* Fixed the Agent SDK's `managedSettings` ignoring the Remote Control, agent view, Workflows and Artifact off switches
264* Fixed OpenTelemetry export failing silently when an `otlp` exporter had an endpoint but no `OTEL_EXPORTER_OTLP_PROTOCOL`: it now defaults to `http/protobuf`
265* Fixed OpenTelemetry export to the default `localhost:4318` endpoint going through a configured proxy
266* Fixed one malformed `OTEL_RESOURCE_ATTRIBUTES` entry dropping all of that variable's attributes from the OpenTelemetry resource; the others are now kept, and `/status` names the one left off
267* Fixed OpenTelemetry `user_prompt` events and interaction spans recording a background agent's reply when `OTEL_LOG_ASSISTANT_RESPONSES=0`
268* Fixed OpenTelemetry exports failing when a proxy took over 10 seconds to reach the collector; it now has 25 seconds, also the most that `OTEL_EXPORTER_OTLP_TIMEOUT` can allow (previously 30)
269* Fixed OpenTelemetry `agent.name` showing a user-defined subagent's name instead of `custom` when an official plugin's skill launched it
270* Fixed `claude agents` showing a status from an earlier turn after a session resumes
271* Fixed read-only git commands needing approval, or being refused under `claude -p`, when `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` is set on Linux
272* Fixed `claude agents` losing a typed prompt: Esc now needs a second press to clear it, and ctrl+y restores it
273* Fixed the move-to-background key doing nothing in `claude attach` and `claude agents` sessions; to detach with Ctrl+B d, press d within 800 ms of Ctrl+B
274* Fixed background sessions ignoring a `DISABLE_ERROR_REPORTING` set only in your shell when the background service started without it
275* Fixed false "needs input" notifications in `claude agents` after replying to a blocked session, and repeated ones after a background turn ended with no text and only basic tools such as Bash or Read
276* Fixed `claude -p` silently using another model in text output when settings block the requested one; it now warns on stderr
277* Fixed `claude -p` printing notes about `deniedModels` and `availableModels` entries on every run; `/status` and `claude doctor` still list them
278* Windows: Fixed some file-reading Bash commands running without a permission prompt when given a wildcard or a list of files
279* Windows: Fixed Claude Code running a `.cmd` or `.bat` wrapper found beside a program's `.exe` in the same PATH folder (a `git.cmd` next to `git.exe`, say); it now runs the `.exe`, as `cmd.exe` would
280* Windows: Fixed shell commands failing with "Working directory was deleted" on drives where a folder's real path can't be resolved
281* Fixed a cloud session's history becoming unreadable if its machine stopped just after the history was rewritten
282* Fixed scheduled tasks from an ended session sometimes not running after another session in the same folder used `/clear`, `/resume` or `/branch`
283* Fixed an approved plan being answered with "You are not in plan mode" when the approval arrived after the session's process had restarted, in cloud, self-hosted runner and SDK sessions
284* Cloud sessions: Fixed an answer to Claude's question being lost after a restart in a long conversation
285* Fixed a message dropping out of a cloud session's conversation when the session restarted before Claude replied
286* Cloud sessions: Fixed Claude saying an attached image is missing when the message names its file
287* Fixed a resumed cloud session making a model call nobody asked for when files arrived right after a chat's first reply
288* Fixed streamed replies in cloud sessions missing text from the middle when the session's container shut down partway through a reply
289* Fixed skill files sent from Cowork cloud sessions sometimes failing to upload on the first try
290* \[VSCode] Fixed a response that was discarded because its tool call could not be parsed still showing after Claude retried
291* \[VSCode] Fixed a queued message missing from a conversation or fork when it directly followed a compaction summary
292* \[VSCode] Fixed the "Buy usage credits on claude.ai" button counting as agreement to pay for Fable while usage credits were off
293* \[VSCode] Fixed the "extensions want to relaunch the terminal" warning coming back on open terminals after every window reload or restart
294* \[VSCode] Fixed "Couldn't load this conversation's saved history" appearing in a new chat whose Claude process had restarted before the first prompt
295* \[VSCode] Fixed the sign-in screen showing the login choices again after a pasted code; it now shows "Signing in…" until the sign-in finishes
296* \[VSCode] Fixed the "You've hit your Fable limit" line staying in the VS Code and JetBrains panels after you pick another model
297* \[VSCode] Fixed the Fable usage warning in the VS Code and JetBrains panels naming usage credits when they're off or used up
298* \[VSCode] Fixed the diff tab not opening for multi-line edits on files with CRLF line endings
299* \[VSCode] Fixed dictation continuing to record after switching sessions
300* \[Claude Code on the web] Fixed self-hosted sessions staying on "Starting Claude Code" after it had started, when you reopened a paused session without sending a message
301* \[Claude Code on the web] Fixed a paused session in a self-hosted environment sometimes still showing "Sending" and a Stop button under the "Session paused" banner
302* \[Claude Code on the web] Fixed pull request updates from GitHub Enterprise Server linking to github.com in cloud sessions; new updates link to your own server
303* \[Claude Code on the web] Fixed very large GitHub Actions job logs and run log archives failing to download or being cut off in cloud sessions
304* \[Claude Code on the web] Fixed new cloud sessions started from the iOS app with a repository not getting a branch of their own
305* \[Claude Code on the web] Fixed an open cloud or Remote Control session's page staying "Disconnected" after a few minutes of failed connections; it now tries to reconnect by itself
306* \[Claude Code on the web] Fixed Try again on an open cloud or Remote Control session's "Connection lost" card sending "Try again" as your message; it now tries to reconnect instead
307* \[Claude Code on the web] Fixed the Stop button disappearing from a cloud session five minutes into a reply that had shown nothing yet while Claude was still working
308* \[Claude Code on the web] Fixed an approval prompt sometimes disappearing from a tab left open after a self-hosted runner released the session while it waited for your answer
309* \[Claude Code on the web] Fixed removing a repository from a scheduled task silently moving its GitHub trigger to another repository; Save now waits until you pick one
310* \[Claude Code on the web] Fixed git clones and fetches that take longer than ten minutes in a cloud session sometimes being cut off at the very end
311* \[Remote Control] Fixed your own session saying its environment was deleted when you deleted nothing; it now says your computer is no longer connected
312* \[Remote Control] Fixed some sessions still showing as running in the session list after the computer disconnected before Claude started; they now show an error mark or as idle
313* \[Claude Tag] Fixed scheduled tasks in a Slack channel moved between Enterprise Grid workspaces failing to use Slack until someone posted there
314* \[Claude Tag] Fixed the Approve and post card in a DM with Claude appearing for private or Slack Connect channels, where Claude can't post; Claude now gets the reason and shows no card
315* \[Claude Tag] Fixed Remove connector in Claude Tag admin settings being refused when access bundles also held its credentials; it now removes those set on the connector and leaves the bundles' own
316* \[Claude Tag] Fixed the Channels tab in Claude Tag admin settings splitting a workspace from its channels across pages; channels now appear right under their workspace
317* \[Claude Tag] Fixed the Set for Claude Tag link on the Cloud environments admin page not leading to the environment setting; it now opens the Slack page's Advanced tab, where you set it
8318
9319**2.1.322**
10320
from line 6416
61066416* Fixed Bash permission checks treating zsh variable subscripts and modifiers in `[[ ]]` comparisons as inert text — these commands now prompt for approval
61076417* Fixed Bash permission checks to no longer auto-approve certain `help` and `man` commands that could run unsafe options, command substitutions, or backslash paths
61086418* Fixed permission prompts on remote sessions that could proceed before the local confirmation dialog
6109* Fixed a crash when a GrowthBook feature evaluates to null, and a bug where a malformed flag payload could wipe the cached feature flags
6419* Fixed a crash when a feature flag evaluates to null, and a bug where a malformed flag payload could wipe the cached feature flags
61106420* Fixed Bash tool killing the Claude session when a `pkill -f` pattern accidentally matched the CLI's own process (Linux)
61116421* 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
61126422* Fixed streaming turns failing with "Socket is closed" behind corporate proxies on Windows
from line 10586
1027610586* Fixed teammates accidentally spawning nested teammates via the Agent tool's `name` parameter
1027710587* Fixed `CLAUDE_CODE_MAX_OUTPUT_TOKENS` being ignored during conversation compaction
1027810588* Fixed `/compact` summary rendering as a user bubble in SDK consumers (Claude Code Remote web UI, VSCode extension)
10279* Fixed voice space bar getting stuck after a failed voice activation (module loading race, cold GrowthBook)
10589* Fixed voice space bar getting stuck after a failed voice activation (module loading race, feature flags not yet fetched)
1028010590* Fixed worktree file copy on Windows
1028110591* Fixed global `.claude` folder detection on Windows
1028210592* Fixed symlink bypass where writing new files through a symlinked parent directory could escape the working directory in `acceptEdits` mode
1028310593