Skip to content

Claude Code v2.1.286

Released · Anthropic

Security fixChanges background and headless runs, MCP server config, context and compaction settings, skills and plugins, hooks

What the release notes say

What's changed

  • Added a count such as "2 of 5" to the permission prompt when several permission requests stack up
  • Added mouse support for the "N more" rows of lists in fullscreen mode: click one to jump to that end of the list, with hover and pressed states
  • Fixed several Claude Code processes and IDE extensions each opening a login browser when gcpAuthRefresh or awsAuthRefresh credentials expire
  • Fixed claude --resume and --continue sometimes losing every turn after a batch of parallel tool calls when the earlier session crashed or was killed
  • Fixed API 400 errors after a tool or hook returned an object, number or boolean instead of text, including in resumed sessions
  • Fixed cloud sessions with very large histories never waking up because the container was stopped while the transcript was still loading
  • Fixed the Claude apps gateway's spend meter pricing 1-hour prompt cache writes at the cheaper 5-minute rate, and counting only the first model call's input tokens on streamed turns that run a server-side tool such as web search
  • Fixed macOS sessions still showing "Not logged in" or "Login expired" after /login succeeds in another Claude Code window when a leftover ~/.claude/.credentials.json exists
  • Fixed every turn failing when the Anthropic API refuses the model your default or a model alias resolves to: Claude Code now retries once on the previous model of the same tier
  • Fixed Remote Control sessions (including claude remote-control) staying connected after your organization's policy turns Remote Control off; they now disconnect with a notice
  • Fixed refusal and --fallback-model retries failing when the fallback model can't run fast; they now run at standard speed, with a one-time notice in interactive sessions
  • Fixed headless sessions repeating the "MCP servers require authentication" reminder after a successful re-authentication when the MCP discovery cache is enabled
  • Fixed claude auth status reporting a Console sign-in's stored API key as claude.ai; it now reports api_key, and the VS Code extension treats that session as an API key session
  • Fixed /status listing an Anthropic profile beside an API key as if both were in effect; the profile is now marked as not in use
  • Fixed Claude not being told when a file attached to a message sent over Remote Control did not arrive, and a file sometimes getting only 10 seconds for its last download try
  • Fixed a Remote Control message that arrived while Claude Code was exiting being marked delivered and then never answered; it now stays queued for the session's next run
  • Fixed MCP error messages showing a credential's value when "Bearer" or "Basic" came before its key name
  • Fixed percent-encoded Bearer tokens being only partly masked in error messages
  • Fixed redacted logs and transcripts showing a secret whose key name has an invisible character inside, such as a zero-width space
  • Fixed logs and transcripts showing part of a URL password that contains punctuation such as ), quotes, ], & or a second @, or that runs past a / to a bracketed host such as [::1] in an ssh URL
  • Fixed the session transcript in the zip that /feedback saves to disk containing invalid JSON lines after secret redaction
  • Fixed MCP connectors listing no tools for up to a day after their server dropped the older MCP handshake
  • Fixed a repeat MCP sign-in request from Claude replacing the pending sign-in link, which could stop that link from working
  • Fixed /usage not crediting an MCP server for a tool call made while that server was still connecting or had only just connected, such as right after a restart
  • Fixed plugins enabled on claude.ai occasionally going missing from Claude Code for a session after a transient server error
  • Fixed a message typed into a running subagent showing twice in its transcript after the subagent read it
  • Fixed subagent hand-back messages showing a raw task id instead of the agent's name when the subagent had no registered name
  • Fixed foreground subagents sometimes missing the task-tracking tools (TaskCreate/Get/Update/List, TodoWrite) in sessions that have them enabled
  • Fixed subagents spawned with worktree isolation loading the project CLAUDE.md and its imports a second time from the worktree copy on their first file read
  • Fixed Workflow tool subagents being restarted from their original prompt when a connection stalled for a few minutes mid-response
  • Fixed /compact, /clear, and /rewind typed while viewing a background agent's or teammate's transcript silently acting on the main conversation: a dialog now names the target and asks first
  • Fixed background jobs showing done while waiting for your approval
  • Fixed the commit attribution reminder being re-sent inside tool output when a model fallback lasts only one turn
  • Fixed a click on the space between words of a collapsed row (such as "Thought for 4s") highlighting the row without expanding it in fullscreen mode
  • Fixed a row with no details, such as an action row with a long name, pushing every other row's details to the right in list screens
  • Fixed files with very long names not reaching a cloud session when attached to it
  • Fixed plugin errors for a marketplace Claude Code refuses to load: they now say why and how to fix it instead of "not found"
  • Fixed /plugin's Discover tab showing a marketplace name unquoted in its "Checking … for new plugins" line when its rows already show that name in quotes
  • Improved commit guidance: when your project or user skills include one named verify, Claude is now told to run it right before committing, except for docs-only and tests-only commits
  • Improved send now (ctrl+enter) in a subagent's view: it now moves the subagent's running command to the background so your message is read right away
  • Improved replies from background agents to your messages so they no longer open with a separate recap of what you said