Claude Code v2.1.293: Claude Haiku 5.5 as the Default Haiku Model, agentType for Subagent Status Lines, and Backgrounding Fixes
Claude Code v2.1.293 adds Claude Haiku 5.5 as the default Haiku model on the Anthropic API, agentType in the subagentStatusLine payload and isDeferred for mods, and reverts two earlier changes.
Claude Code v2.1.293 has 56 changelog entries. It adds Claude Haiku 5.5 (claude-haiku-5-5), now the default Haiku model on the Anthropic API, along with agentType in the subagentStatusLine payload and isDeferred for mods. It also reverts two earlier changes and fixes issues with moving sessions to the background with ←, unexpected sign-outs, vim mode, Remote Control and plugins.
What’s New
Claude Haiku 5.5
Claude Haiku 5.5 (claude-haiku-5-5) is now available and is the default Haiku model on the Anthropic API. The changelog lists it with 1M context at $0.10/$0.50 per Mtok ($0.50/$2.50 for prompts over 100K).
agentType for Subagent Status Lines
The subagentStatusLine payload now includes agentType, so scripts can tell custom subagent types apart.
isDeferred for Mod Tools
Mods can pass isDeferred to $.tool.register: false lists the tool’s schema in the prompt from the start instead of behind tool search.
Safer Backgrounding with ←
A message sent while Claude was working is no longer lost when ← moves the session to the background; if a queued message can’t move, ← now stays put and says so. ← also no longer backgrounds a session after 10 seconds while the prompt holds unsent text (it now cancels the move) or while a question is waiting for your answer, and Esc, or No without feedback, on a permission prompt now stops the turn even when ← was just pressed.
Two Reverted Changes
The auto mode denial message change from 2.1.281, which told Claude a denial covers the outcome and not only the exact command, has been reverted. The 2.1.290 fix for cloud sessions staying asleep after a container restart lost a pending /loop wakeup or scheduled task has also been reverted: Claude is no longer told, and the session stays asleep.
claude purge Reports What It Couldn’t Delete
When a file or folder can’t be deleted, claude purge no longer stops silently (exit 0, or a hang in a terminal). It now deletes the rest, lists what it could not delete, and exits 1.
Other Behavior Changes
- claude.ai skill syncing now checks for changes about every 40 minutes, instead of every 10, while no session is in use.
- Agent lists and MCP servers announced to the model now sort names with non-ASCII characters after ASCII names.
- OpenTelemetry
claude_code.at_mentionlogging now emits at most 100 agent and 100 MCP-resource events each time a prompt is read. - Team and Enterprise organizations get policy and managed settings fetched earlier at startup, and a stalled request is retried after 3 seconds.
- Claude now pins artifact libraries to exact versions two weeks old or older.
- Self-hosted runner: the orchestrator sleeps 4 to 6 seconds between polls instead of a constant 5, so several replicas for one environment no longer poll at the same moment.
Fixes and Improvements
- Compaction: Claude no longer sometimes treats its own last actions before a context compaction as done after it, retracting or redoing finished work.
- MCP: Fixed a memory leak where an HTTP MCP connection kept every request it had sent until it closed.
/model: The effort ←/→ control no longer wraps past the highest or lowest level, which could accidentally save Low as a model’s default effort.- Tools and subagents: Claude is no longer told to continue or message subagents with
SendMessagein sessions where a host, a permission rule or a--toolslist removed that tool, and subagents and--agentsessions are no longer told a built-in tool was disabled for the whole session when only their own tool list left it out. - Rules and CLAUDE.md: Path-scoped rules and nested CLAUDE.md files now load when Claude views a file with a single-file cat, head, tail, sed -n or grep command in the Bash tool, not only through the Read tool.
- Sign-in:
claude logs,stop,kill,rmandclaude daemon status,stop,uninstallno longer sometimes sign you out when your login has expired or is about to. - Bypass permissions:
claude agentsno longer offers bypass permissions that background sessions then ignore when consent was saved only in.claude/settings.local.jsonor a--settingsfile; it now asks for consent first, and a session that ignores bypass shows a short notice that stays. - Agents view: The footer’s agents count and the session list no longer disappear or turn into placeholder rows after a momentary failure to read the sessions folder (for example, too many open files), and a custom agent named
workeris no longer shown as “Agent” when it starts. - Skills: A claude.ai-synced skill’s edited description no longer sometimes waits for a new conversation or
/clearbefore reaching the model. - Claude in Chrome:
/tuino longer disconnects Claude in Chrome in a session started with--chromeor ignores--no-chrome, fewer page actions are refused when the browser is slow to report its tabs, and in cloud sessions the message for an unreachable browser now says the extension must be signed in to the same organization when you belong to more than one. /ultrareview: The upload on Linux no longer wrongly refuses some repositories, such as one inside another checkout, over a settings file that “could not be parsed” while a sandboxed command was running, and its refusal over split-index files no longer advises a git command that could leave git unable to read its index.- Remote Control: Replies in very long Remote Control and cloud sessions no longer still appear a block at a time, Remote Control no longer uploads a session’s starting history again after every credential recovery, and PushNotification no longer reports “Remote Control inactive” in sessions started with
claude remote-control. - Plugins and mods: A mod’s hooks on
classic.*events are no longer skipped while the plugin hooks worker restarts,claude plugin testworks for mods that call$.session.append(tests can read the appended rows back with the newmock.session), andclaude plugin evalno longer refuses every Bash-granting run on Macs with Docker Desktop. - Claude apps gateway: The gateway no longer refuses to start when a
desktoppolicy sets Claude Desktop’s built-in browser keys, such asbuiltinBrowserEnabled. - Prompt input: Pasted text that begins and ends with the same words is no longer sometimes sent as if typed; vim mode
>>and<<on a line of only spaces no longer leave the cursor past the end of the line; and after deleting whole lines in Visual mode (Vthend) the cursor lands on the first non-blank. keybindings.json checks no longer report a lone ” ” (space key) as an error, and keys like “ctrl+ k” now get a warning. - Windows: Stopping a status line, hook, or shell command no longer sometimes terminates an unrelated process that had been given the same process ID.
- Claude Tag: Claude in Slack no longer stops mid-task when an admin changes a channel’s connectors, plugins, skills or rules (the change applies once Claude finishes), asking Claude to run a thread’s routine now with extra notes continues in that thread, Claude joins announcement channels without posting its intro, and the channel rules limit in admin settings rises from 20 to 50 for each workspace and for the organization-wide Slack page.
- Code Review: The Add a repository dialog now lists each repository that couldn’t be added and why, such as missing GitHub write access.
This release contains 56 changes in total; see the full changelog for the complete list.
How to Update
- Check your installed version:
claude --version - Update in place:
claude update - If scripts run
claude purge, note that it now exits 1 and lists anything it could not delete, instead of stopping silently.