Files
cc-ci/machine-docs/REVIEW-cf48.md
autonomic-bot b66c9227a3
Some checks failed
continuous-integration/drone/push Build is failing
review(cf48-M2): M2 PASS — NO COVERAGE LOST, independently cold-verified, no VETO
Cold re-clone @a6f967f: cardinal (recipe,filename) set identical 64=64; 0 added/0
deleted test files, 5 non-R100 renames are docstring/comment only (no assertion/wait/
skip/sys.path change); orphan-test hunt found no droppable recipe-local test; alias
probe warns on both deprecated dirs; unit suite 18 passed; cfold sweep evidence audited
directly (all 20 recipes 5/5, custom counts match baseline, live_pr_apps=0). M1+M2 PASS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 06:33:47 +00:00

6.8 KiB
Raw Blame History

REVIEW — phase cf48 (Adversary)

Adversary clone: /srv/cc-ci/cc-ci-adv Run cold from a fresh shell; no cached state.


M1: PASS @2026-06-13T05:29Z

Claim: Opus 4.8 independent review of cfold (44e0242) found NO COVERAGE LOST — all 64 custom tests relocated 1:1 from functional//playwright/ into canonical custom/, identical (recipe, filename) set, per-recipe counts unchanged, no assertions weakened, deprecated aliases retained with loud warnings, lifecycle overlays untouched at top-level, RUNG name preserved.

Cold-run evidence (all 12 acceptance checks):

  1. git ls-files "tests/*/custom/test_*.py" | wc -l64 ✓ (expected 64)

  2. git ls-files "tests/*/functional/*" "tests/*/playwright/*" | grep test_ | wc -l0

  3. lifecycle overlays in custom/ → 0

  4. lifecycle overlays at top-level → 64

  5. Per-recipe counts (all match baseline): 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

  6. Cardinal coverage diff: diff /tmp/pre.txt /tmp/head.txtIDENTICAL SET (empty diff) ✓ Every one of the 64 (recipe, filename) pairs maps 1:1 pre→post; only parent folder changed.

  7. Content-change audit git show 44e0242 --find-renames=40% --stat — 110 files changed; all 64 test files are 100% pure renames except 5 with trivial non-semantic diffs (custom-html test_browser_smoke.py docstring; keycloak ×2 comment; lasuite-drive/-meet oidc docstring; mailu sys.path redirect for moved helper). ✓

  8. Stale-consumer grep:

    • git grep -nE "['\"/](functional|playwright)/" -- ':!tests/**' ':!docs/**' ':!machine-docs/**' ':!README.md' → only runner/harness/discovery.py:108-109 (docstring lines listing deprecated aliases) ✓
    • git grep -nE "== ['\"](functional|playwright)['\"]" -- 'runner/**' → empty ✓
  9. Deprecated-alias live probe: found ['test_new.py', 'test_old.py', 'test_ui.py'] + 2 WARNING [cfold] lines for functional/ and playwright/ ✓ (all 3 dirs discovered, both deprecated dirs warn)

  10. Unit suite: nix shell nixpkgs#python311Packages.pytest -c pytest tests/unit/test_discovery.py tests/unit/test_discovery_phase2.py tests/unit/test_manifest.py -q18 passed

  11. RUNG name: RUNGS = ("install", "upgrade", "backup_restore", "functional", "lint") — unchanged ✓ (folder rename did NOT touch the L4 RUNG name)

  12. git status --short → clean (nothing to commit) ✓

Assessment: The Opus 4.8 Builder review in STATUS-cf48.md is accurate. The cfold commit (44e0242) is a pure, non-lossy rename: 64 test files relocated from functional//playwright/ into canonical custom/, all assertions intact, no tests dropped or weakened, deprecated aliases backward-compatible with loud warnings. M1 PASS confirmed independently.

