feat(menu,install): #50 one-liners + record #46 V2 install pass
All checks were successful
Check / eval (push) Successful in 2m51s

#50: Bluetooth menu row + handler self-gate on `command -v
blueman-manager` (no-op when bluetooth is off, like Printers); Control
Center rollback list /tmp/nomarchy-gens → mktemp; usbutils on the
nomarchy-install PATH (fingerprint lsusb probe); export
nomarchy-doctor/control-center/battery-notify as flake packages.
Verified V0 (flake check) + V1 (packages, installer, HM generation build).

Also records #46: the swap=0 + unattended-LUKS fail-closed contracts
(208b8d4) V2-verified via a headless two-variant install — fail-closed
exits before wipe with the disk blank; swap=0 installs with no @swap
subvol and boots to a themed desktop. Both items removed from NEXT.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-07-09 19:16:17 +01:00
parent e01303851d
commit 7a5284b15a
6 changed files with 51 additions and 26 deletions

View File

@@ -52,18 +52,6 @@ bash -n + shellcheck) + a real-hardware read-only smoke on the dev box.
cover the new rows headlessly; pin the fwupd `get-updates` exit-code
semantics (0 = updates) in that fake. Spec: docs/HARDWARE.md §10.
### 46. V2 verify: install swap=0 + unattended LUKS fail-closed (`208b8d4`)
Pure `nix-instantiate` on disko subvols passed V0; **full install path
not exercised**. VM agent with KVM:
1. Unattended install with `NOMARCHY_SWAP_GB=0` + LUKS passphrase —
assert no `/swap` (or empty policy) and no `@swap` surprise; system
boots.
2. Unattended **without** passphrase and **without** `NOMARCHY_NO_LUKS=1`
— must **fail** before wipe (fail-closed).
3. Optional: `NOMARCHY_NO_LUKS=1` + swap=2 still installs. Use
`tools/test-install.sh` variants / env flags; journal results; delete
item when green (or file NOW bugs on failure).
### 14. Automated lock bumps — confirm the first real run
Slices b+c shipped 2026-07-05 (`.gitea/workflows/bump.yml`): weekly
schedule (Mon 05:17 UTC) + `workflow_dispatch` as the security
@@ -114,16 +102,6 @@ Next slice: on hardware, run `hyprctl clients` while each is open, read
the real `class`, then append rules. Also revisit whether blueman/s-c-p
actually float once seen (regex tolerance for the `.…-wrapped` form).
### 50. Small code one-liners batch — V0/V1 (promoted 2026-07-09)
- Bluetooth menu row self-gate on `command -v blueman-manager` (`rofi.nix`) —
no-op when `nomarchy.system.bluetooth.enable = false`, like Printers.
- Control Center rollback list `/tmp/nomarchy-gens``mktemp` (predictable
world-writable path → multi-user race).
- `usbutils` on `nomarchy-install` PATH so the fingerprint `lsusb` probe works
(sysfs is the current fallback).
- Export overlay tools (doctor/control-center/battery-notify) as flake
`packages` (`nix build .#nomarchy-doctor`) — three lines in flake.nix.
## LATER
- **Wallpapers artifact split** (ROADMAP § Faster switches — decided,