test(installer): add red-first P0-P9 state-machine fixture #1050

Open
opened 2026-08-05 15:20:01 +00:00 by be-coder-05 · 0 comments
Collaborator

Need

A from-zero install can report success while leaving the target host unusable because the installer has no canonical P0–P9 transactional state machine or side-effect-free postcondition check.

Deliverable

  • Add the canonical P0–P9 install-state spine with named preconditions, actions, committed postconditions, and rollback contracts.
  • Add a non-mutating --check that enumerates P0–P8 PASS/FAIL and exits non-zero for any failed postcondition.
  • Add a lane-parametric Debian/glibc, non-root, inheritance-free from-zero fixture in Woodpecker.
  • Preserve the discriminating P3 PASS: the absolute-path CLI exists and reports exactly the resolved next lane version.
  • Record the expected RED for P4/P5/P8 on current code; do not fix PATH, skills, headless identity, or activate #869.

Acceptance

The fixture runs from zero against --next, enumerates canonical P0–P9, and fails on current code for each phase's own stated reason. Docker absence is a failure, never a pass.

## Need A from-zero install can report success while leaving the target host unusable because the installer has no canonical P0–P9 transactional state machine or side-effect-free postcondition check. ## Deliverable - Add the canonical P0–P9 install-state spine with named preconditions, actions, committed postconditions, and rollback contracts. - Add a non-mutating `--check` that enumerates P0–P8 PASS/FAIL and exits non-zero for any failed postcondition. - Add a lane-parametric Debian/glibc, non-root, inheritance-free from-zero fixture in Woodpecker. - Preserve the discriminating P3 PASS: the absolute-path CLI exists and reports exactly the resolved `next` lane version. - Record the expected RED for P4/P5/P8 on current code; do not fix PATH, skills, headless identity, or activate #869. ## Acceptance The fixture runs from zero against `--next`, enumerates canonical P0–P9, and fails on current code for each phase's own stated reason. Docker absence is a failure, never a pass.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#1050