← All changelogs v2.1.170 claude · claude-sonnet-4-6
Claude Code · Source-level changelog

Version 2.1.170

This release introduces Claude Fable 5, a new highest-tier model for the hardest and longest-running tasks, replacing the previous Opus 4.8 launch announcement with a Fable 5 announcement banner. The release also hardens how tool calls are handled when a server-side model fallback retracts in-flight work, adds a new SDK protocol event for model refusal fallbacks, and tracks usage-credit overage state from the API.

Package @anthropic-ai/claude-code Diff v2.1.169 → v2.1.170Provider claudeModel claude-sonnet-4-6
14
Features & Changes
4
Bug Fixes
0
In Development
0
Env Vars / Flags

New Features

5 items

Claude Fable 5 Model Support #

New
What

Claude Fable 5 is now a supported model in Claude Code, positioned as the most capable option for the hardest and longest-running tasks.

Usage
claude --model fable
claude --model claude-fable-5
Details
  • Alias fable (and fable[1m] for 1M context) resolve to Fable 5
  • Full model IDs: claude-fable-5 (firstParty, vertex, foundry, gateway), anthropic.claude-fable-5 (Bedrock/Mantle)
  • Context window: 64k default output / 128k max — same as Opus 4.8
  • Default effort level: high (same as Opus 4.8)
  • Fable 5 appears at the top of the /model picker for eligible accounts
  • A companion model, claude-mythos-5, is also registered internally for the safety-refusal fallback lane
  • The /model command's help text now reads: "Provide an alias for the latest model (e.g. 'fable', 'opus', or 'sonnet') or a model's full name (e.g. 'claude-fable-5')."
Evidence

Model ID registration and picker entry (search for "claude-fable-5" and "Fable 5 · Most capable for your hardest and longest-running tasks")

Fable 5 Environment Variables for Custom Providers #

New
What

Four new environment variables let BYOC (Bring Your Own Claude) and API-gateway deployments point Claude Code at a custom Fable 5 endpoint.

Usage
export ANTHROPIC_DEFAULT_FABLE_MODEL=my-fable-5-endpoint
export ANTHROPIC_DEFAULT_FABLE_MODEL_NAME="My Fable 5"
export ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION="Custom Fable 5 model"
export ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES=vision,tools
Details
  • ANTHROPIC_DEFAULT_FABLE_MODEL — custom Fable 5 model ID (enables the alias and fallback logic even on non-firstParty providers)
  • ANTHROPIC_DEFAULT_FABLE_MODEL_NAME — display name shown in the model picker
  • ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION — description shown alongside the model
  • ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES — capabilities string for the model
  • VERTEX_REGION_CLAUDE_FABLE_5 — region override for Fable 5 on Vertex AI (same pattern as the existing VERTEX_REGION_CLAUDE_* vars)
  • When ANTHROPIC_DEFAULT_FABLE_MODEL is set, Claude Code shows a "Custom Fable model" entry in the picker in place of the default Fable 5 entry (on non-firstParty providers)
  • A new fallback hint is also surfaced for providers where these vars are absent: "To enable automatic fallback on this provider, set ANTHROPIC_DEFAULT_FABLE_MODEL to your Fable 5 model ID and ANTHROPIC_DEFAULT_OPUS_MODEL to your Opus 4.8 model ID."
Evidence

Env var registration (search for "ANTHROPIC_DEFAULT_FABLE_MODEL") and custom-model picker entry (search for "Custom Fable model")

Fable 5 Launch Announcement Banner #

New
What

First-party users who have Fable 5 available see a one-time "Fable 5 is here!" announcement at session start, replacing the old Opus 4.8 announcement.

Details
  • For users on Fable 5: "Fable 5 is here! Our newest model for complex, long-running work"
  • For users not yet on Fable 5 but with access to the picker: "Meet Fable 5, our newest model for complex, long-running work. Try anytime with /model."
  • If the account uses plan limits and the plan-limits end date is in the future: "Included in your plan limits until [date], then switch to usage credits to continue."
  • Controlled by the tengu_saffron_lattice feature flag (fields: enabled, planLimitsEndDate, hideRateLimitsDescription)
  • Shown once; suppressed after first view via tengu_fable5_launch_shown telemetry event
Evidence

Announcement component and feature flag (search for "Fable 5 is here!" and "tengu_saffron_lattice")

CLAUDE_CODE_DISABLE_MOUSE Environment Variable #

New
What

A new environment variable to disable mouse support in the CLI.

Usage
export CLAUDE_CODE_DISABLE_MOUSE=1
claude
Details
  • When set to any truthy value, mouse interaction support is disabled in the terminal UI
  • Useful in environments where mouse events interfere with other terminal applications or multiplexers
Evidence

New rEH() function (search for "CLAUDE_CODE_DISABLE_MOUSE")

Model Refusal Fallback SDK Protocol Event #

New
What

A new model_refusal_fallback system event is now emitted over the SDK protocol whenever the primary model returns a safety refusal and the session automatically retries on a fallback model.

