Release notes

Claude Code 2.1.86

· 2 new· 16 fixed

This release introduces an X-Session-Id header for API requests, enabling easier proxy aggregation of user sessions, and adds Jujutsu/Sapling metadata directories to VCS exclusion lists for improved tool performance. Key fixes address the `--resume` command failure on older sessions, file operations outside the project root, and potential config corruption or out-of-memory crashes on very long sessions. Performance enhancements include reduced startup stalls, lower token overhead for file mentions, and improved prompt cache hit rates for various model users. Several user experience improvements, such as clickable memory filenames, an alphabetical skills menu, and various UI fixes, also contribute to a more robust and efficient experience.

Added2

  • Added `X-Claude-Code-Session-Id` header to API requests so proxies can aggregate requests by session without parsing the body
  • Added `.jj` and `.sl` to VCS directory exclusion lists so Grep and file autocomplete don't descend into Jujutsu or Sapling metadata

Improved1

  • Improved prompt cache hit rate for Bedrock, Vertex, and Foundry users by removing dynamic content from tool descriptions

Changed7

  • Reduced startup event-loop stalls when many claude.ai MCP connectors are configured (macOS keychain cache extended from 5s to 30s)
  • Reduced token overhead when mentioning files with `@` — raw string content no longer JSON-escaped
  • Memory filenames in the "Saved N memories" notice now highlight on hover and open on click
  • Skill descriptions in the `/skills` listing are now capped at 250 characters to reduce context usage
  • Changed `/skills` menu to sort alphabetically for easier scanning
  • Auto mode now shows "unavailable for your plan" when disabled by plan restrictions (was "temporarily unavailable")
  • Read tool now uses compact line-number format and deduplicates unchanged re-reads, reducing token usage

Fixed16

  • Fixed `--resume` failing with "tool_use ids were found without tool_result blocks" on sessions created before v2.1.85
  • Fixed Write/Edit/Read failing on files outside the project root (e.g., `~/.claude/CLAUDE.md`) when conditional skills or rules are configured
  • Fixed unnecessary config disk writes on every skill invocation that could cause performance issues and config corruption on Windows
  • Fixed potential out-of-memory crash when using `/feedback` on very long sessions with large transcript files
  • Fixed `--bare` mode dropping MCP tools in interactive sessions and silently discarding messages enqueued mid-turn
  • Fixed the `c` shortcut copying only ~20 characters of the OAuth login URL instead of the full URL
  • Fixed masked input (e.g., OAuth code paste) leaking the start of the token when wrapping across multiple lines on narrow terminals
  • Fixed official marketplace plugin scripts failing with "Permission denied" on macOS/Linux since v2.1.83
  • Fixed statusline showing another session's model when running multiple Claude Code instances and using `/model` in one of them
  • Fixed scroll not following new messages after wheel scroll or click-to-select at the bottom of a long conversation
  • Fixed `/plugin` uninstall dialog: pressing `n` now correctly uninstalls the plugin while preserving its data directory
  • Fixed a regression where pressing Enter after clicking could leave the transcript blank until the response arrived
  • Fixed `ultrathink` hint lingering after deleting the keyword
  • Fixed memory growth in long sessions from markdown/highlight render caches retaining full content strings
  • vscodeFixed extension incorrectly showing "Not responding" during long-running operations
  • vscodeFixed extension defaulting Max plan users to Sonnet after the OAuth token refreshes (8 hours after login)

Never miss a Claude Code release.

Get a push notification the moment the next version ships.

Get Claude Drops

New to the changelog? Read our guide to reading the Claude Code changelog or browse all releases.