Phase 006 — real Moss state smoke test
At a glance
| Field | Value |
|---|---|
| Phase family | Phase 0 — forge |
| Run command | make phase 006 |
| Underlying make target/script | vm/phase0/state-smoke.sh |
| Runs on | guest over SSH |
| Main proof/artifact | Proves real Moss install/remove/rollback state transitions in a disposable root. |
make phase 006
Phase 005 uses moss install --to, which blits files into a target directory but
does not create a real Moss state transaction.
Phase 006 uses:
moss -D <root> install onix-hello
That creates real state history under a disposable root.
Expected proof:
install onix-hello -> State #1
remove onix-hello -> State #2
activate State #1 -> rollback works
This is the final Phase 0 gate because atomic state management is the whole reason we are using Moss.
Files in this phase
| File | Purpose |
|---|---|
Makefile | Phase 0 target implementation |
config.sh | shared settings: Alpine pin, VM name, disk path, ports, os-tools ref |
fetch-rootfs.sh | downloads and verifies Alpine minirootfs |
build-disk.sh | builds the bootable forge disk |
chroot-setup.sh | runs inside the new rootfs while building the disk |
launch.sh | starts QEMU |
ssh.sh | SSH helper for the running forge |
provision.sh | builds moss and boulder inside the VM |
build-hello-stone.sh | creates and verifies the first .stone |
state-smoke.sh | proves real Moss state install/remove/rollback |
clean.sh | removes generated forge disk/boot artifacts |
install-sudoers.sh | installs/uninstalls the passwordless disk-builder sudoers rule |
When Phase 0 is complete
Phase 0 is complete when all of these have worked:
make doctormake phase 002make phase 003make phase 004make phase 005make phase 006
At that point we know:
- we can boot a musl forge,
- we can build the AerynOS tools on musl,
- we can build a valid
.stone, - we can create a local Moss repo,
- we can install/remove packages with real Moss states,
- we can roll back to an older state.
Only after this does Phase 1 make sense: real ONIX recipe/repo bootstrap.