Claude Code 2.1.318: срок входа, логи раннера и шлюз AWS

Claude Code 2.1.318 от 4 ноября сообщает, когда истекает сохранённый вход claude.ai. Дату показывает claude auth status в поле loginExpiresAt, JSON-результат claude -p отдаёт её как credential_expires_at, а текстовый вывод claude -p за 10 дней до срока пишет в stderr однострочное предупреждение. Если вход у задания без присмотра всё-таки истёк, ошибка входа прямо говорит об этом, а в claude -p ещё и называет команды claude auth login и claude setup-token.
В той же версии закрыта регрессия из 2.1.314: после того как заканчивались повторы битого вызова инструмента, --continue иногда терял прежний разговор. Остальное в заметках к релизу на GitHub касается в основном headless-запусков, self-hosted runner и машин с домашним каталогом на сетевом диске.
Что поправить в скриптах
У self-hosted runner сменился формат строк лога оркестратора. Строка ok session=… печатается в stdout на любом уровне логирования (раньше только на debug и в stderr), а reason=… в ней идёт после jti=…. Строка nack session=… заканчивает список полей на reason=… после retryable=…, и скрипты, которые ищут retryable=true: или retryable=false:, Anthropic прямо просит обновить. Хук spawn-runner заодно получил переменную CLAUDE_RUNNER_SPAWN_REASON: в ней лежит причина, по которой Anthropic прислала запрос, например runner_lost или resumed. Если запроса не было, переменная не задана.
Неинтерактивный запуск с невалидным JSON в ~/.claude.json раньше молча заменял файл настройками по умолчанию. В 2.1.318 такой старт падает, объясняет, как восстановить файл, и оставляет его нетронутым. Пустой ~/.claude.json без резервной копии не считается повреждённым: Claude Code стартует так же, как без файла. Запуски через claude -p и SDK не переписывают этот файл на каждом прогоне, если в нём ничего не изменилось.
Есть и правки, из-за которых CI мог видеть ложный успех. claude -p и сессии Agent SDK сообщали об успехе, когда ошибка API обрывала ответ, а мод перехватывал turn.step. Пользовательские slash-команды, которые падали или которые может вызывать только Claude, ничего не печатали в claude -p.
Отдельно для тех, кто работает в терминале IDE: Claude Code сам не ставит и не обновляет там расширение. Для этого есть /ide из внешнего терминала или вид расширений в редакторе.
Сетевой домашний каталог, сертификаты и шлюз
Самый большой блок исправлений касается домашнего каталога, общего для нескольких машин или терминалов. Если файл конфигурации на таком каталоге не удавалось обновить, /logout, claude auth logout и claude mcp remove рапортовали об успехе, а изменения доверия, согласий и настроек MCP пропадали без единого слова. Задания падали с «Not logged in», когда другой терминал или хост заново входил в тот же аккаунт и организацию. Если на сетевом диске кончалось место под данные, но новые файлы он ещё создавал, сохранённый вход заменялся пустым файлом. Сессии, которым файловая система ошибочно сообщает, что конфигурации нет, проверяют ещё раз и реже стартуют без серверов MCP и доверенных папок.
claude mcp add и remove писали конфигурацию без блокировки. Сейчас они ждут её или выходят с кодом 1, но гонку это закрывает лишь наполовину: сохранение из другого задания всё ещё может заменить добавленный сервер.
Очистка старых версий считала мёртвым процесс Claude Code другого пользователя (например, оставленный sudo claude) и могла удалить его бинарник. Хосты claude remote-control, фоновый демон и self-hosted runner после обновления или очистки, которая убрала бинарник ещё живого процесса, не могли запустить новые сессии с ошибкой spawn ENOENT. Обе проблемы исправлены.
В корпоративных сетях пригодится правка NODE_EXTRA_CA_CERTS: если файл был пустым, не в формате PEM или начинался с повреждённого сертификата, падало каждое соединение. В 2.1.318 читаемые сертификаты используются, а в stderr уходит предупреждение. Шлюз Claude apps получил assume_role на апстримах mantle, для роли в другом аккаунте AWS и для учёта расходов AWS по каждому разработчику.
Новые умолчания
Команда /claude-api managed-agents-onboard по умолчанию ставит встроенным инструментам нового агента и MCP-инструментам шаблона быстрого старта политику auto («Judge risky actions»), как в Claude Console. Чтобы от неё отказаться, достаточно сказать «run without asking». Записи deniedMcpServers с URL блокируют и серверы от Anthropic, если их upstream URL совпадает, и коннекторы в облачных сессиях и на self-hosted runner, где сессия получает собственный URL коннектора. В остальных случаях коннектор запрещают по имени.
Сабагенты при настройке «Switch models when a message is flagged» в значении «Ask each time» останавливаются, а не переключают модель. Фоновые сабагенты на всех провайдерах через 3 минуты уводят shell-команду в фон, чтобы кеш промпта не истёк, пока она работает. То, что мод прикладывает на prompt.submit, остаётся в ходе пользователя и не уходит системным сообщением.
Из релиза убрали исправление 2.1.288, которое сохраняло прежние рассуждения модели при возобновлении разговора, начатого на 2.1.286 или раньше. В таких разговорах эти рассуждения могут быть отброшены.
Дальше
Claude Codeразбор
Revolut перевела около 2 000 инженеров с Claude Code на GLM
«Узкое место инженерии не обязательно в коде», сказал Дэвид Абитбол из Revolut, где около 2 000 инженеров ушли с Claude Code на GLM. По данным Revolut, время от взятия задачи до слияния упало на 70%, а время на сам код на 60%. Бывало, что задача у вас стояла дольше, чем писался сам код?
Читайте также
- Claude Code 2.1.317: запрос про email и отчёт о расходах
- Claude Code 2.1.316: fast mode для Opus 4.8 уйдёт 30 ноября
- Claude Code 2.1.312 перестал затирать большие CLAUDE.md
- Claude Code 2.1.311: сжатие вместо остановки и ultrathink
- Claude Code 2.1.310 открыл Monitor для Bedrock и Vertex
- Claude Code 2.1.307 переводит код на API 2026-10-21
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите, чтобы оставить комментарий. Он появится после модерации.

