Claude Code 2.1.305 вернул работу на Vertex и Bedrock

В Claude Code 2.1.305 от 20 октября Anthropic исправила сбой прошлого релиза. На Vertex, Bedrock и у других провайдеров падал каждый запрос, если эндпоинт или шлюз отказывался принимать поиск инструментов. В такой ситуации Claude Code повторяет запрос без поиска.
Поиск инструментов (ToolSearch) избавляет от необходимости передавать модели описания всех инструментов в каждом запросе: она находит нужные по ходу работы. По changelog Claude Code, в 2.1.304 его включили по умолчанию для тех, кто ходит в API через свой ANTHROPIC_BASE_URL. Если шлюз отвечал 400 или 422, запрос повторялся без поиска. В списке изменений 2.1.305 на GitHub сбой прямо назван регрессией 2.1.304, и затронутых там больше: запросы падали и за шлюзами, где ToolSearch запрещён или не указан в --tools.
Вторая заметная новинка касается песочницы на Linux. Настройка sandbox.allowNestedUserNamespaces даёт командам внутри неё создавать user namespaces. Так называется механизм ядра, в котором процесс получает собственного root внутри изолированного окружения. Примерами в заметках к релизу названы Chromium и rootless podman. Цена тоже названа прямо: с этой настройкой такие команды могут обойти защиту файлов, которую даёт песочница.
Режим автоповторов без присмотра (CLAUDE_CODE_RETRY_WATCHDOG) получил ещё одну настройку. В 2.1.301 ему дали предел ожидания сброса лимита использования: если сброс слишком далеко, запрос завершается. Переменная CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS нужна для обратного случая: чтобы режим заметил лимит, который сняли раньше сброса.
Остальные исправления касаются в основном длинных агентных сессий и рабочих процессов:
- Настройки
/effortи/autocompactне применялись, если имя модели отличалось от значения вmodelOverridesрегистром букв или тегом[1m]. - Новые worktree в bare-репозитории иногда стартовали от локального HEAD вместо ветки по умолчанию, а неизменённые worktree субагентов иногда не удалялись.
- Resume рабочего процесса заново запускал уже завершённых агентов
pipeline()иparallel()вместо того, чтобы брать их из журнала прогона. - После перехода субагента на запасную модель Claude называл не ту модель, которая выполнила работу.
- Облачные сессии и teammates не сообщали Claude, что при сжатии контекста самые старые сообщения не поместились в сводку.
- Запланированные облачные сессии Cowork ещё в ряде случаев ждали по пять минут на каждого субагента, чей WebFetch просил одобрить URL, хотя одобрять было некому.
- Bash-команда на заполненном диске падала с голым путём и ошибкой ENOSPC. Сообщение об ошибке говорит, что диск заполнен и что ничего не выполнено.
Среди исправлений сразу три регрессии из трёх разных версий. Кроме поиска инструментов из 2.1.304, у self-hosted runner чинят ещё две. Стартовый скрипт, который делит с раннером или оркестратором только stdout, при заданной переменной TERM падал с ошибкой Resource temporarily unavailable, и это регрессия 2.1.300. А с 2.1.296 не работал доступ к репозиторию, если git credential helper или программа askpass читает свои настройки через GIT_CONFIG. Ещё одна правка для раннеров: оркестратор считал хук spawn-runner зависшим, если запущенный им в фоне раннер держал вывод открытым.
Code Review иногда пропускал самый свежий коммит, когда во время ревью в пул-реквест прилетало несколько пушей. Повторные ревью не открываются с LGTM, пока висят прежние блокирующие замечания. Команда /usage выводит каждое предупреждение одной строкой с исправлением и указанием источника, а клавиша f применяет эти исправления. Те же подсказки появились в VS Code и в /doctor. В узком терминале строки /usage заодно перестали обрезаться.
В режиме для скринридеров поля поиска начинаются со слова «Search:». Раньше там стоял символ, который VoiceOver читал как «telephone recorder». Подсвеченный текст промпта, например совпадения поиска по Ctrl+R и «ultrathink», читается без пробелов посреди слов. Подтверждение удаления в /artifacts переделали: 1 или Enter оставляет артефакт, 2 удаляет, Esc отменяет, а y и n на этот вопрос уже не отвечают.
MCP-сервер, переданный облачной сессией или через setMcpServers в SDK, раньше мог посреди сессии подмениться одноимённым сервером из ваших настроек. Исправлено и это. Диалоги согласия MCP реже принимают Enter, предназначенный для промпта, за Accept. Плагины, которые Claude Desktop подключает по пути, теряют свои allowed-tools, если управляемые настройки организации включают allowManagedPermissionRulesOnly.
allowedMcpServers перестал отсекать stdio-серверы из managed-mcp.json, у которых ${VAR} встречается только в env. Если такого сервера не было в вашем allowlist, после обновления он загрузится. Чтобы он оставался выключенным, внесите его в deniedMcpServers.
Дальше
Из 211 белков Claude против яда скорпионов сработали 17
318 484 варианта белка внутренняя модель Anthropic перебрала за 64 часа почти без людей и отобрала 180, а в лаборатории критериям связывания с нейротоксинами скорпионов отвечали 17. Противоядием Anthropic это не называет. Вы бы отправили в лабораторию все 180 вариантов или сначала отобрали бы сами?
Читайте также
- Claude Code 2.1.304 предупредит о лимите при возврате к чату
- 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 упавший хук может блокировать действие
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите, чтобы оставить комментарий. Он появится после модерации.

