2.9 KiB
Phase 8 — завершена
Проверено 4 октября 2026 (Asia/Novosibirsk): rollback по SSH без повторного build. Оба режима автоматизированы; команды и условия описаны в rollback.md.
На изолированном SSH/Docker-стенде восстановлен snapshot Phase 7, применён чистый release 0.0.5, затем выполнен pack-only rollback на retained 0.0.4. Маркеры мира и состояния модов сохранили текущий прогресс. Следующий snapshot rollback восстановил исходные маркеры, убрал появившийся позже файл из активного runtime и сохранил его вместе с текущим прогрессом в retired runtime.
Для обеих операций проверены backup текущего состояния, успешный health,
сохранение .env и публикации 0.0.0.0:25566, правильные pointers и освобождение
общей блокировки. Просмотр планов сохранил список файлов root, ID контейнера и
время его запуска. Финальный Minecraft status query прошёл. Контейнер стенда удалён.
68 unit tests прошли: CLI подтверждения, readonly plan, corrupt snapshot до stop,
ошибка current backup, startup failure без автоматического возврата, snapshot
recovery после failed deploy по фактическому binding, lock и безопасные ID.
Старый immutable Compose проверен настоящим pinned Compose без зависимости от dist.
Обнаруженные права 700 у опубликованного release исправлены на 755, чтобы
контейнер UID 1000 мог читать bind-mounted .mrpack; добавлена регрессионная проверка.
Доказательства: .tools/phase8-check.Hgc1oL/evidence/,
.tools/phase8-unit-tests.log, .tools/phase8-integration.log.
Рабочий host не откатывался: прямой query 192.168.1.61:25565 прошёл;
результат .tools/phase8-target-evidence/direct-status.json.
Ограничения: world compatibility подтверждает оператор; аварийное завершение между обновлениями двух pointer files требует сверки state/binding. Незавершённый rollback требует документированного ручного recovery. Retired runtime и backups сохраняются без автоматической очистки. Forge остаётся непроверенной веткой.