К содержимому
Интеграции

Отмена изменений

Обновлено

Два способа возврата

Задача Инструмент Что возвращается
Отменить конкретную операцию агента themes_restore Предыдущий текст файла либо прежние значения затронутых настроек
Убрать доработки изменённого файла themes_revert_file Файл из установленной поставки со снятием пометки «изменён»

Для themes_restore сохраните backup_id из результата записи и исходный target. Отмена также требует предпросмотра и подтверждения.

Отмени операцию с сохранённым backup_id для той же темы.
Сначала покажи, что вернётся, и дождись подтверждения.

Возврат к поставке доступен для файла с пометкой «изменён», если в поставке есть оригинал. Для пробной темы инструмент возвращает trial_theme. Новый файл без оригинала удаляют отменой его добавления через themes_restore. Отдельного инструмента произвольного удаления файлов нет.

Отмена изменения по резервной копии В диалоге показаны предпросмотр отмены, согласие пользователя и результат возврата index.html к поставке.

Защита последующих изменений

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

У JSON-настройки проверяется значение всего ключа: последующее изменение другого пункта того же списка тоже может помешать отмене.

Отмена добавления удаляет созданный файл и созданные той операцией папки, если они пусты. Каталог самой темы плагин не удаляет. Копия темы, созданная первой правкой, может остаться после отмены.

Где лежат резервные копии

wa-data/protected/mcp/plugins/themedesign/backups/<app>/<theme>/<backup_id>.json

Это закрытое серверное хранилище, одна запись на операцию. Оно содержит данные до и после изменения и сведения об операции. Не используйте его как постоянную резервную копию всего сайта.

Срок хранения — 90 дней, общий лимит — 200 записей. Очистка запускается при создании следующих записей: сначала удаляются просроченные, затем лишние, с приоритетом уже отменённых или откаченных. Свежие незавершённые операции и необходимые записи текущей отмены защищены на сутки, поэтому лимит временно может превышаться. Отдельно настраивать cron для очистки не требуется.

После удаления записи themes_restore возвращает backup_not_found. Возврат существующего изменённого файла к поставке не зависит от этой копии, но требует наличия оригинала и выполнения остальных условий инструмента.

Если сохранение завершилось ошибкой

Ошибка после начала изменения может содержать backup_id и rollback_status. Сохраните их и передайте разработчику.

Статус Значение и следующий шаг
not_written Изменение не было записано; прочитайте текущее состояние перед повтором
rolled_back Автоматический откат вернул данные операции; созданная копия темы может остаться
rolled_back_content_only Содержимое возвращено, но полное восстановление пометок не подтверждено; проверьте редактор дизайна
rollback_conflict Автоматический откат обнаружил конфликт; перечитайте тему и сравните содержимое
rollback_failed Автоматический откат не завершён; нужна проверка разработчиком

Для некоторых незавершённых операций themes_restore поддерживает восстановление по backup_id, если текущее состояние узнаваемо. Сначала выполните предпросмотр: обходить restore_conflict повторным подтверждением нельзя.

Если предупреждение сообщает о неудачном копировании темы, её копия может быть неполной. Сравните её с поставкой и проверьте в редакторе дизайна. Ошибка leftover_copy означает оставшийся каталог без theme.xml: разработчику нужно проверить указанный в ответе путь и исправить ситуацию вручную.