Claude Code v2.1.293 Major Updates - The Long-Awaited Claude Haiku 5.5 Arrives, Becomes the Default Haiku Model

Claude Code v2.1.293 Major Updates - The Long-Awaited Claude Haiku 5.5 Arrives, Becomes the Default Haiku Model

Claude Code v2.1.293 released with Claude Haiku 5.5 as default. Of 56 changes, ~70% are fixes, resolving post-compaction redo issues, HTTP MCP memory leaks, and more.
2026.10.08

This page has been translated by machine translation. View original

This is Ishikawa from the Cloud Business Division. Claude Code v2.1.293 (released 2026-10-07) has been released. The long-awaited Claude Haiku 5.5 has arrived. I feel that the increased options for lightweight models will be relevant to many people this time.

The previous update article is here.

https://dev.classmethod.jp/articles/20261007-cc-updates-v2-1-292/

Update Summary

v2.1.293 includes 56 changes. The breakdown is 3 Added, 38 Fixed, 7 Improved, 6 Changed, and 2 Reverted, with fixes accounting for approximately 70% of the total. The fixes cover a wide range of areas, including background session movement (←), how tool information is passed to subagents, Remote Control, and mod/plugin testing. Of these, 8 changes relate to Claude Tag (Claude in Slack) and Code Review.

https://x.com/ClaudeDevs/status/2107895955144208813

https://x.com/claudeai/status/2107894042235166750

Notable Updates

New Feature: Addition of Claude Haiku 5.5

Claude Haiku 5.5 (claude-haiku-5-5) has been added and has become the default Haiku model in the Anthropic API. The CHANGELOG states that the context is 1M, and pricing is $0.10/$0.50 per million tokens (Mtok) ($0.50/$2.50 for prompts exceeding 100K).

For those specifying the haiku alias in the Anthropic API, Claude Haiku 5.5 was used without changing the specification in the verified environment, so I feel it would be worth checking once whether the output tendencies have changed for lightweight tasks such as claude -p.

Bug Fix: Redoing Completed Work After Compaction

A bug has been fixed where operations that Claude itself performed just before context compaction were treated as having been performed after compaction, causing completed work to be undone or redone.

For those working in long sessions that involve compaction, I feel there may be a reduction in rework caused by completed work being undone or redone.

Bug Fix: Memory Leak in HTTP MCP Connections

A memory leak has been fixed where HTTP MCP connections kept retaining all sent requests until the connection was closed.

For those who keep HTTP MCP server connections open for long periods, I feel it would be reassuring to check memory usage trends after updating.

Bug Fix: Rules Not Being Loaded for Files Viewed via Bash

A bug has been fixed where path-scoped rules and nested CLAUDE.md files were not loaded when Claude viewed files using Bash tool's single-file cat / head / tail / sed -n / grep instead of the Read tool.

For repositories that have CLAUDE.md or path-scoped rules in subdirectories, rules will now be loaded even when viewing files with Bash's single-file cat / head / tail / sed -n / grep, so I feel it's worth re-checking for those who felt the rules weren't taking effect.

A bug has been fixed where claude agents was offering bypass permissions as an option that would be ignored in background sessions when consent was stored only in .claude/settings.local.json or --settings files. Now consent is requested first, and a persistent brief notification is displayed for sessions where bypass is ignored.

For those managing bypass permissions consent via .claude/settings.local.json or --settings, I feel it would be worth checking whether the permissions of background sessions launched from claude agents are as intended, also taking into account the notification displayed when bypass is ignored.

Update Details

New Features

  • Added Claude Haiku 5.5: Claude Haiku 5.5 (claude-haiku-5-5) has become the default Haiku model in the Anthropic API. Context is 1M, and pricing is $0.10/$0.50 per million tokens ($0.50/$2.50 for prompts exceeding 100K)
  • Added agentType to subagentStatusLine: agentType has been added to the payload, allowing scripts to distinguish between types of custom subagents
  • Added isDeferred to $.tool.register: A mod option where specifying false causes the tool's schema to appear at the beginning of the prompt rather than after tool search

Improvements

  • Improved startup for Team/Enterprise organizations: Policies and admin settings are fetched at an earlier stage, and stalled requests are retried after 3 seconds
  • Reduced rejected page operations in Claude in Chrome: Fewer page operations are rejected when the browser is slow to report tab information
  • Improved cloud session messages for Claude in Chrome: When the browser cannot be reached, if the user belongs to multiple organizations, it now displays that the extension needs to be signed in to the same organization and how to change it
  • Improved Bash edit diff notes: Now indicates that the displayed file was modified during command execution (which may include writes by other processes)
  • Improved library version specification in Artifacts: Claude now pins libraries to exact versions that are more than two weeks old
  • Changed claude.ai skill sync interval: The interval for checking changes while the session is not in use has changed from approximately every 10 minutes to approximately every 40 minutes
  • Changed sort order of agent list and MCP servers: Names containing non-ASCII characters are now sorted after ASCII names in the agent list and MCP servers notified to the model
  • Changed OpenTelemetry claude_code.at_mention log output count: Events output each time a prompt is read are now limited to a maximum of 100 each for agents and MCP resources
  • Changed self-hosted runner polling interval: The wait between orchestrator polls has changed from a fixed 5 seconds to 4–6 seconds, preventing multiple replicas in the same environment from polling simultaneously
  • [Claude Tag] Display unconnected Enterprise Grids in the list: Admin settings now list unconnected Enterprise Grids with a Connect button
  • [Claude Tag] Removed self-introduction when joining announcement channels: Claude in Slack no longer posts a self-introduction when joining announcement channels where only admins can post
  • [Claude Tag] Changed channel rule limit: The channel rule limit in admin settings has changed from 20 to 50 for each workspace and the organization-wide Slack page
  • [Code Review] Display reasons why repositories could not be added: The Add a repository dialog now lists repositories that could not be added and the reasons why (such as lacking write permissions on GitHub)

