С 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. Раньше подагенту приходилось объяснять проект с нуля: архитектуру, схему базы, где лежат тесты, что уже пробовали и почему отказались. Теперь основная сессия час изучает репозиторий, а дальше от неё отпочковываются ветки, которым ничего заново рассказывать не надо. Форк включён по умолчанию.
Там же поменялось поведение обычных спавнов: в интерактивных сессиях не-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 прогоняет ваши правила на неоднозначность. Критик, кстати, мою ошибку с $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:
|
что задано |
какая модель поехала |
|---|---|
|
ничего |
|
|
|
|
|
|
|
|
|
|
|
|
|
Порядок такой: 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 починили неограниченный рост памяти в длинных интерактивных сессиях: результаты инструментов субагентов теперь освобождаются, когда уходят за пределы отображаемого окна. На фоне форков и фоновых агентов это не косметика.
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


