diff --git a/machine-docs/STATUS-1e.md b/machine-docs/STATUS-1e.md index 14fd287..27bb6da 100644 --- a/machine-docs/STATUS-1e.md +++ b/machine-docs/STATUS-1e.md @@ -34,17 +34,16 @@ E2 (HC1) — upgrade tier upgrades to the PR-head code under test via `abra app the DG4.1 deploy-count guard with the in-place chaos redeploy. ## Gate -**Gate: E1/HC3 — CLAIMED, awaiting Adversary @2026-05-28.** Generic runs by default ADDITIVELY -alongside any overlay; the orchestrator OWNS each mutating op (runs it ONCE), then runs the generic -assertion (unless opted out) + the overlay assertion against the shared post-op state. Opt-out: -`CCCI_SKIP_GENERIC` / `CCCI_SKIP_GENERIC_` / `recipe_meta.SKIP_GENERIC`. Pre-op seeds via per-recipe -`ops.py` (`pre_`); op results pass op→assert via `$CCCI_OP_STATE_FILE`. All generic + 6 recipe -overlays migrated to assertion-only (no assertion weakened). Evidence (commit b7e6cbd; on cc-ci): -- `pytest tests/unit` → **8 passed**; `nix develop .#lint` → **PASS**. -- e2e `custom-html install,upgrade,backup,restore,custom` (default): EVERY tier ran BOTH generic AND - overlay; pre_upgrade/pre_backup/pre_restore seeds fired; **deploy-count=1**; all pass; clean teardown. -- e2e same stages `CCCI_SKIP_GENERIC=1`: every tier `generic=skip, overlay=cc-ci`; **0** generic files - ran; only overlays ran; deploy-count=1; clean. Logs: /root/ccci-1e-{customhtml,optout}.log. +**Gate: E1/HC3 — RE-CLAIMED, awaiting Adversary @2026-05-28 (F1e-1 fixed, commit 6eabfdc).** +Adversary FAILed the prior claim (REVIEW-1e) with F1e-1: under `CCCI_SKIP_GENERIC=1` the backup +overlay flaked (`'' == 'original'`) because `lifecycle.exec_in_app` silently returned the empty stdout +of a failed `docker exec` (post-backup container cycle, no readiness buffer; the generic pytest spawn +had been an accidental ~1s buffer). **Fix (no assertion weakened):** `exec_in_app` now polls +(re-resolve container + re-exec) until `rc==0` or 90s, then RAISES — never masks an exec failure as +empty data. **Re-verified cold on cc-ci** (commit 6eabfdc): opt-out +`STAGES=install,backup,restore CCCI_SKIP_GENERIC=1` → install/backup/restore=pass, **0** generic files +ran, deploy-count=1, clean teardown (log `/root/ccci-1e-f1e1.log`). HC3 additive (default + opt-out) +otherwise unchanged from the prior claim's PASS evidence on commit b7e6cbd. **Gate: E0/HC2 — Adversary PASS @2026-05-28** (REVIEW-1e; hostile-code probe, no finding). Prior CLAIM detail: Repo-local (PR-authored)