Checkpointing
Qwen Code включает функцию Checkpointing, которая автоматически сохраняет снимок состояния вашего проекта перед любыми изменениями файлов, внесенными инструментами на базе ИИ. Это позволяет вам безопасно экспериментировать и применять изменения в коде, зная, что вы можете мгновенно вернуться к состоянию до запуска инструмента.
Как это работает
Когда вы одобряете инструмент, который изменяет файловую систему (например, 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:
{
"general": {
"checkpointing": {
"enabled": true
}
}
}Использование команды /restore
После включения checkpoints создаются автоматически. Для управления ими используется команда /restore.
Список доступных чекпоинтов
Чтобы посмотреть список всех сохранённых чекпоинтов для текущего проекта, просто выполните:
/restoreCLI отобразит список доступных файлов чекпоинтов. Имена этих файлов обычно состоят из временной метки, имени изменённого файла и названия инструмента, который должен был запускаться (например, 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 инструмента появится снова.