- BrainTools - https://www.braintools.ru -

Что нового в Claude Code: разбор восьми августовских релизов

С 13 по 21 августа Anthropic выкатила восемь версий Claude Code, с 2.1.232 по 2.1.239. Список читается как обычные патчи CLI, пока не замечаешь, что почти всё в нём про одно: агентов у вас будет много, и работать они будут долго.

Ниже — что реально приехало. Часть я прогнал на своей машине с 2.1.239 под Linux, часть взял из официального changelog, и я отмечаю, где что.

Агенты перестали быть одиночками

Главное изменение серии лежит в 2.1.232, и его легко пропустить за строчкой про subagent forking.

Субагент, запущенный с subagent_type: "fork", теперь наследует весь контекст текущего разговора и prompt cache. Раньше подагенту приходилось объяснять проект с нуля: архитектуру, схему базы, где лежат тесты, что уже пробовали и почему отказались. Теперь основная сессия час изучает репозиторий, а дальше от неё отпочковываются ветки, которым ничего заново рассказывать не надо. Форк включён по умолчанию.

Там же поменялось поведение [1] обычных спавнов: в интерактивных сессиях не-teammate агенты уходят в фон и больше не занимают диалог. И /code-review на уровнях effort high, xhigh и max тоже переехал в фоновый агент — можно дописывать фичу, пока ревью идёт по предыдущему куску.

Второй кусок той же истории — сессии научились разговаривать друг с другом. Набираете @ в промпте, выбираете другую сессию по имени, и Claude отправляет ей сообщение через SendMessage. Чтобы имена не путались, интерактивные сессии на одной машине теперь держат уникальные названия: стартуете вторую с тем же именем — получаете вариант вида name-word-word и уведомление об этом.

Выглядит это буднично. Вот живой вывод ListAgents с моей машины:

This session is qna-habr-com-6c [fbf299] — the name other sessions use to message it.

Peer sessions (6):
  alpha-77 [57e98f]   · interactive · shell    · tmux cl-alpha:@132.%132   · started 2d ago
  bravo-ff [37aa91]   · interactive · idle     · tmux cl-bravo:@123.%123   · started 3d ago
  charlie-fb [a0a2dc] · interactive · waiting  · tmux cl-charlie:@150.%150 · started 1d ago
  ... ещё 3

Шесть соседних сессий, у каждой имя, состояние и tmux-панель. Имена проектов я заменил, остальное как есть.

В 2.1.236 к этому добавили notify_when_idle: одна сессия просит другую однократно стукнуть, когда та освободится. Опрашивать в цикле больше не нужно. Работает на macOS и Linux, а в 2.1.239 cross-session messaging дошёл и до Windows — в 2.1.238, вопреки части пересказов, лежат только фиксы этого механизма.

Приятная мелочь для тех, кого чужие сессии раздражают: в /config появилась строка «Messages from your other sessions» с выбором accept / hold / refuse.

Работа больше не обрывается на лимите

В 2.1.234 Claude Code научился сам продолжать прерванный turn, когда сбрасывается лимит claude.ai. Раньше длинная задача, упёршаяся в лимит посреди прогона тестов, просто стояла до вашего возвращения.

Отключается в /config, строка «Continue automatically at usage limit».

Вместе с фоновыми агентами и форками это меняет масштаб задач, которые вообще имеет смысл ставить: раньше горизонт упирался в длину одного сеанса за клавиатурой.

Auto mode стал режимом по умолчанию

С 14 августа новые интерактивные сессии на Pro, Max и Team стартуют в авторежиме. Вместо диалога «разрешить / запретить» действие оценивает отдельная модель-классификатор. На claude -p, API и Enterprise это не распространяется.

Через классификатор проходит не всё подряд. Сначала применяются обычные permission-правила: permissions.deny и permissions.ask срабатывают раньше и авторежимом не отменяются, а часть действий вроде чтения и правок внутри рабочего каталога до модели просто не доходит. С --dangerously-skip-permissions авторежим лучше не путать.

Политику своей инфраструктуры в новом авторежиме можно писать обычными предложениями:

