v2.1.238
Claude CodeSummary
This release introduces several new features for customizing keybindings and managing plugins with HTTP header support. It also significantly enhances the stability and reliability of Remote Control sessions and self-hosted runners, fixing numerous bugs related to memory usage, session management, and network communication.
New Features
- Added a `keybindingFlavor` setting to customize prompt keybindings, allowing Ctrl+W to delete back to the previous whitespace when set to `readline`.
- Introduced plugin marketplaces with `headersHelper` to mint HTTP headers for catalog and same-origin archive fetches.
- Added `claude self-hosted-runner --defer-shutdown-max-min <minutes>` to control how long self-hosted runners keep serving sessions after a SIGTERM before parking and exiting.
- Added `claude self-hosted-runner --proxy-authorization-command` and `--proxy-authorization-file` for egress proxies requiring fresh `Proxy-Authorization` headers.
- Enabled cross-session messaging to report "refused" when sending to a session configured to refuse inbound messages.
- Enabled cross-session messaging to notify the sender when messages are dropped due to rate limits or a full queue.
Bug Fixes
- Fixed unbounded memory growth in long interactive sessions by releasing subagent tool results once they leave the recent display window.
- Fixed custom, project, and plugin output styles from drifting back to the default voice mid-session.
- Fixed prompt suggestions not staying enabled when an account is near its usage limit.
- Fixed Bash refusals in worktree-isolation incorrectly instructing users to remove a redirect when none existed.
- Fixed self-hosted runners occasionally being removed by the server after a single slow or lost poll request.
- Fixed MCP elicitation dialogs showing nothing for URLs longer than 4,096 characters.
- Fixed permission prompts dropping the "don't ask again" option when the project path did not fit the terminal width.
- Fixed leftover `/tmp/claude-*-cwd` files when a Bash command is killed, times out, or is interrupted.
- Fixed held Backspace being ignored on terminals that send Ctrl+H for Backspace when keystrokes arrive in large bursts.
- Fixed text-wrapping in permission prompt diffs for lines containing wide multi-code-point characters or tabs.
- Fixed killing a suspended session sometimes leaving the terminal in bracketed-paste mode with the cursor hidden.
- Fixed stdio MCP servers receiving a `server/discover` request before `initialize`, preventing lazy servers from starting their backend on every session open.
- Fixed a proxy's refusal of a connection being reported as a generic network error instead of naming the proxy.
- Fixed the `/model` and `/effort` cache-miss warning appearing when the prompt cache had already expired.
- Fixed per-task Stop from the Remote Control tasks panel doing nothing on CLI-hosted sessions.
- Fixed remote sessions exiting when a client delivered a user message without a valid role.
- Fixed Remote Control sessions started by `claude remote-control` inheriting session-scoped environment variables from the launching shell.
- Fixed a Remote Control session whose process crashed staying unavailable until `claude remote-control` was restarted.
- Fixed Remote Control messages sent from the web or Desktop while Claude is mid-turn disappearing from the transcript after the turn finishes.
- Fixed Remote Control model picks made on a phone or web not updating the model shown in the terminal.
- Fixed Remote Control disconnecting with "login expired" on brief network hiccups; it now retries and stays connected.
- Fixed Remote Control reporting a failed reconnect on sign-out.
- Fixed `ListAgents`/`SendMessage` reporting "Remote Control is not connected" in certain server modes; they now list and reach Remote Control peers.
- Fixed `ListAgents` and `SendMessage` exposing idle workers that are pre-warmed for background sessions.
- Changed Ctrl+L and Cmd+K in fullscreen to always just repaint, removing the double-press `/clear` shortcut and preventing automatic `/clear` loops in 1-row nvim terminals.
- Changed `claude mcp list` and `claude mcp get` to show disabled servers as `⊘ Disabled` instead of attempting to connect to them.
Improvements
- Improved startup time for `claude` on macOS.
- Improved Bash tool permission checking for zsh-specific syntax in shell conditionals.
- Improved Remote Control connection resilience by tolerating brief HTTP 403 refusals and naming the refusing party when a block persists.
- Improved startup responsiveness by delaying the automatic update check.
- Updated the bundled `claude-api` skill for Managed Agents Aug 19 release, enabling web search/fetch domain settings and memory stores on self-hosted sandboxes.
- MCP `headersHelper` in project files now requires the folder's trust dialog to have been accepted.
- MCP `headersHelper` from project, plugin, or agent files now runs without inherited credential env vars; user, managed, and claude.ai-scope helpers now run from the Claude config dir.