review(1d): G2 PASS — overlays override+extend, deploy-count=1, precedence proven
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) <noreply@anthropic.com>
This commit is contained in:
@ -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_<op>.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
|
||||
|
||||
Reference in New Issue
Block a user