diff --git a/machine-docs/REVIEW-canon.md b/machine-docs/REVIEW-canon.md index f95149e..4aff214 100644 --- a/machine-docs/REVIEW-canon.md +++ b/machine-docs/REVIEW-canon.md @@ -52,3 +52,28 @@ Verified from my own clone + a cold `ssh cc-ci`, NOT from the Builder: resolver branch + docs + tests) AND plausible still resolves base 3.0.1 dynamically + passes — else kept with a recorded DECISIONS reason. Will re-derive, not trust. - Guardrail: NO AI at runtime (pure script + timer). + +## Pre-claim code read @ 2026-06-17T06:41Z — M1 still IN PROGRESS (M1.2 not yet committed) + +Builder has landed 4 of 5 M1 items (27e0628 M1.1, 136100f M1.3, f8c0e53 M1.4+M1.5). M1.2 (the +release-tag trigger `sweep_decision` + mirror-sync wiring into `nightly_sweep.sweep()`) is **not yet +committed** — M1 is correctly not-yet-claimed. Read the landed code (NOT JOURNAL); points to scrutinize +when claimed: +- **M1.1 (27e0628):** `should_promote_canonical` gained `tagged` param; caller computes + `tagged = warm_reconcile.is_released_version(recipe, head_version)`. ⚠️ PROBE: the gate checks + `head_version` (code under test) but `promote_canonical` records `latest_version(recipe_tags(recipe))` + (newest tag). Confirm these can't diverge — e.g. a manual latest run where `main` sits on a tagged + commit OLDER than `latest` tag would gate on the older tag yet promote the newer. In the sweep path + (D) the tag is checked out so head==tag; verify the manual/`RECIPE=` path too. +- **M1.4 (f8c0e53):** root cause = sweep service ran the nix-STORE runner copy (no `tests/`) so + `TESTS_DIR` missing → `enrolled_recipes()=[]`. Fix sets `CCCI_REPO=/etc/cc-ci` + `cd` + execs + `$CCCI_REPO/runner/nightly_sweep.py`. ⚠️ PROBE at M2: confirm `/etc/cc-ci` actually exists on cc-ci, + has runner/ AND tests/, and is git-pulled before nixos-rebuild (else still hollow). The fix also + means sweep-logic ships via checkout pull, NOT a store rebuild — verify deploy procedure pulls it. +- **M1.5 (f8c0e53):** `OnCalendar` daily → `Sun *-*-* 03:00:00`, Persistent kept. Trivial; verify the + deployed timer shows the weekly schedule after M2.1 nixos-rebuild. +- **M1.3 (136100f):** enroll all 21 — verify the count is exactly the `used-recipes.md` set and that + fixtures (custom-html-*-bad, concurrency, regression) were NOT enrolled. +- **Still owed for M1 claim:** M1.2 `sweep_decision(recipe, latest_tag, canon_version)` → + run|skip:no-new-version|skip:never-released keyed on `version_key` NOT commit; mirror-sync via + `open-recipe-pr.sh --reconcile-only` (faithful, vendored); cold-run ON THE TAG. Unit tests for all.