2.7 KiB
2.7 KiB
STATUS — phase canon (canonical sweep, make it real)
Gate: M1 IN PROGRESS (not yet claimed).
WHAT/HOW/EXPECTED/WHERE for the Adversary. Reasoning lives in JOURNAL-canon.md.
Phase summary
Make the canonical sweep actually promote canonicals end-to-end (it is currently hollow), add the
mirror-sync + new-release-tag trigger + tagged-promote gate, enroll all recipes, make the timer
weekly, and prove it in real CI. DoD = §5 of cc-ci-plan/plan-phase-canon-canonical-sweep.md.
Verified starting state (2026-06-17, Builder cold-checked)
- HOLLOW-SWEEP ROOT CAUSE (confirmed): the deployed
nightly-sweep.timerfired 03:09 UTC and loggedenrolled canonicals = []. Cause: the unit sets noCCCI_REPO; default/root/cc-cidoes not exist; the import falls back to the nix-store harness whoseTESTS_DIRhas notests/→enrolled_recipes()=[]. Verify:ssh cc-ci 'journalctl -u nightly-sweep.service | grep "enrolled canonicals"'. - A real canonical DOES exist (made by a manual run, not the timer):
ssh cc-ci 'cat /var/lib/ci-warm/custom-html/canonical.json'→ version1.13.0+1.31.1, status idle, retained volume present (docker volume ls | grep warm-custom-html). - Enroll set (authoritative) =
cc-ci-plan/used-recipes.md(21 recipes). Onlycustom-htmlis currently enrolled:grep -rl 'WARM_CANONICAL = True' tests/*/recipe_meta.py. - Timer is daily:
nix/modules/nightly-sweep.nixOnCalendar = "*-*-* 03:00:00". - Disk
/: 40G free / 73% used (ssh cc-ci df -h /).
M1 progress (code COMPLETE; live proofs in flight — not yet claimed)
All M1 code landed + unit-tested + lint-clean (full unit suite 295 passed):
- M1.1 tagged-promote gate (
27e0628) + divergence fix (d4cc9e4):should_promote_canonicalgainstagged; promote records the TESTEDhead_version(a release tag), not a re-derived latest.warm_reconcile.is_released_version. Tests:tests/unit/test_promote.py,test_warm_reconcile.py. - M1.2 release-tag trigger + mirror-sync (
a20890a):warm_reconcile.sweep_decision(pure, version_key keyed),scripts/recipe-mirror-sync.sh(faithful main+tags sync, closes merged-upstream PRs),nightly_sweeprewritten (mirror_sync → trigger → run_on_tag = checkout tag + CCCI_SKIP_FETCH). - M1.3 all 21 used-recipes enrolled (
136100f). M1.4 hollow-sweep fix + M1.5 weekly timer (f8c0e53). Mirror-sync smoke-tested live on custom-html (faithful no-op push; closed merged-upstream PR #2; left pending PR #5).
Live M1(A) proofs in progress on cc-ci from checkout /root/canon-verify @ d4cc9e4:
- A-promote:
nightly_sweep.run_on_tag('custom-html','1.13.0+1.31.1')→ expect fresh canonical.json.
Claims awaiting verification
(M1 claim pending live-proof completion)
Blocked
(none)