From 31f0e426c40f36ec6f54ff6d82f843bc297aebca Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Fri, 29 May 2026 03:31:57 +0100 Subject: [PATCH] =?UTF-8?q?review(2w):=20WC4=20+=20WC7=20=E2=80=94=20PASS?= =?UTF-8?q?=20@2026-05-29=20(gate=203ff2bf6;=20--quick=20never-promote=20+?= =?UTF-8?q?=20FAIL-rollback-to-exact-known-good=20+=20no-canonical?= =?UTF-8?q?=E2=86=92cold=20fallback,=20all=20cold-verified;=20live-bridge?= =?UTF-8?q?=20trigger=20battery)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- machine-docs/REVIEW-2w.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/machine-docs/REVIEW-2w.md b/machine-docs/REVIEW-2w.md index 4cd50cc..af4b226 100644 --- a/machine-docs/REVIEW-2w.md +++ b/machine-docs/REVIEW-2w.md @@ -258,3 +258,39 @@ defects. Canonical left clean: idle, volume retained, known-good content, snapsh **Gate verdict: WC2 + WC3 — PASS @2026-05-29.** Builder may proceed to W2 (`--quick`). **Still tracked-open before Phase-2w DONE (unchanged):** traefik WC1.1 (W0.10) cold proof. + +## @2026-05-29 — WC4 + WC7 — PASS (gate 3ff2bf6 cleared; cold-verified from own clone) +All re-run COLD from `cc-ci:/root/cc-ci-adv-verify`. Builder parked custom-html canonical for me. + +- **Units — PASS:** `cc-ci-run -m pytest tests/unit -q` → **64 passed** (incl. test_bridge_trigger). +- **WC7 trigger — PASS** (against the LIVE deployed bridge `ccci-bridge`, adversarial battery): + `!testme`→(True,False)=cold; `!testme --quick`→(True,True)=quick; and ALL of `!testmexyz`, + `!testme foo`, `!testme --quick` (double-space), `!testme --quickx`, `please !testme`, + `!testme --quick extra` → (False,False) rejected; surrounding whitespace tolerated. Strict + exact-match, no false-trigger. `trigger_build` wires `CCCI_QUICK=1`; default `!testme` stays cold. +- **WC4 `--quick` PASS / NEVER-PROMOTE — PASS.** `RECIPE=custom-html CCCI_QUICK=1 REF=87a62a5` + (healthy 1.10.0+1.28.0 head): mode=quick, in-place upgrade 1.11.0+1.29.0→1.10.0+1.28.0, **upgrade + pass** (generic test_upgrade_reconverges first, then overlay), **custom pass** (5 tests incl. + playwright), "known-good UNCHANGED", exit 0. Independently verified the never-promote invariant: + registry version STILL 1.11.0+1.29.0 (NOT promoted), **known-good snapshot tar byte-identical** + (sha256 9ef62bdf… == pre-run baseline → snapshot never re-taken), canonical idle, volume retained. +- **WC4 `--quick` FAIL / ROLLBACK — PASS** (the data-safety proof). Staged a broken custom-html + commit (`image: nginx:99.99.99-doesnotexist`), ran `CCCI_QUICK=1 CCCI_SKIP_FETCH=1 REF=`: + broken upgrade `abra deploy … FATA deploy failed 🛑` → upgrade **fail** + custom **fail** (app down) + → `quick FAIL → rolling back … restored known-good data; canonical idle (NOT promoted)`, **exit 1** + (correctly RED). Independently verified the rollback restored the EXACT known-good: registry version + unchanged (1.11.0+1.29.0), snapshot byte-identical (9ef62bdf…), and on redeploy the known-good + marker `WC2-DATA-MARKER-7f3a9c` is back, app serves **200**, image is **nginx:1.29.0** (broken image + GONE); left idle. (This is also the WC9 `--quick` rollback-proof in miniature on custom-html.) +- **WC7 no-canonical fallback — PASS.** `RECIPE=custom-html-tiny MODE=quick` (no canonical) → logs + `MODE=quick requested but no canonical … falling back to COLD run` → runs COLD at a **cold per-run + domain** `cust-9834f5` (not `warm-`), install **pass**, deploy-count=1, exit 0; post-run no `cust-*` + service/volume (cold teardown sacred) and the **custom-html canonical untouched** (idle@1.11.0+1.29.0). + The PR is still tested; default `!testme` cold path unaffected. + +Cleanup: staged broken commit reverted (recipe clone restored to 87a62a5, broken commit dangling); +custom-html canonical left idle@1.11.0+1.29.0 with snapshot intact. Generic-first invariant held in +`--quick`. No tests softened. + +**Gate verdict: WC4 + WC7 — PASS @2026-05-29.** Builder may proceed to W3 (WC5/WC6 cold-advances + +nightly). **Still tracked-open before Phase-2w DONE:** traefik WC1.1 (W0.10) cold proof.