Details
  • Event fields: trigger: "refusal", direction: "retry" | "revert" | "sticky", original_model, fallback_model, request_id, api_refusal_category (e.g. "cyber", "bio"), api_refusal_explanation, retracted_message_uuids
  • retracted_message_uuids lists the wire UUIDs of messages that were rolled back by the fallback — SDK consumers should evict these from transcript state on receipt
  • The supersedes field on incoming messages was also updated: it can now include tombstoned tool_result frames from the refused leg, not only assistant frames
  • refusalFallbackLaneEnabled and refusalFallbackSettingToggleVisible are now communicated from the daemon to the main process at startup rather than read directly from a feature flag, making these states available to SDK consumers via init
Evidence

New schema definition (search for "model_refusal_fallback" and "retracted_message_uuids")

Improvements

9 items

xhigh Effort Warning #

New

When a model session is set to xhigh (max) effort, a new advisory message is now shown in the model selector: "May use excessive tokens resulting in long response times or overthinking. Use sparingly for the hardest tasks."

Evidence

New constant (search for "May use excessive tokens resulting in long response times or overthinking")

Cleaner Safety Refusal Error Messages #

New

The error message displayed when a model refuses a request for safety reasons was reworded. Previously the wording varied based on category ("cybersecurity or biology topics" vs "sensitive topics"); it now consistently reads: "[Model] has safety measures that flag messages on most cybersecurity or biology topics (https://www.anthropic.com/legal/aup). They may flag safe, normal content as well. These measures let us bring you Mythos-level capability in other areas sooner, and we're working to refine them."

Evidence

Updated refusal error renderer (search for "has safety measures that flag messages on most cybersecurity or biology topics")

Model Picker Deduplication #

New

The model option list now de-duplicates entries by value before rendering. Duplicate rows are silently dropped with a warning log entry: "model options: dropping duplicate row [label] (value [value])". Disabled entries are sorted to the bottom of the list, after all enabled options.

Evidence

New deduplication pass (search for "model options: dropping duplicate row")

Subagent Model Picker Includes Fable #

New

The model picker used when configuring subagents (e.g. in the Workflow tool's agent options) now includes a Fable option alongside Sonnet, Opus, and Haiku. This allows subagents to be spawned on Fable 5 when available.

Evidence

Subagent model list (search for "Most capable for your hardest and longest-running tasks" in the subagent picker function)

Fable 5 Noted in System Prompt Model Guidance #

New

The system prompt context now mentions Fable 5 when describing available models: "The most recent Claude models are Fable 5 and the Claude 4.X family. Model IDs — Fable 5: '[id]', Opus 4.8: '[id]', Sonnet 4.6: '[id]', Haiku 4.5: '[id]'."

Evidence

Updated system prompt string (search for "The most recent Claude models are Fable 5")

overageInUse Rate Limit Field #

New

A new overageInUse boolean is parsed from the anthropic-ratelimit-unified-overage-in-use: true response header. When this field is set on the rate limit state, registered overage listeners are notified. This enables the UI to react immediately when Fable 5 usage transitions into the credit-based overage regime.

Evidence

Header parsing and listener notification (search for "anthropic-ratelimit-unified-overage-in-use")

Model Not Found Error Now Carries notFound Flag #

New

When model validation fails because the model ID was not found (HTTP 404 or message containing "model:"), the returned validation object now includes notFound: true in addition to the error string. This allows callers to distinguish "not found" from other validation failures.

Evidence

Model validation error handling (search for "notFound: !0")

Settings Documentation Updated for Fable #

New

The internal settings schema reference (used by the update-config skill and related tooling) now shows fable as a valid model option: "model": "sonnet", // or "fable", "opus", "haiku", full model ID.

Evidence

Settings schema doc (search for "// or \"fable\", \"opus\", \"haiku\"")

Effort Flag Passthrough Now Requires All Three Models Launched #

New

The --effort flag is now passed to subprocesses (e.g. headless subagent spawns) only when all three model launch flags — Opus 4.7, Opus 4.8, and Fable 5 — have been acknowledged by the user (unpinOpus47LaunchEffort, unpinOpus48LaunchEffort, unpinFable5LaunchEffort all true). Previously only Opus 4.7 and Opus 4.8 were required.

Evidence

Conditional effort passthrough (search for "unpinFable5LaunchEffort")

Bug Fixes

4 items
  • Server fallback tombstone cancels in-flight tool calls gracefully — when a server-side refusal fallback retracts a tool dispatch mid-flight, tool calls now return a clean cancellation result with message "Tool dispatch was retracted by a server fallback; the input may be truncated." instead of raising an uncaught exception. The abort signal reason "server-fallback-tombstone" is checked at each phase: validate input, permission, pre-call, and post-call. (search for "Tool dispatch was retracted by a server fallback")
  • Fable 5 usage-credit 429 errors handled correctly — the retry-on-overload logic now correctly skips retrying 429 responses that contain "usage credits are required" or "extra usage is required" when the overage-disabled reason is fetch_error or org_level_disabled_until, preventing unnecessary retries in permanent overage states. (search for "usage credits are required")
  • Session prompt history no longer skips when session persistence is forced — the CLAUDE_CODE_FORCE_SESSION_PERSISTENCE env var check was removed from the prompt-history skip condition, fixing a case where history could be skipped unexpectedly when session persistence was forced via env var. (search for "CLAUDE_CODE_FORCE_SESSION_PERSISTENCE")
  • Mantle provider uses Opus 4.7 instead of 4.8 — HT() (the default Opus model resolver) now returns opus47 when the provider is "mantle", matching the correct model availability on that provider. (search for "r6() === \"mantle\"")