Claude Code · версия 2.1.98
Claude Code 2.1.98: что нового
Claude Code 2.1.98: мастер настройки Vertex AI, инструмент Monitor, песочница подпроцессов на Linux и множество исправлений безопасности и разрешений Bash.
Новое 7
- Добавлен интерактивный мастер настройки Google Vertex AI. Он доступен на экране входа при выборе «3rd-party platform» и проводит через аутентификацию в GCP, настройку проекта и региона, проверку учётных данных и закрепление модели
- Добавлена переменная окружения
CLAUDE_CODE_PERFORCE_MODE: если она задана, Edit/Write/NotebookEdit не перезаписывают файлы только для чтения молча, а завершаются ошибкой с подсказкойp4 edit - Добавлен инструмент Monitor для потоковой передачи событий из фоновых скриптов
- Добавлена песочница для подпроцессов с изоляцией PID namespace на Linux, если задана
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB, а также переменная окруженияCLAUDE_CODE_SCRIPT_CAPSдля ограничения числа запусков скриптов за сессию - Добавлен флаг
--exclude-dynamic-system-prompt-sectionsдля режима print, улучшающий кеширование промптов между пользователями - Добавлено поле
workspace.git_worktreeво входной JSON строки состояния; оно устанавливается, когда текущий каталог находится внутри связанного git worktree - Добавлена переменная окружения W3C
TRACEPARENTдля подпроцессов инструмента Bash при включённой трассировке OTEL, чтобы спаны дочерних процессов корректно привязывались к дереву трассировки Claude Code
Улучшено 10
- Улучшены подсказки в фильтре
/resume: в индикатор фильтра добавлены названия проекта, worktree и ветки - Улучшены индикаторы в футере (Focus, уведомления): на узких терминалах они остаются в строке индикатора режима и больше не переносятся
- Улучшена команда
/agents: добавлен интерфейс с вкладками. На вкладке Running отображаются работающие субагенты, а на вкладке Library появились действия Run agent и View running instance - Улучшена команда
/reload-plugins: скиллы из плагинов подхватываются без перезапуска - Улучшен режим Accept Edits: команды файловой системы с префиксом из безопасных переменных окружения или обёрток процессов теперь одобряются автоматически
- Улучшен режим Vim: в режиме NORMAL клавиши
j/kлистают историю и выбирают pill в футере на границе поля ввода - Улучшены ошибки хуков в транскрипте: теперь они включают первую строку stderr, чтобы можно было разобраться без
--debug - Улучшена трассировка OTEL: спаны взаимодействий теперь корректно охватывают целые ходы при параллельных вызовах SDK, а в headless-режиме спаны завершаются по каждому ходу
- Улучшены записи транскрипта: в них теперь указывается итоговое использование токенов вместо промежуточных значений потоковой передачи
- Обновлён скилл
/claude-api: теперь он охватывает Managed Agents наряду с Claude API
Исправлено 37
- Исправлен обход разрешений инструмента Bash: флаг с экранированием обратным слешем мог быть автоматически разрешён как «только чтение» и привести к выполнению произвольного кода
- Исправлено: составные команды Bash обходили принудительные запросы разрешения для проверок безопасности и явных правил ask в режимах auto и bypass-permissions
- Исправлено: команды только для чтения с префиксами переменных окружения не запрашивали разрешение, если переменная не входила в список заведомо безопасных (
LANG,TZ,NO_COLORи т. д.) - Исправлено: перенаправления в
/dev/tcp/...и/dev/udp/...разрешались автоматически вместо запроса разрешения - Исправлено: зависшие потоковые ответы завершались по таймауту, а не переключались на режим без стриминга
- Исправлено: при 429 и небольшом
Retry-Afterот сервера все попытки повтора расходовались примерно за 13 с. Теперь экспоненциальная задержка применяется как минимальная - Исправлено: переопределение
oauth.authServerMetadataUrlв конфигурации MCP OAuth не учитывалось при обновлении токена после перезапуска, что затрагивало ADFS и похожие IdP - Исправлено: заглавные буквы превращались в строчные в xterm и встроенном терминале VS Code при активном протоколе клавиатуры kitty
- Исправлено: текстовые замены в macOS удаляли слово-триггер вместо вставки подстановки
- Исправлено:
--dangerously-skip-permissionsмолча понижался до режима accept-edits после одобрения записи в защищённый путь через Bash - Исправлено: разрешающие правила managed-settings оставались активными после их удаления администратором вплоть до перезапуска процесса
- Исправлено: изменения
permissions.additionalDirectoriesне применялись в середине сессии. Теперь удалённые каталоги сразу теряют доступ, а добавленные работают без перезапуска - Исправлено: удаление каталога из
additionalDirectoriesотзывало доступ к тому же каталогу, переданному через--add-dir - Исправлено: правила разрешений с подстановками
Bash(cmd:*)иBash(git commit *)не срабатывали на командах с лишними пробелами или табуляциями - Исправлено: запрещающие правила
Bash(...)понижались до запроса разрешения для конвейеров, гдеcdсочетался с другими сегментами - Исправлено: ложные запросы разрешений Bash для
cut -d /,paste -d /,column -s /,awk '{print $1}' fileи имён файлов с символом% - Исправлено: правила разрешений с именами, совпадающими со свойствами прототипа JavaScript (например,
toString), приводили к тому, чтоsettings.jsonмолча игнорировался - Исправлено: участники команды агентов не наследовали режим разрешений лидера при использовании
--dangerously-skip-permissions - Исправлено падение в полноэкранном режиме при наведении курсора на результаты инструментов MCP
- Исправлено: при копировании перенесённых URL в полноэкранном режиме в местах переноса строк вставлялись пробелы
- Исправлено: диффы редактирования файлов пропадали из интерфейса при
--resume, если редактируемый файл был больше 10 КБ - Исправлено несколько проблем выбора сессии в
/resume:--resume <name>открывался без возможности редактирования, перезагрузка фильтра сбрасывала состояние поиска, пустой список перехватывал нажатия стрелок, данные устаревали между проектами, а временный текст статуса задачи заменял сводки разговоров - Исправлено:
/exportне учитывал абсолютные пути и~и молча заменял указанное пользователем расширение на.txt - Исправлено:
/effort maxотклонялся для неизвестных или будущих идентификаторов моделей - Исправлено: выбор слеш-команд ломался, если
nameво frontmatter плагина совпадало с булевым ключевым словом YAML - Исправлено: текст с предложением повысить тариф при лимите запросов скрывался после перемонтирования сообщений
- Исправлено: инструменты MCP с
_meta["anthropic/maxResultSizeChars"]не обходили слой сохранения, основанный на токенах - Исправлено: в голосовом режиме при повторном удержании клавиши push-to-talk, пока обрабатывалась предыдущая расшифровка, в поле ввода попадали десятки пробелов
- Исправлено:
DISABLE_AUTOUPDATERне полностью отключал проверку версии в реестре npm и изменение симлинка при установке через npm - Исправлена утечка памяти: записи обработчика разрешений Remote Control хранились в течение всей сессии
- Исправлено: фоновые субагенты, завершившиеся с ошибкой, не сообщали родительскому агенту о частичном прогрессе
- Исправлено: хуки Stop/SubagentStop типа prompt падали в длинных сессиях, а ошибки API при вычислении хука показывали «JSON validation failed» вместо реального сообщения
- Исправлено: отрисовка опроса об обратной связи после его закрытия
- Исправлено: Bash-команды
grep -f FILE/rg -f FILEне запрашивали разрешение при чтении файла с шаблонами за пределами рабочей директории - Исправлено: при очистке устаревших worktree субагентов удалялись worktree, содержащие неотслеживаемые файлы
- Исправлено:
sandbox.network.allowMachLookupне действовал на macOS - Исправлено:
CLAUDE_CODE_MAX_CONTEXT_TOKENSтеперь учитываетDISABLE_COMPACT, если эта переменная задана
Другое 3
- LSP: Claude Code теперь представляется языковым серверам через
clientInfoв запросе initialize - [VSCode] Исправлено ложное срабатывание ошибки «requires git-bash» в Windows, когда задана
CLAUDE_CODE_GIT_BASH_PATHили Git установлен в стандартное расположение - Убраны подсказки про
/compact, если заданаDISABLE_COMPACT
Перевод официального CHANGELOG.md Claude Code. Перевод автоматический, при расхождениях приоритет у оригинала на английском.