Security

  • Fixed missing consent confirmation for bypass permissions in claude agents: When consent was stored only in .claude/settings.local.json or --settings files, bypass permissions that would be ignored in background sessions were being offered as an option. Now consent is requested first, and a persistent brief notification is displayed for sessions where bypass is ignored

Fixes

  • Fixed issue of redoing completed work after compaction: Claude's own operations just before compaction were being treated as having been performed after compaction, causing completed work to be undone or redone
  • Fixed memory leak in HTTP MCP connections: HTTP MCP connections were retaining all sent requests until the connection was closed
  • Fixed rules not being loaded for files viewed via Bash: Path-scoped rules and nested CLAUDE.md were not being loaded when files were viewed using Bash tool's single-file cat / head / tail / sed -n / grep
  • Fixed messages being lost when moving to background with ←: Messages sent while Claude was working were being lost. If queued messages cannot be moved, ← will no longer move the session and will display a message to that effect
  • Fixed incorrect instructions in sessions where SendMessage is unavailable: In sessions where SendMessage was excluded by the host, permission rules, or --tools list (including resumed sessions), Claude was being instructed to continue/send messages to subagents via SendMessage
  • Fixed built-in tool disabling being incorrectly communicated: In subagent and --agent sessions, Claude was being told that built-in tools merely absent from its own tool list were disabled for the entire session
  • Fixed sign-out on login expiry: claude logs / stop / kill / rm and claude daemon status / stop / uninstall were sometimes causing sign-out when login had expired or was about to expire
  • Fixed git command issue suggested by /ultrareview: When rejecting uploads due to a split-index file, it was suggesting a git command that could make git unable to read the index
  • Fixed mod classic.* hooks being skipped: Hooks for mod classic.* events were being skipped during a restart of the plugin hooks worker, with only the config file-side hooks responding
  • Fixed turns not stopping at permission confirmation immediately after ←: Immediately after moving a session to the background with ←, pressing Esc or selecting No without feedback at a permission confirmation prompt was not stopping the turn
  • Fixed claude purge exiting without displaying deletion failures: When files or folders could not be deleted, it was stopping without displaying anything (exit 0, or hanging in the terminal). It now deletes the rest, lists what could not be deleted, and exits with exit 1
  • Fixed terminating unrelated processes on Windows: When stopping status lines, hooks, and shell commands, unrelated processes that happened to have been assigned the same process ID were sometimes being terminated
  • [Claude Tag] Fixed Claude in Slack stopping mid-task: When admins changed channel connectors, plugins, skills, or rules, it was stopping mid-task. Changes are now applied after Claude finishes processing
  • A subtle but welcome fix: Fixed an issue where cycling through effort levels with ←/→ in /model could wrap past the highest and lowest levels and incorrectly save Low as the model's default effort. I feel this fix will help those who unknowingly had their model's default effort set to Low.
  • In addition, numerous minor bugs have been fixed in Remote Control, cloud sessions, /ultrareview uploads, agent view and footer display, vim mode, paste text handling, and more.

Reverted

Two changes from previous versions have been reverted.

  • Reverted change to rejection message in auto mode: The change introduced in 2.1.281 that informed Claude that rejection applies not only to the executed command itself but also to its results has been reverted
    • Before revert (introduced in 2.1.281): Claude is informed that rejection applies not only to the executed command but also to its results
    • v2.1.293: Reverts the 2.1.281 change
  • Reverted the 2.1.290 fix related to cloud session sleep: The fix for cloud sessions remaining asleep when pending /loop wakeups or scheduled tasks were lost due to container restarts has been reverted
    • Before revert (introduced in 2.1.290): The 2.1.290 fix is in place
    • v2.1.293: Reverts the fix. Claude is not notified, and the session remains asleep

Trying Out Claude Haiku 5.5

I ran claude -p specifying Claude Haiku 5.5 by both model ID and the haiku alias, and confirmed which model was used via modelUsage in the JSON output.

Verification environment: Claude Code v2.1.293 (macOS)

Running with Model ID Specified

