3.3 KiB
REVIEW — phase gtea (gitea full-test enrollment)
Adversary verdict log. Append-only. Only the Adversary writes here.
Commit prefix: review(gtea): ...
Init @2026-06-15T19:33Z
Phase gtea started. No gates claimed yet by Builder. Baseline orientation run:
- Builder hasn't started (no STATUS-gtea.md, no gtea commits on origin/main as of
3f6d7dc). - Existing
tests/gitea/recipe_meta.pyis the dep-provider stub (header: "NOT a standalone recipe-under-test"). - Plan SSOT loaded: plan-phase-gtea-gitea-fulltests.md — M1 = suite green locally; M2 = green in real CI + LFS PR verified.
- Exemplars to check: tests/cryptpad/, tests/keycloak/.
- Will maintain independent break-it probes while Builder builds.
Pre-M1 code review @2026-06-15T19:58Z
Builder commit 33561c8 (all files) + 6ac9989 (Playwright fix) read.
PASS items
- recipe_meta.py: READY_PROBE(ctx) and SCREENSHOT(page, ctx) signatures match registry hook_params ✓
- BACKUP_CAPABLE=True explicit (compose.yml backupbot.backup=true confirmed) ✓
- EXTRA_ENV dep path unchanged: sqlite3 + relaxed auth; LFS guard requires RECIPE=gitea AND overlay file ✓
- PARITY.md honest about absent upstream tests (source note says recipe-info corpus, not upstream) ✓
- ops.py pre_restore deletes marker + asserts absence — divergence is real ✓
- test_restore.py asserts marker returned — a no-op restore would fail ✓
- harness.http.retry_http_get, lifecycle.http_fetch, lifecycle.exec_in_app all exist in the harness ✓
- PARITY.md: beyond-parity test rationale non-vacuous ✓
- Playwright fix: wait_for_selector("input#user_name") is visible — correct ✓
ISSUES filed (in BUILDER-INBOX.md @4a4b756)
[critical — M2 blocker] git-lfs not installed on cc-ci: git lfs is not a git subcommand.
The LFS test uses git lfs install/track/ls-files — all fail without git-lfs. Fix: add
git-lfs to nix/hosts/cc-ci/configuration.nix systemPackages, rebuild, deploy.
[bug in test_lfs_roundtrip.py] Double /api/v1 path: _api(live_app, "/api/v1/version", ...)
constructs https://domain/api/v1/api/v1/version → 404. The restart health-poll will spin 120s
then fail. Fix: change path argument to "/version".
Both issues affect only the LFS capstone (which skips on main). Do NOT block M1 verdict. M2 verdict will FAIL unless both are fixed before the lfs-plain-gitea run.
Additional pre-M1 cold checks @2026-06-15T20:10Z
Builder addressed inbox findings in commits 893a7b0, 3cc8338, 74bc5f0, 3ec24b0:
- Double /api/v1 path bug: FIXED ("/version" path used correctly) ✓
- git-lfs: added to nix/hosts/cc-ci-hetzner/configuration.nix (correct host config) ✓
- test_git_push: auto_init=True repo, credential URL approach ✓
- test_admin_api: scopes added for gitea 1.22+ ✓
Cold checks run from cc-ci /root/builder-clone (HEAD 3ec24b0):
- recipe_meta.py: all keys load — BACKUP_CAPABLE=True, READY_PROBE callable, SCREENSHOT callable, EXTRA_ENV callable ✓
- unit tests: 53/53 PASS (test_gitea_dep.py 10/10, test_meta.py 43/43) ✓
- LFS conditional (RECIPE=gitea, compose.lfs.yml absent): COMPOSE_FILE=sqlite3 only, LFS=False ✓
- LFS skip mechanism: _lfs_enabled() returns False when compose.lfs.yml absent (main branch) ✓
Pending verdicts
Awaiting M1 CLAIMED gate. Pre-read + cold unit checks complete. Ready to verify promptly.