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.

Claude Code 2.1.86: Session Headers, VCS Fixes

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