|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## 2.1.89 |
| 4 | + |
| 5 | +- Added `"defer"` permission decision to `PreToolUse` hooks — headless sessions can pause at a tool call and resume with `-p --resume` to have the hook re-evaluate |
| 6 | +- Added `CLAUDE_CODE_NO_FLICKER=1` environment variable to opt into flicker-free alt-screen rendering with virtualized scrollback |
| 7 | +- Added `PermissionDenied` hook that fires after auto mode classifier denials — return `{retry: true}` to tell the model it can retry |
| 8 | +- Added named subagents to `@` mention typeahead suggestions |
| 9 | +- Added `MCP_CONNECTION_NONBLOCKING=true` for `-p` mode to skip the MCP connection wait entirely, and bounded `--mcp-config` server connections at 5s instead of blocking on the slowest server |
| 10 | +- Auto mode: denied commands now show a notification and appear in `/permissions` → Recent tab where you can retry with `r` |
| 11 | +- Fixed `Edit(//path/**)` and `Read(//path/**)` allow rules to check the resolved symlink target, not just the requested path |
| 12 | +- Fixed voice push-to-talk not activating for some modifier-combo bindings, and voice mode on Windows failing with "WebSocket upgrade rejected with HTTP 101" |
| 13 | +- Fixed Edit/Write tools doubling CRLF on Windows and stripping Markdown hard line breaks (two trailing spaces) |
| 14 | +- Fixed `StructuredOutput` schema cache bug causing ~50% failure rate when using multiple schemas |
| 15 | +- Fixed memory leak where large JSON inputs were retained as LRU cache keys in long-running sessions |
| 16 | +- Fixed a crash when removing a message from very large session files (over 50MB) |
| 17 | +- Fixed LSP server zombie state after crash — server now restarts on next request instead of failing until session restart |
| 18 | +- Fixed prompt history entries containing CJK or emoji being silently dropped when they fall on a 4KB boundary in `~/.claude/history.jsonl` |
| 19 | +- Fixed `/stats` undercounting tokens by excluding subagent usage, and losing historical data beyond 30 days when the stats cache format changes |
| 20 | +- Fixed `-p --resume` hangs when the deferred tool input exceeds 64KB or no deferred marker exists, and `-p --continue` not resuming deferred tools |
| 21 | +- Fixed `claude-cli://` deep links not opening on macOS |
| 22 | +- Fixed MCP tool errors truncating to only the first content block when the server returns multi-element error content |
| 23 | +- Fixed skill reminders and other system context being dropped when sending messages with images via the SDK |
| 24 | +- Fixed PreToolUse/PostToolUse hooks to receive `file_path` as an absolute path for Write/Edit/Read tools, matching the documented behavior |
| 25 | +- Fixed autocompact thrash loop — now detects when context refills to the limit immediately after compacting three times in a row and stops with an actionable error instead of burning API calls |
| 26 | +- Fixed prompt cache misses in long sessions caused by tool schema bytes changing mid-session |
| 27 | +- Fixed nested CLAUDE.md files being re-injected dozens of times in long sessions that read many files |
| 28 | +- Fixed `--resume` crash when transcript contains a tool result from an older CLI version or interrupted write |
| 29 | +- Fixed misleading "Rate limit reached" message when the API returned an entitlement error — now shows the actual error with actionable hints |
| 30 | +- Fixed hooks `if` condition filtering not matching compound commands (`ls && git push`) or commands with env-var prefixes (`FOO=bar git push`) |
| 31 | +- Fixed collapsed search/read group badges duplicating in terminal scrollback during heavy parallel tool use |
| 32 | +- Fixed notification `invalidates` not clearing the currently-displayed notification immediately |
| 33 | +- Fixed prompt briefly disappearing after submit when background messages arrived during processing |
| 34 | +- Fixed Devanagari and other combining-mark text being truncated in assistant output |
| 35 | +- Fixed rendering artifacts on main-screen terminals after layout shifts |
| 36 | +- Fixed voice mode failing to request microphone permission on macOS Apple Silicon |
| 37 | +- Fixed Shift+Enter submitting instead of inserting a newline on Windows Terminal Preview 1.25 |
| 38 | +- Fixed periodic UI jitter during streaming in iTerm2 when running inside tmux |
| 39 | +- Fixed PowerShell tool incorrectly reporting failures when commands like `git push` wrote progress to stderr on Windows PowerShell 5.1 |
| 40 | +- Fixed a potential out-of-memory crash when the Edit tool was used on very large files (>1 GiB) |
| 41 | +- Improved collapsed tool summary to show "Listed N directories" for `ls`/`tree`/`du` instead of "Read N files" |
| 42 | +- Improved Bash tool to warn when a formatter/linter command modifies files you have previously read, preventing stale-edit errors |
| 43 | +- Improved `@`-mention typeahead to rank source files above MCP resources with similar names |
| 44 | +- Improved PowerShell tool prompt with version-appropriate syntax guidance (5.1 vs 7+) |
| 45 | +- Changed `Edit` to work on files viewed via `Bash` with `sed -n` or `cat`, without requiring a separate `Read` call first |
| 46 | +- Changed hook output over 50K characters to be saved to disk with a file path + preview instead of being injected directly into context |
| 47 | +- Changed `cleanupPeriodDays: 0` in settings.json to be rejected with a validation error — it previously silently disabled transcript persistence |
| 48 | +- Changed thinking summaries to no longer be generated by default in interactive sessions — set `showThinkingSummaries: true` in settings.json to restore |
| 49 | +- Documented `TaskCreated` hook event and its blocking behavior |
| 50 | +- Preserved task notifications when backgrounding a running command with Ctrl+B |
| 51 | +- PowerShell tool on Windows: external-command arguments containing both a double-quote and whitespace now prompt instead of auto-allowing (PS 5.1 argument-splitting hardening) |
| 52 | +- `/env` now applies to PowerShell tool commands (previously only affected Bash) |
| 53 | +- `/usage` now hides redundant "Current week (Sonnet only)" bar for Pro and Enterprise plans |
| 54 | +- Image paste no longer inserts a trailing space |
| 55 | +- Pasting `!command` into an empty prompt now enters bash mode, matching typed `!` behavior |
| 56 | +- `/buddy` is here for April 1st — hatch a small creature that watches you code |
| 57 | + |
3 | 58 | ## 2.1.87 |
4 | 59 |
|
5 | 60 | - Fixed messages in Cowork Dispatch not getting delivered |
|
0 commit comments