Claude Code · версия 2.1.89
Claude Code 2.1.89: что нового
Claude Code 2.1.89: решение defer для хуков PreToolUse, хук PermissionDenied, рендеринг без мерцания и множество исправлений стабильности.
Новое 5
- Добавлено решение
"defer"для разрешений в хукахPreToolUse: headless-сессии могут приостановиться на вызове инструмента и продолжиться через-p --resume, после чего хук оценит вызов заново - Добавлена переменная окружения
CLAUDE_CODE_NO_FLICKER=1для включения рендеринга в альтернативном экране без мерцания с виртуализированной прокруткой - Добавлен хук
PermissionDenied, который срабатывает после отказов классификатора в авторежиме. Верните{retry: true}, чтобы сообщить модели, что можно повторить попытку - Именованные субагенты добавлены в подсказки при упоминании через
@ - Добавлена переменная
MCP_CONNECTION_NONBLOCKING=trueдля режима-p: она полностью отключает ожидание подключения MCP. Кроме того, подключения серверов из--mcp-configтеперь ограничены 5 секундами, а не ждут самый медленный сервер
Улучшено 8
- Улучшена свёрнутая сводка инструментов: для
ls/tree/duтеперь показывается "Listed N directories" вместо "Read N files" - Улучшен инструмент Bash: он предупреждает, если команда форматтера или линтера изменяет ранее прочитанные файлы, что помогает избежать ошибок правки устаревшего содержимого
- Улучшено ранжирование подсказок при упоминании через
@: файлы исходного кода теперь выше ресурсов MCP с похожими названиями - Улучшен промпт инструмента PowerShell: добавлены рекомендации по синтаксису с учётом версии (5.1 и 7+)
- Изменено:
Editтеперь работает с файлами, которые просматривались черезBashс помощьюsed -nилиcat, без предварительного вызоваRead - Изменено: вывод хука длиннее 10 000 символов теперь сохраняется на диск, а в контекст попадает путь к файлу и превью на 2 000 символов вместо прямой вставки всего вывода
- Изменено:
cleanupPeriodDays: 0в settings.json теперь отклоняется с ошибкой валидации — раньше это молча отключало сохранение транскриптов - Изменено: сводки рассуждений (thinking summaries) больше не генерируются по умолчанию в интерактивных сессиях — чтобы вернуть их, установите
showThinkingSummaries: trueв settings.json
Исправлено 30
- Исправлено: правила
Edit(//path/)иRead(//path/)теперь проверяют реальную цель симлинка, а не только запрошенный путь - Исправлено: голосовой push-to-talk не активировался для некоторых комбинаций с модификаторами, а голосовой режим в Windows падал с ошибкой "WebSocket upgrade rejected with HTTP 101"
- Исправлено: инструменты Edit/Write в Windows удваивали CRLF и удаляли жёсткие переносы строк Markdown (два пробела в конце строки)
- Исправлена ошибка кеша схем
StructuredOutput, из-за которой при использовании нескольких схем около 50% запросов завершались сбоем - Исправлена утечка памяти: большие JSON-входные данные оставались в ключах LRU-кеша в долгих сессиях
- Исправлено падение при удалении сообщения из очень больших файлов сессий (более 50 МБ)
- Исправлено: LSP-сервер после падения оставался в «зомби»-состоянии. Теперь он перезапускается при следующем запросе, а не отказывает до перезапуска сессии
- Исправлено: записи истории промптов с CJK-символами или эмодзи молча терялись, если попадали на границу 4 КБ в
~/.claude/history.jsonl - Исправлено:
/statsзанижал число токенов, не учитывая субагентов, и терял исторические данные старше 30 дней при смене формата кеша статистики - Исправлено: зависания
-p --resume, когда входные данные отложенного инструмента превышают 64 КБ или маркер отложенного вызова отсутствует, а также-p --continue, который не возобновлял отложенные инструменты - Исправлено: ссылки
claude-cli://не открывались на macOS - Исправлено: ошибки инструментов MCP обрезались до первого блока содержимого, если сервер возвращал ошибку из нескольких элементов
- Исправлено: напоминания скиллов и другой системный контекст терялись при отправке сообщений с изображениями через SDK
- Исправлено: хуки PreToolUse/PostToolUse теперь получают
file_pathкак абсолютный путь для инструментов Write/Edit/Read, как и описано в документации - Исправлен бесконечный цикл автосжатия: теперь определяется, что контекст снова заполняется до лимита сразу после сжатия три раза подряд, и вместо лишних вызовов API выводится понятная ошибка
- Исправлены промахи кеша промптов в долгих сессиях, вызванные изменением байтов схем инструментов посреди сессии
- Исправлено: вложенные файлы CLAUDE.md повторно добавлялись в контекст десятки раз в долгих сессиях с чтением множества файлов
- Исправлено падение
--resume, когда в транскрипте есть результат инструмента от старой версии CLI или от прерванной записи - Исправлено вводящее в заблуждение сообщение "Rate limit reached" при ошибке прав доступа (entitlement) от API: теперь показывается реальная ошибка с полезными подсказками
- Исправлено: фильтрация по условию
ifв хуках не срабатывала для составных команд (ls && git push) и команд с префиксами переменных окружения (FOO=bar git push) - Исправлено: свёрнутые значки групп поиска и чтения дублировались в истории прокрутки терминала при интенсивном параллельном использовании инструментов
- Исправлено:
invalidatesв уведомлениях не сразу убирал текущее отображаемое уведомление - Исправлено: промпт ненадолго пропадал после отправки, если во время обработки приходили фоновые сообщения
- Исправлено: текст на деванагари и с другими комбинируемыми знаками обрезался в ответах ассистента
- Исправлены артефакты отрисовки в терминалах с основным экраном после сдвигов раскладки
- Исправлено: голосовой режим не запрашивал доступ к микрофону на macOS с Apple Silicon
- Исправлено: в Windows Terminal Preview 1.25 Shift+Enter отправлял сообщение вместо вставки новой строки
- Исправлены периодические подёргивания интерфейса при потоковом выводе в iTerm2 внутри tmux
- Исправлено: инструмент PowerShell ошибочно сообщал о сбое, когда команды вроде
git pushписали прогресс в stderr в Windows PowerShell 5.1 - Исправлено возможное падение из-за нехватки памяти при использовании инструмента Edit на очень больших файлах (>1 ГиБ)
Другое 9
- Авторежим: отклонённые команды теперь показывают уведомление и появляются на вкладке Recent в
/permissions, где их можно повторить клавишейr - Задокументировано событие хука
TaskCreatedи его блокирующее поведение - Сохранены уведомления о задачах при переводе работающей команды в фон через Ctrl+B
- Инструмент PowerShell в Windows: аргументы внешних команд, содержащие одновременно двойную кавычку и пробел, теперь запрашивают подтверждение вместо автоматического разрешения (усиление защиты от разбиения аргументов в PS 5.1)
/envтеперь применяется и к командам инструмента PowerShell (раньше влиял только на Bash)- В
/usageдля тарифов Pro и Enterprise скрыта избыточная полоса «Current week (Sonnet only)» - При вставке изображения больше не добавляется пробел в конце
- Вставка
!commandв пустой промпт теперь включает bash-режим, как и при наборе!вручную - Добавлена команда
/buddyк 1 апреля — вылупите маленькое существо, которое наблюдает, как вы пишете код
Перевод официального CHANGELOG.md Claude Code. Перевод автоматический, при расхождениях приоритет у оригинала на английском.