← Claude Code changelog

Claude Code 2.1.293

The introduction of a new Haiku 5.5 model, now the default on the Anthropic API, with 1M context and updated pricing. Key reliability fixes include model behavior issues (e.g., retracting or redoing work after context compaction), message loss during session backgrounding, and tool availability problems. Further enhancements: improved mod development capabilities, general performance gains, and numerous stability updates across CLI tools, UI elements, and specific integrations like Chrome and Remote Control. Overall, a more robust and predictable user experience.

Added

  • Added Claude Haiku 5.5 (`claude-haiku-5-5`), now the default Haiku model on the Anthropic API — 1M context, $0.10/$0.50 per Mtok ($0.50/$2.50 for prompts over 100K)
  • Added `agentType` to the `subagentStatusLine` payload, so scripts can tell custom subagent types apart
  • Added `isDeferred` to `$.tool.register` for mods: `false` lists the tool's schema in the prompt from the start instead of behind tool search

Improved

  • Improved startup for Team and Enterprise organizations: policy and managed settings are fetched earlier, and a stalled request is retried after 3 seconds
  • Improved Claude in Chrome: fewer page actions are refused when the browser is slow to report its tabs
  • Improved the Claude in Chrome message in cloud sessions when the browser can't be reached: if you belong to more than one organization, it now says the extension must be signed in to the same one, and how to change that
  • Improved the Bash edit diff note to say the listed files changed while the command ran, which can include writes by other processes
  • Improved artifacts: Claude pins libraries to exact versions two weeks old or older

Changed

  • Reverted the auto mode denial message change from 2.1.281 that told Claude a denial covers the outcome, not only the exact command
  • Changed claude.ai skill syncing to check for changes about every 40 minutes, instead of every 10, while no session is in use
  • Changed the order of agent lists and of MCP servers announced to the model: names with non-ASCII characters now sort after ASCII names
  • Changed OpenTelemetry `claude_code.at_mention` logging to emit at most 100 agent and 100 MCP-resource events each time a prompt is read
  • Self-hosted runner: Changed the orchestrator to sleep 4 to 6 seconds between polls instead of a constant 5, so several replicas for one environment stop polling at the same moment
  • [Claude Tag] Improved Claude Tag admin settings to list an Enterprise Grid that isn't connected yet, with a Connect button
  • [Claude Tag] Changed Claude in Slack to join announcement channels, where only admins can post, without posting its intro
  • [Claude Tag] Changed the limit on channel rules in Claude Tag admin settings from 20 to 50 for each workspace and for the organization-wide Slack page
  • [Code Review] Improved Code Review's Add a repository dialog to list each repository that couldn't be added and why, such as missing GitHub write access

