Files
orchestrator/docs/work-items/ORCH-036/12-review.md

4.1 KiB
Raw Permalink Blame History

type, work_item_id, verdict, version
type work_item_id verdict version
review ORCH-036 APPROVED 2

Review ORCH-036 — Исполняемый самодеплой стадии deploy (Вариант B)

Summary

Re-review после фикса двух P1 из версии 1. Оба блокера устранены:

  1. Stale deploy-state маркеры — добавлен self_deploy.clear_state(repo, work_item_id) (never-raise, idempotent, рекурсивное удаление <repos_dir>/.deploy-state-<repo>/<wi>/) в ветке БАГ-8-отката check_deploy_status FAILED (_handle_qg_failure_rollbacks, src/stage_engine.py) и дополнительно в начале Фазы A (_handle_self_deploy_phase_a) как belt-and-suspenders. Добавлен регрессионный тест tests/test_deploy_rollback.py::test_tc11_re_deploy_after_rollback_not_wedged, доказывающий, что после FAILED → откат → фикс → повторный заход на deploy Фаза B РЕАЛЬНО инициирует деплой (нет no-op по устаревшему initiated), плюс tests/test_deploy_hook_mapping.py::test_clear_state_removes_all_markers_and_is_idempotent.
  2. .env.example — добавлен полный блок дескрипторов ORCH_SELF_DEPLOY_* / ORCH_DEPLOY_* (14 настроек, плейсхолдеры, секреты не коммитятся) по образцу merge-gate ORCH-043, с подробными комментариями.

Реализация трёхфазного исполняемого самодеплоя соответствует ADR-001 и закрывает критерии приёмки AC-1…AC-13. Контракты STAGE_TRANSITIONS / QG_CHECKS / _parse_deploy_status / БАГ-8 / terminal-sync / merge-gate (ORCH-43) НЕ тронуты; условность по репо (self_deploy_applies) корректна; перехваты упорядочены верно (Phase B после terminal-check, Phase A после merge-gate); deploy-finalizer — детерминированный no-LLM reserved-agent, перехвачен в launcher до _spawn. Все импорты (set_issue_in_review, plane_add_comment, set_issue_blocked, send_telegram) присутствуют. pytest tests/568 passed.

Findings

P0 — Blocker

  • (нет)

P1 — Must fix

  • (нет — оба P1 из версии 1 устранены и покрыты тестами)

P2 — Should fix

  • (нет блокирующих; прежний P2 про сквозную процедуру оператора частично закрыт: env-карта новых настроек добавлена в INFRA.md, пошаговый approve→deploy описан в deployer.md и DEPLOY_HOOK.md)

Документация

Обновлена содержательно и в том же PR:

  • .openclaw/agents/deployer.md — стадия deploy переписана: self-hosting путь (Фазы A/B/C, явный запрет рестарта 8500 изнутри агента) vs прежний синхронный ssh-путь для не-self репо;
  • docs/operations/INFRA.md — env-карта всех новых ORCH_SELF_DEPLOY_* / ORCH_DEPLOY_*;
  • docs/operations/DEPLOY_HOOK.mdSOURCE_IMAGE build-once + прод-пример;
  • docs/architecture/README.md — раздел «Исполняемый самодеплой стадии deploy»;
  • CHANGELOG.md — запись Added (фича) + запись Fixed (review-fix: clear_state + .env.example);
  • ADR docs/work-items/ORCH-036/06-adr/ADR-001-executable-self-deploy.md + глобальный docs/architecture/adr/adr-0007-executable-self-deploy.md;
  • .env.example — канонический шаблон (CLAUDE.md №8, ТЗ §2.6) дополнен (был пробел в v1).

Документация = golden source: изменения src/ сопровождены синхронным обновлением доки в том же PR. Ось документации — PASS.