Skip to main content

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 --resume of the affected session) when a tool call had a non-string glob, file_path, or command value 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/--resume at 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).
  • /model no longer rejects Sonnet/Opus 1M for claude.ai subscribers using a custom ANTHROPIC_BASE_URL gateway.

MCP and login

  • MCP OAuth now works with strict authorization servers by using 127.0.0.1 instead of localhost in the redirect URI.
  • /login now repeats the CLAUDE_CODE_OAUTH_TOKEN override warning after a successful login.

GitHub and Remote Control

  • The Claude Code Review workflow generated by /install-github-app no 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-json sessions 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.json is 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

  1. Check your installed version: claude --version
  2. Update in place: claude update
  3. If you run a self-hosted runner on Windows, start it with an explicit --base-dir; there is no default checkout directory on Windows.