Release notes

FEATURE

Universal Thinking Depth Limits with maxEffortLevel, Frontmatter Effort Settings Now Effective

If you want Claude to reason deeply without burning through excessive tokens, you can now cap its thinking depth with the maxEffortLevel setting.

Previously across cloud providers like Bedrock, Vertex, and Foundry, it was difficult to uniformly lock effort level caps. Now, whether configured at the top level or per model under modelSettings, limits apply consistently while still allowing you to pick a lower effort level during daily use:

{
  "maxEffortLevel": "medium",
  "modelSettings": {
    "claude-opus-4-7": {
      "maxEffortLevel": "low"
    }
  }
}

Additionally, effort: values specified in YAML frontmatter for custom commands, skills, or subagents previously failed on models with pinned default effort levels (such as Opus 4.7, Opus 4.8, and Fable 5); this has now been fixed to take effect properly.

FEATURE

Real-Time System Prompt Re-Rendering Without Restarting Conversations

If you are iterating on prompt text and tired of starting a new conversation for every tweak, the new --system-prompt-snapshot off flag is built for you. When polishing custom prompt content, the system by default reuses the prompt snapshot recorded at session start, causing active conversations to keep reading stale content even after you edit external files. Now, by passing this flag when launching Claude, every request will reload and render the latest system prompt fresh, making prompt experimentation much faster and more flexible.

BUGFIX

Reasoning Preserved Across Tool Changes, Cache Reuse Holds on Model Switches

When Claude invokes external tools or switches models mid-session, previously accumulated reasoning context no longer vanishes unexpectedly.

Previously, when an MCP server re-sent definitions, a built-in tool re-rendered, or a tool disappeared due to disconnections or upgrades, rewriting the tool list discarded earlier thinking; reasoning is now safely preserved. In sessions without ToolSearch, dynamically added plugin tools are now passed as deferred definitions to prevent breaking prompt-cache reuse. Switching models via /model no longer re-sends every tool definition; commit and PR attribution text now arrives as a conversation note that updates on model changes, and reasoning memory is also retained when claude.ai connector tools change across session resumes.

FEATURE

Resumed Sessions Reuse Tool Descriptions, Background Tasks Preserve Prompt Cache

When reopening unfinished sessions, cache invalidation causing inference delays is a major pain point. Previously, when a background worker forked from a conversation added EnterWorktree to the conversation's tool block, it broke prompt-cache reuse. Now when resuming a session, tool lists are no longer rewritten and thinking is no longer dropped due to MCP reconnection timing differences; turns executing tools on the first step also replay recorded descriptions directly instead of re-rendering them. Additionally, the system prompt prefix remains consistent when resuming a print-mode (-p) conversation interactively. Subagents and sessions launched with --system-prompt or --append-system-prompt now record prompt and tool definitions once instead of re-rendering them.

FEATURE

Artifact Publishing Adds Auto-Retry on Disconnects, Pinpoints Corrupted Character Locations

When publishing artifacts, network drops or formatting errors no longer return vague failure codes. Previously, if a connection was cut off mid-upload, Claude Code often reported an unknown outcome; now, whenever it detects that an upload never completed, it automatically retries once to ensure delivery. When a page file is not valid UTF-8 or contains replacement characters (U+FFFD) indicating corruption, error messages no longer gloss over the issue, instead explicitly naming the line and column to fix. If an artifact publish is refused, the screen also clearly explains the reason along with actionable remediation steps.

BUGFIX

Automatic Renewal for Expired Remote Control Credentials, Real-Time Desktop and Editor Permission Sync

When working on a remote machine via claude remote-control, long-running sessions no longer suffer sudden drops from expired credentials.

Previously, when server credentials expired after about 30 days, the host process exited and dropped all attached sessions; now the host automatically re-registers and keeps running. Meanwhile, Remote Control clients joining a Claude Desktop or VS Code session previously remained on stale permission modes until changed manually, but now immediately reflect accurate, up-to-date permission states upon connecting.

BUGFIX

Strict Enterprise Managed Settings Enforcement, Accurate Cloud Credential Expiration Reporting

In enterprise environments governed by centralized policies, cloud scheduling and login authentication now receive tighter safeguards. Startup failures for Cowork cloud scheduled tasks in organizations requiring sandboxing are now fixed; unreadable allowedHttpHookUrls, httpHookAllowedEnvVars, and allowedChannelPlugins settings now admit nothing rather than everything. Under Claude Desktop, expired AWS or Google Cloud credentials no longer blindly retry 10 times, prompting for re-authentication instead; pressing Esc now closes the mandatory gateway login dialog. Self-hosted runners now report --use-anthropic-git-proxy and warn sessions cloning via the legacy proxy, while forward_user_identity passes 429 rate limits directly to developers rather than failing over upstreams to enforce per-user quotas.

