Some checks failed
continuous-integration/drone/push Build is failing
M2 verified: nixos-rebuild @13:43Z deployed /api/version probe; deploy-proxy active(exited) in 279ms (nixos-rebuild) and 17ms (cold-boot sim) — no alert, no deadlock. All 9 services 1/1. Running server unaffected. Adversary PASS @13:44Z. BUILDER-INBOX consumed.
49 lines
2.7 KiB
Markdown
49 lines
2.7 KiB
Markdown
# STATUS — phase pxgate (Builder)
|
|
|
|
**Phase plan:** `/srv/cc-ci/cc-ci-plan/plan-phase-pxgate-proxy-healthgate.md`
|
|
**Phase start:** 2026-06-13
|
|
|
|
---
|
|
|
|
## Gate: M1 — PASS @2026-06-13T13:00Z (Adversary cold-verified)
|
|
|
|
See REVIEW-pxgate.md for full evidence. Summary:
|
|
- Code change correct: `health_path="/api/version"`, `health_domain` removed → defaults to `traefik.ci.commoninternet.net`
|
|
- Controlled reproduction: dashboard=0 → old probe=404, new probe=200 ✓
|
|
- Consumer ordering unchanged ✓; alert dir empty ✓; DEFERRED + DECISIONS updated ✓
|
|
- Gate has teeth: `health_code()` returns 0 on curl failure → 0 ∉ `health_ok=(200,)` → rollback triggered
|
|
|
|
One non-blocking documentation note from Adversary: STATUS claim said "999 error sentinel" — actual code returns 0. No code defect.
|
|
|
|
---
|
|
|
|
## Gate: M2 — PASS @2026-06-13T13:44Z (Adversary cold-verified)
|
|
|
|
See REVIEW-pxgate.md for full evidence. Summary:
|
|
- nixos-rebuild at ~13:43 UTC; deploy-proxy re-ran with new nix store path `8qjh8apxcbs85asgizkymjskicf4zmsl`
|
|
- New runner `/nix/store/5hic3aba65i88m1ib67b7g6dwzrzd1z2-runner/warm_reconcile.py` confirmed: `health_path="/api/version"`, `health_domain` absent → probe is `traefik.ci.commoninternet.net/api/version`
|
|
- deploy-proxy `active (exited)` in 279ms (nixos-rebuild run) and 17ms (cold-boot sim) — no alert, no deadlock
|
|
- Cold-boot simulation: dashboard stopped → proxy started → `active (exited)` immediately ✓ → dashboard restored ✓
|
|
- All 9 services 1/1 after rebuild and cold-boot sim; `ci.commoninternet.net` → 200; `/api/version` → 200
|
|
- Rollback path unchanged: `health_code()` returns 0 on curl failure → 0 ∉ `health_ok=(200,)` → rollback ✓
|
|
- A1/DEFERRED entry closed (at M1); consumer ordering unchanged ✓
|
|
|
|
---
|
|
|
|
## DONE
|
|
|
|
Phase pxgate complete. All Definition-of-Done items met and Adversary-verified:
|
|
|
|
| Item | Status | Evidence |
|
|
|---|---|---|
|
|
| Cycle broken (deploy-proxy↔dashboard) | ✅ | Cold-boot sim: proxy active (exited) without dashboard |
|
|
| Dashboard-independent health gate | ✅ | `traefik.ci.commoninternet.net/api/version` — traefik's own API |
|
|
| Rollback intact | ✅ | Gate returns 0 on failure → not in (200,) → rollback triggered |
|
|
| No consumer mis-ordered | ✅ | Adversary P3 probe: all After=deploy-proxy consumers unchanged |
|
|
| Running server unaffected | ✅ | All 9 services 1/1; ci.commoninternet.net → 200 |
|
|
| A1/DEFERRED closed | ✅ | DEFERRED.md entry closed at M1; DECISIONS.md updated |
|
|
| M1 Adversary PASS | ✅ | REVIEW-pxgate.md @2026-06-13T13:00Z |
|
|
| M2 Adversary PASS | ✅ | REVIEW-pxgate.md @2026-06-13T13:44Z |
|
|
|
|
Fix commit: `0e9fd38` (`claim(pxgate-M1): change traefik health probe to /api/version`). Live since nixos-rebuild @2026-06-13T13:43Z.
|