From 024629637085ab9de801624148d4f954a8d82d42 Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Fri, 29 May 2026 02:33:35 +0100 Subject: [PATCH] =?UTF-8?q?review(2w):=20WC2=20+=20WC3=20=E2=80=94=20PASS?= =?UTF-8?q?=20@2026-05-29=20(gate=204ce80f8;=20data-warm=20round-trip=20+?= =?UTF-8?q?=20restore=20round-trip=20cold-verified=20from=20own=20clone,?= =?UTF-8?q?=20canonical=20left=20idle+clean)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- machine-docs/REVIEW-2w.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/machine-docs/REVIEW-2w.md b/machine-docs/REVIEW-2w.md index 430c95f..4cd50cc 100644 --- a/machine-docs/REVIEW-2w.md +++ b/machine-docs/REVIEW-2w.md @@ -227,3 +227,34 @@ Read-only glance (NOT a verdict): canonical.py is a sound registry primitive — honors snapshot-while-undeployed; `has_canonical` requires both a registry record AND retained volume; deploy/undeploy-keep-volume lifecycle matches WC2. Will cold-verify when WC2/WC3 is formally CLAIMED (the live data-warm round-trip is the key thing to re-run myself). Idle until then. + +## @2026-05-29 — WC2 + WC3 — PASS (gate 4ce80f8 cleared; cold-verified from own clone) +WC2/WC3 formally claimed (4ce80f8; my premature note rebased on top). Builder parked custom-html (first +data-warm canonical, left idle) + traefik for me. All re-run COLD from `cc-ci:/root/cc-ci-adv-verify`. + +- **Units — PASS:** `cc-ci-run -m pytest tests/unit -q` → **61 passed** (incl. test_canonical, test_warmsnap). +- **WC2 data-warm canonical model — PASS.** Idle state matches: `canonical.json` + {recipe=custom-html, domain=warm-custom-html.ci.commoninternet.net, version=1.11.0+1.29.0, + commit=wc2proof, **status=idle**}; content volume **retained** (`warm-custom-html_…_content`); **no + service** running (idle = undeployed-keep-volume); stable `warm-` domain (≠ cold + `-<6hex>`). My OWN data-warm round-trip: deploy_canonical → wrote my marker + `ADV-OWN-MARKER-a1b2c3` → `undeploy_keep_volume` (**app down + volume retained**, registry→idle) → + deploy_canonical → **my marker SURVIVED**. The Builder's known-good marker also reattached. HTTPS + serving confirmed (`/`=200, `/index.html`=200; an earlier one-off 404 was a curl-vs-deploy-converge + race, 200 once settled — not a defect). +- **WC3 known-good snapshots — PASS.** Snapshot is a **raw per-volume tar taken while undeployed** + (`/var/lib/ci-warm/custom-html/snapshot/volumes/warm-custom-html_…_content.tar` + meta.json), one + last-good per app under the stable path. My OWN restore round-trip: mutate (deleted the known-good + `wc2-marker.txt`) → undeploy → `warmsnap.restore` → deploy → **known-good marker BACK with exact + content `WC2-DATA-MARKER-7f3a9c`** AND my mutation gone → restore round-trips the EXACT known-good. + (Same warmsnap helper already cold-proven on keycloak in check5/W0.5.) `has_canonical` correctly + requires BOTH a registry record AND a retained volume. +- **D8/WC8 (spot):** `/var/lib/ci-warm/` is cache — no nix module references it as a source; full D8 + closure-exclusion folds into the WC8 verdict later. + +Two crashes during my runs were **bugs in my OWN driver scripts** (a tag I deleted that abra still +needed in check5; `grep -rl` returning rc=1 on no-match which `exec_in_app` raises on) — NOT product +defects. Canonical left clean: idle, volume retained, known-good content, snapshot intact, v1.11.0+1.29.0. + +**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.