Checkpointing
Qwen Code включает функцию Checkpointing, которая автоматически сохраняет снимок состояния вашего проекта перед любыми изменениями файлов, внесенными инструментами на базе AI. Это позволяет вам безопасно экспериментировать и применять изменения в коде, зная, что вы можете мгновенно вернуться к состоянию до запуска инструмента.
Как это работает
Когда вы одобряете инструмент, который изменяет файловую систему (например, write_file
или edit
), CLI автоматически создает “checkpoint”. Этот checkpoint включает в себя:
- Снимок Git: В специальном скрытом Git-репозитории, расположенном в вашей домашней директории (
~/.qwen/history/<project_hash>
), создается коммит. Данный снимок фиксирует полное состояние файлов вашего проекта на тот момент. Он не вмешивается в Git-репозиторий вашего собственного проекта. - История разговора: Сохраняется вся история общения с агентом до этого момента.
- Вызов инструмента: Также сохраняется конкретный вызов инструмента, который собирался выполниться.
Если вы захотите отменить изменения или просто вернуться к предыдущему состоянию, вы можете использовать команду /restore
. Восстановление checkpoint приведет к:
- Откату всех файлов проекта до состояния, зафиксированного в снимке.
- Восстановлению истории разговора в CLI.
- Повторному предложению оригинального вызова инструмента, что позволит вам снова его выполнить, изменить или просто проигнорировать.
Все данные checkpoint, включая снимок Git и историю разговора, хранятся локально на вашем компьютере. Снимок Git сохраняется в скрытом репозитории, а история разговора и вызовы инструментов — в JSON-файле во временном каталоге проекта, обычно расположенном по пути ~/.qwen/tmp/<project_hash>/checkpoints
.
Включение функции
Функция Checkpointing по умолчанию отключена. Чтобы включить её, вы можете использовать флаг командной строки или отредактировать файл settings.json
.
Использование флага командной строки
Вы можете включить checkpointing для текущей сессии, используя флаг --checkpointing
при запуске Qwen Code:
qwen --checkpointing
Использование файла settings.json
Чтобы включить checkpointing по умолчанию для всех сессий, вам нужно отредактировать файл settings.json
.
Добавьте следующий ключ в ваш settings.json
:
{
"checkpointing": {
"enabled": true
}
}
Использование команды /restore
После включения checkpoints создаются автоматически. Для управления ими используйте команду /restore
.
Список доступных чекпоинтов
Чтобы посмотреть список всех сохранённых чекпоинтов для текущего проекта, просто выполните:
/restore
CLI отобразит список доступных файлов чекпоинтов. Имена этих файлов обычно состоят из временной метки, имени изменённого файла и названия инструмента, который должен был запускаться (например, 2025-06-22T10-00-00_000Z-my-file.txt-write_file
).
Восстановление из конкретного чекпоинта
Чтобы восстановить проект из определённого чекпоинта, используйте имя файла чекпоинта из списка:
/restore <checkpoint_file>
Например:
/restore 2025-06-22T10-00-00_000Z-my-file.txt-write_file
После выполнения команды ваши файлы и разговор будут немедленно восстановлены до состояния на момент создания чекпоинта, а исходный prompt инструмента появится снова.