release: Claude Code v2.1.88 (28 patches)
This commit is contained in:
@@ -1,6 +1,12 @@
|
||||
{
|
||||
"latest": "2.1.87",
|
||||
"latest": "2.1.88",
|
||||
"releases": [
|
||||
{
|
||||
"version": "2.1.88",
|
||||
"date": "2026-03-31",
|
||||
"patches": 28,
|
||||
"status": "partial"
|
||||
},
|
||||
{
|
||||
"version": "2.1.87",
|
||||
"date": "2026-03-30",
|
||||
|
||||
43
claude/releases/v2.1.88/CHANGELOG_UPSTREAM.md
Normal file
43
claude/releases/v2.1.88/CHANGELOG_UPSTREAM.md
Normal file
@@ -0,0 +1,43 @@
|
||||
## 2.1.88
|
||||
|
||||
- Added `CLAUDE_CODE_NO_FLICKER=1` environment variable to opt into flicker-free alt-screen rendering with virtualized scrollback
|
||||
- Added `PermissionDenied` hook that fires after auto mode classifier denials — return `{retry: true}` to tell the model it can retry
|
||||
- Added named subagents to `@` mention typeahead suggestions
|
||||
- Fixed prompt cache misses in long sessions caused by tool schema bytes changing mid-session
|
||||
- Fixed nested CLAUDE.md files being re-injected dozens of times in long sessions that read many files
|
||||
- Fixed Edit/Write tools doubling CRLF on Windows and stripping Markdown hard line breaks (two trailing spaces)
|
||||
- Fixed `StructuredOutput` schema cache bug causing ~50% failure rate in workflows with multiple schemas
|
||||
- Fixed memory leak where large JSON inputs were retained as LRU cache keys in long-running sessions
|
||||
- Fixed a potential out-of-memory crash when the Edit tool was used on very large files (>1 GiB)
|
||||
- Fixed a crash when removing a message from very large session files (over 50MB)
|
||||
- Fixed `--resume` crash when transcript contains a tool result from an older CLI version or interrupted write
|
||||
- Fixed misleading "Rate limit reached" message when the API returned an entitlement error — now shows the actual error with actionable hints
|
||||
- Fixed LSP server zombie state after crash — server now restarts on next request instead of failing until session restart
|
||||
- Fixed hooks `if` condition filtering not matching compound commands (`ls && git push`) or commands with env-var prefixes (`FOO=bar git push`)
|
||||
- Fixed prompt history entries containing CJK or emoji being silently dropped when they fall on a 4KB boundary in `~/.claude/history.jsonl`
|
||||
- Fixed `/stats` losing historical data beyond 30 days when the stats cache format changes
|
||||
- Fixed `/stats` undercounting tokens by excluding subagent/fork usage
|
||||
- Fixed scrollback disappearing when scrolling up in long sessions
|
||||
- Fixed collapsed search/read group badges duplicating in terminal scrollback during heavy parallel tool use
|
||||
- Fixed notification `invalidates` not clearing the currently-displayed notification immediately
|
||||
- Fixed prompt briefly disappearing after submit when background messages arrived during processing
|
||||
- Fixed long `/btw` responses being clipped with no way to scroll — responses now render in a scrollable viewport
|
||||
- Fixed Devanagari and other combining-mark text being truncated in assistant output
|
||||
- Fixed rendering artifacts on main-screen terminals after layout shifts
|
||||
- Fixed voice mode failing to request microphone permission on macOS Apple Silicon
|
||||
- Fixed voice push-to-talk not activating for some modifier-combo bindings
|
||||
- Fixed voice mode on Windows failing with "WebSocket upgrade rejected with HTTP 101"
|
||||
- Fixed Shift+Enter submitting instead of inserting a newline on Windows Terminal Preview 1.25
|
||||
- Fixed periodic UI jitter during streaming in iTerm2 when running inside tmux
|
||||
- Fixed PowerShell tool incorrectly reporting failures when commands like `git push` wrote progress to stderr on Windows PowerShell 5.1
|
||||
- Fixed SDK error result messages (`error_during_execution`, `error_max_turns`) to correctly set `is_error: true` with descriptive messages
|
||||
- Fixed task notifications being lost when backgrounding a session with Ctrl+B
|
||||
- Fixed PreToolUse/PostToolUse hooks not providing `file_path` as an absolute path for Write/Edit/Read tools
|
||||
- Improved PowerShell tool prompt with version-appropriate syntax guidance (5.1 vs 7+)
|
||||
- Thinking summaries are no longer generated by default in interactive sessions — set `showThinkingSummaries: true` in settings to restore
|
||||
- Auto mode denied commands now show a notification and appear in `/permissions` → Recent tab
|
||||
- `/env` now applies to PowerShell tool commands (previously only affected Bash)
|
||||
- `/usage` now hides redundant "Current week (Sonnet only)" bar for Pro and Enterprise plans
|
||||
- Collapsed tool summary now shows "Listed N directories" for ls/tree/du instead of "Read N files"
|
||||
- Image paste no longer inserts a trailing space
|
||||
- Pasting `!command` into an empty prompt now enters bash mode, matching typed `!` behavior
|
||||
16667
claude/releases/v2.1.88/cli.js
Executable file
16667
claude/releases/v2.1.88/cli.js
Executable file
File diff suppressed because one or more lines are too long
36
claude/releases/v2.1.88/install.sh
Executable file
36
claude/releases/v2.1.88/install.sh
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
# Claude Code Patcher — standalone installer for v2.1.88
|
||||
# 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