{
  "autoMode": {
    "environment": [
      "$defaults",
      "Cloud provider(s): AWS",
      "Trusted cloud buckets: s3://company-builds",
      "Sensitive remote targets: production Kubernetes clusters"
    ],
    "hard_deny": [
      "$defaults",
      "Never send repository contents to third-party code-review APIs"
    ]
  }
}

Уровней у классификатора два: soft_deny снимается явной просьбой пользователя, hard_deny его просьбой не снимается.

Здесь я споткнулся на ровном месте. Массивы autoMode не дополняют встроенные правила — они их замещают. Строка $defaults в примере выше не украшение. Я задал своё правило в hard_deny без неё и получил в эффективном конфиге ровно одну запись: свою. Штатный запрет на эксфильтрацию данных, единственное дефолтное правило уровня hard, исчез целиком. Тот же claude auto-mode config со строкой $defaults отдаёт 65 368 байт, без неё — 60 037.

Проверять конфигурацию есть чем, и это стоит знать. claude auto-mode defaults печатает весь дефолтный рулбук (у меня это 65 КБ английской прозы), claude auto-mode config — итоговую конфигурацию, claude auto-mode reset вычищает секцию autoMode из вашего пользовательского settings.json (managed-настройки и --settings при этом остаются в силе), а claude auto-mode critique прогоняет ваши правила на неоднозначность. Критик, кстати, мою ошибку [2] с $defaults поймал первым же пунктом.

Отдельный флаг autoMode.classifyAllShell заставляет классификатор проверять вообще каждую shell-команду, включая те, что уже попали под узкое allow-правило. Полезно там, где Claude ходит в kubectl, terraform и aws. Учтите, что в выводе auto-mode config этого тоггла нет — применился он или нет, по этой команде не увидеть.

/design — рядом, но не из этой серии

Про /design сейчас пишут много, поэтому уточню границу: в changelog версий 2.1.232–2.1.239 этой команды нет. Связка Claude Code с Claude Design развивается отдельной веткой и анонсировалась ещё в июне, а сам Claude Design доступен в бете.

Работает она так: сначала получаете несколько визуальных вариантов интерфейса и выбираете направление, а компоненты пишете уже под выбранное. Дизайн-систему проекта подтягивает /design-sync, чтобы варианты сразу шли в ваших компонентах и цветах.

Доступность зависит от режима. В моей интерактивной сессии скилл design есть, а в headless-прогоне claude -p на той же машине Claude отвечает, что такого скилла у него нет. Полноценно вызвать команду в headless я не пробовал — это наблюдение про список доступного. Закладываться на /design в скриптах я бы пока всё равно не стал.

Модель по умолчанию и режим молчания

В 2.1.236 появилась переменная ANTHROPIC_DEFAULT_MODEL. Она задаёт модель для новых сессий, но, в отличие от ANTHROPIC_MODEL, не перебивает явный выбор через /model. Удобно прописать разумный дефолт на рабочей машине или в контейнере, не запрещая разработчику переключиться.

Я прогнал пять комбинаций и смотрел, какая модель реально поехала, по полю modelUsage в claude -p --output-format json:

что задано

какая модель поехала

ничего

claude-opus-5[1m]

ANTHROPIC_DEFAULT_MODEL=sonnet

claude-sonnet-5

settings.model=opus + ANTHROPIC_DEFAULT_MODEL=sonnet

claude-opus-5

ANTHROPIC_MODEL=haiku + ANTHROPIC_DEFAULT_MODEL=sonnet

claude-haiku-4-5

settings.model=opus + ANTHROPIC_MODEL=haiku

claude-haiku-4-5

Порядок такой: ANTHROPIC_MODEL бьёт выбор /model, тот бьёт ANTHROPIC_DEFAULT_MODEL, а он бьёт встроенный дефолт.

В 2.1.237 добавили встроенный стиль вывода Concise (/config, Output style). Claude перестаёт сопровождать каждое действие пересказом того, что собирается сделать, и выдаёт результат. Anthropic подчёркивает, что это про форму ответа, а глубина работы остаётся прежней. В 2.1.238 заодно починили сползание кастомных стилей обратно к дефолтному посреди длинной сессии, из-за которого настройка выглядела нерабочей.

