Claude Code компактирует без остановки: разрываем цикл и спасаем работу
Почему Claude Code компактирует ваш диалог снова и снова — как взаимодействуют порог автокомпакта, компакция при простое из 2.1.299 и несовпадения шлюзов — плюс восстановление через resume и чекпоинты, переключатель Idle compaction в /config, CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS и исправления 2.1.301 и 2.1.309 — на реальных записях экрана.
Постоянная компакция в двух словах
- Компакция — это автоматическая суммаризация, освобождающая место в контексте: Claude Code компактирует, когда диалог подходит к окну модели (200K на Sonnet 4.6/Opus 4.6 без расширенного контекста, примерно 967K по умолчанию у моделей с окном 1M).
- У «компактирует без остановки» три обычные причины: окно действительно полно, компакция при простое, добавленная в 2.1.299 (диалог на 200K+ токенов, оставленный без внимания примерно на 54 минуты, компактируется до истечения часового кэша промптов), или несовпадение шлюза/имени модели, исправленное в 2.1.301.
- Ничто из уже отправленного не теряется: резюме сохраняет ключевой код и решения, а resume и чекпоинты возвращают остальное — строка компакции в возобновлённой сессии сообщает, где хранятся прежние сообщения (2.1.301).
- Регулируйте, а не боритесь: /autocompact или настройка autoCompactWindow меняет окно, CLAUDE_CODE_AUTO_COMPACT_WINDOW важнее всего, а "idleCompaction": false (или строка Idle compaction в /config) отключает компакцию при простое.
- Два цикла, специфичных для версий, уже получили исправления: повторная компакция за LLM-шлюзом, называющим другую модель (2.1.301), и повторная компакция после чтения файлов под очень большим вложенным CLAUDE.md (2.1.309) — обновитесь, прежде чем крутить настройки.
Claude Code: CLAUDE.md, Memory & Session Management
КаналDavid Mahler22:39
Stop Losing Work When You Compact Claude Code
КаналThe Art of Vibe Coding7:28
Model configuration — Claude Code documentation
Документацияcode.claude.com
Кадры взяты из разбора управления сессиями Дэвида Малера — анимированные схемы контекста, сетка использования /context со строкой Autocompact buffer и диаграмма резюме компакции. Слайды о пороге и handoff — из анимированного объяснения The Art of Vibe Coding. Факты сверены с CHANGELOG Claude Code (2.1.299, 2.1.301, 2.1.302, 2.1.309) и официальной документацией по конфигурации моделей. Видео с лицом в кадре и кадр спиннера, уже использованный нашим гайдом по сокращению токенов, забракованы как источники кадров.
Права на видеокадры остаются у их авторов; они использованы здесь как пошаговая документация с указанием источника и прямыми ссылками.
Останавливаем Claude Code, компактирующий без остановки
Шаг 1 — Поймите, что делает компакция
- 1
Поймите, что компакция есть на самом деле
Компакция — автоматический процесс, освобождающий место в контексте: он резюмирует старые сообщения, сохраняя ключевой код и решения. Claude Code компактирует, когда диалог подходит к окну модели — на границе 200K у Sonnet 4.6 и Opus 4.6 без расширенного контекста или по умолчанию примерно на 967K токенов у моделей с нативным окном 1M. Увидеть «Compacting conversation…» один раз за длинную сессию — значит, система работает как задумано, а не сломана.

Слайд с определением компакции: автоматический процесс, резюмирующий старые сообщения с сохранением ключевого кода и решений.Смотреть на 10:40 - 2
Посмотрите, чем заполняется окно
Запустите /context, прежде чем менять что-либо. Он печатает модель, расход токенов относительно окна и разбивку по категориям — system prompt, system tools, MCP-инструменты, файлы памяти, Messages, свободное место и зарезервированный Autocompact buffer. В записанной сессии один Messages занимал 129,9k из 149,1k токенов (65%), ещё 33k (16,5%) было зарезервировано под буфер — вот почему пришла компакция: окно съедал сам диалог, а не сбой.

