v2.1.88
Claude CodeSummary
This release introduces significant stability improvements for long sessions, fixing numerous memory leaks, rendering issues, and tool execution bugs across various operating systems and environments. Key new capabilities include flicker-free rendering options and a new `PermissionDenied` hook for better auto-mode control. Users will notice fixes for issues related to large file editing, prompt history corruption, and improved behavior in PowerShell environments.
New Features
- 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, allowing the model to retry with `{retry: true}`
- Added named subagents to `@` mention typeahead suggestions
- Pasting `!command` into an empty prompt now enters bash mode, matching typed `!` behavior
Bug Fixes
- 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
Improvements
- 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