From 7203812b17f04ed325ca994ff2c2c31369060268 Mon Sep 17 00:00:00 2001 From: claude-bot Date: Sat, 6 Jun 2026 05:34:14 +0000 Subject: [PATCH] =?UTF-8?q?docs(ORCH-048):=20staging=20gate=20log=20?= =?UTF-8?q?=E2=80=94=20FAILED=20(9/10,=20B6=20/projects=20404=20on=20stale?= =?UTF-8?q?=20staging)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Staging instance (8501) still runs a pre-ORCH-048 image without GET /projects, so B6 deterministically FAILs (endpoint unavailable → no false PASS). Branch code is correct; remediation is a host-side `--profile staging up -d --build` of orchestrator-staging before re-running the gate. Co-Authored-By: Claude Opus 4.7 --- docs/work-items/ORCH-048/15-staging-log.md | 94 ++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 docs/work-items/ORCH-048/15-staging-log.md diff --git a/docs/work-items/ORCH-048/15-staging-log.md b/docs/work-items/ORCH-048/15-staging-log.md new file mode 100644 index 0000000..ec2df6e --- /dev/null +++ b/docs/work-items/ORCH-048/15-staging-log.md @@ -0,0 +1,94 @@ +--- +staging_status: FAILED +timestamp: 2026-06-06T05:33:16Z +base_url: http://localhost:8501 +mode: stub +result: 9/10 checks PASS +failed_checks: + - B6 Registry (GET /projects -> HTTP 404) +--- + +# Staging Gate Log — ORCH-048 + +Staging test suite ran against the live staging instance (port 8501) and +**FAILED**: 9 of 10 checks passed; check **B6** failed. + +## Verdict + +`staging_status: FAILED` (exit code 1). + +## Root cause — deploy ordering, NOT a code defect + +ORCH-048 introduces the `GET /projects` endpoint (`src/main.py:112`) and +rewrites staging-check **B6** to read the project registry over HTTP from the +running instance instead of importing `src.projects` locally +(see `06-adr/ADR-001-b6-registry-via-http-endpoint.md`). + +The **branch code is correct** — the route is present in this worktree. The +failure is that the **live staging container on 8501 is still running a +pre-ORCH-048 image** that does not yet serve `/projects`: + +``` +GET http://localhost:8501/projects -> HTTP 404 Not Found +GET http://localhost:8501/health -> HTTP 200 {"status":"ok",...} +``` + +Per the design canon (architecture/README.md §"Условный staging-гейт", and +ADR-001), an unavailable `/projects` endpoint is a **deterministic FAIL** — +the check refuses to emit a false PASS when it cannot read the live registry. +That is the behaviour observed here. + +## Required remediation + +The staging sandbox must be redeployed with this branch's code **before** the +gate can pass — the canonical deploy-staging flow (STAGING_CHECK.md, deploy-hook +section) runs the check *after* a staging rebuild: + +```bash +# host: mva154 — SAFE, isolated 8501 sandbox; does NOT touch prod 8500 +docker compose --profile staging up -d --build orchestrator-staging +docker exec orchestrator-staging \ + python3 /repos/orchestrator/scripts/staging_check.py --mode stub +``` + +This redeploy could not be performed from the deployer sandbox (no docker +access; host-side operation), so the check was run against the stale instance. +Once staging serves ORCH-048's `/projects`, B6 returns the live registry +(`known_plane_project_ids` = sandbox only, prod ET/ORCH absent) and is expected +to PASS, yielding `staging_status: SUCCESS`. + +## Full suite output + +``` +============================================================ + ORCH-33 Staging Check Suite + base_url : http://localhost:8501 + mode : stub + utc_time : 2026-06-06T05:30:35.201677+00:00 +============================================================ + +[Block A] SMOKE + ✓ PASS A1 GET /health → 200 status=ok [HTTP 200, body={'status': 'ok', 'service': 'orchestrator'}] + ✓ PASS A2 GET /queue → 200 with counts/max_concurrency/resilience [HTTP 200, keys=['counts', 'max_concurrency', 'poll_interval', 'resilience', 'recent']] + ✓ PASS A3 ORCH_STAGING=true (not prod) [ORCH_STAGING=true] + +[Block B] ACCESS + ✓ PASS B4 Plane: sandbox project accessible [HTTP 200, found 5 project(s), sandbox=YES] + ✓ PASS B5 Gitea: orchestrator-sandbox accessible, push=true [HTTP 200, permissions={'admin': True, 'push': True, 'pull': True}] + ✗ FAIL B6 Registry: sandbox present, prod ET/ORCH absent [GET /projects → HTTP 404] + +[Block C] E2E (mode=stub) + ✓ PASS C7 Create issue in Plane SANDBOX [HTTP 201, issue_id=f95d5b4b-ae3c-4e39-a6a7-443f7131835c] + ✓ PASS C8 Trigger pipeline via /webhook/plane [HTTP 200, resp={'status': 'accepted'}] + ✓ PASS C9a Branch appears in orchestrator-sandbox [branch=feature/SANDBOX-012-staging-check-e2e-20260606t053] + ✓ PASS C9b Analyst job enqueued in staging queue [job_id=8, status=queued, agent=analyst] + +[CLEANUP] + ✓ PASS CLEANUP: deleted branch 'feature/SANDBOX-012-staging-check-e2e-20260606t053' (HTTP 204) + ✓ PASS CLEANUP: deleted Plane issue f95d5b4b-ae3c-4e39-a6a7-443f7131835c (HTTP 204) + +============================================================ + RESULT: 9/10 checks PASS +============================================================ +exit code: 1 +``` -- 2.49.1