Claude Code v2.1.229: Plugin Marketplace Command Sources, VS Code Session Groups, and Safer /commit-push-pr
Claude Code v2.1.229 adds command-based plugin marketplace sources, VS Code session groups, and gateway keepalive pings, stops /commit-push-pr from auto-approving dangerous flags, and fixes several crashes.
Claude Code v2.1.229 is a broad release with 32 changelog entries. It adds command sources for plugin marketplaces, session groups in the VS Code sidebar, SSE keepalive pings for gateway streaming, and server-supplied hooks for self-hosted runner sessions, while /commit-push-pr stops auto-approving git and gh commands with dangerous flags. The fixes address several crashes, streaming output glitches, auto mode with a disabled attribution header, and MCP OAuth with strict authorization servers.
What’s New
Plugin Marketplace command Sources
Plugin marketplaces can now use command sources: a local command (e.g. an IDE) prints the plugin directory, which is re-resolved each session and applied without a restart. With mode: "link", the directory is used in place.
Session Groups and Panel Updates in VS Code
The VS Code extension adds session groups in the sidebar: right-click to create, rename, or delete them, and Cmd/Ctrl- or Shift-click to move several sessions at once. The /btw side-question panel can now be resized by dragging its boundary in both side-docked and stacked layouts, and “Report a problem” and /bug now open the built-in feedback dialog instead of a retired survey link.
/commit-push-pr Stops Auto-Approving Dangerous Flags
In /commit-push-pr, git/gh commands with dangerous flags (--force, --amend, --no-verify, etc.) are no longer auto-approved.
Self-Hosted Runner Updates
Self-hosted runner sessions now support server-supplied Claude Code hooks, matching managed-environment behavior. On Windows, self-hosted runner startup now requires an explicit --base-dir, since there is no default checkout directory on Windows.
Keepalive Pings for Gateway Streaming
Gateway streaming responses now include SSE keepalive pings during long thinking pauses, preventing idle-timeout disconnects on Vertex and Bedrock upstreams.
Staggered Workflow Fan-Outs
Workflow fan-outs now stagger same-prefix sibling agents so subsequent agents read the cached prompt prefix instead of re-paying it. Set CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS=0 to disable this.
Remote Control Session Status in ListAgents
ListAgents now marks disconnected Remote Control sessions as offline and labels your cloud sessions as cloud. The release also documents claude remote-control --continue for resuming the most recent Remote Control session.
Fixes and Improvements
Rendering and crashes
- Long responses no longer partly disappear while streaming or get printed twice in the terminal.
- A crash to the error screen (including on
--resumeof the affected session) when a tool call had a non-stringglob,file_path, orcommandvalue is fixed. - A RangeError crash when a progress bar or markdown table rendered in a very narrow terminal window, which could also crash
claude --continue/--resumeat startup, is fixed.
Windows
- A crash when a tool call or message referenced a file by an extended-length (
\\?\) or UNC path is fixed.
Auto mode and models
- Auto mode no longer fails on every tool call for users who disable the attribution header via
CLAUDE_CODE_ATTRIBUTION_HEADER(direct Anthropic API connections). /modelno longer rejects Sonnet/Opus 1M for claude.ai subscribers using a customANTHROPIC_BASE_URLgateway.
MCP and login
- MCP OAuth now works with strict authorization servers by using
127.0.0.1instead oflocalhostin the redirect URI. /loginnow repeats theCLAUDE_CODE_OAUTH_TOKENoverride warning after a successful login.
GitHub and Remote Control
- The Claude Code Review workflow generated by
/install-github-appno longer completes without posting its review on the pull request. - Remote Control clients no longer show a stuck working spinner after a slash command typed in the laptop terminal.
Performance
- Multi-second UI stalls after editing a file with thousands of IDE diagnostics while the IDE extension is connected are fixed.
- Dynamic workflows inside CPU-limited containers now use the container’s CPU limit instead of the host machine’s core count.
Compaction and API errors
- Conversations whose messages alone exceed the API’s 32 MB request limit no longer retry compaction when no images or documents can be stripped; they now fail once with a clear message.
- “prompt is too long” errors now explain why automatic compaction could not recover, instead of only suggesting
/compact. - SDK and
--input-format stream-jsonsessions no longer get a 400 API error when a whitespace-only message is submitted.
Sandbox
- IPv6 literals in network domain lists are now bracketed (
[::1]:443), and ambiguous spellings are enforced fail-closed and flagged by/doctor.
Self-hosted runners and remote sessions
- Self-hosted runner and other remote sessions no longer exit at startup when
managed-mcp.jsonis deployed and the server delivers MCP servers; those servers are now skipped with a warning. - Self-hosted runner repository preparation no longer hangs on a Git Credential Manager prompt; git now fails fast when credentials are missing.
This release contains 32 changes in total; see the Claude Code changelog for the complete list.
How to Update
- Check your installed version:
claude --version - Update in place:
claude update - If you run a self-hosted runner on Windows, start it with an explicit
--base-dir; there is no default checkout directory on Windows.