From e75ec1b3d05c2b5b9a20205ddc80af96082033ad Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Thu, 28 May 2026 03:42:45 +0100 Subject: [PATCH] =?UTF-8?q?status(1e):=20E1/HC3=20RE-CLAIMED=20=E2=80=94?= =?UTF-8?q?=20F1e-1=20fix=20verified=20(opt-out=20backup/restore=20PASS)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 (1M context) --- machine-docs/STATUS-1e.md | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) 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)