Follow Discord
Sweep 22 Oct 2026 · 21:04Z Build v2.1.309 528 read Stable v2.1.308 Latest v2.1.309 Next v2.1.309 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · claude-code

Claude Code changelog changedchangelog

Nearest release: v2.1.309, published an hour before upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Upstream edited this page at 22 Oct 2026 22:30 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 22 Oct 2026 22:37 UTC.

Upstream edited
Recorded here
Lines+95added
Lines−0removed
From line 6 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits72to this page, all time

The whole hunk

from line 6, old and new numbered
/
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.

from line 6
66 
77Run `claude --version` to check your installed version.
88 
9**2.1.309**
10 
11October 22, 2026
12 
13**Added**
14 
15* \[VSCode] Added a log warning that says what to do when dictation or the extension's own requests fail certificate verification, such as behind a TLS-inspecting proxy
16 
17**Changed**
18 
19* Updated the bundled dataviz skill to accept APCA as a text-contrast measure (keeping WCAG 2 ratios where AA conformance is required), add an `apca(text, background)` function to its palette validator scripts, and say whether a label inside a colored chart fill should be white or near-black
20* Updated the /claude-api skill: service account keys and Workload Identity Federation tokens can now manage OpenTelemetry destinations
21* Changed `sed -i` to get the standard Bash prompt and run as written, not a simulated file-edit preview; like other Bash edits, it is no longer restored by `/rewind`
22* Changed `claude ultrareview` to require workspace trust: it asks on a terminal, else refuses; scripts pass `--trust-workspace`, which takes no value (put a PR number or base branch before it), or set `CLAUDE_CODE_DISABLE_ULTRAREVIEW_TRUST_CHECK=1`
23* Changed the dangerous `rm` and `rmdir` prompt in bypass permissions mode in the Desktop app and VS Code to deny the command at once with a rewrite hint, so unattended sessions keep going
24* Changed commands the settings exclude from the sandbox to ask before writing to its write-list paths while the sandbox is enabled but cannot run; the unsandboxed fallback is refused there
25* Changed worktree creation and reuse so git no longer fetches objects on demand, in ordinary clones and in partial clones with a Bash sandbox configured; such a partial clone fetches them first
26* Changed the `/claude-api` skill to build Managed Agents subagent teams on `multiagent_20261001` with dynamic workflows on by default, instead of `coordinator`
27 
28**8 improvements**
29 
30* Improved the speed of many git commands Claude Code runs for itself on Windows; on every platform, errors from those commands now show in English even when git is set to another language
31* Improved the error when a hooks module is nested too deep to load: it now names the file instead of showing a bare stack-overflow message
32* Improved disk-full handling: a Bash command cut off by a full disk now says so and names the folder to free up, and starting on a full temp volume prints a clear message, not a raw ENOSPC error
33* Improved the /claude-api skill to offer API tracing alongside SDK tracing when asked to add OpenTelemetry
34* Improved the /claude-api skill to check the live docs before saying a feature is unsupported
35* Self-hosted runner: Improved sessions that move to a new runner: Claude now sees the tool call that was interrupted, marked as outcome unknown
36* \[VSCode] Improved Edit and Write speed in the chat panel: the wait for new problems after each edit is now 0.75 seconds in most cases, down from 1 to 1.5 seconds
37* \[Cloud sessions] Improved a cloud session's Changes pane, which now says when it lists only pushed commits or only Claude's edits
38 
39**62 bug fixes**
40 
41* Fixed sandboxed Bash commands on macOS and Linux running the shell's startup files outside the sandbox before each command
42* Fixed macOS sandbox `denyWrite` glob patterns not applying at a path's real location when the pattern's folder is reached through a symlink
43* Fixed sandboxed commands and auto-accepted edits being able to modify the MCP config file passed with `--mcp-config`
44* Fixed a disabled MCP server being reconnected by a later permission prompt in print and SDK sessions
45* Fixed the Bash permission check trusting a variable set by a command whose redirect can fail to open
46* Fixed Bash permission checks not prompting for some compound commands that change directory before running git when the `cd` is wrapped or prefixed, as they do for a plain `cd`
47* Fixed an `Edit(path)` deny rule not blocking a Bash redirect to that path in some commands that also held a subshell
48* Fixed worktree-isolated sessions accepting some locale-prefixed commands the isolation guard should refuse
49* Fixed worktree-isolated sessions on zsh accepting some arithmetic commands that the isolation guard should refuse
50* Fixed worktrees and branch checkouts that Claude Code creates so they ignore git replace refs, as its other git operations already do
51* Fixed profile store write protection not applying when the config directory is reached through a symlink
52* Fixed sessions compacting repeatedly after reading files under a very large nested CLAUDE.md; a nested CLAUDE.md over the size limit now loads only its start
53* Fixed ctrl+enter (send now) only queuing a message when pressed before the response had started, and restarting a prompt's hooks while leaving the message queued when pressed while those hooks were running
54* Fixed key-bound slash commands running in the shell from `!` mode
55* Fixed ctrl+o not showing messages from other agents and sessions that are still waiting to be delivered; they now appear in full under the transcript, marked as waiting
56* Fixed long tool output previews being cut through an emoji, leaving session transcripts that `jq` could not parse
57* Fixed Read reporting "File does not exist" for PDF page ranges in Linux sandboxes that share the parent's `/proc`
58* Fixed messages from a Claude Desktop-hosted session sometimes being lost when its connection refreshed
59* Fixed features missing from Claude Code sessions in the Claude desktop app when the terminal on the same computer was signed in to a different account or organization
60* Fixed the `claude remote-control` status line showing `HEAD` as the branch for a folder that is not in a git repository
61* Fixed split-pane agent teammates not inheriting the tool deny and `--tools` rules given on the leader's command line
62* Fixed sessions renamed with `/rename` appearing to other sessions under a generated name after a VS Code window reload or a non-interactive `--resume`
63* Fixed the `/rewind` list showing "No code changes" for a turn that changed checkpointed files through `/code-review --fix`, a subagent or a shell command
64* Fixed `/privacy-settings` showing an out-of-date "Help improve our AI models" value; it now also says when the setting can't be fetched
65* Fixed feedback saying "try again later" when your organization does not accept feedback; it now shows the server's reason and where to report a bug
66* Fixed oversized /feedback reports failing instead of being resent without the transcript
67* Fixed a skill in an `--add-dir` folder being unreachable when another skill already held its name; it is now offered as `<folder>:<name>`
68* Fixed `/verify` and `/code-review` not finding a nested package's own skill when its files were changed from the shell
69* Fixed the /claude-api skill saying that `ant beta:worker poll --on-work` passes trace context to the command
70* Fixed the /claude-api skill's C# tracing setup missing spans from the cloud platform clients
71* Fixed the /claude-api skill saying that API spans for requests to Claude Platform on AWS can't join the caller's trace
72* Fixed hooks that run in PowerShell not blocking when the hook's program exits with code 2, and on Windows `PreToolUse` and `PermissionRequest` hooks with `"shell": "powershell"` failing open when Git for Windows isn't installed
73* Fixed a mod's `turn.step` hook that names a model by alias, such as `haiku`, failing every request with a model error: the alias now resolves to its model
74* Fixed plugins and skills synced from claude.ai being removed, sometimes mid-session, after a disk read error
75* Fixed artifact publishes and updates being refused for some ordinary pages, such as pages with certain minified scripts or artifacts Claude could not read first
76* Fixed Claude asking for permission on each artifact update for the rest of a turn after the conversation was compacted in that turn
77* Fixed fine-grained tool streaming staying off on Amazon Bedrock when `ANTHROPIC_BEDROCK_BASE_URL` is set to the default `bedrock-runtime.<region>.amazonaws.com` endpoint
78* Fixed the "Waiting for API response" hint flickering behind gateways that send only keepalive pings: routes off Anthropic's backend now wait 45 seconds
79* Fixed Claude notifying unrelated GitHub users by writing role names and placeholders as mentions in PRs, issues and comments
80* Linux: Fixed sandbox write denies lifting when a background command outlived the session
81* Windows: Fixed PowerShell permission checks auto-approving some `Set-Location` or `cd` commands that target the current directory and carry extra arguments; these now prompt for approval
82* macOS: Fixed the "Install Command Line Developer Tools" dialog opening each time Claude Code starts on a Mac without Xcode or the Command Line Tools
83* Self-hosted runner: Fixed `--startup-timeout-min` stopping a session whose first prompt, such as `/code-review`, was still working in a subagent; a frozen process is still stopped
84* \[VSCode] Fixed the Claude panel staying blank after the editor cached an incomplete copy of its files; it now recovers by itself, or says what went wrong and how to fix it
85* \[VSCode] Fixed Session history filling up with empty "Untitled" sessions each time you start a new session without sending a message
86* \[VSCode] Fixed long slash-command messages such as `/goal` filling the chat panel; they now fold behind Show more like other prompts (anthropics/claude-code#97469)
87* \[VSCode] Fixed long messages not folding behind Show more after the chat panel is made narrower
88* \[VSCode] Fixed Ctrl+J in the chat input always inserting a newline: it is now left to VS Code and the OS when "ctrl+j" is set to null in the Chat context of \~/.claude/keybindings.json
89* \[VSCode] Fixed a mod's "From the … plugin" label above the prompt being drawn over the slash command and @-mention menus (anthropics/claude-code#102981)
90* \[VSCode] Fixed an empty list item, paragraph or code block, and list items renumbered from 1, when pasting copied LaTeX math
91* \[VSCode] Fixed the feedback error showing only an HTTP status when your organization does not accept feedback
92* \[Cloud sessions] Fixed the Add connector list in routine forms saying no connectors were available while they were still loading
93* \[Cloud sessions] Fixed the cloud environment editor shuffling environment variables and adding backslashes to values that contain both kinds of quote
94* \[Cloud sessions] Fixed the self-hosted environment details dialog in admin settings so its title, tabs and buttons stay in view while only the content scrolls
95* \[Cloud sessions] Fixed the "read documentation" tool row in cloud sessions, which showed escaped JSON instead of a readable page
96* \[Claude Tag] Fixed Claude in Slack posting a draft you approved for a channel into your DM by mistake; a post with no channel is now refused so it can go to the approved channel
97* \[Claude Tag] Fixed Allow and Deny on Claude's approval cards in Slack doing nothing when the session had stopped; your answer now restarts the session
98* \[Claude Tag] Fixed Claude ignoring untagged messages in a Slack channel after its workspace moved to a different Claude organization, including unshared channels on Enterprise Grid
99* \[Claude Tag] Fixed Claude in a Slack channel posting a threaded reply before reading a newer message someone had just added to that thread
100* \[Claude Tag] Fixed the Slack page in Claude Tag admin settings saying no workspaces were connected when the list failed to load; it now shows an error with a Retry button
101* \[Code Review] Fixed a finished review showing no check on the pull request when earlier tries to create it failed; a final try now adds a completed check
102* \[Code Review] Fixed a push queued behind a running review still starting a review after `@claude review stop`; its check now closes and says why
103 
9104**2.1.308**
10105 
11106October 22, 2026
from line 2069
19742069* \[VSCode] Fixed messages from other agents, sessions or channels disappearing after a reload
19752070* \[VSCode] Fixed a user's own `/mcp`, `/config` or `/settings` command being shadowed by the extension's dialog
19762071* \[VSCode] Fixed Escape stopping every background agent when no turn was running
1977* \[VSCode] Fixed plugin install links replacing a marketplace you already have that uses the same name
1978* \[VSCode] Fixed "Prompt is too long" errors after compaction when a large text file is attached to a message
1979* \[VSCode] Fixed chat links to files with non-ASCII characters, spaces or brackets in their path not opening
1980* \[Cloud sessions] Fixed a routine's Edit and Duplicate controls saying the routine was still loading while you were offline; they now tell you you're offline
1981* \[Claude Tag] Fixed the earlier Claude in Slack app's progress card and link previews omitting the repository and Create PR button when a GitHub Enterprise host name contains an underscore
1982* \[Claude Tag] Fixed Claude staying silent in a channel whose environment declines to start it; it now posts one notice asking you to contact an admin, and retries when @-mentioned
1983* \[Code Review] Fixed Code Review giving up without posting a finished review when an unsubmitted review under its GitHub App was open on the pull request; it now retries the post first
1984 
1985**2.1.283**
1986 
1987September 25, 2026
1988 
1989**Added**
1990 
1991* Added `x-claude-code-prompt-id` to the gateway hint headers so LLM gateways can group the requests that serve one user prompt; opt in with `CLAUDE_CODE_GATEWAY_HINT_HEADERS=1`
1992* Added `availableModelsMatch` managed setting: with `"exact"`, an `availableModels` entry allows only the model version it names, so new releases stay blocked until listed
1993* Added `deniedModels` managed setting to block specific models, even when `availableModels` allows them
1994* Added MCP tool, WebFetch and WebSearch outputs to the `tool.output` OpenTelemetry span event when `OTEL_LOG_TOOL_CONTENT=1`
1995* Added `/doctor prompt-audit` (also `/checkup prompt-audit`) to audit your CLAUDE.md files, skills, agents and commands for prompting patterns written for older models
1996* Added click-to-expand for truncated messages from your other sessions in fullscreen mode
1997* Added `path` to `--plugin-dir` load-failure entries in the stream-json `system/init` `plugin_errors`, naming the directory that did not load
1998* Added an opt-in `load_test_mode` block to the Claude apps gateway config: requests are built and signed but not sent upstream, and clients get a canned reply, so a deployment can be load tested
1999* Added a `mantle` upstream provider to the Claude apps gateway for Amazon Bedrock's Mantle endpoint
2000* \[Claude Tag] Added a "Channels Claude can search" admin setting that limits Claude's Slack search to public channels it has been added to, set per organization, workspace or channel
2001* \[Claude Tag] Added a Back to Slack button on the page shown after connecting your Claude account, returning you to the thread you started from
2002 
2003**Changed**
2004 
2005* Changed interactive sessions on third-party providers or with telemetry off to start in auto mode when no permission mode is configured; `permissions.defaultMode` still overrides it
2006* Changed the `/ultrareview` launch dialog to say that reviewing a local branch may upload uncommitted changes to tracked files
2007* Changed the `/model` picker's Opus row and the Default model's name to drop "(1M context)" where Opus already has a 1M context window; the window is unchanged
2008* Changed prompt suggestions in the terminal to appear less often after 20 in a row go unused; using one brings them back
2009* Changed `--system-prompt` and `--append-system-prompt` to accept their text and `-file` forms together; the file's text comes first
2010* Changed `Skill(anthropic-skills:<name>)` deny rules to also block that skill when Claude Desktop delivers it as a plugin, and `Skill(skill:<name>)` denies to match the skill's alias and display name
2011* Changed `/rewind` and `/diff` lists to move on the same keybinding actions as every other list (`select:*`); `messageSelector:*`/`diff:*` rebinds still work
2012* Changed the `/workflows` run list to size itself like other lists: half the terminal inline, and it keeps its title on screen when the prompt shows below
2013* Changed `claude plugin eval` to require git 2.31 or later when git is installed; a run on an older git is refused with a message naming the version
2014* Changed artifact watching: a watch that was armed automatically (not one you asked for) now ends after 3.5 hours with no activity; publishing or watching the artifact again re-arms it
2015* Self-hosted runner: Changed lifecycle hooks' git to skip a repository's Git LFS `pre-push` hook, ignore a writable system `core.hooksPath`, and not sign commits without `--configure-git`
2016* Self-hosted runner: Changed `GIT_SSL_CAINFO` and `GIT_SSL_NO_VERIFY` under Anthropic-managed git: the runner's own git always verifies Anthropic's git route, and warning lines say what applies where
2017* Reverted the 2.1.282 reservation of the `claude-ai` name: skills, commands, workflows and MCP servers' skills and prompts so named load again, and `Skill(claude-ai:*)` rules are ordinary prefix rules
2018* \[Cloud sessions] Changed new routine schedules to default to a few minutes past the hour, with a note that routines set exactly on the hour can start several minutes late
2019 
2020**16 improvements**
2021 
2022* Improved the `/mcp` tool list: it shows more tools at once, scrolls with the page keys and mouse, and marks tools your organization blocked with a warning icon
2023* Improved MCP tool results: images returned by MCP tools are now also saved to a file, so Bash, Read and other tools can open them
2024* Improved `/tasks`: rows show a status icon, the name and whole facts, the title and key hints stay on screen with many tasks, and the list gains paging keys, the mouse wheel and clicks
2025* Improved lists in `/help`, `/hooks`, `/copy`, `/chrome`, `/memory`, `/ide`, `/release-notes`, `/rewind`, `/diff`, `/remote-env`, `/plugin` and other pickers with page keys, mouse wheel and clicks
2026* Improved lists beside a search box, such as `/skills` and `/artifacts`, to draw their pointer dim while the search box has the keys, so only one pointer is highlighted
2027* Improved the compaction spinner: its timer now starts when compaction begins and it counts the summary's tokens as they stream, replacing the percentage bar
2028* Improved the browser page shown after signing in to an MCP server: centered layout, dark mode, and new artwork
2029* Improved the Skill tool's reply when a skill belongs to a plugin that failed to load, so Claude tells you the plugin could not be loaded instead of calling the skill uninstalled
2030* Improved `prompt-audit` on Claude Code configuration: stale paths, stale commands and contradicting instruction files now lead the report, and thinking keywords that Claude Code documents are kept
2031* Improved recovery from an `installed_plugins.json` that cannot be read at all: its contents are kept in a file beside it before it is rebuilt, and `claude plugin list` names that file
2032* Improved artifact database reads: an ordered query that returns a full page now says it is one page and how to read the rest
2033* Improved first-reply latency: a pattern-compile step that ran at the end of a session's first reply now runs while the reply streams in
2034* Improved first-request latency by reusing the preconnected API connection
2035* Improved startup: `claude -p` and Claude Code Remote no longer load the interactive UI, and the auto-mode classifier's rules and the Artifact tool load on first use instead of at launch
2036* Improved startup for claude.ai accounts whose Artifact tool features aren't known yet, as on a first run: the prompt no longer waits up to 1.5 s to check them; the first message waits if needed
2037* \[Cloud sessions] Improved adding a repository to a running cloud session: a private repository your GitHub account can read but not push to now attaches for reading
2038 
2039**53 bug fixes**
2040 
2041* Fixed SDK sessions losing a deferred tool call or finished tool result when a turn ended early, a held approval prompt after a worker restart, and a non-streaming fallback's `result.usage`
2042* Fixed MCP progress notifications being discarded once a long-running tool call moved to the background; the background task now shows the latest progress
2043* Fixed stdio MCP servers being left running when the session ended while they were still starting
2044* Fixed a brief HTTP 404 from a stateless remote MCP server (for example a proxy mid-redeploy) leaving that server unusable for the rest of the session while still shown as connected
2045* Fixed MCP sign-in for a server with no valid URL failing with an opaque SDK error; `/mcp` no longer offers Authenticate for such servers
2046* Fixed the weekly Fable limit not appearing in `/usage` and the VS Code usage meters when telemetry is disabled
2047* Fixed `/model` accepting Sonnet 4.6 or Sonnet 5 with `[1m]` when the id carried a date or `-v1:0` suffix, in the cases where the plain id was refused
2048* Fixed `/model` picker showing a hardcoded Haiku version and price when `ANTHROPIC_DEFAULT_HAIKU_MODEL` pins a different model
2049* Fixed dynamic workflows started during a model fallback running every agent on the fallback model instead of retrying the configured model
2050* Fixed `DISABLE_PROMPT_CACHING_HAIKU` having no effect when Haiku is the session's main model
2051* Fixed `claude plugin validate` saying Claude Code accepts a plugin or marketplace name it cannot install; such names in `marketplace.json` now fail validation
2052* Fixed `claude plugin validate` passing plugins whose `outputStyles`, `themes`, `monitors`, or `lspServers` paths are missing or point outside the plugin directory
2053* Fixed `claude plugin details` showing 0 MCP servers for plugins that declare their servers in `plugin.json`
2054* Fixed `claude plugin marketplace remove` not saying which installed plugins it uninstalled with the marketplace; it now lists them
2055* Fixed `claude plugin uninstall` removing the other of two installed plugins whose ids differ only in case, with its options and secrets, when the one named had no `enabledPlugins` entry at that scope
2056* Fixed plugins that declare no version being silently restored at their source's newest commit, not the installed one, when their cached files were missing
2057* Fixed user-installed plugins and marketplaces failing to load with "cache-miss" after the home or config directory was moved, for example in bind-mounted devcontainers
2058* Fixed `installed_plugins.json` showing no plugins when it holds a record under an invalid plugin id; such a file loads again
2059* Fixed `installed_plugins.json` being rewritten, losing records, when it holds a record this version cannot read; `claude plugin` commands now name the record and say how to recover
2060* Fixed permission dialogs in screen-reader mode reading quoted commands and paths as if they were the dialog's own text
2061* Fixed `/context` not counting MCP server instructions: they now appear as their own row and count toward the total
2062* Fixed markdown links in the Warp terminal rendering as plain text instead of clickable hyperlinks
2063* Fixed `claude mcp add`, `add-json`, and `remove` reporting success when the user or local config file could not be written, for example inside a sandbox
2064* Fixed the first words of a reply in a cloud session sometimes appearing late instead of streaming as Claude writes them
2065* Fixed Claude's built-in keybindings guide saying chords time out after 1 second instead of 3, and calling `cmd` an alias of `meta`, which could produce `cmd+` shortcuts most terminals never send
2066* Fixed `keybindings.json` silently accepting a misspelled modifier such as `ctl+k`; it now warns in the debug log and suggests the fix
2067* Fixed footer hints still saying "Enter to view" after `footer:openSelected` was rebound or unbound in `keybindings.json`
2068* Fixed keys typed quickly together (type-ahead, key repeat, bursts over ssh or tmux) sometimes being handled against stale state
2069* Fixed worktree checkouts failing certificate verification (for example on Git LFS
2072* \[VSCode] Fixed plugi
Feedback