BUGFIX

Terminal Keystroke and Scrolling Fixes, Jitter-Free Responsive Text Input

Operating commands across mobile clients or fullscreen terminals is now much smoother for text input and interface scrolling.

Previously inside agent views, reconnecting to tmux or ssh sessions broke shortcuts like Shift+Enter for newlines and Option+Backspace for word deletion; these are now fully fixed. Blank outputs when running local commands like /context on mobile devices have been resolved, and scrolling up in fullscreen mode now reliably shows the dim last-prompt header at the top. Additionally, the /diff code difference panel no longer flashes "0 files changed" with a spinner before settling, its empty state is centered, and keystrokes are no longer delayed by loading animations.

FEATURE

Restoring Large Conversation Transcripts Without Data Loss, Stable Usage Warnings

Resuming previous conversations and loading massive transcripts over 5 MB is now cleaner and faster. Previously, running --resume on sessions with many Bash tool calls caused noticeable delays on first render; first-render time is now shorter. When a session transcript exceeds 5 MB, reloading used to drop parallel tool calls and their hook output; all of it now comes back intact. Running /compact or other slash commands via -p --resume no longer inserts an extra spurious continuation prompt. If switching models or modes within a session returns varying quota windows, usage-limit warnings no longer flicker on and off.

FEATURE

Plain-Language Terminal Command Descriptions, Marketplace Path Containment and Sandbox Copy Guidance

When running Claude in auto mode or sandboxed environments, tool descriptions and security checks are now clearer and stricter. Previously when executing terminal commands, Claude often mechanically echoed the command; updated Bash tool guidance now steers it to explain what commands do in plain words. Inside the sandbox, if clipboard commands like pbcopy fail, Claude proactively suggests using the built-in /copy command. In workflows, agent() calls with large output schemas are no longer flatly refused in auto mode, routing to the safety classifier for review instead. On macOS and Linux, a case where a marketplace entry path containing a backslash could bypass the containment check has been closed, and the claude agents @ menu now lists repositories created after session start.

BUGFIX

[VSCode] Diff View Adapts to Editor Themes, Fixes for Screenshot Pasting and Multilingual Text

When chatting with Claude in VS Code, code diff panels now align with your active editor theme.

Previously, chat diff blocks always rendered with a dark theme; they now follow the active VS Code color theme, including high contrast. Pasting screenshots on WSL2 or WSLg no longer inserts raw bytes into the chat input, instead attaching the image or ignoring the paste if unavailable; typing mixed right-to-left and English text in the wrong order has also been fixed. For file edits, accepting changes in diff view on files with Windows (CRLF) line endings no longer fails with "String not found in file", and @-mentions no longer drop files with spaces in their paths.

BUGFIX

[VSCode] Remote Session List Loading Fixes, Eliminating Cyclic Loops and Runaway Processes

When connecting to remote hosts with symlink-heavy or massive codebases, the VS Code extension no longer spikes CPU to 100% over cyclic transcripts or file searches. Previously, when saved transcripts contained cyclic parent links, forking, editing earlier messages, or rewinding caused the extension host to hang at 100% CPU; this is now fixed. In windows connected over Remote-SSH where the workspace folder exists only on the remote host, the sessions list view previously failed to load and now renders properly. Additionally, runaway background ripgrep processes when viewing files in large or symlink-heavy workspaces have been resolved.

FEATURE

[Claude Code on the web] Automatic Token Refresh for GitHub Enterprise, Personal Account Fallback for API Calls

When working with GitHub Enterprise Server via Claude Code on the web, expired tokens now refresh automatically.

Previously in GitHub Enterprise Server sessions, expired authentication credentials caused the interface to report the GitHub account as disconnected; PR and issue operations now automatically refresh tokens in the background to stay connected. Additionally, in organizations without the Claude GitHub App installed, running gh commands or making GitHub API calls previously threw errors, but now routes through your connected GitHub account and explicitly notes when none is connected.

FEATURE

[Claude Tag] Preset Connections Support Switching to Custom Channels, Clear Guidance on Depleted Credits

