Release notes
Claude Code v2.1.321
What's changed
- Added Claude Fable 5.2 (
claude-fable-5-2), now the default Fable model — 1M context, $8/$40 per Mtok with $0.20/Mtok cache reads - Added
--settings <file>toclaude remote-control, which applies a settings file to every session it starts; if the file changes, no new session starts until you restartclaude remote-control - Fixed MCP OAuth requests sending secrets such as refresh tokens to another host when a server redirected them
- Fixed a case where a read-only Bash command ran outside the sandbox without a permission prompt
- Fixed a case where Bash permission checks judged a file write from the wrong folder and didn't prompt
- Fixed deny rules and protected-file prompts not applying to the file that a
cpormvinto a directory writes - Fixed the "Draws from usage credits" note showing after a switch to Fable on Enterprise seats whose plan includes Fable
- Fixed the fallback model sometimes declining a request or mentioning a stopped response when the first model was blocked before replying
- Fixed
claude mcp loginprinting a SEP-2352 issuer warning each time you sign in again to a server that Claude Code registered with - Fixed
NotebookEditdeleting or overwriting a notebook's first cell when the call named no cell, on network paths (UNC shares, WSL folders,/netmounts) - Fixed Edit changing the first of several matches, replacing a whole file on an empty
old_string, or editing a notebook as text, on network paths (UNC shares, WSL folders,/netmounts) - Fixed
/configshowing Manual as the default permission mode when new sessions start in auto mode; pressing Space on "Auto (default)" now saves Don't Ask, not Plan - Windows: Fixed
FileChangedhooks stopping for paths set throughwatchPathsafter the first shell command, when the session's working directory had a lowercase drive letter - Fixed
--plugin-dir .and--plugin-dir ./builtinwriting generated type files for Claude Code's built-in plugins into abuiltinfolder - Fixed context usage estimates overcounting tool definitions when exact token counts are unavailable
- Fixed
/compactshowing twice in Remote Control on web and mobile - Fixed plugin auto-updates and
/pluginmarketplace updates downloading a plugin again for each worktree or folder of a repository - Fixed auto mode losing a background subagent's report that had started a turn when the conversation was compacted before Claude answered it
- Fixed project skills, commands and agents staying missing after their folder was removed and came back mid-session, such as with
git stash, including after entering a worktree - Fixed
claude -psometimes telling Claude that background commands get 30 minutes when they are stopped after 10 - Fixed
pkill,pgrepandpidwaitin cloud sessions matching the session's own parent processes - Fixed Claude in Chrome and computer use server processes staying alive after their parent exits behind a proxy that stalls connections
- Fixed a large hook output pointing Claude to a file that held another hook's output from the same tool call
- Fixed apps that embed Claude Code getting their own PreToolUse hook's
askreason instead of another hook's when both asked - Fixed a PreToolUse hook's
askbeing lost when another hook'sdeferfinished first and could not be honored - Fixed a rare crash on permission prompts and background tasks
- Fixed project skills, commands and agents disappearing from the menu in SDK and desktop sessions after Claude entered a worktree
- Fixed
/desktopon macOS saying Claude Desktop is not installed when it is in~/Applications - Fixed OpenTelemetry repository attributes (
vcs.*) missing from Claude Desktop sessions that start on a pre-started process - Fixed WebFetch passing "No response from model" to Claude as page content when the model reading the page returned no text; the call now fails with a clear error
- Fixed screen reader mode delaying the prompt at startup when the system clock moved back while Claude Code was starting
- Fixed a command's panel sometimes not coming back after a dialog closed, leaving no panel or prompt on screen until the next redraw
- Fixed a project's MCP server being disconnected after the first message in a Claude Desktop Code tab session when the desktop app has an MCP server or extension of the same name
- Fixed a turn ending with "API Error: EPROTO: The TLS handshake failed" when the connection broke partway through a reply; the partial reply is kept or the request is retried, as before 2.1.302
- Fixed high memory use in long sessions that repeatedly read single lines from large files
- Fixed fast mode losing replies, switching models or retrying for minutes when fast serving is rate-limited, overloaded or failing; it now tries standard speed on the same model first
- Fixed one request carrying far more background agent reports than intended after Claude was stopped while several were waiting
- Fixed messages from a Claude Desktop Code tab session to your other sessions staying paused after you typed while Claude was still working
- Fixed
claude agentsignoring--permission-mode,--dangerously-skip-permissions,--model,--effortor--agenttyped beforeagentswhen a flag such as--verbosewas also on the line - Fixed a case where Remote Control showed as off with "login expired" in the desktop app while its connection was still up, because the app was briefly unable to hand over a sign-in token
- Fixed a Remote Control message sent with "Queue for later" reaching Claude in the middle of the running turn
- Fixed the git status given to Claude at session start reading as clean when git status failed; it now reads as unavailable
- Fixed the git status given to Claude at session start showing the first listed file as staged when its changes were not staged
- Fixed a hang or out-of-memory crash when a connector in a cloud session lists resources with very long names
- Fixed Remote Control showing as connected after its connection closed for good while the session's history was still uploading
- Fixed screen reader mode turning off when you return to a conversation from agent view
- Fixed screen reader mode y/n questions taking as yes a stray "y" at the end of text typed as the question opened
- Fixed cloud sessions telling Claude that a host is probably not allowed when it is allowed and the network proxy could not connect to it
- Fixed an MCP server sometimes showing as connected with no tools after it was reconnected or the session's directory changed while its tools were still loading
- Fixed Bash commands sometimes running in the wrong folder when Claude sent several at once and an earlier one changed folders
- Fixed files Claude sends from cloud and Remote Control sessions failing at once when an upload gets an HTTP 507 from a proxy; the upload now gets a second try
- Fixed new messages not being saved, and
claude -p, SDK and VS Code sessions hanging, when memory ran out while the transcript was being read - Fixed sign-in, token refresh and logout waiting indefinitely when something on the network accepts the connection but never answers the TLS handshake
- Fixed a sent file showing under a different name in the Claude apps when its name hid text-direction or control characters; Claude now refuses to send such a file
- Fixed sub-agent progress summaries running a request to its end after the model replied with a tool call
- Fixed Bash reads such as
grep -r foo "$PWD/src"asking for permission when the same command with the path typed out runs without asking - Fixed Claude apps gateway refusing to start when a
desktopsetting holds a field newer than the gateway, such as a managed MCP server'soauth.omitResource; it now warns and serves it - Fixed Bash commands coming back empty for zsh users whose
.zshrcsetsKSH_OPTION_PRINT - macOS: Fixed "Unable to read managed policy settings" at startup when a valid MDM profile was slow to read: the read is retried once, and a timeout is now reported as a timeout
…