Сетка использования /context на 75%: Messages на 129,9k токенов и буфер Autocompact на 33k (16,5%), выделенные внизу.Смотреть на 10:20 - 3
Распознайте, как выглядит переполненный контекст
Когда длинные выводы, чтение больших файлов и крупные результаты инструментов накапливаются, блок Messages вытесняет всё остальное — описания скиллов, MCP-инструменты и запомненные инструкции оказываются сжаты раньше, чем вы заметите. Это состояние, в котором каждый следующий обмен запускает новый цикл компакции. Если /context показывает доминирование Messages при ужимающихся строках полезных инструкций, лечится не подгонкой порогов, а облегчением того, что вы скармливаете сессии.

Схема переполненного контекста: блок Messages разросся настолько, что теснит описания скиллов, MCP-инструменты и запомненные инструкции.Смотреть на 11:26
Шаг 2 — Верните работу и сбросьте окно
- 4
Восстановление: резюме хранит решения, resume — историю
Ничто из уже отправленного не исчезает. Компакция превращает блок Messages в Conversation Summary, пока строки CLAUDE.md и Auto Memory остаются на месте, а чекпоинты Claude Code плюс claude --resume / /resume возвращают остальное. С 2.1.301 строка компакции в возобновлённой сессии также говорит, где хранятся прежние сообщения, вместо того чтобы предлагать историю, которую она не может загрузить. Если компакция прервала важную работу — возобновите сессию и прочитайте резюме, прежде чем объяснять всё заново.

Схема «до и после» компакции: Messages становятся Conversation Summary, а обведённые красным строки CLAUDE.md и Auto Memory сохраняются.Смотреть на 7:56 - 5
Перед большой компакцией запишите работу на диск
Для сессий, потерять контекст которых нельзя, постройте мост самостоятельно: попросите у Claude Code handoff-документ (или используйте скилл вроде /handoff-doc), который перечитывает всю сессию — каждое решение, каждый тронутый файл, каждый хвост — и дистиллирует её в один структурированный HANDOFF.md на диске. После компакции или в свежей сессии указание следующего промпта на этот файл возвращает направление быстрее, чем одно резюме.

Поток handoff: скилл /handoff-doc перечитывает всю сессию — каждое решение, тронутый файл и хвост — в один структурированный HANDOFF.md.Смотреть на 1:00 - 6
Настройте окно автокомпакта вместо того, чтобы его бояться
Точка срабатывания регулируется. /autocompact <значение> задаёт её для текущей модели и сохраняет в пользовательские настройки; ключ autoCompactWindow (например, "autoCompactWindow": 200000 в ~/.claude/settings.json) действует для всех моделей; --autocompact перекрывает на один запуск; а переменная окружения CLAUDE_CODE_AUTO_COMPACT_WINDOW важнее всего и принимает от 100 000 до 1 000 000 токенов (с 2.1.304 можно писать 200k или 1M). Значения ограничены реальным окном модели, а /autocompact auto возвращает настроенное значение по умолчанию.

