Change8

v2.1.85

Claude Code
6 features17 fixes7 improvementsclidesktophooksmcpsdkvscode

Summary

This release introduces significant enhancements to hook execution, allowing conditional running based on permission rules and enabling headless integrations via PreToolUse hooks. Several critical bugs related to session compaction, plugin management, and OpenTelemetry logging have been resolved. Performance improvements were also made, particularly around scrolling large transcripts and file autocomplete.

New Features

  • Added conditional `if` field for hooks using permission rule syntax to filter when they run, reducing process spawning overhead.
  • Added timestamp markers in transcripts when scheduled tasks (`/loop`, `CronCreate`) fire.
  • Added trailing space after `[Image #N]` placeholder when pasting images.
  • Enabled deep link queries (`claude-cli://open?q=...`) to support up to 5,000 characters, with a warning for long pre-filled prompts.
  • Enabled PreToolUse hooks to satisfy `AskUserQuestion` by returning `updatedInput` alongside `permissionDecision: \"allow\" `, supporting headless integrations.
  • Plugins blocked by organization policy are now hidden from marketplace views and cannot be installed or enabled.

Bug Fixes

  • Fixed `/compact` failing with "context exceeded" when the conversation history is too large for the compact request itself.
  • Fixed `/plugin enable` and `/plugin disable` failing when a plugin's install location differs from its declaration in settings.
  • Fixed `--worktree` exiting with an error in non-git repositories before the `WorktreeCreate` hook could execute.
  • Fixed `deniedMcpServers` setting failing to block claude.ai MCP servers.
  • Fixed `switch_display` in the computer-use tool returning "not available in this session" on multi-monitor setups.
  • Fixed crash when OpenTelemetry log, metric, or trace exporters are set to `none`.
  • Fixed diff syntax highlighting not working in non-native builds.
  • Fixed MCP step-up authorization failing when a refresh token exists; servers requesting elevated scopes now correctly trigger re-authorization.
  • Fixed memory leak in remote sessions when a streaming response is interrupted.
  • Fixed persistent ECONNRESET errors during edge connection churn by using a fresh TCP connection on retry.
  • Fixed prompts getting stuck in the queue after certain slash commands, preventing retrieval with the up-arrow key.
  • Fixed Python Agent SDK: `type:'sdk'` MCP servers passed via `--mcp-config` not being retained during startup.
  • Fixed raw key sequences appearing in the prompt when running over SSH or in the VS Code integrated terminal.
  • Fixed Remote Control session status remaining stuck on "Requires Action" after a permission is resolved.
  • Fixed shift+enter and meta+enter being intercepted by typeahead suggestions instead of inserting newlines.
  • Fixed stale content bleeding through when scrolling up during streaming.
  • Fixed terminal remaining in enhanced keyboard mode after exit in supported terminals (Ghostty, Kitty, WezTerm), ensuring Ctrl+C and Ctrl+D work correctly.

Improvements

  • Added environment variables (`CLAUDE_CODE_MCP_SERVER_NAME` and `CLAUDE_CODE_MCP_SERVER_URL`) to MCP `headersHelper` scripts to allow one helper to serve multiple servers.
  • MCP OAuth now follows RFC 9728 Protected Resource Metadata discovery for authorization server location.
  • Tool parameters in OpenTelemetry `tool_result` events are now hidden unless `OTEL_LOG_TOOL_DETAILS=1` is set.
  • Improved `@`-mention file autocomplete performance on large repositories.
  • Improved PowerShell dangerous command detection.
  • Improved scroll performance with large transcripts by replacing WASM yoga-layout with a pure TypeScript implementation.
  • Reduced UI stutter when compaction triggers on large sessions.

Claude Code Documentation

Claude Code v2.1.85 - What's New - Change8