Compare commits

...

4 Commits

Author SHA1 Message Date
7203812b17 docs(ORCH-048): staging gate log — FAILED (9/10, B6 /projects 404 on stale staging)
All checks were successful
CI / test (pull_request) Successful in 12s
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 <noreply@anthropic.com>
2026-06-06 05:34:14 +00:00
0bc2398462 feat(stage_engine): ORCH-046 embed reviewer/tester findings in task_desc (#43)
Some checks failed
CI / test (push) Has been cancelled
Manual merge (Slava trust, variant A). Findings text embedded into developer task_desc (not just link). New src/review_parse.py, graceful fallback. 50 tests pass. Reviewer APPROVED, CI green. Staging FAIL = B6/ORCH-48 (infra, unrelated).
2026-06-06 07:54:03 +03:00
b5f4eb6f2f Merge pull request 'docs(ORCH-046): staging gate log — FAILED (9/10, B6 registry isolation)' (#44) from staging-log/ORCH-046-20260606T044841 into main 2026-06-06 07:49:22 +03:00
75c2b814d8 docs(ORCH-046): staging gate log — FAILED (9/10, B6 registry isolation)
All checks were successful
CI / test (pull_request) Successful in 12s
Staging suite ran end-to-end against staging (8501, stub mode): 9/10 PASS,
exit 1. Failure is B6 — staging project registry not isolated (sees prod
ET/ORCH, sandbox absent), violating the INFRA isolation invariant. Gate is
authoritative and red → staging_status: FAILED (rollback to development).
Note: this is a staging .env/ORCH_PROJECTS_JSON misconfig, not an ORCH-046
code regression (same B6 as ORCH-047).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-06 04:48:47 +00:00

View File

@@ -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
```