Claude Code 2.1.307 переводит код на API 2026-10-21

В Claude Code 2.1.307 от 21 октября у встроенного скилла /claude-api появился режим api-version. Он переводит ваш код под Claude API на версию 2026-10-21. Смена версии ломает совместимость: в 2026-10-21 запрос с temperature возвращает ошибку 400.
Кроме этого режима, в заметках к релизу на GitHub есть новое событие OpenTelemetry для заблокированных вызовов инструментов, исправление двойных HTTP-вызовов MCP и таймаут для хуков checkout на self-hosted runner. Мы разобрали сборку 2.1.307 и документацию, результаты в последнем разделе.
Что переписывает api-version
Номер 2026-10-21 - это значение заголовка anthropic-version, и в документации Anthropic к нему есть отдельное руководство по миграции. Запросы с temperature, top_p или top_k получают 400 даже со значением по умолчанию. Та же ошибка приходит на блок document прямо в реплике assistant и на блок text с непустым citations в реплике user. Подробно, чем заменить убранные параметры сэмплирования, мы разобрали отдельно.
Меняются и имена полей. В Admin API roles переименовали в role_ids, group_id в rbac_group_id, name в display_name, workspace_id в scope. В Enterprise Analytics API actor.email стал actor.email_address, а summaries стал data. Вместе с версией вышли новые мажорные версии SDK, которые по умолчанию шлют 2026-10-21: Python 2.0.0, TypeScript 1.0.0, C# 13.0.0, Go 2.0.0, Java 3.0.0, PHP 1.0.0, Ruby 2.0.0 и CLI ant 2.0.0. Лицензию у них сменили с MIT на Apache 2.0. На Amazon Bedrock новая версия работает только с Claude 4.7 и более новыми моделями.
Событие safety_event
claude_code.safety_event пишется на каждый вызов инструмента, который остановили, отправили на подтверждение или вернули модели. Повод может дать правило доступа, авто-режим, проверка безопасности, хук или песочница. Раньше в телеметрии был только tool_decision с полями classifier_verdict и permission_mode, и вмешательства песочницы или хука собирать приходилось по разным событиям.
Рядом в том же релизе починили /permissions → Recently denied. Там не показывалась сама отклонённая shell-команда, а локальный классификатор авто-режима игнорировал одобрение оттуда, когда проверял повторный вызов. Теперь одобренная строка называет команду, а не её описание.
MCP и остальное
Если соединение с HTTP-сервером MCP обрывалось посреди вызова, вызов уходил дважды. Теперь повторяются только инструменты на чтение и идемпотентные. Другие заметные пункты:
- MCP-серверы больше не считаются упавшими по таймауту, если macOS или Linux уснули во время подключения. В headless-запусках они так и оставались в ошибке.
- При заблокированной связке ключей macOS
claude -pобъясняет, почему сервер требует авторизации, а после разблокировки подключается без повторного входа. - Нераспознанный вызов инструмента Claude Code повторяет до двух раз, и только потом завершает ход с ошибкой.
setModel()в Agent SDK ждёт подтверждения модели до 15 секунд вместо 5.- Форки субагентов, запущенные вместе, знают, какой запуск их собственный, и реже берутся за чужую работу.
- В Code Review команда
@claude review stop(илиoff,pause) снимает подписку@claude review alwaysс пул-реквеста.
На self-hosted runner хуки checkout по умолчанию останавливаются через 30 минут, а настройка сессии падает. Длинным хукам нужен больший --checkout-hook-timeout-min или значение 0.
Авторский разбор
Что мы проверили
22 октября мы открыли сборку 2.1.307 для linux-x64, страницу скилла Claude API в документации платформы и раздел о мониторинге в документации Claude Code.
Режим миграции действительно есть в релизе, но документация скилла о нём пока не знает. Новое событие безопасности подробнее, чем следует из заметок: источник вмешательства в нём разбит мельче пяти названных причин. В документации по мониторингу этого события тоже пока нет. Цифры по таймаутам подтвердились частично.
- В списке режимов скилла есть
api-version, а рядом в сборке лежит справочникshared/api-version-migration.md. На странице скилла в документации на 22 октября перечислены толькоpreserved-thinking-migration,managed-agents-onboardиmanaged-agents-secure. - У
safety_eventесть атрибутыtool_class,tool_name,tool_use_id,sandbox_violation_countиsandbox_enabled, последние два строками. Имена инструментов из внутреннего списка заменяются наother_tool.classifier_categoryотдаётся только за флагом, каким именно, мы не отследили. Источник вмешательства принимает значенияmanaged_policy,permission_rule,permission_mode,hook,auto_mode_block,auto_mode_no_verdict, дальше в коде идёт ветка проверки безопасности. Возврат от хука помечаетсяpost_tool_useилиpost_tool_use_failure. - В документации по мониторингу на 22 октября описан только
tool_decision. - Рядом с функцией смены модели стоит константа 15000. Где она применяется, мы не проследили, поэтому 15 секунд подтверждены только её наличием.
- Значение
--checkout-hook-timeout-minпроверяется как неотрицательное число минут с верхним пределом. Сам предел и умолчание в 30 минут наш поиск не нашёл.
Дальше
Anthropicразбор
API Claude 2026-10-21 убирает temperature, top_p и top_k
«Даже при значении по умолчанию»: в версии Claude API 2026-10-21 запрос с temperature и двумя соседними параметрами возвращает ошибку 400. Кто снижал её на Sonnet 4.6 ради стабильных ответов, теряет этот эффект без замены. Вы когда-нибудь подкручивали temperature в запросах к Claude?
Читайте также
- Claude Code 2.1.305 вернул работу на Vertex и Bedrock
- Claude Code 2.1.301 не будет ждать далёкий сброс лимита
- Claude Code 2.1.300 считает запись кэша по сроку жизни
- Claude Code 2.1.299 успевает сжать диалог до сгорания кэша
- Claude Code 2.1.296 даёт субагентам сжимать контекст раньше
- В Claude Code 2.1.295 упавший хук может блокировать действие
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите, чтобы оставить комментарий. Он появится после модерации.

