Снимки и откат
Снимки позволяют откатить последние изменения переписки и файлов одним действием. Это удобно для правки свежей работы; для важного полагайтесь на git-коммиты или резервные копии.
Как это работает
Заголовок раздела «Как это работает»Выполните /undo после ответа, который хотите переписать. ZubrCode готовит
откат, восстанавливает затронутые файлы и возвращает убранный запрос в поле
ввода — поправьте и отправьте снова.
/undo
# Поправьте возвращённый запрос и отправьте его снова.Добавь валидацию, не меняя публичный API.Отправка запускает подготовленный откат. До отправки /redo отменяет его и
возвращает переписку и файлы к состоянию до /undo. В терминале те же
действия по умолчанию на Ctrl+X U и Ctrl+X R. Можно выбрать более
раннее сообщение и нажать Revert — откат будет подготовлен до него.
Как снимаются
Заголовок раздела «Как снимаются»На каждом шаге модели ZubrCode пытается сделать снимок непосредственно перед запросом к модели и ещё один, когда шаг завершился; сообщение ассистента запоминает, какие пути между снимками изменились. Снятие best-effort: если снимок недоступен, разговор продолжается, но этот шаг может не иметь восстанавливаемых правок.
Что покрывают снимки
Заголовок раздела «Что покрывают снимки»Снимки охватывают активную папку сессии внутри git-рабочей копии: сессия в
packages/app снимает файлы под packages/app, но не изменения в остальной
части репозитория.
| Содержимое | Снимок | Пример |
|---|---|---|
| Отслеживаемые файлы активной папки | да | packages/app/src/app.tsx |
| Неигнорируемые новые файлы до 2 МиБ | да | packages/app/notes.txt |
Файлы из .gitignore |
нет | packages/app/dist/app.js |
| Новые файлы больше 2 МиБ | нет | packages/app/debug.log |
| Файлы вне активной папки | нет | packages/server/src/index.ts |
| Git-метаданные и побочные эффекты | нет | коммиты, ветки, базы, процессы |
Для файловых снимков нужен git-репозиторий: вне его /undo откатывает
переписку, но не восстанавливает файлы.
Восстановление
Заголовок раздела «Восстановление»Откат возвращает только пути, приписанные шагам ассистента после выбранной
границы: каждый путь возвращается к состоянию до первого откатываемого шага,
а созданный этими шагами файл удаляется, если его тогда не было. Остальные
пути не трогаются. Текущие правки затронутых путей могут быть перезаписаны —
посмотрите восстановленное резюме и git diff перед продолжением.
Где хранятся
Заголовок раздела «Где хранятся»Снимки лежат локально, в отдельной внутренней git-базе объектов под каталогом данных; для вашего репозитория это не создаёт коммитов и не двигает ветки. Объекты снимков могут содержать полное содержимое отслеживаемых файлов — относитесь к каталогу данных как к чувствительным данным.
Настройки
Заголовок раздела «Настройки»Снимки включены по умолчанию. Выключить будущее снятие файлов:
{ "snapshots": false}Выключение не удаляет уже сохранённые снимки: откат переписки остаётся, но без снятого состояния файлов не восстанавливает правки.
Осторожно
Заголовок раздела «Осторожно»Снимки — удобство, а не транзакция и не резервная копия:
- Команды оболочки могут менять сервисы, процессы, сеть, базы, git и файлы вне активной папки — восстановление снимка этих эффектов не отменяет.
- Прерванная или неудавшаяся работа может оставить правки, если снятие не удалось или пары снимков нет.
- Восстановление перезаписывает текущее содержимое затронутых путей; отмена подготовленного отката тоже может перезаписать более поздние правки.
- Откат убирает сообщения из активного вида переписки, а не из истории сессии и хранилища снимков — это не стирание данных.
Перед /undo на «грязной» рабочей копии закоммитьте или сохраните важную
работу.