status(1d): G2 Adversary PASS @2026-05-28 (DG4/DG4.1); .drone.yml STAGES -> full generic suite

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-28 00:23:27 +01:00
parent ce3c0f8e7f
commit 4425cc6429
3 changed files with 8 additions and 15 deletions

View File

@ -57,7 +57,7 @@ concurrency:
steps:
- name: ci
environment:
STAGES: install,upgrade,backup
STAGES: install,upgrade,backup,restore,custom
CCCI_JANITOR_MAX_AGE: "0"
# The exec runner points HOME at a per-build workspace; force it to /root so abra finds its
# server config + recipes under /root/.abra (as the manual M4/M5 runs did). Safe: capacity=1

View File

@ -22,7 +22,7 @@
- [x] Proven green on backup-capable hedgedoc (full lifecycle, deploy-count=1, clean teardown).
- [ ] DG3 N/A-skip run-demo on a non-capable serving recipe → folded into G3 (custom-html-tiny).
### G2 — Layering + discovery + precedence (DG4, DG4.1) — CLAIMED, awaiting Adversary
### G2 — Layering + discovery + precedence (DG4, DG4.1) — Adversary PASS @2026-05-28
- [x] Migrated custom-html overlays to the assertion-only contract (override + extend + data-continuity).
- [x] Override proven (all 4 tiers ran cc-ci overlays); extend-by-composition (reuse generic helpers);
no redeploy (deploy-count=1); precedence repo-local>cc-ci>generic via tests/unit/test_discovery.py (5/5).

View File

@ -20,13 +20,11 @@ per-recipe overlay authoring is Phase 2.
- [x] **DG3** — Generic BACKUP+RESTORE for backup-capable recipes; clean N/A (skip) otherwise.
**Adversary PASS @2026-05-28** (backup snapshot_id artifact + healthy restore on hedgedoc).
N/A-skip run-demo green: custom-html-tiny (non-backup-capable) → backup/restore = skip (G3 Run B).
- [~] **DG4** — Layering (override-or-extend; generic is the default); discovery + cc-ci/repo-local
- [x] **DG4** — Layering (override-or-extend; generic is the default); discovery + cc-ci/repo-local
precedence settled in DECISIONS. Invariant: no overlay for an op ⇒ generic runs.
**CLAIMED (G2): custom-html overlays override+extend the generic, all 4 tiers green; discovery
precedence unit tests 5/5.**
- [~] **DG4.1** — Overlays reuse the deployment: ONE deploy + ONE teardown per run; no extra
new/deploy/undeploy (assert via deploy-count). **CLAIMED (G2): deploy-count=1 across the full
overlay lifecycle.**
**Adversary PASS @2026-05-28** (override LIVE on custom-html's 4 ops + extend + precedence 5/5).
- [x] **DG4.1** — Overlays reuse the deployment: ONE deploy + ONE teardown per run; no extra
new/deploy/undeploy (assert via deploy-count). **Adversary PASS @2026-05-28** (deploy-count=1).
- [~] **DG5** — Custom install-steps hook + graceful-generic rule; fail-without / pass-with proof.
**CLAIMED (G3): custom-html-tiny — install fails without the hook (404, graceful), passes with
tests/custom-html-tiny/install_steps.sh seeding content.**
@ -57,13 +55,8 @@ move-assertion so a no-op can't pass), awaiting Adversary re-test+close.
**G1 (DG2+DG3) — Adversary PASS @2026-05-28** (re-claim after F1d-2 fix). Verified genuine prev→target
(1.10.7→1.10.8 moves) and the no-op guard raises. F1d-1 + F1d-2 both CLOSED. No VETO.
**Gate: G2 (DG4+DG4.1) CLAIMED, awaiting Adversary** — custom-html overlays (assertion-only, migrated)
override the generic for all four ops AND extend it by composition, with data-continuity
(upgrade-survives marker; backup "original"→mutate→restore "original"). All 4 overlay tiers green,
**deploy-count = 1** (no redeploy), clean teardown. Discovery precedence (repo-local > cc-ci >
generic) + the "no overlay ⇒ generic" invariant proven by `tests/unit/test_discovery.py` (5/5).
Reproduce (cold): `RECIPE=custom-html STAGES=install,upgrade,backup,restore CCCI_JANITOR_MAX_AGE=0 \
cc-ci-run runner/run_recipe_ci.py` (TIER lines show `cc-ci:` overlays) + `cc-ci-run -m pytest tests/unit`.
**G2 (DG4+DG4.1) — Adversary PASS @2026-05-28** (override LIVE on custom-html's 4 ops, extend-by-
composition, data-continuity, deploy-count=1, precedence unit tests 5/5). No VETO.
**Gate: G3 (DG5) CLAIMED, awaiting Adversary** — custom install-steps hook on **custom-html-tiny**:
WITHOUT `tests/custom-html-tiny/install_steps.sh` the generic install FAILS (404, graceful-generic —