Арифметика порога: 20% сессии Opus на 1M токенов — это примерно 200 000 токенов, около часа реальной работы.Смотреть на 2:12
Шаг 3 — Компакция при простое: поведение 2.1.299
- 7
Распознайте компакцию при простое (Claude Code 2.1.299)
С 2.1.299 есть второй триггер, не связанный с полным окном: компакция при простое. Диалог на 200K+ токенов, оставленный примерно на 54 минуты, компактируется до истечения часового кэша промптов — чтобы следующее сообщение не обрабатывало всю переписку по полной цене. Если Claude Code компактирует в ваше отсутствие — уведомление появляется в переписке по возвращении, — это фича, а не цикл.
- 8
Отключите компакцию при простое или опустите её порог
Два переключателя, оба задокументированы в changelog 2.1.299: установите "idleCompaction": false в settings.json, чтобы отключить её целиком, или задайте CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS, чтобы изменить минимум в 200K токенов, ниже которого компакция при простое не срабатывает никогда (оба требуют v2.1.290 или новее). С 2.1.302 в /config есть и строка Idle compaction, а уведомления после компакции при простое теперь говорят, как её отключить. Настройка требует 200K+ токенов простоя около 54 минут — короткие сессии не трогаются никогда.
- 9
Решите, действительно ли хотите её отключить
Компакция при простое меняет один расход на другой. Оставите включённой — теряете точную переписку по возвращении через час; отключите — следующее сообщение обрабатывает все 200K+ токенов с истёкшим кэшем: медленнее и по тарифам промаха кэша (cache miss). Если сессии длинные, но вы часто отлучаетесь, обычно лучше опустить CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS, чем отключать: компакция происходит на ваших условиях и по меньшему блоку.
Шаг 4 — Циклы конкретных версий и профилактика
- 10
Обновитесь, прежде чем настраивать: цикл шлюза 2.1.301
Если компакция действительно повторяется на полном окне, сначала проверьте версию. 2.1.301 исправила диалоги, «компактируемые снова и снова, на модели, которую вы не выбирали, за LLM-шлюзом, ответы которого называют модель, отличную от запрошенной» — ответы шлюза называли модель X, пока вы запрашивали модель Y, и каждый ход заново компактировал. Тот же релиз исправил строку компакции возобновлённой сессии, предлагавшую ctrl+o для незагруженной истории. Пользователям шлюзов на 2.1.300 и старее: обновитесь, прежде чем трогать любые настройки.
- 11
Похудите файлы CLAUDE.md — цикл вложенного файла 2.1.309
Ещё один задокументированный цикл: сессии продолжали компактироваться после чтения файлов под очень большим вложенным CLAUDE.md — 2.1.309 это исправила, и вложенный CLAUDE.md сверх лимита размера теперь загружает только своё начало. Аудит файлов памяти всё равно проведите: CLAUDE.md пользовательского уровня грузится во всех проектах, файлы проектного скоупа — в рабочем каталоге, а файлы подкаталогов по требованию — когда Claude их посещает. Уберите из всегда загружаемых файлов всё, что не является универсальной инструкцией.

Схема скоупов памяти: CLAUDE.md пользовательского уровня для всех проектов, файлы проектного скоупа в рабочем каталоге и файлы по требованию, которые Claude загружает при посещении.Смотреть на 4:44 - 12
Предотвратите следующий цикл
Три привычки делают компакцию незначительным событием. Держите файлы CLAUDE.md худыми, чтобы инструкции переживали каждую компакцию. Позволяйте компакции происходить на пороге, а не откладывайте её — качество ответов падает по мере заполнения окна, и резюме, написанное при 20% остатка, лучше написанного при 95%. И выгружайте важное состояние в файлы (handoff-документы, планы, чеклисты), чтобы каждый сброс начинался с чего-то лучшего, чем одно резюме.

Слайд о том, почему ждать плохо: качество ответов падает, когда порог компакции пройден, а компакция отложена.Смотреть на 2:20
Компакция при простое: 2.1.299 в подробностях
Компакция при простое — новейшая причина, по которой сессия «компактирует без остановки», и легче всего принимаемая за баг. Changelog 2.1.299 представил её в терминале с явным обоснованием, а 2.1.302 и 2.1.301 довели до ума управление вокруг неё. Факты, сверенные с changelog:
- 1Триггер: диалог на 200K+ токенов, оставленный примерно на 54 минуты — время рассчитано так, чтобы компакция успела до истечения часового кэша промптов.
- 2Обоснование: «чтобы следующее сообщение не обрабатывало всё заново» — некомпактированная переписка на 200K+ токенов после истечения кэша обрабатывается заново токен за токеном по тарифам промаха кэша (cache miss).
- 3Выключатель: "idleCompaction": false в settings.json — или, с 2.1.302, строка Idle compaction в /config.
- 4Ручка настройки: CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS меняет минимум в 200K токенов; диалоги ниже него никогда не компактируются при простое.
- 5Версионный минимум: и переменная окружения, и настройка требуют Claude Code v2.1.290 или новее — в старых сборках фичи просто нет, поэтому после обновления она может выглядеть как внезапная смена поведения.
- 6Ограничители: короткие сессии не трогаются никогда, уведомление появляется в переписке по возвращении, а с 2.1.302 само уведомление говорит, как отключить фичу.
Если вы делите сессии с командой, помните: настройка действует на машину. "idleCompaction": false в ваших пользовательских настройках не следует за репозиторием, так что простаивающая сессия коллеги может компактироваться, даже если ваша никогда этого не делает. Для общих долгих сессий предсказуемая комбинация — заниженный CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS плюс handoff-документ, написанный до того, как кто-либо отлучился.
