Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.