claude-code
Claude Code 2.1.229: plugins load from a directory with no restart
Claude News
claude-codeClaude Code 2.1.229 adds plugin marketplace command sources: a local command, an IDE for example, prints the path to a plugin directory, and that path is re-resolved at the start of every session and applied without a restart. The change appears in the release notes on Github, which list more than 30 entries.
At a glance
- Self-hosted runner sessions now receive Claude Code hooks from the server, matching managed-environment behavior, while ListAgents marks disconnected Remote Control sessions as offline and labels cloud sessions as cloud.
- Gateway streaming responses carry SSE keepalive pings through long thinking pauses, which prevents idle-timeout disconnects on Vertex and Bedrock upstreams, and claude remote-control --continue is documented for resuming the most recent session.
- In /commit-push-pr, git and gh commands carrying dangerous flags such as --force, --amend or --no-verify are no longer auto-approved, and /login repeats its CLAUDE_CODE_OAUTH_TOKEN override warning after a successful login.
Why it matters The plugin change reads as an attempt to take the restart loop out of plugin work: an editor can point Claude Code at a directory it controls, and mode: "link" keeps that directory in place rather than copying it. Combined with server-supplied hooks, the offline and cloud labels in ListAgents and the tighter runner startup rules, the build looks aimed at setups where Claude Code runs somewhere other than a single laptop terminal.
A local command supplies the plugin directory, and mode: "link" uses it in place
A plugin marketplace can take its source from a command run locally, such as an IDE. The command prints the plugin directory, Claude Code re-resolves that output each session, and the result is applied without a restart. With mode: "link", the directory is used where it sits instead of being copied.
One-shot claude plugin commands no longer leave behind a stray liveness file that could prevent cleanup of outdated plugin versions. In the VSCode extension, the sidebar gains session groups: right-click creates, renames or deletes a group, and Cmd/Ctrl-click or Shift-click moves several sessions at once. The /btw side-question panel can now be resized by dragging its boundary, in both side-docked and stacked layouts.
Non-string glob, file_path and command values no longer crash the session to the error screen
A tool call carrying a non-string glob, file_path or command value crashed Claude Code to the error screen, including on --resume of the affected session. A RangeError crash when a progress bar or a markdown table rendered in a very narrow terminal window is also fixed; it could take down claude --continue and --resume at startup. Long responses that partly disappeared while streaming and were then printed twice now render once.
On Windows, a tool call or message that referenced a file by an extended-length (\\?\) or UNC path crashed the session. Editing a file with thousands of IDE diagnostics while the IDE extension is connected caused multi-second stalls in the interface. The build also closes 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.
Self-hosted runner startup on Windows now requires an explicit --base-dir
Windows startup for the self-hosted runner requires an explicit --base-dir, as there is no default checkout directory on that platform. Self-hosted runner and other remote sessions that exited at startup when managed-mcp.json is deployed and the server delivers MCP servers now skip those servers with a warning.
Connection-level fixes cover /model rejecting Sonnet and Opus 1M for claude.ai subscribers using a custom ANTHROPIC_BASE_URL gateway, MCP OAuth with strict authorization servers, which now uses 127.0.0.1 instead of localhost in the redirect URI, and auto mode failing on every tool call for users who disable the attribution header via CLAUDE_CODE_ATTRIBUTION_HEADER on direct Anthropic API connections.
Self-hosted runner repository preparation no longer hangs on a Git Credential Manager prompt, because git now fails fast when credentials are missing. OpenTelemetry export from Claude Desktop sessions is no longer rejected by the Desktop-managed gateway in setups where that gateway is also the telemetry endpoint.
What's next Workflow fan-outs stagger same-prefix sibling agents so later ones read the cached prompt prefix instead of re-paying for it, and CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS=0 disables the staggering. Sandbox network domain lists now require bracketed IPv6 literals such as [::1]:443, with ambiguous spellings enforced fail-closed and flagged by /doctor.
The "prompt is too long" error now explains why automatic compaction could not recover, and conversations whose messages alone exceed the API's 32 MB request limit fail once with a clear message instead of retrying compaction. The release notes give no schedule for further changes.
Comments
No comments yet. Be the first.
Join the conversation
Sign in with Google to leave a comment. Your name and avatar come from your Google profile, and the comment appears after moderation.
We only use your name and avatar from Google. We never store your email address.
