Claude Code · версия 2.1.69
Claude Code 2.1.69: что нового
Claude Code 2.1.69: скилл /claude-api, /reload-plugins, голосовой ввод на 20 языках, новые хуки и настройки, множество исправлений.
Новое 20
- Добавлен скилл
/claude-apiдля создания приложений на Claude API и Anthropic SDK - Добавлено: Ctrl+U в пустом bash-промпте (
!) выходит из bash-режима, какescapeиbackspace - Добавлена поддержка цифровой клавиатуры (numpad) для выбора вариантов в вопросах Claude во время интервью (раньше работал только цифровой ряд над QWERTY)
- Добавлен необязательный аргумент с именем для
/remote-controlиclaude remote-control(/remote-control My Projectили--name "My Project"), задающий своё название сессии, которое видно в claude.ai/code - Добавлена поддержка голосового ввода (Voice STT) для 10 новых языков (всего 20): русский, польский, турецкий, нидерландский, украинский, греческий, чешский, датский, шведский, норвежский
- Добавлено отображение уровня effort (например, «with low effort») в логотипе и спиннере, чтобы проще было понять, какая настройка effort активна
- Добавлено отображение имени агента в заголовке терминала при запуске
claude --agent - Добавлена настройка
sandbox.enableWeakerNetworkIsolation(только macOS), позволяющая Go-программам вродеgh,gcloudиterraformпроверять TLS-сертификаты при использовании собственного MITM-прокси сhttpProxyPort - Добавлена настройка
includeGitInstructions(и переменная окруженияCLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS), которая убирает из системного промпта Claude встроенные инструкции по коммитам и работе с PR - Добавлена команда
/reload-plugins, которая применяет ожидающие изменения плагинов без перезапуска - Добавлен одноразовый промпт при запуске с предложением Claude Code Desktop на macOS и Windows (не более 3 показов, можно закрыть)
- Добавлена переменная
${CLAUDE_SKILL_DIR}, с помощью которой скиллы могут ссылаться на собственную директорию в содержимом SKILL.md - Добавлено событие хука
InstructionsLoaded, срабатывающее при загрузке в контекст файлов CLAUDE.md или.claude/rules/*.md - В события хуков добавлены поля
agent_id(для субагентов) иagent_type(для субагентов и--agent) - В команды хуков строки состояния добавлено поле
worktreeс именем, путём, веткой и исходной директорией репозитория при работе в сессии--worktree - Добавлен параметр
pluginTrustMessageв managed-настройках: он дописывает организационный контекст к предупреждению о доверии к плагину, которое показывается перед установкой - Добавлена загрузка ограничений политик (например, ограничений remote control) для пользователей OAuth на тарифе Team, а не только Enterprise
- Добавлен
pathPatternвstrictKnownMarketplacesдля проверки источников маркетплейсов (файлов и директорий) по регулярному выражению, в дополнение к ограничениямhostPattern - Добавлен тип источника плагина
git-subdirдля указания подкаталога внутри git-репозитория - Добавлена опция конфигурации
oauth.authServerMetadataUrlдля MCP-серверов: она задаёт собственный URL для обнаружения OAuth-метаданных, если стандартный способ не сработал
Улучшено 22
- Улучшена производительность спиннера: 50-миллисекундный цикл анимации изолирован от окружающей оболочки, что снижает нагрузку на рендеринг и CPU во время ходов
- Улучшена производительность отрисовки интерфейса в нативных бинарниках с React Compiler
- Ускорен запуск с
--worktree: из стартового пути убран один подпроцесс git - Улучшен запуск на macOS: убраны лишние перезагрузки файлов настроек при разрешении managed-настроек
- Улучшен запуск на macOS для корпоративных и командных пользователей Claude.ai: пропущен ненужный обход keychain
- Улучшен запуск MCP в режиме
-p: получение конфигурации claude.ai теперь идёт параллельно с локальными подключениями, а вместо последовательных батчей используется пул с ограничением конкурентности - Улучшен запуск голосового режима: убраны незаметные анимации пульсации при прогреве, из-за которых лагали перерисовки
- Улучшена обработка бинарного контента в MCP: инструменты, которые возвращают PDF, документы Office или аудио, теперь сохраняют декодированные байты на диск с правильным расширением, а не выливают сырой base64 в контекст разговора. WebFetch тоже сохраняет бинарные ответы рядом со сводкой.
- Улучшено потребление памяти в длинных сессиях:
onSubmitтеперь стабилен между обновлениями сообщений - Улучшены отрисовка LSP-инструмента и построение контекста памяти: файлы больше не читаются целиком
- Улучшены загрузка сессий и синхронизация памяти: большие файлы больше не читаются в память до проверок размера и бинарности
- Улучшена производительность файловых операций: содержимое файлов больше не читается при проверках существования (6 мест)
- Улучшена документация: уточнено, что
--append-system-prompt-fileи--system-prompt-fileработают в интерактивном режиме (раньше было написано, что только в режиме print) - Базовое потребление памяти снижено примерно на 16 МБ за счёт отложенной предзагрузки Yoga WASM
- Снижено потребление памяти в сессиях SDK и CCR при использовании вывода stream-json
- Снижено потребление памяти при возобновлении больших сессий (включая историю после сжатия контекста)
- Снижен расход токенов в многоагентных задачах: финальные отчёты субагентов стали лаконичнее
- Изменено: пользователи Sonnet 4.5 на тарифах Pro/Max/Team Premium автоматически переводятся на Sonnet 4.6
- Изменено: выбор в
/resumeтеперь показывает ваш последний промпт вместо первого. Это также устраняет появление некоторых заголовков в виде(session). - Изменено: при сбое коннекторов claude.ai MCP теперь показывается уведомление, а не тихое исчезновение из списка инструментов
- Изменено: подсказки с примерами команд теперь генерируются детерминированно, без вызова Haiku
- Изменено: при возобновлении после сжатия контекста больше не выводится вступительный пересказ перед продолжением работы
Исправлено 57
- Исправлена проблема безопасности: при вложенном обнаружении скиллов могли загружаться скиллы из игнорируемых git директорий вроде
node_modules - Исправлено: диалог доверия при первом запуске молча включал все серверы из
.mcp.json. Теперь, как и должно быть, показывается диалог подтверждения для каждого сервера - Исправлено:
claude remote-controlсразу падал при установке через npm с ошибкой "bad option: --sdk-url" (anthropics/claude-code#28334) - Исправлено:
--model claude-opus-4-0и--model claude-opus-4-1резолвились в устаревшие версии Opus вместо актуальной - Исправлено повреждение связки ключей macOS при использовании нескольких OAuth MCP-серверов. Большие блоки OAuth-метаданных могли переполнять stdin-буфер
security -i, из-за чего устаревшие учётные данные молча оставались на месте и постоянно появлялись запросы/login. - Исправлено:
.credentials.jsonтерялsubscriptionType(показывалось «Claude API» вместо «Claude Pro»/«Claude Max»), если эндпоинт профиля временно не отвечал во время обновления токена (anthropics/claude-code#30185) - Исправлено: после Bash-команд в песочнице на Linux в рабочей директории появлялись «призрачные» dotfiles (
.bashrc,HEADи т. д.) как неотслеживаемые файлы - Исправлено: Shift+Enter в Ghostty по SSH печатал
[27;2;13~вместо переноса строки - Исправлено: stash (Ctrl+S) очищался при отправке сообщения, пока Claude работает
- Исправлено: ctrl+o (переключение транскрипта) зависал на несколько секунд в длинных сессиях с большим количеством правок файлов
- Исправлено: поле ввода обратной связи в режиме планирования не поддерживало многострочный ввод (теперь backslash+Enter и Shift+Enter вставляют перенос строки)
- Исправлено: курсор не перемещался вниз на пустые строки в верхней части поля ввода
- Исправлено падение
/stats, когда в файлах транскрипта есть записи с отсутствующими или некорректными временными метками - Исправлено короткое зависание после ошибки стриминга в длинных сессиях (раньше транскрипт целиком перезаписывался ради удаления одной строки, теперь он усекается на месте)
- Исправлено:
--setting-sources userне блокировал динамически обнаруживаемые скиллы проекта - Исправлено дублирование CLAUDE.md, слеш-команд, агентов и правил при запуске из worktree, вложенного в основной репозиторий (например,
claude -w) - Исправлено: хуки плагинов Stop/SessionEnd и др. переставали срабатывать после любой операции
/plugin - Исправлено: хуки плагинов молча отбрасывались, если два плагина использовали одинаковый шаблон команды
${CLAUDE_PLUGIN_ROOT}/... - Исправлена утечка памяти в долгоживущих сессиях SDK/CCR, где сообщения диалога без необходимости сохранялись в памяти
- Исправлены ошибки API 400 в форкнутых агентах (автосжатие, суммаризация) при возобновлении сессий, прерванных посреди пакета вызовов инструментов
- Исправлена ошибка «unexpected tool_use_id found in tool_result blocks» при возобновлении разговоров, которые начинаются с «осиротевшего» результата инструмента
- Исправлен случайный запуск вложенных тиммейтов из тиммейтов через параметр
nameинструмента Agent - Исправлено:
CLAUDE_CODE_MAX_OUTPUT_TOKENSигнорировался при сжатии контекста разговора - Исправлено: сводка
/compactотображалась как сообщение пользователя в клиентах SDK (веб-интерфейс Claude Code Remote, расширение для VSCode) - Исправлено залипание пробела в голосовом режиме после неудачной активации голоса (гонка при загрузке модуля, холодный GrowthBook)
- Исправлено копирование файлов в worktree на Windows
- Исправлено определение глобальной папки
.claudeна Windows - Исправлен обход через симлинки: запись новых файлов через родительский каталог-симлинк могла выйти за пределы рабочего каталога в режиме
acceptEdits - Исправлено: песочница запрашивала у пользователя подтверждение для недопустимых доменов при включённом
allowManagedDomainsOnlyв управляемых настройках. Теперь такие домены блокируются автоматически, без возможности обхода - Исправлено: интерактивные инструменты (например,
AskUserQuestion) молча разрешались автоматически, если были указаны в allowed-tools скилла, — запрос разрешения пропускался, а инструмент запускался с пустыми ответами - Исправлен скачок потребления памяти на несколько ГБ при коммите, если в рабочем дереве есть крупные неотслеживаемые бинарные файлы
- Исправлено: Escape не прерывал выполняющийся ход, если в поле ввода был черновик текста. Чтобы вернуть сообщения из очереди на редактирование, нажмите стрелку вверх, а чтобы очистить строку ввода — Ctrl+U
- Исправлено падение Android-приложения при запуске локальных слеш-команд (
/voice,/cost) в сессиях Remote Control - Исправлена утечка памяти: старые версии массива сообщений накапливались в
memoCacheReact Compiler в длинных сессиях - Исправлена утечка памяти: области рендеринга REPL накапливались в длинных сессиях (около 35 МБ за 1000 ходов)
- Исправлено удержание памяти в тиммейтах внутри процесса: полная история разговора родителя закреплялась на всё время жизни тиммейта, из-за чего сборщик мусора не мог освободить её после
/clearили автоматического сжатия контекста - Исправлена утечка памяти в интерактивном режиме: события хуков могли неограниченно накапливаться в долгих сессиях
- Исправлено зависание, когда
--mcp-configуказывает на повреждённый файл - Исправлен медленный запуск при большом количестве установленных скиллов и плагинов
- Исправлен запрос разрешения для
cd <outside-dir> && <cmd>: теперь он показывает всю цепочку команд, а не только «Yes, allow reading from <dir>/» - Исправлено: условные файлы
.claude/rules/*.md(с frontmatterpaths:) и вложенные файлы CLAUDE.md не загружались в режиме print (claude -p) - Исправлено:
/clearне полностью очищал все кэши сессии, из-за чего в длинных сессиях память удерживалась дольше нужного - Исправлено мерцание терминала из-за анимированных элементов на границе прокрутки
- Исправлены просадки кадров интерфейса на macOS при работе с MCP-серверами с OAuth (регрессия, появившаяся в 2.1.x)
- Исправлены периодические подвисания кадров при наборе текста из-за синхронной записи отладочного лога
- Исправлено: хуки
TeammateIdleиTaskCompletedтеперь поддерживают{"continue": false, "stopReason": "..."}для остановки тиммейта, как и хукStop - Исправлено: плагинные хуки
WorktreeCreateиWorktreeRemoveмолча игнорировались - Исправлена ошибка загрузки скиллов из frontmatter SKILL.md, когда описание содержит двоеточия (например, «Triggers include: X, Y, Z»)
- Исправлено: проектные скиллы без поля
description:во frontmatter не попадали в список доступных Claude скиллов - Исправлено:
/contextпоказывал одинаковое количество токенов для всех MCP-инструментов одного сервера - Исправлено создание файла с именем
nulна Windows, когда модель использует перенаправление в стиле CMD2>nulв Git Bash - Исправлены лишние пустые строки под каждым вызовом инструмента в развёрнутом просмотре транскрипта субагента (Ctrl+O)
- Исправлено: клавиши Tab и стрелки не переключали вкладки настроек, когда поле поиска в
/configв фокусе, но пусто - Исправлено: OAuth-сессии с сервисным ключом (контейнеры CCR) засоряли логи ошибками
[ERROR]с 403 от эндпоинтов уровня профиля - Исправлен непоследовательный цвет индикатора состояния «Remote Control active»
- Исправлено: курсор голосовой волны закрывал первую букву суффикса при диктовке в середине введённого текста
- Исправлено: при прогреве голосового ввода отображались все 5 пробелов вместо примерно двух (в соответствии с подсказкой «keep holding…»)
Другое 4
- [SDK] Изменено: при создании задачи поле
activeFormбольше не обязательно — спиннер берёт текст из темы задачи - [VSCode] Добавлено отображение сжатия контекста в виде сворачиваемой карточки «Compacted chat» с саммари внутри
- [VSCode] Переключатель режимов разрешений теперь учитывает
permissions.disableBypassPermissionsModeиз действующих настроек Claude Code (включая managed/policy-настройки): при значенииdisableрежим обхода разрешений скрывается из списка - [VSCode] Исправлено: RTL-текст (арабский, иврит, персидский) отображался в чате в обратном порядке (регрессия в v2.1.63)
Перевод официального CHANGELOG.md Claude Code. Перевод автоматический, при расхождениях приоритет у оригинала на английском.