Fixed

  • Fixed Claude sometimes treating its own last actions before a context compaction as done after it, and retracting or redoing finished work
  • Fixed a memory leak where an HTTP MCP connection kept every request it had sent until it closed
  • Fixed a message sent while Claude was working being lost when `←` moved the session to the background; if a queued message can't move, `←` now stays put and says so
  • Fixed `/model` effort ←/→ wrapping past the highest or lowest level, which could accidentally save Low as a model's default effort
  • Fixed `/tui` disconnecting Claude in Chrome in a session started with `--chrome`, and ignoring `--no-chrome`
  • Fixed Claude being told to continue or message subagents with `SendMessage` in sessions, including resumed ones, where a host, a permission rule or a `--tools` list removed that tool
  • Fixed subagents and `--agent` sessions being told a built-in tool was disabled for the whole session when only their own tool list left it out
  • Fixed a claude.ai-synced skill's edited description sometimes not reaching the model until a new conversation or `/clear`
  • Fixed `claude logs`, `stop`, `kill`, `rm` and `claude daemon status`, `stop`, `uninstall` sometimes signing you out when your login had expired or was about to
  • Fixed the footer's agents count disappearing after a momentary failure to read the sessions folder (for example, too many open files)
  • Fixed a custom agent named `worker` being shown as "Agent" when it starts, and the agent detail dialog's title losing the agent type once the agent finishes
  • Fixed the Artifact tool's transcript row briefly reading `Artifact("(unprintable path)")` while a publish call was still streaming in
  • Fixed the `/ultrareview` upload on Linux wrongly refusing some repositories, such as one inside another checkout, over a settings file that "could not be parsed" while a sandboxed command was running
  • Fixed the `/ultrareview` upload's refusal over split-index files advising a git command that could leave git unable to read its index
  • Fixed replies in very long Remote Control and cloud sessions that could still appear a block at a time instead of streaming in
  • Fixed Remote Control uploading a session's starting history again after every credential recovery
  • Fixed PushNotification reporting "Remote Control inactive" in sessions started with `claude remote-control`
  • Fixed a mod's hooks on `classic.*` events being skipped while the plugin hooks worker restarts, which left settings hooks to answer without them
  • Fixed `claude plugin test` failing for mods that call `$.session.append`; tests can read the appended rows back with the new `mock.session`
  • Fixed `claude plugin eval` refusing every Bash-granting run on Macs with Docker Desktop (links under `~/.docker/bin`); the refusal now names which part of a credential store held the link
  • Fixed the Claude apps gateway refusing to start when a `desktop` policy sets Claude Desktop's built-in browser keys, such as `builtinBrowserEnabled`
  • Fixed `claude agents` offering bypass permissions that background sessions then ignored when consent was saved only in `.claude/settings.local.json` or a `--settings` file; it now asks for consent first, and a session that ignores bypass shows a short notice that stays
  • Fixed `←` backgrounding a session after 10 seconds while the prompt held unsent text (it now cancels the move) or a question was waiting for your answer
  • Fixed Esc, or No without feedback, on a permission prompt not stopping the turn when `←` had just been pressed to move the session to the background
  • Fixed the agents view briefly replacing the session list with placeholder rows when the sessions folder could not be read (for example, too many open files)
  • Fixed path-scoped rules and nested CLAUDE.md files not loading when Claude views a file with a single-file cat, head, tail, sed -n or grep command in the Bash tool instead of the Read tool
  • Fixed pasted text that begins and ends with the same words sometimes being sent to Claude as if it had been typed
  • Fixed a skill name in pasted text being treated as typed when an accent typed or pasted right after the paste merged into its last letter
  • Fixed `/feedback` returning to the drafts list after Ctrl+O or Ctrl+Z while a report was sending, leaving the send impossible to cancel
  • Fixed `claude purge` stopping silently (exit 0, or a hang in a terminal) when a file or folder could not be deleted; it now deletes the rest, lists what it could not delete, and exits 1
  • Fixed keybindings.json checks: a lone " " (space key) is no longer reported as an error, and keys like "ctrl+ k" now get a warning
  • Fixed vim mode `>>` and `<<` on a line of only spaces leaving the cursor past the end of the line, where a following `x` deleted nothing
  • Fixed vim mode: after deleting whole lines in Visual mode (`V` then `d`) the cursor lands on the first non-blank, and `.` after it acts on the cursor's line
  • Windows: Fixed stopping a status line, hook, or shell command sometimes terminating an unrelated process that had been given the same process ID
  • Reverted the 2.1.290 fix for cloud sessions staying asleep after a container restart lost a pending `/loop` wakeup or scheduled task; Claude is no longer told, and the session stays asleep
  • [Claude Tag] Fixed Claude in Slack saying a workspace isn't set up in Enterprise Grid channels shared across workspaces when Slack labels a message with a workspace that isn't connected
  • [Claude Tag] Fixed Claude in Slack stopping mid-task in a channel when an admin changed the channel's connectors, plugins, skills or rules; the change now applies once Claude finishes
  • [Claude Tag] Fixed asking Claude in Slack to run a thread's routine now with extra notes starting a separate run that couldn't post back; the run now continues in that thread
  • [Claude Tag] Fixed an access bundle's Add a connector dialog in Claude Tag admin settings showing every Google connector as connected after one Google sign-in