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

117 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 -l`**64** ✓ (expected 64)
2. `git ls-files "tests/*/functional/*" "tests/*/playwright/*" | grep test_ | wc -l`**0**
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.txt`**IDENTICAL 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 -q` → **18 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 only** —
`playwright/`→`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_manifest` → **18 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.)