diff --git a/REVIEW-1b.md b/REVIEW-1b.md index 97ad9e5..c8ab87c 100644 --- a/REVIEW-1b.md +++ b/REVIEW-1b.md @@ -127,7 +127,33 @@ IDEAS; app-secret redaction → RL3/D6 watch-item). I expect Builder's W1 to be cutover**, and at that moment I `git mv` my own REVIEW files (single-writer rule) in lockstep. Will NOT move them unilaterally or while a phase transition is pending. -## Status: W0 PASS + §3 white-box pass complete (no blockers). New blocking items RL5/RL6 noted. -DoD for 1b is now **RL1–RL6** (was RL1–RL4). Awaiting Builder gates (W1 review+fixes; RL5 layout move; -then RL3 cold re-verify LAST, now also covering the RL5 byte-identical rebuild). Cardinal rule holds: -cleanup/refactor must not weaken/skip/regress any test — incl. the conditional-upgrade-skip watch-item. +## RL2 (§3 white-box checklist) : **PASS** @2026-05-27 (Adversary) +My white-box passes #1+#2 found **no blocking findings**; Builder's own §3 self-review agrees. Advisories +triaged (old_app copy-paste → IDEAS; generated-app-secret redaction → RL3/D6 watch-item). RL2 confirmed. + +## RL5 (nix/ consolidation) — structural PASS @2026-05-27; build-proof folds into RL3 below +- `modules/` and `hosts/` **gone from root**; `nix/modules/` (12 .nix) + `nix/hosts/cc-ci/` + (configuration.nix, hardware.nix) present; **`flake.nix` + `flake.lock` stay at root** (build ref + `#cc-ci` unchanged). `flake.nix` imports `./nix/hosts/cc-ci/configuration.nix`. **No dangling + `./modules`/`./hosts` refs** in flake.nix/.drone.yml/scripts (grep clean). docs/architecture.md + + DECISIONS updated per Builder. The "flake still evaluates + builds byte-identical with new paths" proof + = the cold rebuild in RL3 (below). + +## RL3 (final gate) — IN PROGRESS @2026-05-27 (Adversary cold). Re-verifying all D1–D10; partial so far: +- **Cardinal rule — tests NOT weakened : PASS.** Diffed every `tests/**/test_*.py` + `runner/harness/` + between pre-1b (`6d2bc3d`, the 1c-DONE commit) and HEAD. **Every change is ruff line-wrapping only** — + assertion predicates, comparison operators (`==`, `in`), expected values, marker/SQL strings, and + `wait_healthy` params are all byte-for-byte preserved (verified by reading the `-w` diff in full). **No + assertion removed/softened, no `pytest.skip`/`xfail`/`assert True` added, no `test_` fn deleted.** The + format+RL5 cleanup regressed no test logic. +- **System health (cc-ci canonical) : confirmed.** `readlink /run/current-system` == + `8i3jcad9mrr01558lqckpi26nxn2ra3m-nixos-system-…50ab793` (matches claim); `systemctl is-system-running` + → **running**; 5 infra stacks up (traefik[2 svc]/drone/ccci-bridge/ccci-dashboard/backups), no leftover + test app (idle). [Note: "6 stacks" in 1c included a transient test app; 5 infra stacks is the idle baseline.] +- **D8 + RL5 byte-identical cold rebuild : running** (independent fresh recursive clone on cc-ci → build → + compare toplevel to `8i3jcad9…`). Result logged next. +- **Still owed for RL3 PASS:** byte-identical rebuild result · live `!testme` e2e on the cleaned closure + (D1–D4/D7/D10) · D6 behavioral leak test (logs + dashboard, incl. a generated app password) · + upgrade-stage-actually-runs (not always-skip) · D5/D9/D10 evidence refresh. Pacing across wakes. + +## Status: RL1 PASS · RL2 PASS · RL4 done(Builder) · RL5 structural PASS · RL3 IN PROGRESS · RL6 deferred(coordinated).