Инфраструктурная часть

GitLab догоняет GitHub. В 2.1.233 claude --worktree научился принимать URL merge request и разворачивать worktree прямо из него, в 2.1.234 в футере и статуслайне появился бейдж MR !N со статусом. Ещё в 2.1.232 GitLab получил поддержку plugin marketplaces и маскирование токенов семейств glpat-, glrt- и прочих в выводе, а конфиг glab встал под ту же защиту, что и gh.

В 2.1.238 починили неограниченный рост памяти [3] в длинных интерактивных сессиях: результаты инструментов субагентов теперь освобождаются, когда уходят за пределы отображаемого окна. На фоне форков и фоновых агентов это не косметика.

Remote Control за серию получил длинный список исправлений. Из практичного: кратковременный HTTP 403 от VPN, прокси или сетевого периметра теперь терпится до трёх минут вместо мгновенного обрыва. Выбор effort, сделанный с телефона или в вебе, применяется к сессиям в терминале и в Desktop/VS Code, а выбор модели наконец отображается в терминале правильно. Сессия, чей процесс упал, переиспользуется при следующем сообщении — раньше она висела мёртвой до перезапуска claude remote-control.

В 2.1.239 в Alpine и musl-сборках наконец заработали нативные аддоны вставки картинок, буфера обмена и захвата звука: раньше туда клали glibc-бинарники, которые musl просто не грузил. Дороже обходился другой баг: если прокси срезал Content-Type из стримингового ответа Bedrock, Claude Code считал стрим неудачным и повторял запрос без стриминга, из-за чего turn биллился дважды. Bedrock я не гоняю, это из changelog, но если у вас Claude Code ходит на AWS через корпоративный прокси — повод посмотреть август по счетам.

Там же появилась /claude-api upgrade для миграции Python-проектов с anthropic 0.x на 1.x, а плагины, приехавшие из claude.ai в облачные сессии, теперь живут в отдельном пространстве имён name@synced и не затирают одноимённый локальный плагин.

Что поменяли тихо

Несколько изменений прошли мимо анонсов, хотя заметить их стоит.

Самое неожиданное касается всех, кто привык видеть у Claude список задач. В 2.1.233 todo-инструменты перестали отдаваться Opus 4.8, Sonnet 5, Fable 5, Mythos 5 и моделям новее; вернуть их можно переменной CLAUDE_CODE_ENABLE_TODO_TOOLS=1. Тут я наткнулся на расхождение с документацией: changelog перечисляет в отключённом наборе пять инструментов, включая TodoWrite, и обещает вернуть их обратно, а в трёх моих прогонах вернулись только четыре — TaskCreate, TaskGet, TaskList и TaskUpdate. Оговорюсь: инструменты перечисляла сама модель, за выгрузку внутреннего реестра я это не выдаю.

Тем, у кого агент запускает сборки, пригодится опциональный лимит памяти для команд Bash-инструмента через cgroup — CLAUDE_CODE_TOOL_MEMORY_LIMIT, Linux, та же 2.1.233. Улетевшая в разнос сборка больше не подвешивает всю сессию.

Ещё в 2.1.234 встроенный скилл claude-api похудел примерно с 200 тысяч токенов до 25 тысяч: справочные документы теперь грузятся по требованию. Если вы упирались в контекст, это заметно.

Самая тихая версия серии — 2.1.235. В ней починили инвалидацию всего prompt cache при переподключении языкового сервера и добавили опциональный spellcheck, который подчёркивает опечатки прямо в поле ввода, используя установленный aspell, hunspell или ispell.

Новых команд в серии немного. Почти всё остальное чинит то, что мешало Claude Code работать долго и толпой: контекст для форков, адресацию между сессиями, продолжение после лимита, память в многочасовых прогонах, устойчивость удалённого управления.

Автор: opium

Источник [4]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/34745

URLs in this post:

[1] поведение: http://www.braintools.ru/article/9372

[2] ошибку: http://www.braintools.ru/article/4192

[3] памяти: http://www.braintools.ru/article/4140

[4] Источник: https://habr.com/ru/articles/1073304/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1073304

www.BrainTools.ru

Rambler's Top100