cf55-vs-cf48 agreement note confirmed: both Sonnet 4.6 and Opus 4.8 reviews reach NO COVERAGE LOST. The one discrepancy (cf55 narrative claimed a keycloak sys.path depth adjustment that didn't actually exist in the diff) is a narrative inaccuracy, not a coverage defect — both models correctly conclude keycloak tests are intact. No blocking findings from either review.


M2: PASS @2026-06-13T06:45Z — NO COVERAGE LOST

Claim (Builder claim(cf48-M2) 61ad356): the no-loss verdict — cfold (44e0242) preserved the complete pre-cfold custom-test set; no blocking findings; no Builder fix required. M2 reuses the M1 evidence (review-only phase, no new build/sweep).

Independent cold re-verification this session (fresh git clone of origin/main @a6f967f, new shell, no cached state — did NOT just confirm M1):

  • Cardinal coverage diff re-run cold (cmd 6): pre-cfold (recipe, filename) set from 44e0242^ vs post-cfold custom/ set at HEAD → IDENTICAL (empty diff), 64 = 64. Every test maps 1:1; only the parent folder changed.
  • No-drift check: the 3 commits between 44e0242 and HEAD a6f967f (d44f799 ghost db wait, ee6b613 ghost retry, 23f1861 bridge trigger) do not alter the custom-test inventory — cardinal set still identical at current HEAD. git status clean.
  • Real content-delta audit (not the Builder's word): the cfold commit has 0 added (A) and 0 deleted (D) test files — 59 R100 pure renames + 5 renames with content (R093/R097×2/ R098/R099). I inspected the actual rename hunks for all 5 (custom-html browser_smoke, keycloak ×2, lasuite-drive/-meet oidc): every changed line is docstring/comment text onlyplaywright/custom/ doc-string wording and the "one level up … functional/"→"custom/" comment. No assertion, wait, timeout, skip, marker, or sys.path line changed. Confirmed the keycloak sys.path.insert lines are byte-unchanged (validates the cf55-narrative discrepancy cf48 flagged).
  • Break-it: orphan-test hunt. Enumerated every top-level tests/*/test_*.py not in a discovered subdir and not a lifecycle name — the only hits are tests/{unit,concurrency, regression}/ (harness self-tests, not recipe dirs). No recipe-local test exists that discovery could silently drop. discovery.py excludes lifecycle overlays via LIFECYCLE_OPS and scans subdirs = ("custom","functional","playwright").
  • Deprecated-alias live probe (cold): all 3 subdirs discovered (['test_new.py','test_old.py','test_ui.py']) with a loud WARNING [cfold] per deprecated dir → no silent old-folder coverage loss.
  • Unit suite (cold): test_discovery / test_discovery_phase2 / test_manifest18 passed.
  • Evidence audit — read cfold REVIEW directly (not the Builder's summary): REVIEW-cfold.md M2 PASS @2026-06-13T04:11:00Z records a real Drone !testme sweep with all 20 enrolled recipes at level 5/5 and custom-junit counts matching this baseline exactly (ghost 4/4 incl. upgrade junit=2, lasuite-docs 5/5, mumble 5/5, custom-html-tiny 1/1, … uptime-kuma 4/4), and live_pr_apps=0 teardown clean. No silent level drop; no skipped custom tier.

Verdict: M2 PASS — NO COVERAGE LOST. cfold (44e0242) preserved the full pre-cfold custom-test set: 64 tests relocated 1:1 into canonical custom/, identical (recipe, filename) set, per-recipe counts unchanged, zero assertions weakened/removed/skipped, deprecated aliases retained with loud warnings, lifecycle overlays untouched at top-level, RUNG name intact, full real-CI sweep green at L5 across all 20 recipes with zero leaks. No blocking findings. No VETO. Builder is clear to write ## DONE to STATUS-cf48.md (M1 + M2 both PASS).

(Consulted JOURNAL-cf48.md only AFTER forming this verdict — per anti-anchoring rule — to confirm the resumption context; nothing there altered the verdict.)