Skip to content

Claude Code 2.1.277

87changes
  • Read AGENTS.md as project instructions when no CLAUDE.md is present.
  • See and stop background shells and tasks from a new VS Code agent map.
  • Mark subagent results as untrusted output so they cannot pass as session instructions.
  • Fix a sandbox.excludedCommands glob that let unmatched parts of a compound command run unsandboxed.
  • Fix a cloud environment's Custom network access silently reverting to Trusted with no domains set.

New features

10
More changes (5) Fewer changes

Improvements

18
More changes (17) Fewer changes

Speed up SDK and headless session startup

Improved session start-up for SDK and headless (-p) use: the first turn no longer waits on the per-directory CLAUDE.md lookup

Name the loopback flag in gateway errors

Improved the Claude apps gateway's loopback error messages to name CLAUDE_GATEWAY_ALLOW_LOOPBACK

Show which plugin an MCP server belongs to

Improved /plugin Installed: an MCP server listed apart from its plugin now shows which plugin it belongs to

Suggest updates for already-installed plugins

Improved claude plugin install on an already-installed plugin: it now says when the marketplace offers a newer version and names the claude plugin update command

Clarify the hidden startup notices line

Improved the startup notice overflow line under the logo: it now reads "N more notices hidden" instead of "+N more · /status"

Strip invisible Unicode characters before sending

Improved prompt handling: invisible Unicode formatting and tag characters in a prompt are removed and the cleaned prompt is shown for review before it is sent

Clarify /ultrareview with nothing to review

Improved /ultrareview when there's nothing to review: messages say which case you're in, offer a command that reviews your latest commit, and a new repository's first commit is reviewed in full

▤ In the docs

Read artifact links with the Artifact tool

Improved artifact link handling so Claude reads claude.ai artifact links with the Artifact tool instead of WebFetch when that tool is available

Suggest a guard for flagged rm commands

Improved the dangerous-rm permission prompt to name the flagged rm command and suggest a ${VAR:?} guard, so headless runs can recover

Clarify Artifact tool permission prompts

Improved the Artifact tool's permission prompts: shorter sentences, pages and artifacts named by title or file name, and links listed after the text

Always list Fable in /model

Changed Fable to always appear in /model on the Anthropic API; it is greyed out only when your organization's settings disable it

Match Bash sandbox wording across platforms

Changed the Bash sandbox instructions on Bedrock, Vertex and Foundry to the first-party wording, which frames the sandbox as the boundary of what the task was given

Refuse /ultrareview without a base branch

Changed /ultrareview in non-interactive sessions to refuse when the repository has no base branch or shared history

Frame workflow agent() prompts as script text

Changed workflow scripts' computed agent() prompts on Bedrock, Vertex and Foundry to reach the subagent framed as script-authored text, so the safety classifier does not read them as the user

[Web] Move environment editing to Admin settings

Changed organization environments to open as a read-only summary from the Code tab on Team and Enterprise plans, with editing under Admin settings then Cloud environments

▤ In the docs

[Web] Rename the Web admin setting to Cloud sessions

Changed the admin Claude Code setting labeled "Web" to "Cloud sessions" and removed the redundant read-only Mobile row beneath it

[Claude Tag] Support Pylon's EU host

Changed the Pylon credential preset in Claude Tag access bundles so admins can point it at Pylon's EU host

Bug fixes

57
More changes (52) Fewer changes

Report internal errors instead of hanging

Fixed claude -p and Agent SDK sessions that could hang with no result after an internal error; they now report the error and exit with code 1

Fix logout from older builds on same machine

