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

@@ -17,6 +17,40 @@ Template:
---
## 2026-07-09 — #46 V2 verify: install swap=0 + LUKS fail-closed (208b8d4)
- **Task:** NEXT #46 — exercise the full install path for the swap=0 + LUKS
fail-closed contracts (previously only pure `nix-instantiate`). Headless
KVM via a two-variant driver adapted from `tools/test-install.sh`.
- **Did:** Built the live ISO, ran two offline unattended installs:
**(B fail-closed)** no passphrase + no `NOMARCHY_NO_LUKS` → installer exits
RC=1 at the encryption stage with the fail message; `/dev/vda` stays BLANK
and disko `destroy` never runs. **(A swap=0)** `SWAP_GB=0` + passphrase →
install RC=0, subvol dump on `/mnt` shows `@,@home,@log,@nix,@snapshots`
and **no `@swap`**; installed disk boots (after LUKS unlock) to a fully
themed Boreal desktop, no error/autoconfig banner.
- **Verified:** **V2** — screenshots viewed: `b-failclosed.png`,
`a-progress-480.png` (DONE_SWAP0 + subvol dump), `a-first-boot.png` (themed
boot). Both contracts hold. #49's new `installer-disko` check now guards the
swap contract at eval time too.
- **Pending:** none for #46. Incidental: HM pre-activate warned in the offline
chroot (`xrdb: no display`) yet first boot came up themed anyway — the
"pre-activate failure → durable recovery hint" PROPOSED item still stands.
- **Next suggestion:** promote V2-capable PROPOSED items now the VM is free.
## 2026-07-09 — #50 small code one-liners batch (V0/V1)
- **Task:** NEXT #50 — four small fixes. Kept in-house (shares rofi.nix /
flake.nix with the #47/#49 agents; done after they landed).
- **Did:** Bluetooth menu row + handler self-gate on `command -v
blueman-manager` (`rofi.nix`, like Printers); Control Center rollback list
`/tmp/nomarchy-gens` → `mktemp` + cleanup; `usbutils` added to the
`nomarchy-install` PATH (fingerprint `lsusb` probe); exported
nomarchy-doctor/control-center/battery-notify as flake `packages`.
- **Verified:** V0 flake check green; V1 — built the four flake packages
(incl. the new exports), `nomarchy-install` (usbutils), and the HM
generation (rofi + control-center bash -n via writeShell*). All exit 0.
- **Pending:** none.
- **Next suggestion:** V2-capable promotions.
## 2026-07-09 — #49 pure-contract checks.* batch (delegated, worktree)
- **Task:** NEXT #49 — add pure (no-VM) `checks.*` guards. Delegated to a
worktree opus agent, parallel with #46 VM + the #47/#48 agent.