Claude Code 2.1.86: Session Headers, VCS Fixes
Session headers for proxy aggregation, VCS exclusions for Jujutsu/Sapling, and fixes for --resume failures, file access, config corruption, OAuth truncation, and plugin permissions.
TL;DR
- Added session ID headers for proxy aggregation and VCS exclusions for Jujutsu/Sapling
- Fixed `--resume` failures, file access outside project root, and config corruption on Windows
- Fixed OAuth URL truncation, masked input leaks, and plugin permission errors on macOS/Linux
New
- X-Claude-Code-Session-Id header — Proxies can now aggregate requests by session without parsing request bodies.
- VCS directory exclusions — Added `.jj` and `.sl` to skip Jujutsu and Sapling metadata during Grep and file autocomplete.
Fixed
- --resume failures — Sessions created before v2.1.85 no longer fail with "tool_use ids were found without tool_result blocks".
- File access outside project root — Write/Edit/Read now work on files like `~/.claude/CLAUDE.md` when conditional skills or rules are configured.
- Config disk writes — Eliminated unnecessary writes on every skill invocation that caused performance issues and corruption on Windows.
- Out-of-memory crash — Fixed potential crash when using `/feedback` on very long sessions with large transcripts.
- --bare mode MCP tools — Tools no longer drop in interactive sessions and messages aren't silently discarded mid-turn.
- OAuth login URL truncation — The `c` shortcut now copies the full URL instead of ~20 characters.
- Masked input leaks — OAuth code paste no longer leaks token start when wrapping on narrow terminals.
- Plugin permission errors — Official marketplace plugins work again on macOS/Linux after v2.1.83 regression.
- Statusline model display — Multiple Claude Code instances no longer show another session's model when using `/model`.
- Message scroll following — Scroll now tracks new messages after wheel scroll or click-to-select at conversation bottom.
- /plugin uninstall — Pressing `n` now correctly uninstalls while preserving the data directory.
- Blank transcript regression — Pressing Enter after clicking no longer leaves transcript blank until response arrives.
- ultrathink hint lingering — Hint now clears after deleting the keyword.
- Memory growth in long sessions — Markdown/highlight render caches no longer retain full content strings.
- VSCode extension "Not responding" — Extension no longer shows this during long-running operations.
- VSCode Max plan token refresh — Users no longer default to Sonnet after OAuth token refreshes (8 hours after login).
Improved
- Startup event-loop stalls — Reduced stalls with many claude.ai MCP connectors by extending macOS keychain cache from 5s to 30s.
- Token overhead for @mentions — File content no longer JSON-escaped, reducing overhead.
- Prompt cache hit rate — Removed dynamic content from tool descriptions for Bedrock, Vertex, and Foundry users.
- Memory file interaction — Filenames in "Saved N memories" notice now highlight on hover and open on click.
- Skill descriptions — Capped at 250 characters in `/skills` listing to reduce context usage.
- /skills menu sorting — Now alphabetical for easier scanning.
- Auto mode messaging — Shows "unavailable for your plan" when disabled by plan restrictions instead of "temporarily unavailable".
- Read tool efficiency — Uses compact line-number format and deduplicates unchanged re-reads, reducing token usage.
Update via brew upgrade claude-code or download from code.claude.com.
Source: Claude Code