Fixed being unexpectedly logged out when an older Claude Code build (for example an IDE extension's bundled CLI) runs on the same machine as the current one

Fix startup hang on malformed key cache

Fixed interactive start-up hanging or showing an error for ANTHROPIC_API_KEY users when ~/.claude.json holds a malformed customApiKeyResponses value

Fix update checks on invalid proxy versions

Fixed update checks erroring every 30 minutes, and claude update hanging when a minimum or maximum version is set, if a proxy returns an invalid version; a malformed minimumVersion is now ignored

Fix false up-to-date reports on winget/apk

Fixed claude update on winget- or apk-managed installs reporting "up to date" when the version lookup failed

Fix plugin reinstall breaking in-use copies

Fixed claude plugin install sometimes failing and breaking the installed copy when reinstalling a plugin version that a session or another program was using; an unchanged copy is now left alone

Report resource errors instead of no matches

Fixed Grep and Glob reporting no matches when the search could not start because the system was out of processes, memory or file handles; they now return an error saying so

Report a clear error for directory paths

Fixed the Write tool silently ending the turn as a declined permission when the target path is an existing directory; it now reports a clear error

Fix Edit misreading escaped backslash text

Fixed the Edit tool treating an escaped backslash followed by uXXXX text as a \uXXXX escape, which could make an edit of a non-ASCII character rewrite an escaped backslash sequence instead

Fix wrong error on large non-ASCII edits

Fixed the Edit tool reporting "Invalid regular expression: regular expression too large" instead of "String not found in file" when a very large edit containing non-ASCII text did not match the file

Fix false null-byte errors from escape text

Fixed a turn ending early with "Path contains null bytes" when a tool call's file path contained \u0000 written as an escape sequence; escaped control characters now stay as literal text

Keep background sessions alive after LSP exits

Fixed background sessions (claude --bg) exiting when a plugin's LSP server exited or closed its stdin

Fix crash from malformed MCP connection flag

Fixed a crash ("Type error") when opening /mcp or /plugin manage with a malformed claudeAiMcpEverConnected value in ~/.claude.json

Fix launch crash from malformed theme value

Fixed a crash at launch when ~/.claude.json holds a malformed theme value

Fix crash from terminal color codes in prompts

Fixed a crash ("unrecoverable interface error") when the prompt held text containing terminal color codes, for example a prompt recalled from history or text loaded from the external editor

Fix crash resuming string-stored assistant messages

Fixed a crash when resuming a session whose saved history holds an assistant message stored as a plain string

Fix early exits on slow machines at startup

Fixed sessions on slow or heavily loaded machines sometimes exiting with "Claude Code exited after an unrecoverable interface error" when the first spinner appeared

Fix screen freezing after rendering errors

Fixed a rare case where the screen could stop updating for the rest of the session after an internal rendering error

Fix Windows turns stopping after memory errors

Fixed a rare case on Windows where a turn could stop with an error such as "Out of memory" right after Claude replied, so that reply's tool calls never ran

Fix missing message text after SessionStart hooks

Fixed sessions continued after /clear (restart, --continue, --resume) missing part of their first message when a SessionStart hook printed output, causing a full prompt-cache miss

Show mid-turn agent messages in order

Fixed messages from other agents (such as a subagent's SendMessage) that arrived mid-turn showing up below the "Ran N shell commands" row instead of where they arrived

Show the copied notice in fullscreen panels

Fixed the "copied" notice not appearing after drag-selecting text in the fullscreen /resume picker and other panels that cover the prompt area

Fix empty TMPDIR outside the sandbox

Fixed $TMPDIR expanding empty in Bash commands that run outside the sandbox while sandboxing is enabled

Explain WebFetch/WebSearch refusals in Cowork

Fixed WebFetch and WebSearch in Cowork cloud sessions not telling Claude why a request was refused, such as a used-up fetch budget or an admin policy

Honor NO_PROXY for the telemetry relay

Fixed the Claude apps gateway's telemetry relay ignoring a collector hostname or domain listed in NO_PROXY when a proxy is set

Clean up staged downloads after failed updates

Fixed failed auto-updates leaving large staged downloads behind in ~/.cache/claude/staging

Strip control characters from plugin messages

Fixed /plugin not stripping terminal control characters from messages on the Installed tab, such as the error of a failed plugin update

Fix crash from Object-named skills

Fixed /plugin's Installed tab and /skills crashing when a skill or legacy command is named like a built-in Object property such as constructor or toString

Show a message when all installs fail

Fixed /plugin closing with no message when every install in a multi-select failed

Clear stale failed-to-load plugin rows

Fixed uninstalled plugins reappearing as "failed to load" rows in /plugin Installed, and Remove not clearing such a row

Record plugin commits correctly in the install log

Fixed plugins from the official marketplace being recorded without their commit in installed_plugins.json, and installed_plugins.json keeping the old commit after updating a pinned-commit plugin

Clean up plugin reload preview archives

Fixed plugin reload previews keeping every previewed copy of a plugin archive unpacked until exit, and overwriting the cached --plugin-url archive a reload falls back to when its download fails

Fix Remote Control bookkeeping on bad records

Fixed Remote Control session bookkeeping failing when ~/.claude.json holds a malformed placeholder record

Point to /login after a revoked session

Fixed the error after a revoked claude.ai login blaming an expired Anthropic profile; it now leads with /login

Fix scrambled text in agent dispatch input

Fixed typed or pasted text occasionally coming out scrambled in the claude agents dispatch input during key repeat or very fast input

Fix crash resuming malformed stop hook summaries

Fixed a crash ("unrecoverable interface error") when resuming a session whose saved transcript contains a stop hook summary without a well-formed hook list

Fix Enter on agent rows with rebound keys

Fixed Enter on a selected agent panel row doing nothing when keybindings.json rebinds Enter in the Chat context, for example to chat:queueSubmit

Fix PDF reads on long Windows paths

Fixed PDF page reads on Windows failing when the working folder's path is long (about 120 characters or more)

Preserve cost totals across headless resumes

Fixed a headless resume (claude -p --resume, the SDK, a VS Code extension window reload) starting the session's cost and usage totals at zero; headless sessions now save their totals at exit

Load project skills in untracked worktrees

Fixed project skills from the main repository not loading in --worktree sessions when .claude/skills is untracked

Preserve prompt cache for resumed subagents

Fixed resumed subagents and teammates re-rendering the MCP tool definitions they had loaded, which broke prompt caching for that agent

Guide retries after rate-limited artifact publishes

Fixed rate-limited artifact publishes telling Claude to stop retrying; Claude is now told nothing was published and when to send the same publish again

Preserve extended thinking across resumes

Fixed attachments recorded earlier in a conversation being re-rendered after a resume or relaunch, which dropped extended thinking and missed the prompt cache

Show server errors for failed Console sign-in

Fixed Console sign-in showing only "Request failed with status code 400" when the server refuses to create an API key; it now shows the server's message

[VSCode] Open settings dialogs from typed commands

Fixed the "General config" menu row showing /config usage text instead of opening settings, and made typed /mcp, /hooks, /memory, /rewind and similar commands open their dialogs

[VSCode] Persist effort levels across sessions

Fixed the effort slider's level not persisting into later sessions on a model that already had a level saved with /effort

[VSCode] Show Auto for differently-cased model aliases

Fixed Auto missing from the mode picker for conversations opened in an already-used panel when the saved model setting is a differently-cased alias such as "Sonnet"

[VSCode] Persist /fast as the default mode

Fixed /fast not saving fast mode as the default, so it was lost when the extension relaunched Claude Code

[Claude Tag] Fix routines reading other Slack channels

Fixed routines created in a Slack channel on an Enterprise Grid org-wide install failing to read other public channels in their workspace when they ran

[Claude Tag] Link to vendor credential setup pages

Fixed the "Learn more" links on credential presets in Claude Tag access bundles to open each vendor's credential-setup page instead of a generic API reference

[Claude Tag] Fix Google Cloud credential form errors

Fixed Google Cloud credential forms in Claude Tag access bundles: a refused key file now says why, the website and scopes stay locked, and a rejected rotation keeps the pasted key

[Claude Tag] Show response status for signed connections

Fixed the network events log in Claude Tag admin settings showing no response status for requests through connections that use AWS signing, client certificates or a custom CA

Removed & reverted

2
All changes (2) Fewer changes
Change details