# Контрольные точки

> Как Kodik автоматически сохраняет снимки при каждом действии агента и позволяет восстановить любое предыдущее состояние.

Источник: https://docs.kodik.ru/agent/checkpoints

Контрольные точки автоматически сохраняют снимок рабочего пространства перед тем, как агент приступает к обработке каждого сообщения. Если агент пошёл не в том направлении, можно восстановить любое более раннее состояние — состояние файлов и история разговора перематываются вместе.

## Как работают контрольные точки

Каждый раз, когда вы отправляете сообщение, Kodik сохраняет снимок, привязанный к этому сообщению. Снимок фиксирует содержимое всех файлов, которые агент изменил. Контрольные точки:

- Создаются автоматически — никаких ручных действий не требуется.
- Не вмешиваются в историю Git. Хранение снимков осуществляется отдельным слоем сессии.
- Отслеживают, какие файлы были созданы или изменены, чтобы при восстановлении затронуть только нужные файлы.

Контрольные точки должны быть включены в настройках. При отключённой функции действие восстановления блокируется с предупреждением.

## Восстановление к контрольной точке

Чтобы восстановить более раннее состояние разговора:

1. Найдите сообщение пользователя, к которому хотите вернуться.
2. Нажмите действие восстановления на этом сообщении.
3. Kodik перематывает историю разговора до этого сообщения, восстанавливает содержимое файлов из сохранённого снимка и очищает весь последующий контекст API.

После восстановления агент готов принять новое сообщение с этой точки. Можно отредактировать исходное сообщение перед повторной отправкой — см. [Редактирование Сообщений](https://docs.kodik.ru/agent/editing-messages).

После обычного восстановления маркер **Контрольная точка восстановлена** содержит действие **Повторить**. Используйте его, чтобы вернуть ветку, которую только что перемотали. Если отправить новое сообщение из восстановленной точки, Kodik считает это новой веткой и отключает путь повтора.

Если одна и та же задача открыта в нескольких окнах Kodik, восстановление контрольной точки в одном окне сохраняет восстановленную ветку и действие **Повторить**, когда другое окно в следующий раз сохраняет состояние чата.

Если после правки агента вы сами изменили файл, Kodik восстанавливает только дельту агента, когда это безопасно. Правки, которые вы внесли вне изменённых агентом строк, сохраняются. Если восстановление должно было бы удалить изменённый вами файл, созданный AI, или перезаписать файл, который вы заново создали после удаления AI, Kodik показывает уведомление об ошибке, отклоняет восстановление, а контрольная точка остаётся доступной после ручного разрешения конфликта.

Когда восстановление охватывает несколько старых записей контрольных точек, Kodik сначала проверяет весь набор файловых откатов и только потом записывает или удаляет файлы. Если любой файл конфликтует, восстановление останавливается до изменения рабочей области.

Очень старые записи контрольных точек могут не содержать базовую версию, записанную AI, которая нужна для безопасного восстановления дельты. В таком случае Kodik оставляет файл без изменений и просит решить конфликт вручную, вместо того чтобы угадывать и перезаписывать вашу работу.

Если вы восстанавливаетесь к более поздней точке задачи, а более ранние правки AI всё ещё остаются, File Review синхронизируется с восстановленным состоянием. Kodik очищает только строки для действительно перемотанных правок, а оставшиеся ожидающие правки остаются видимыми для проверки.

## Создание новой задачи из сообщения (ответвление)

Рядом с действием восстановления у каждого сообщения пользователя есть действие **Ответвить** (значок ответвления). В отличие от восстановления, ответвление не разрушает текущий разговор — он и его файлы остаются без изменений.

Когда вы ответвляетесь от сообщения, Kodik:

1. Копирует разговор _до_ этого сообщения в новую задачу с названием **Fork of &lt;исходное название&gt;** (само сообщение исключается). Предыдущие реплики переносятся дословно — а не в виде резюме — поэтому новая задача продолжается с полным контекстом.
2. Переключает вас на новую задачу, оставляя исходную нетронутой.

Используйте это, чтобы начать новое направление из более раннего момента разговора, сохранив исходную ветку без изменений.

## Связь с авто-подтверждением

Контрольные точки особенно полезны при включённом режиме [Авто-Подтверждения](https://docs.kodik.ru/agent/auto-approve): агент работает без остановок, поэтому контрольные точки — основной способ откатить нежелательный результат.

## Случаи использования

- **Попробовать другой подход:** восстановить состояние до редактирования и дать агенту другое указание.
- **Исправить непредвиденные изменения:** если агент затронул файлы, которые вы не планировали изменять, восстановите состояние до этого шага.
- **Безопасные эксперименты:** позвольте агенту попробовать что-то рискованное, просмотрите разницу и восстановите, если результат не устраивает.
