Вики · Котёл контекста
Долгая сессия и точки возврата
Сессия — сохранённый разговор, привязанный к каталогу, со своим котлом. Она пишется на диск непрерывно, поэтому её можно бросить, вернуться и продолжить. Чекпойнт — точка возврата внутри сессии. Это разные механизмы, и путать их дорого.
Возврат к разговору
| Команда | Что делает |
|---|---|
claude --continue | продолжает последнюю интерактивную сессию в этом каталоге |
claude --resume | открывает выборщик сессий |
claude --resume <имя-или-id> | продолжает конкретную |
claude --from-pr <номер> | выборщик, отфильтрованный по пул-реквесту |
/resume | переключение на другой разговор изнутри сессии |
Сессии, созданные через claude -p, в выборщик не попадают и --continue их пропускает — но по идентификатору они поднимаются. Поиск по идентификатору не ограничен текущим каталогом: сначала проверяется текущий проект и его рабочие копии, затем все прочие проекты на машине.
Именуйте сессии. claude -n auth-refactor при старте, /rename в процессе, Ctrl+R в выборщике. Безымянная сессия всё равно получит сгенерированный заголовок по первому промпту — по нему тоже можно вернуться. Одобрение плана даёт сессии заголовок по плану (Чертёж).
В выборщике полезны три клавиши: Ctrl+W расширяет список на все рабочие копии репозитория, Ctrl+A — на все проекты машины, Ctrl+B фильтрует по текущей ветке.
Ветвление
/branch <имя> копирует разговор до текущей точки и переключает вас в копию; оригинал остаётся нетронутым и остаётся в выборщике. Из командной строки то же делает --fork-session вместе с --continue или --resume.
Разница между ними тонкая, но важная. /branch работает в том же процессе, поэтому выданные разрешения «на эту сессию» переезжают в ветку, фоновые субагенты продолжают работать и их вывод попадёт в ветку, а удалённое подключение следует за вами. --fork-session запускает отдельный процесс: разрешения там придётся выдать заново.
Чекпойнты
Точка возврата создаётся на каждом вашем промпте. Снимки файлов хранятся для 100 последних чекпойнтов сессии, а сами чекпойнты живут вместе с сессией 30 дней (настройка cleanupPeriodDays).
Меню открывается по /rewind или двойным Esc на пустой строке ввода. В нём шесть действий:
- Restore code and conversation — откатить и код, и разговор;
- Restore conversation — вернуть разговор, оставив код как есть;
- Restore code — откатить файлы, оставив разговор;
- Summarize from here — сжать разговор от этой точки вперёд;
- Summarize up to here — сжать всё до этой точки, оставив свежее дословно;
- Never mind — выйти без изменений.
Два варианта сжатия — это и есть точечная альтернатива /compact: они освобождают котёл, не трогая файлы на диске, и оставляют в ленте маркер Summarized conversation. Чтобы направить сжатие, подсветьте вариант стрелками и допишите инструкции в строке add context (optional) (Котёл).
Отдельная удобная деталь: если вы в этом же процессе уже делали /clear, в меню возврата сверху появляется запись /resume <session-id> (previous session) — предыдущий разговор ещё доступен.
Чего чекпойнты не умеют
Это самая частая причина неприятного сюрприза.
- Команды оболочки не отслеживаются.
rm,mv,cp, выполненные агентом через Bash, откатить нельзя — фиксируются только правки инструментами редактирования файлов. - Правки субагентов не восстанавливаются. Исключение одно: скилл с
context: fork, запущенный на переднем плане (background: false). Фоновый форк, фоновый субагент и фоновый/code-review --fixоткатываются только через git (Тени). - Символические и жёсткие ссылки пропускаются. При восстановлении такие пути не трогаются, и вы увидите предупреждение
Restored the code, but skipped N files. - Внешние изменения не видны. Правки, сделанные вами руками или другой сессией, не захвачены.
Вывод простой: чекпойнт — инструмент быстрого отката внутри сессии, а не замена системе контроля версий. Для параллельной работы, где сессии не должны видеть правки друг друга, нужен другой механизм — Веер.
Где всё лежит
Транскрипты — JSONL в ~/.claude/projects/<проект>/<session-id>.jsonl. Формат внутренний и меняется между версиями, поэтому парсить файлы напрямую — плохая идея; для скриптов есть /export, claude -p --output-format json и поле transcript_path, которое получают хуки. Перенести хранилище можно переменной CLAUDE_CONFIG_DIR, а срок хранения меняется cleanupPeriodDays.
При возврате восстанавливается модель, активный агент, активная цель и режим разрешений — но не флаги запуска: --mcp-config, --settings, --plugin-dir и --add-dir придётся передать заново. Тонкость про режим: из выборщика и через /resume сохранённый режим разрешений не восстанавливается (Круг дозволенного).
Сверено по
Прокачаться: юниты