Administrators managing Claude Tag team connections can now switch preset connections to custom connectors without starting over. When configuring preset connection forms in admin settings, a newly added "Use a custom connector" link lets you pivot directly to custom channels. When an organization runs out of usage credits, Claude previously replied with a generic message stating the API rejected an invalid request; it now explicitly explains credits are exhausted and details how to add more. After Claude posts a message at a channel's top level, thread requests to edit or delete that post are no longer treated as conversational corrections, routing properly to the session that originally posted it. Additionally, clicking **Connect** on Tool access requests under Admin settings > Review requests previously failed with "Authorization failed" or showed the access bundle as deleted; this has now been resolved.

Original changelog

Original changelogUniversal Thinking Depth Limits with maxEffortLevel, Frontmatter Effort Settings Now Effective
Added `maxEffortLevel` setting (top-level or per model under `modelSettings`): caps the effort level on every provider, including Bedrock, Vertex and Foundry; users can still pick a lower level
Fixed `effort:` frontmatter on custom commands, skills, and subagents being ignored on models whose default effort is still pinned (Opus 4.7, Opus 4.8, Fable 5)
Original changelogReal-Time System Prompt Re-Rendering Without Restarting Conversations
Added `--system-prompt-snapshot off` to render the system prompt fresh on every request instead of reusing the conversation's recorded prompt (for iterating on prompt text)
Original changelogReasoning Preserved Across Tool Changes, Cache Reuse Holds on Model Switches
Fixed earlier reasoning being dropped when an MCP server re-sends, or a built-in tool re-renders, a tool the model already loaded
Fixed a tool that disappears mid-conversation, from a disconnected MCP server or an upgrade, rewriting the tool list and discarding earlier thinking
Fixed mid-session MCP and plugin tools being added to the tool list in sessions without ToolSearch, which broke prompt-cache reuse; supported models now receive them as deferred definitions
Fixed switching models with /model re-sending every tool definition (a prompt-cache miss); commit and PR attribution text now arrives as a conversation note that updates on model changes
Fixed prompt-cache misses and dropped extended thinking when a claude.ai connector's tools change between a session and its resume
Original changelogResumed Sessions Reuse Tool Descriptions, Background Tasks Preserve Prompt Cache
Fixed a background worker forked from a conversation adding EnterWorktree to the conversation's tool block mid-session, which broke prompt-cache reuse
Fixed resumed sessions rewriting the inline tool set when an MCP connector reconnects at a different moment than before
Fixed resumed sessions re-rendering tool descriptions instead of replaying the recorded ones when the first turn ran a tool
Fixed resumed sessions rewriting earlier MCP tool announcements (and dropping extended thinking) before their connectors reconnect
Fixed a prompt-cache break when a print-mode (`-p`) conversation is resumed interactively: the system prompt prefix no longer changes
Improved prompt-cache stability: subagents and sessions started with `--system-prompt` or `--append-system-prompt` now record the system prompt and tool definitions once instead of re-rendering them
Original changelogArtifact Publishing Adds Auto-Retry on Disconnects, Pinpoints Corrupted Character Locations
Fixed artifact publishes cut off by a dropped connection mid-upload: they now retry once when Claude Code can tell the upload never completed, instead of reporting an unknown outcome
Fixed artifact publish failing with an unhelpful error when the page file isn't valid UTF-8 or contains a replacement character (U+FFFD); the error now names the line and column to fix
Improved Artifact tool publish errors: when a publish is refused, the message now says why and what to do about it
Original changelogAutomatic Renewal for Expired Remote Control Credentials, Real-Time Desktop and Editor Permission Sync
Fixed Remote Control clients that join a Claude Desktop or VS Code session showing a stale permission mode until it was changed again
Fixed `claude remote-control` exiting and dropping every attached session when its server credential expires (about 30 days after start); the host now re-registers and keeps going
Original changelogStrict Enterprise Managed Settings Enforcement, Accurate Cloud Credential Expiration Reporting
Fixed Cowork scheduled tasks in the cloud failing at startup for organizations whose managed settings require sandboxing
Fixed expired AWS or Google Cloud credentials under a host app such as Claude Desktop retrying ten times with a generic "request failed" before the re-authenticate error appeared
Fixed managed `allowedHttpHookUrls`, `httpHookAllowedEnvVars` and `allowedChannelPlugins` to admit nothing, not everything, when unreadable
Fixed `/login` on machines whose managed settings require Claude apps gateway sign-in: Esc now closes the dialog instead of doing nothing
Self-hosted runner: Changed `--use-anthropic-git-proxy` to be reported to the server at registration and to print a warning for each session that still clones through the legacy git proxy
Gateway: Changed `forward_user_identity` upstreams to return a 429 as-is to a developer whose email was forwarded, instead of failing over to the next upstream, so the proxy's per-user limits hold
Original changelogTerminal Keystroke and Scrolling Fixes, Jitter-Free Responsive Text Input
Fixed `/context` and other local command output rendering blank on mobile clients
Fixed shift+enter and option+backspace not working after reconnecting to a tmux or ssh session inside an agent view
Fixed the dim last-prompt header not appearing at the top of the conversation when scrolling up in fullscreen mode
Improved the `/diff` panel: it no longer flashes "0 files changed" and a spinner before settling, and its empty state is centered in the panel
Improved prompt input responsiveness: keystrokes no longer occasionally wait a frame behind spinner or streaming repaints
Original changelogRestoring Large Conversation Transcripts Without Data Loss, Stable Usage Warnings
Fixed resuming a session after `/compact` or another slash command ran via `-p --resume`: a spurious "Continue from where you left off." turn is no longer inserted
Fixed resuming a large session (transcript over 5 MB): parallel tool calls and their hook output are no longer dropped from the reloaded conversation
Fixed the usage-limit warning flickering on and off during a session when requests for different models or modes report different limit windows
Improved `--resume` first-render time for sessions with many Bash tool calls
Original changelogPlain-Language Terminal Command Descriptions, Marketplace Path Containment and Sandbox Copy Guidance
Fixed Workflow `agent()` calls with large output schemas being refused in auto mode instead of being checked by the safety classifier
Fixed a case where a marketplace entry path containing a backslash could bypass the containment check for fetched marketplaces on macOS and Linux
Fixed `claude agents` `@` directory menu not listing repositories created after the session started
Improved the Bash tool's description guidance so Claude describes what a command does in plain words instead of echoing the command
Improved sandbox guidance so Claude suggests `/copy` when clipboard commands such as `pbcopy` fail inside the sandbox
Original changelog[VSCode] Diff View Adapts to Editor Themes, Fixes for Screenshot Pasting and Multilingual Text
[VSCode] Fixed pasting a screenshot on WSL2/WSLg inserting raw image bytes into the chat input; the image is now attached when the clipboard provides it, otherwise the paste is ignored
[VSCode] Fixed chat diff blocks always rendering with a dark editor theme; they now follow the active VS Code color theme, including high contrast
[VSCode] Fixed mixed right-to-left and English text rendering in the wrong order while typing in the message input
[VSCode] Fixed accepting an edit in the diff view on a file with Windows (CRLF) line endings failing with "String not found in file"
[VSCode] Fixed @-mentions dropping files whose paths contain spaces
Original changelog[VSCode] Remote Session List Loading Fixes, Eliminating Cyclic Loops and Runaway Processes
[VSCode] Fixed the extension host hanging at 100% CPU when forking, editing an earlier message, or rewinding in a conversation whose saved transcript contains a cyclic parent link
[VSCode] Fixed the sessions list view failing to load in windows connected over Remote-SSH when the workspace folder exists only on the remote host
[VSCode] Fixed runaway ripgrep processes when viewing files in large or symlink-heavy workspaces
Original changelog[Claude Code on the web] Automatic Token Refresh for GitHub Enterprise, Personal Account Fallback for API Calls
[Claude Code on the web] Fixed GitHub Enterprise Server sessions showing your GitHub account as disconnected once its token expired; PR and issue operations now refresh it automatically
[Claude Code on the web] Fixed `gh` and GitHub API calls failing in organizations without the Claude GitHub App; they now use your connected GitHub account and say so when none is connected
Original changelog[Claude Tag] Preset Connections Support Switching to Custom Channels, Clear Guidance on Depleted Credits
[Claude Tag] Added a "Use a custom connector" link to the preset connection forms in Claude Tag admin settings, so you can switch to a custom connection without starting over
[Claude Tag] Fixed Claude replying "The API rejected the request as invalid" when the organization has run out of usage credits; the reply now says so and explains how to add more
[Claude Tag] Fixed thread requests to edit or delete a message Claude posted at the channel's top level being answered with a correction instead of reaching the session that posted it
[Claude Tag] Fixed **Connect** on Tool access requests under Admin settings > Review requests failing with "Authorization failed" or showing the requested access bundle as deleted