Клодыч В Telegram ↗

Claude Code · версия 2.1.69

Claude Code 2.1.69: что нового

Claude Code 2.1.69: скилл /claude-api, /reload-plugins, голосовой ввод на 20 языках, новые хуки и настройки, множество исправлений.

Релиз Новое: 20Улучшено: 22Исправлено: 57Другое: 4

Новое 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
  • Исправлена утечка памяти: старые версии массива сообщений накапливались в memoCache React Compiler в длинных сессиях
  • Исправлена утечка памяти: области рендеринга REPL накапливались в длинных сессиях (около 35 МБ за 1000 ходов)
  • Исправлено удержание памяти в тиммейтах внутри процесса: полная история разговора родителя закреплялась на всё время жизни тиммейта, из-за чего сборщик мусора не мог освободить её после /clear или автоматического сжатия контекста
  • Исправлена утечка памяти в интерактивном режиме: события хуков могли неограниченно накапливаться в долгих сессиях
  • Исправлено зависание, когда --mcp-config указывает на повреждённый файл
  • Исправлен медленный запуск при большом количестве установленных скиллов и плагинов
  • Исправлен запрос разрешения для cd <outside-dir> && <cmd>: теперь он показывает всю цепочку команд, а не только «Yes, allow reading from <dir>/»
  • Исправлено: условные файлы .claude/rules/*.md (с frontmatter paths:) и вложенные файлы 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, когда модель использует перенаправление в стиле CMD 2>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)
Следить за обновлениями через RSS

Перевод официального CHANGELOG.md Claude Code. Перевод автоматический, при расхождениях приоритет у оригинала на английском.

Получить API-ключ →