Перейти к содержимому

9. Отчёт, diff и возможность отката ​

Суть этапа ​

Завершаем задачу понятным результатом и сохраняем возможность отменить наше изменение рабочей копии. Исходный сайт пользователя остаётся неизменным.

Что получает пользователь ​

  • Что было проверено и какие ограничения остались.
  • Какие находки подтверждены, отклонены или требуют дальнейшего анализа.
  • Что изменено в копии и почему: diff с привязкой к плану.
  • Какие проверки выполнены после изменения и с каким результатом.
  • Что не удалось завершить и какой следующий шаг нужен.

Отчёт и diff сохраняются в S3, статусы и ссылки — в БД. Они связаны с projectId, snapshotId, taskId, workspaceId и версией изменения. Диалог агента не является единственным хранилищем результата.

Как работает откат ​

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

Исходный снимок удерживаем от удаления в пределах срока восстановления; дополнительный архив оригиналов для каждого исправления не создаём. Созданные и удалённые файлы учитываются составом восстанавливаемого снимка.

Откат возвращает прежнее состояние копии, которое могло содержать уязвимость. Это не «возврат к гарантированно чистому сайту». Сроки хранения оригиналов и квоты нужно определить до запуска; контейнер не может быть единственным местом хранения данных восстановления.

Когда первый путь считается готовым ​

Синтетический сайт проходит всю цепочку через MCP, включая повторную проверку и восстановление. Отдельно проверены чужие идентификаторы, неполное скачивание, опасный архив, остановка исполнителя, повтор задачи, конфликт хешей и сбой записи.

Публикация на действующий сайт — следующий этап с отдельным разрешением, актуальным бекапом и проверкой работоспособности. В первый путь она не входит.

Securify · Документация проекта · Прототип → MVP