fix(install): normalize empty keyboard variants
All checks were successful
Check / eval (push) Successful in 3m18s

Treat the picker-only (none) row as an empty XKB variant at the shared input boundary and again in the template patcher. Guard the real downstream output and console keymap, and carry the sentinel through the offline installer VM.

Verified: V0 full flake evaluation plus shell/Python/Nix/diff checks; V1 installer-keyboard, installer-safety, and template-SoT builds; V2 full KVM offline LUKS+swap install and themed first boot. No V3 required.
This commit is contained in:
2026-07-13 15:01:51 +01:00
parent 7bfe1af5b1
commit 9d0abe5422
9 changed files with 179 additions and 23 deletions

View File

@@ -19,6 +19,21 @@ Template:
---
## 2026-07-13 — #91 installer no-variant normalization (this commit)
- **Task:** Stop the keyboard picker's display-only `(none)` value from
breaking generated `xkb-console-keymap.drv` and the whole installation.
- **Did:** Normalize at the shared input boundary and defensively in the real
template patcher. Added a `us` + sentinel fixture, actual console-keymap
build, and made the offline installer VM carry the literal sentinel.
- **Verified:** V2 — full flake eval; focused installer-keyboard/safety/
template builds; shell/Python/Nix syntax and diff checks; KVM
`tools/test-install.sh` installed offline with LUKS + swap, powered off after
~400s, unlocked, and booted the themed desktop. Inspected install progress,
LUKS, and first-boot captures under `/tmp/nomarchy-vm/`.
- **Pending:** #92 now explicitly forbids free-form XKB values. Expanded the
existing per-device keyboard hardware check for the connected-at-login menu.
- **Next suggestion:** #92 installer keyboard selection clarity/safety.
## 2026-07-13 — #101 charge-limit AC-event burst recovery (this commit)
- **Task:** Fix `nomarchy-battery-charge-limit.service` failing when USB-C
dock power events arrive while its settling write is still active.