Release notes

FEATURE

Remote sessions stop pretending they are still working

When you return to a Remote Control job, claude remote-control --continue resumes your latest session. ListAgents now calls disconnected sessions offline and cloud sessions cloud; a slash command typed in your laptop terminal no longer leaves the remote client spinning forever. It is like a station board that finally distinguishes a train at the platform, one that has departed, and one that is not on the network at all.

FEATURE

Self-hosted runners hit fewer traps at startup

A company-run runner can now start with fewer surprises. Server-supplied hooks, small programs triggered by an event, work like those in managed environments. If managed-mcp.json conflicts with MCP servers sent by server, Claude warns and skips those servers instead of exiting. Missing Git credentials fail fast, and Windows now requires an explicit --base-dir. Like a work crew that receives its site address, flags duplicate work orders, and reports a missing keycard immediately.

FEATURE

Long replies stay connected and do not print twice

When Claude pauses to think, Vertex and Bedrock connections are less likely to be cut off as idle. Gateway streams now send SSE keepalive pings, short signals saying connection is alive, during those pauses. Long streamed replies also stop partly disappearing or printing twice. It is like hearing an occasional “I am still here” on a quiet phone call, so line stays open and words do not replay or vanish.

FEATURE

Plugin sources can follow your local tool

A plugin marketplace can now use command as source: local command, such as an IDE, prints plugin directory, which Claude resolves again for each session without restart. With mode: "link", directory replaces installed content. A one-shot claude plugin command also cleans up its leftover liveness file, so old versions can be removed. Like checking locker pickup address each visit rather than filing new membership paperwork after move, then returning used ticket to counter.

BUGFIX

Narrow windows, odd paths, and bad arguments stop crashing app

Shrinking terminal no longer lets progress bar or Markdown table trigger RangeError, including when claude --continue or --resume starts. Tool calls with non-text glob, file_path, or command values avoid crash screen, and Windows accepts \\?\ extended paths and UNC network paths. File-watcher handles after atomic replacements are released; scheduled watcher failures on network or virtual filesystems are caught. Like delivery truck that can pass narrow lanes, strange addresses, and broken signs without overturning.

BUGFIX

Login and model choices line up better through gateways

Through custom ANTHROPIC_BASE_URL gateway, claude.ai subscribers can choose Sonnet or Opus 1M in /model again. Disabling attribution header, a source label sent with request, no longer makes every auto-mode tool call fail. Strict MCP OAuth servers now receive 127.0.0.1, not localhost, in redirect URI; Claude Desktop telemetry exports are accepted when Desktop-managed gateway is telemetry endpoint too. Like badges, elevator, and mailroom in one building finally using same address format.

BUGFIX

GitHub App code reviews now get posted

After installing Claude Code Review with /install-github-app, you may have seen workflow finish but found no comment on Pull Request, page where changes are reviewed before merge. That is fixed: completed workflow posts review on pull request rather than merely finishing in background. Like editor who no longer locks annotations in drawer, but returns them to document page you are reading.

FEATURE

VS Code side work is clearer and easier to organize

With IDE connected, editing file with thousands of diagnostics no longer stalls UI for seconds. In VS Code, “Report a problem” and /bug open built-in feedback dialog, while /btw panel can be resized by dragging. Sidebar now supports session groups: create, rename, delete, then Cmd/Ctrl- or Shift-click to move several sessions. Like desk drawers with labeled folders, movable dividers, and repair forms delivered to a desk that still receives them.

FEATURE

Multi-agent workflows avoid container mistakes and repeated costs

A dynamic workflow inside CPU-limited container now uses CPU limit, not host machine's full core count. When workflow fans out sibling agents with same prefix, it staggers them so later agents read cached prompt prefix instead of paying for it again; set CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS=0 to disable. Like kitchen scheduling cooks by available burners, then letting later cooks read prep sheet rather than buy same ingredients again.

FEATURE

Blank input and overfull chats now explain what happened

SDK and --input-format stream-json sessions no longer receive 400 API error for whitespace-only message. If messages alone exceed API's 32 MB request limit and no images or documents can be removed, Claude stops retrying compaction, process of condensing old chat to free space, and fails once with clear explanation. “Prompt too long” now explains why automatic compaction cannot recover. Like luggage counter explaining why full suitcase is overweight instead of repeatedly forcing zipper shut.

FEATURE

Safety checks tighten, and risky commands lose automatic approval

In sandbox, isolated environment where program runs within limits, IPv6 literals in network domain lists are correctly bracketed, such as [::1]:443. Ambiguous spellings fail closed and /doctor flags them. After successful /login, override warning for CLAUDE_CODE_OAUTH_TOKEN appears again. Most importantly, /commit-push-pr no longer auto-approves dangerous flags like --force, --amend, or --no-verify. Like door staff refusing unclear address, warning that old card may override new one, and requiring you to confirm before moving heavy load.

