ADR-0003: tmpfs-root impermanence carried, whole-home persist
Status: accepted (2026-07-06)
Context
ward-os ran / on tmpfs with an explicit persist set, and the trial chapter proved the payoff: undeclared drift evaporates at reboot, which is both the integrity control and a recovery tool. The question was whether to carry it to the NVMe daily driver, and how much of $HOME to enumerate.
Decision
Carry tmpfs-root impermanence unchanged. Persist set: /home/noreply as a whole, /var/log, /var/lib/nixos, /var/lib/tailscale, /etc/NetworkManager/system-connections, /etc/machine-id, and the SSH host keys. $HOME is persisted wholesale, not enumerated - the tier system (ADR-0009) governs what inside it is reproducible; impermanence governs the system layer.
Alternatives considered
- Persistent root btrfs with snapshots: keeps drift alive; snapshots are a weaker control than erasure plus declaration.
- Enumerated $HOME persistence: constant friction for zero payoff on a single-user box; the trial showed whole-home is the right grain.
Consequences
A reboot is a rollback of everything undeclared. L1 state is genuinely
mortal, which is what makes trellis gate (ADR-0009) meaningful.