Files
cc-ci/machine-docs/STATUS-cfold.md
autonomic-bot d24bb8f3ae
Some checks failed
continuous-integration/drone/push Build is failing
status(cfold): record M2 sweep snapshot
2026-06-12 22:26:44 +00:00

5.8 KiB

STATUS — phase cfold (custom-folder collapse)

Phase: cfold — collapse functional/+playwright/ into custom/ Builder: autonomic-bot Updated: 2026-06-12


M1 — PASS

Gate result: REVIEW-cfold.md 2026-06-12T16:20Z -> M1 PASS

Inputs for verification:

  • Implementation commit: 44e0242 (feat(cfold): canonicalize custom test layout)

Completed in this checkpoint:

  • discovery.py: custom/ canonical + deprecated aliases with warnings
  • git mv all 64 custom tests (60 functional + 4 playwright) across 20 recipes
  • helper modules moved alongside their tests into custom/
  • sys.path refs updated in mailu lifecycle overlays
  • docs updated (README.md, recipe-customization.md, testing.md, enroll-recipe.md)
  • unit tests updated (test_discovery.py, test_discovery_phase2.py, test_manifest.py)
  • manifest.py now reports canonical custom counts

WHAT:

  • M1 implementation is complete: custom-test discovery is canonicalized to custom/, deprecated aliases warn loudly instead of silently dropping coverage, all cc-ci custom tests/helpers moved to tests/<recipe>/custom/, manifest counts are canonicalized, and the placement-rule docs/unit tests were updated.

HOW:

  • git ls-files "tests/*/custom/test_*.py" | wc -l
  • git ls-files "tests/*/functional/*" "tests/*/playwright/*"
  • for recipe in bluesky-pds cryptpad custom-html custom-html-tiny discourse drone ghost hedgedoc immich keycloak lasuite-docs lasuite-drive lasuite-meet mailu matrix-synapse mattermost-lts mumble n8n plausible uptime-kuma; do count=$(git ls-files "tests/$recipe/custom/test_*.py" | wc -l); printf "%s %s\n" "$recipe" "$count"; done
  • nix shell nixpkgs#python311Packages.pytest -c pytest tests/unit/test_discovery.py tests/unit/test_discovery_phase2.py tests/unit/test_manifest.py -q

EXPECTED:

  • Total canonical custom tests: 64
  • Old tracked trees: no output for functional/* or playwright/*
  • Per-recipe counts exactly match the baseline table below
  • Focused unit suite: 18 passed

WHERE:

  • Discovery + alias warnings: runner/harness/discovery.py
  • Canonical manifest counts: runner/harness/manifest.py
  • Migrated custom tests/helpers: tests/*/custom/
  • Focused unit coverage: tests/unit/test_discovery.py, tests/unit/test_discovery_phase2.py, tests/unit/test_manifest.py
  • Placement-rule docs: docs/recipe-customization.md, docs/testing.md, docs/enroll-recipe.md, README.md

Adversary verdict:

  • machine-docs/REVIEW-cfold.md lines 52-77
  • PASS facts include: 64 canonical custom tests, zero old tracked custom trees, focused unit suite 18 passed, deprecated-alias warning probe green, normalized (recipe, filename) coverage set preserved exactly (missing [], extra []).

M2 — IN PROGRESS

Current work item:

  • full real-CI !testme sweep evidence is mostly assembled; one recipe (ghost) remains non-green for a cfold-neutral upgrade regression on the recipe/environment side

M2 baseline matrix (built from live PR heads + fresh post-cfold evidence)

Recipe PR / ref Expected level Custom tests Fresh evidence
bluesky-pds PR #2 f7b6c8df 5 4 build 556 -> L5
cryptpad PR #5 9c18c176 5 4 build 554 -> L5
custom-html PR #2 db9a9502 5 4 build 541 -> L5
custom-html-tiny PR #7 526502ba 5 1 build 510 -> L5
discourse PR #2 b7d8a244 5 3 build 521 -> L5
drone PR #1 049438e1 5 1 build 506 -> L5
ghost PR #4 d88f5801 5 4 build 557 -> L1 (upgrade fail)
hedgedoc PR #1 441c411c 5 2 build 555 -> L5
immich PR #2 17f1649c 5 3 build 522 -> L5
keycloak PR #3 bfe0d16f 5 3 build 553 -> L5
lasuite-docs PR #5 8a06cfc2 5 5 build 523 -> L5
lasuite-drive PR #2 6771622b 5 3 build 524 -> L5
lasuite-meet PR #6 05cdafb5 5 3 build 525 -> L5
mailu PR #4 682ccaaa 5 3 build 526 -> L5
matrix-synapse PR #2 72f0176a 5 3 build 527 -> L5
mattermost-lts PR #2 966c6d61 5 3 build 529 -> L5
mumble PR #1 2b50b2f7 5 5 build 558 -> L5
n8n PR #5 989c44b3 5 4 build 528 -> L5
plausible PR #3 709a294d 5 2 build 530 -> L5
uptime-kuma PR #3 b0ce7942 5 4 build 531 -> L5

Ghost deviation (blocking a formal M2 claim)

ghost is the only recipe still preventing an M2 claim.

  • Current upgrade PR head d88f5801 (PR #4) failed again in build 557: install/backup/restore/custom all passed, but the upgrade op paused and rolled back before any upgrade-tier assertions could run.
  • To isolate cfold from recipe-head drift, a separate probe PR #5 was opened at Ghost's last known-green PR head d42d0f7c (historical build 185 = L4/L5-equivalent on 2026-06-05). That probe re-failed in build 559 with the same upgrade pause: install/backup/restore/custom all passed, upgrade failed.
  • Conclusion so far: Ghost's current failure is not caused by the custom/ folder migration; the custom tier still discovers and passes all 4 canonical custom tests, and the regression reproduces on the previously-green Ghost head as an upgrade convergence failure.

Fresh Adversary state

  • REVIEW-cfold.md 2026-06-12T22:05:50Z: idle audit only, no new finding, no M2 claim pending.

Baseline (pre-cfold) — custom test count per recipe

Recipe Count
bluesky-pds 4
cryptpad 4
custom-html 4
custom-html-tiny 1
discourse 3
drone 1
ghost 4
hedgedoc 2
immich 3
keycloak 3
lasuite-docs 5
lasuite-drive 3
lasuite-meet 3
mailu 3
matrix-synapse 3
mattermost-lts 3
mumble 5
n8n 4
plausible 2
uptime-kuma 4
TOTAL 64