% claude -p --model claude-haiku-5-5 --max-turns 1 --output-format json "1 + 1 は?数字だけで答えてください" | jq .
{
  "duration_api_ms": 1140,
  "stop_reason": "end_turn",
  "session_id": "1a7a69db-6c86-4fd2-8b86-815b7891d9c8",
  "total_cost_usd": 0.00464745,
  "usage": {
    "input_tokens": 2,
    "cache_creation_input_tokens": 22670,
    "cache_read_input_tokens": 11175,
    "output_tokens": 3,
    "output_tokens_details": {
      "thinking_tokens": 0
    },
    "server_tool_use": {
      "web_search_requests": 0,
      "web_fetch_requests": 0
    },
    "service_tier": "standard",
    "cache_creation": {
      "ephemeral_1h_input_tokens": 22670,
      "ephemeral_5m_input_tokens": 0
    },
    "inference_geo": "not_available",
    "iterations": [
      {
        "input_tokens": 2,
        "output_tokens": 3,
        "cache_read_input_tokens": 11175,
        "cache_creation_input_tokens": 22670,
        "cache_creation": {
          "ephemeral_5m_input_tokens": 0,
          "ephemeral_1h_input_tokens": 22670
        },
        "type": "message"
      }
    ],
    "speed": "standard",
    "fallback_credit": null
  },
  "modelUsage": {
    "claude-haiku-5-5": {
      "inputTokens": 2,
      "outputTokens": 3,
      "cacheReadInputTokens": 11175,
      "cacheCreationInputTokens": 22670,
      "webSearchRequests": 0,
      "costUSD": 0.00464745,
      "contextWindow": 1000000,
      "maxOutputTokens": 128000,
      "thinkingTokens": 0,
      "canonicalModel": "claude-haiku-5-5",
      "provider": "firstParty",
      "costBasis": "list"
    }
  },
  "permission_denials": [],
  "terminal_reason": "completed",
  "fast_mode_state": "off",
  "fast_mode_disabled_reason": "sdk_opt_in_required",
  "subagent_stats": {
    "spawned": 0,
    "requested": {
      "background": 0,
      "foreground": 0,
      "unset": 0
    },
    "started_in_background": 0,
    "max_depth": 0,
    "spawned_by_subagents": 0,
    "completed": 0,
    "failed": 0,
    "killed": {
      "parent": 0,
      "user": 0,
      "system": 0
    },
    "refused": {
      "depth_limit": 0,
      "concurrency_limit": 0,
      "budget": 0
    },
    "by_type": {}
  },
  "safety_stops": 0,
  "is_error": false,
  "num_turns": 1,
  "subtype": "success",
  "api_error_status": null,
  "result": "2",
  "ttft_ms": 1479,
  "type": "result",
  "duration_ms": 1788,
  "uuid": "c76949dd-4a0f-4a69-beb8-78de71c40458",
  "ttft_stream_ms": 1205,
  "time_to_request_ms": 364,
  "first_content_frame_ms": 1205,
  "queued_turn_count": 0,
  "result_index": 0
}

The exit code was 0, the modelUsage key and canonicalModel were both claude-haiku-5-5, and contextWindow was 1000000.

Running with haiku Alias Specified

% claude -p --model haiku --max-turns 1 --output-format json "1 + 1 は?数字だけで答えてください" | jq "{result, modelUsage}"
{
  "result": "2",
  "modelUsage": {
    "claude-haiku-5-5": {
      "inputTokens": 2,
      "outputTokens": 3,
      "cacheReadInputTokens": 33845,
      "cacheCreationInputTokens": 0,
      "webSearchRequests": 0,
      "costUSD": 0.00034015,
      "contextWindow": 1000000,
      "maxOutputTokens": 128000,
      "thinkingTokens": 0,
      "canonicalModel": "claude-haiku-5-5",
      "provider": "firstParty",
      "costBasis": "list"
    }
  }
}

When specifying haiku, the modelUsage key and canonicalModel were also claude-haiku-5-5 (exit code 0). In both executions, provider was firstParty.

In this brief verification, responses were returned in approximately 1.3 seconds, and the cost was approximately 0.0045 USD per execution. Since the 1M context model has become the default Haiku in the Anthropic API, I feel the options for how to delegate work to subagents have expanded.

In Closing

In the Anthropic API, Claude Haiku 5.5 has become the default Haiku model, and in the verified environment, the new model was used without changing the haiku specification. I feel this is a good opportunity to reconsider which processes to entrust to Haiku in automation using subagents or claude -p.

For those using Haiku from subagents or scripts, why not update and give it a try?

References

https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md

https://code.claude.com/docs/en/changelog

https://dev.classmethod.jp/articles/20261007-cc-updates-v2-1-292/


Claudeならクラスメソッドにお任せください

クラスメソッドは、Anthropic社とリセラー契約を締結しています。各種製品ガイドから、業種別の活用法、フェーズごとのお悩み解決などサービス支援ページにまとめております。まずはご覧いただき、お気軽にご相談ください。

サービス詳細を見る

Share this article

AI白書