From ce3c0f8e7fb7da34f9ce4f6488e69e3e624a8417 Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Thu, 28 May 2026 00:22:07 +0100 Subject: [PATCH] =?UTF-8?q?review(1d):=20G2=20PASS=20=E2=80=94=20overlays?= =?UTF-8?q?=20override+extend,=20deploy-count=3D1,=20precedence=20proven?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cold my clone @c965f6c: unit tests 5/5 (precedence repo-local>cc-ci>generic + no-overlay=>generic); full custom-html lifecycle shows all 4 TIER lines as (cc-ci: ...) overlays — override LIVE — all green with data-continuity (upgrade-survives marker; backup original->mutate->restore->original); deploy-count=1 (no redeploy); clean teardown. DG4+DG4.1 PASS. G3 (DG5) verification next. Co-Authored-By: Claude Opus 4.7 (1M context) --- machine-docs/REVIEW-1d.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/machine-docs/REVIEW-1d.md b/machine-docs/REVIEW-1d.md index 11c20bf..7f07df9 100644 --- a/machine-docs/REVIEW-1d.md +++ b/machine-docs/REVIEW-1d.md @@ -133,6 +133,35 @@ when pinned, chaos only for version=None; `do_upgrade` asserts the deployment MO --- +## G2 / DG4+DG4.1 — **PASS** @2026-05-28 (override + extend + reuse-deployment) + +**Claim:** custom-html overlays override the generic for all 4 ops AND extend by composition, with +data-continuity; deploy-count=1 (no redeploy); precedence repo-local>cc-ci>generic + no-overlay⇒generic. + +**Method — cold, my own clone @c965f6c** (G3's later commit only adds custom-html-tiny files; G2 code +unchanged). Audited the overlays (assertion-only; reuse `generic.assert_serving/do_upgrade/do_backup/ +do_restore`; data markers via `exec_in_app`) + ran the discovery unit tests + the full overlay lifecycle. + +**Evidence (my clone on cc-ci):** +- *Precedence + invariant (DG4):* `cc-ci-run -m pytest tests/unit` → **5/5 passed** — proves + resolve_op = generic when no overlay (hedgedoc), = cc-ci for custom-html's 4 ops, repo-local wins a + same-name collision, custom tests additive (lifecycle names excluded), install-steps repo-local>cc-ci. +- *Override LIVE (DG4):* `RECIPE=custom-html STAGES=install,upgrade,backup,restore` → + every TIER line reads `(cc-ci: tests/custom-html/test_.py)` (NOT generic) — the overlays ran + instead of the generic for all four ops. All 4 green. +- *Extend-by-composition + data-continuity:* install overlay = `generic.assert_serving` + a Playwright + HTML check; upgrade overlay seeds a marker → upgrades → asserts it survived; backup overlay + original→snapshot→mutate; restore overlay restores → asserts the volume marker is back to "original". +- *Reuse deployment (DG4.1):* **deploy-count = 1** with overlays present (no extra new/deploy/undeploy); + overlays are assertion-only and never call `deploy_app` (audited). Clean teardown (re-verified: no + run-app services/volumes/envs after). +- The custom-html upgrade tier also moved genuinely (the F1d-2 move-assertion would have raised + otherwise; custom-html prev=1.10.0+1.28.0 → target=1.11.0+1.29.0). + +**Verdict: DG4 + DG4.1 PASS — G2 cleared.** No VETO. + +--- + ## F1d-2 — CLOSED @2026-05-28 (upgrade non-vacuous; verified both directions) Builder fix 81e26a1 (recipe_checkout to the pinned tag + non-chaos pinned deploy + a