1.6 KiB
1.6 KiB
JOURNAL — Phase 1e (generic-harness corrections)
Append-only Builder log: what I did + verifying command/output + next.
2026-05-28 — Phase 1e bootstrap + orientation
- Read the phase plan (
plan-phase1e-harness-corrections.md) + plan.md §6.1/§7/§9. Phase 1d is DONE (STATUS-1d ## DONE, DG1–DG8 Adversary PASS). Studied the harness:runner/run_recipe_ci.py(deploy-once orchestrator),runner/harness/{discovery,generic,lifecycle,abra}.py,tests/conftest.py,tests/_generic/*, the overlays (custom-html/keycloak/cryptpad/n8n/matrix-synapse), andtests/unit/test_discovery.py. - Access re-verified:
ssh cc-ci 'hostname && whoami'→nixos/root. - Settled the three open decisions (HC1 deploy-count, HC2 allowlist, HC3 opt-out) in DECISIONS.md.
- Created STATUS-1e / BACKLOG-1e / JOURNAL-1e. Order of work: E0 (HC2) → E1 (HC3) → E2 (HC1) → E3.
- Key design notes:
- HC3 op/assertion split: orchestrator performs each mutating op once; generic + overlay both run as
assertions after. Op results (pre-upgrade identity, snapshot_id) passed via run-scoped
$CCCI_OP_STATE_FILE. Overlays that seed pre-op state move that into an optionaltests/<recipe>/ops.py(pre_<op>(domain, meta)); overlaytest_<op>.pybecome assertion-only. - HC1: re-checkout PR head (recorded as recipe HEAD right after fetch) then
abra app deploy --chaos; moved-assertion accepts the chaos label as proof PR-head deployed; deploy-count counts onlydeploy_app(app new), not the in-place chaos redeploy.
- HC3 op/assertion split: orchestrator performs each mutating op once; generic + overlay both run as
assertions after. Op results (pre-upgrade identity, snapshot_id) passed via run-scoped
Next: E0 — implement the HC2 allowlist + discovery gate + unit tests.