release: Claude Code v2.1.85 (28 patches)
This commit is contained in:
32
claude/releases/v2.1.85/CHANGELOG_UPSTREAM.md
Normal file
32
claude/releases/v2.1.85/CHANGELOG_UPSTREAM.md
Normal file
@@ -0,0 +1,32 @@
|
||||
## 2.1.85
|
||||
|
||||
- Added `CLAUDE_CODE_MCP_SERVER_NAME` and `CLAUDE_CODE_MCP_SERVER_URL` environment variables to MCP `headersHelper` scripts, allowing one helper to serve multiple servers
|
||||
- Added conditional `if` field for hooks using permission rule syntax (e.g., `Bash(git *)`) 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
|
||||
- Deep link queries (`claude-cli://open?q=…`) now support up to 5,000 characters, with a "scroll to review" warning for long pre-filled prompts
|
||||
- MCP OAuth now follows RFC 9728 Protected Resource Metadata discovery to find the authorization server
|
||||
- Plugins blocked by organization policy (`managed-settings.json`) can no longer be installed or enabled, and are hidden from marketplace views
|
||||
- PreToolUse hooks can now satisfy `AskUserQuestion` by returning `updatedInput` alongside `permissionDecision: "allow"`, enabling headless integrations that collect answers via their own UI
|
||||
- `tool_parameters` in OpenTelemetry tool_result events are now gated behind `OTEL_LOG_TOOL_DETAILS=1`
|
||||
- Fixed `/compact` failing with "context exceeded" when the conversation has grown too large for the compact request itself to fit
|
||||
- Fixed `/plugin enable` and `/plugin disable` failing when a plugin's install location differs from where it's declared in settings
|
||||
- Fixed `--worktree` exiting with an error in non-git repositories before the `WorktreeCreate` hook could run
|
||||
- Fixed `deniedMcpServers` setting not blocking 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 `OTEL_LOGS_EXPORTER`, `OTEL_METRICS_EXPORTER`, or `OTEL_TRACES_EXPORTER` is 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 via `403 insufficient_scope` now correctly trigger the re-authorization flow
|
||||
- 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 running certain slash commands, with up-arrow unable to retrieve them
|
||||
- Fixed Python Agent SDK: `type:'sdk'` MCP servers passed via `--mcp-config` are no longer dropped 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 staying 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 left in enhanced keyboard mode after exit in Ghostty, Kitty, WezTerm, and other terminals supporting the Kitty keyboard protocol — Ctrl+C and Ctrl+D now work correctly after quitting
|
||||
- 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
|
||||
16727
claude/releases/v2.1.85/cli.js
Executable file
16727
claude/releases/v2.1.85/cli.js
Executable file
File diff suppressed because one or more lines are too long
36
claude/releases/v2.1.85/install.sh
Executable file
36
claude/releases/v2.1.85/install.sh
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
# Claude Code Patcher — standalone installer for v2.1.85
|
||||
# Usage: sudo bash install.sh [--all] [--skip-cli]
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
CLI_JS="$SCRIPT_DIR/cli.js"
|
||||
PATCHER="$SCRIPT_DIR/claude_code_patcher.py"
|
||||
CONFIG="$SCRIPT_DIR/patcher.config.json"
|
||||
|
||||
TARGET="/usr/lib/node_modules/@anthropic-ai/claude-code/cli.js"
|
||||
[ ! -f "$TARGET" ] && TARGET="/usr/local/lib/node_modules/@anthropic-ai/claude-code/cli.js"
|
||||
[ ! -f "$TARGET" ] && TARGET="/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js"
|
||||
|
||||
if [ ! -f "$TARGET" ]; then
|
||||
echo "ERROR: Claude Code cli.js not found. Install Claude Code first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Install patched cli.js
|
||||
if [ "$1" != "--skip-cli" ]; then
|
||||
echo "Installing patched cli.js..."
|
||||
BACKUP="$TARGET.bak.$(date +%Y%m%d%H%M%S)"
|
||||
cp "$TARGET" "$BACKUP"
|
||||
cp "$CLI_JS" "$TARGET"
|
||||
node --check "$TARGET" || { cp "$BACKUP" "$TARGET"; echo "SYNTAX ERROR, rolled back"; exit 1; }
|
||||
echo "Installed. Backup: $BACKUP"
|
||||
fi
|
||||
|
||||
# Apply user settings
|
||||
if [ -f "$PATCHER" ] && [ -f "$CONFIG" ]; then
|
||||
echo "Applying user settings..."
|
||||
python3 "$PATCHER" --config "$CONFIG" --all --skip-cli-patch --skip-update
|
||||
fi
|
||||
|
||||
echo "Done. Run 'claude --version' to verify."
|
||||
Reference in New Issue
Block a user