Original changelog

Original changelogRemote sessions stop pretending they are still working
Documented `claude remote-control --continue` for resuming the most recent Remote Control session
`ListAgents` now marks disconnected Remote Control sessions as `offline` and labels your cloud sessions as `cloud`
Fixed Remote Control clients showing a stuck working spinner after a slash command typed in the laptop terminal
Original changelogSelf-hosted runners hit fewer traps at startup
Added server-supplied Claude Code hook support for self-hosted runner sessions, matching managed-environment behavior
Fixed self-hosted runner and other remote sessions exiting at startup when `managed-mcp.json` is deployed and the server delivers MCP servers; those servers are now skipped with a warning
Fixed self-hosted runner repository preparation hanging on a Git Credential Manager prompt; git now fails fast when credentials are missing
Changed self-hosted runner Windows startup to require an explicit `--base-dir`; there is no default checkout directory on Windows
Original changelogLong replies stay connected and do not print twice
Added SSE keepalive pings to gateway streaming responses during long thinking pauses, preventing idle-timeout disconnects on Vertex and Bedrock upstreams
Fixed long responses partly disappearing while streaming and being printed twice in the terminal
Original changelogPlugin sources can follow your local tool
Added plugin marketplace `command` sources: a local command (e.g. an IDE) prints the plugin directory, which is re-resolved each session and applied without a restart; `mode: "link"` uses it in place
Fixed one-shot `claude plugin` commands leaving a stray liveness file that could prevent cleanup of outdated plugin versions
Original changelogNarrow windows, odd paths, and bad arguments stop crashing app
Fixed a crash to the error screen (including on `--resume` of the affected session) when a tool call had a non-string `glob`, `file_path`, or `command` value
Fixed a RangeError crash when a progress bar or markdown table rendered in a very narrow terminal window (could also crash `claude --continue`/`--resume` at startup)
Fixed a crash on Windows when a tool call or message referenced a file by an extended-length (`\\?\`) or UNC path
Fixed a file-watcher handle leak after atomic file replacements, and an uncaught error on Windows when the scheduled-tasks watcher failed on a network or virtual filesystem
Original changelogLogin and model choices line up better through gateways
Fixed auto mode failing on every tool call for users who disable the attribution header via `CLAUDE_CODE_ATTRIBUTION_HEADER` (direct Anthropic API connections)
Fixed `/model` rejecting Sonnet/Opus 1M for claude.ai subscribers using a custom `ANTHROPIC_BASE_URL` gateway
Fixed MCP OAuth with strict authorization servers by using `127.0.0.1` instead of `localhost` in the redirect URI
Fixed OpenTelemetry export from Claude Desktop sessions being rejected by the Desktop-managed gateway when that gateway is also the telemetry endpoint
Original changelogGitHub App code reviews now get posted
Fixed the Claude Code Review workflow generated by `/install-github-app` completing without posting its review on the pull request
Original changelogVS Code side work is clearer and easier to organize
Fixed multi-second UI stalls after editing a file with thousands of IDE diagnostics while the IDE extension is connected
[VSCode] "Report a problem" and `/bug` now open the built-in feedback dialog instead of a retired survey link
[VSCode] Made the `/btw` side-question panel resizable by dragging its boundary, in both side-docked and stacked layouts
[VSCode] Added session groups in the sidebar — right-click to create, rename, or delete; Cmd/Ctrl- or Shift-click to move several sessions at once
Original changelogMulti-agent workflows avoid container mistakes and repeated costs
Fixed dynamic workflows inside CPU-limited containers using the host machine's core count instead of the container's CPU limit
Improved workflow fan-outs to stagger same-prefix sibling agents so subsequent agents read the cached prompt prefix instead of re-paying it (`CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS=0` disables)
Original changelogBlank input and overfull chats now explain what happened
Fixed SDK and `--input-format stream-json` sessions getting a 400 API error when a whitespace-only message was submitted
Fixed conversations whose messages alone exceed the API's 32 MB request limit retrying compaction when no images or documents can be stripped; they now fail once with a clear message
Improved "prompt is too long" errors to explain why automatic compaction could not recover instead of only suggesting `/compact`
Original changelogSafety checks tighten, and risky commands lose automatic approval
Improved sandbox: IPv6 literals in network domain lists are now bracketed (`[::1]:443`), and ambiguous spellings are enforced fail-closed and flagged by `/doctor`
Updated `/login` to repeat the `CLAUDE_CODE_OAUTH_TOKEN` override warning after a successful login
Changed `/commit-push-pr` so git/gh commands with dangerous flags (`--force`, `--amend`, `--no-verify`, etc.) are no longer auto-approved