Сразу к тексту
Терминалиум · Вики В приложение

Вики · Котёл контекста

Долгая сессия и точки возврата

Обновлено 29 августа 2026

Сессия — сохранённый разговор, привязанный к каталогу, со своим котлом. Она пишется на диск непрерывно, поэтому её можно бросить, вернуться и продолжить. Чекпойнт — точка возврата внутри сессии. Это разные механизмы, и путать их дорого.

Возврат к разговору

КомандаЧто делает
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 сохранённый режим разрешений не восстанавливается (Круг дозволенного).

Сверено по

Прокачаться: юниты