diff --git a/docs/work-items/ORCH-044/14-deploy-log.md b/docs/work-items/ORCH-044/14-deploy-log.md new file mode 100644 index 0000000..7922bc3 --- /dev/null +++ b/docs/work-items/ORCH-044/14-deploy-log.md @@ -0,0 +1,90 @@ +--- +deploy_status: SUCCESS +timestamp: 2026-06-06T08:44:04Z +work_item: ORCH-044 +branch: feature/ORCH-044-preflight-auth-effort +commit: 08ace892bbf1809a65c1dc504459d052bfd71f79 +target_service: orchestrator +target_port: 8500 +deploy_mode: artifact-only +staging_gate: SUCCESS +prod_container_restarted: false +rebuild_required: true +--- + +# Deploy Log — ORCH-044 + +## Verdict + +**`deploy_status: SUCCESS`** — артефактный (artifact-only) деплой-вердикт. + +Реальный `git pull` + `docker compose ... --build` + рестарт прод-контейнера +`orchestrator` (8500) в рамках этой стадии **НЕ выполняется**. Он делегирован +хуку `scripts/orchestrator-deploy-hook.sh` (ORCH-36), который запускается +Владельцем **после** мерджа ветки `feature/ORCH-044-preflight-auth-effort` в +`main`. Guardrail: агент никогда не перезапускает общий прод-инстанс внутри +ORCH-задачи (CLAUDE.md / INFRA.md §Self-hosting). + +## Pre-conditions (все ✓) + +| Артефакт | Поле | Значение | +|----------|------|----------| +| `12-review.md` | `verdict` | `APPROVED` | +| `13-test-report.md` | `result` | `PASS` | +| `15-staging-log.md` (origin/main) | `staging_status` | `SUCCESS` (10/10 staging-checks, прогон внутри `orchestrator-staging` :8501) | +| `04-test-plan.yaml` | — | покрывает AC (P2/`--effort` исключён владельцем → ORCH-50, N/A) | +| ADR | `06-adr/ADR-001-preflight-auth-and-empty-result-failure.md` | заведён | +| `CHANGELOG.md` | — | обновлён | + +Стадия `deploy` достижима только потому, что условный staging-гейт +(`check_staging_status`, реальный для self-hosting repo=orchestrator) — зелёный. + +## Change scope — почему нужен rebuild+restart (но не сейчас) + +В отличие от чисто bind-mount изменений (ср. ORCH-048), ORCH-044 меняет +**рантайм-код `src/`**, который копируется в образ (`/app/src`) и исполняется +прод-процессом: + +| Файл | Тип | Как доезжает до прода | +|------|-----|------------------------| +| `src/preflight.py` | runtime (в образе) | требует **rebuild + restart** контейнера | +| `src/agents/launcher.py` | runtime (в образе) | требует **rebuild + restart** контейнера | +| `src/config.py` | runtime (в образе) | требует **rebuild + restart** контейнера | +| `docs/**`, `CHANGELOG.md` | docs | мерж в `main` | +| `tests/**` | тесты, не деплоятся | n/a | + +`rebuild_required: true`. Чтобы новый token-free auth-гейт preflight и +«пустой лог ⇒ провал» вступили в силу на проде, прод-инстанс `orchestrator` +(8500) должен быть пересобран и перезапущен. **Это делает Владелец через +деплой-хук после мерджа**, не данный агент. + +## Self-hosting policy + +> ORCH-044 правит слой запуска агента (preflight/launcher/config) того самого +> инструмента, который СЕЙЧАС обслуживает все прод-проекты (orchestrator + +> enduro-trails) из одного инстанса `orchestrator:8500` с общей БД и общей +> очередью. + +Поэтому в рамках этой стадии: +- **Прод-контейнер `orchestrator` (8500) НЕ трогался** — ни рестарта, ни + пересборки (групповой риск для всех проектов). +- **Деплой-хук** `scripts/orchestrator-deploy-hook.sh` (реальный docker/SSH) + **не запускался** этим агентом (не было явной инструкции Owner; зарезервирован + за ним, ORCH-36). У хука есть health-цикл (10×6с) + авто-rollback — + страховка на момент боевого rebuild+restart. +- **Страховка пройдена:** staging (8501, изолированная БД/реестр) — зелёный + перед прод-деплоем (ORCH-35). + +## Deploy action + +- **Prod rebuild/restart:** требуется (`src/` изменён), **не выполнен** этим + агентом (guardrail self-hosting). Выполняется Владельцем через деплой-хук + после мерджа в `main`. +- **Эффективный rollout:** мерж ветки в `main` → Owner запускает + `scripts/orchestrator-deploy-hook.sh` (прод-режим: `TARGET_SERVICE=orchestrator + TARGET_PORT=8500 COMPOSE_PROFILE=""`) с health-check + авто-rollback. + +## Verdict + +`deploy_status: SUCCESS` — все гейты зелёные, артефакт-вердикт зафиксирован, +боевой rebuild+restart делегирован Owner-хуку. Прод-инстанс не затронут.