From 5c0676b7d033f5f7ef8dcdecfcae33d0bf4b39dd Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Wed, 10 Jun 2026 20:55:01 +0000 Subject: [PATCH] =?UTF-8?q?note(rcust):=20M2-prep=20hook-port=20audit=20?= =?UTF-8?q?=E2=80=94=20only=20lasuite-drive=20flipped=20best-effort->fatal?= =?UTF-8?q?=20(fix=20approved);=20lasuite-docs=20exit1->exit0=20is=20inten?= =?UTF-8?q?tional=20P2b=20(F2-11-gated);=20all=20other=20ops.py=20pure=20m?= =?UTF-8?q?echanical=20ctx=20migration.=20Closes=20M1-method=20gap=20(key-?= =?UTF-8?q?diff=20missed=20hook=20bodies)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- REVIEW-rcust.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/REVIEW-rcust.md b/REVIEW-rcust.md index 6844ef7..b55fbb3 100644 --- a/REVIEW-rcust.md +++ b/REVIEW-rcust.md @@ -278,3 +278,32 @@ unverified. M2 watch-items I will specifically re-check from run logs: screenshot.png where capture succeeded). - canary suite (RED canaries still caught at intended tier) + per-recipe level == baseline matrix. - zero leaked apps after teardown. + +### M2-prep — independent hook-port audit (shell→python / best-effort↔fatal drift) @2026-06-10T20:55Z + +Triggered by the lasuite-drive regression (below), which my M1 PASS MISSED: my M1 coverage diff +compared recipe_meta KEYS (resolved values), not ops.py hook BODIES, and my assertion scan matched +`assert ` not `raise AssertionError`. So a hook that flipped best-effort→fatal was invisible to my +M1 method. M2 (real-CI sweep) caught it — the safety net working as designed. I then audited ALL +hook ports cold (`git diff c2508c7..origin/main` per recipe ops.py + the 2 setup_custom_tests.sh +ports), filtering for non-mechanical error-handling (raise/assert/except/exit/timeout/poll changes): + +- **lasuite-drive `pre_install`** — GENUINE rcust regression (Builder-disclosed, I confirmed): + OLD setup_custom_tests.sh bucket poll fell through on 90s timeout (best-effort, no failure; the + custom-tier `test_minio_storage.py` upload→list→download is the real gate); NEW port added a + terminal `raise AssertionError` → deterministic install RED when the bucket appears just after + 90s. Fix-forward APPROVED (restore best-effort print+return, scoped to line-54 only; conditioned + on an L5 re-run + my diff re-verify). See approval entry in BUILDER-INBOX history (commit 57c66ad). +- **lasuite-docs `install_steps.sh`** — INTENTIONAL P2b change, NOT a defect: OLD setup_custom_tests + did `exit 1` on missing deps/null KC creds; NEW does `exit 0` (no-op) for missing-deps (gated now + by F2-11: the `@requires_deps` OIDC test skips → `sso_dep_unverified` suppresses green) BUT + preserves `exit 1` on secret-insert failure. Consistent with the install-time-deps redesign. + WATCH-ITEM (residual): the missing-deps path now relies entirely on F2-11; the sweep didn't + exercise it (deps were ready, skip-count 0). Mechanism verified present at M1; not blocking. +- **All other ops.py** (cryptpad, discourse, ghost, immich, keycloak, lasuite-meet, matrix-synapse, + mattermost-lts, mumble, n8n, plausible, custom-html) — pure mechanical ctx migration + (`domain`→`ctx.domain`, `meta`→`ctx.meta`); expected tuples/strings byte-identical (spot-checked + keycloak 201/409 + 204/200, discourse/ghost _psql ci_marker). No error-handling drift. + +Net: exactly ONE accidental hook-port regression (lasuite-drive), now under approved fix. No other +best-effort↔fatal flips. This audit closes the M1-method gap for the hook bodies.