# Hardware queue — V3 checks only a human can run Everything shipped at V1/V2 whose final verification needs real hardware. Agents **append** (newest at the bottom of a section) with exact steps; Bernardo runs them and either checks off (`[x]` + date + verdict) or files the failure as a NOW bug in BACKLOG.md. Machines: the **AMD dev box** (Ryzen AI laptop: AMD + fingerprint + NPU), the **Latitude 5410** (Intel QA machine), the **T14s** (webcam case). ## Any machine (dev box is fine) - [ ] **Battery charge limit re-apply on unplug** — `sudo nixos-rebuild switch` with `power.batteryChargeLimit = 80`, physically unplug/replug AC, confirm `charge_control_end_threshold` re-reads 80. (udev trigger already VM-verified.) - [ ] **SSH_AUTH_SOCK for GUI clients** — after relogin, launch a GUI git client (or `rofi`-launched terminal-less app) and confirm it reaches gpg-agent's SSH socket without an interactive shell parent. - [x] **Night-light full cycle** — first menu enable rebuilds + hyprsunset starts; later toggles are instant (no rebuild); an *off* survives reboot (ExecCondition); stopping hyprsunset restores gamma. — 2026-07-04 Bernardo: PASS enable/disable on hardware (off-survives-reboot + gamma-restore not explicitly checked). - [ ] **Auto-timezone** — enable from the menu; confirm geoclue finds the zone, `/etc/localtime` updates, and the Waybar clock refreshes (SIGUSR2 watcher) — also after a manual `timedatectl set-timezone`. — 2026-07-04 Bernardo: enabled cleanly; zone correctness still unconfirmed — check the Time zone row of `timedatectl`. - [ ] **Keyboard layout cycle bind** — with a comma layout (e.g. `nomarchy.keyboard.layout = "us,de"`), SUPER+SHIFT+K cycles the focused keyboard's layout, the Waybar `󰌌` indicator follows, and the row shows in the SUPER+? cheatsheet. — 2026-07-04 attempt: no comma layout was configured, so the bind wasn't rendered (the gate working as designed, not a failure) — retest after setting a comma layout + rebuild + relogin. The SUPER+? no-op found en route IS a real bug → BACKLOG item 26. - [ ] **Keyboard hotplug picker (re-verify after in-flake graduation)** — plug an external keyboard post-login, pick a layout in rofi, confirm it applies per-device only, persists in `settings.keyboard.devices`, and graduates into a `device{}` block on the next rebuild. - [x] **Snapshots restore/rollback** — ⚠ PRECONDITION: update to main ≥ a47aa3a and RELOGIN first (the polkit agent starts with the session). Bernardo's 2026-07-04 Latitude findings 5/6 ("btrfs-assistant still crashes", "menu snapshots shows nothing") match the PRE-fix behavior exactly: no agent → pkexec fails silently (= menu does nothing), and a direct unprivileged run crashes (= the libbtrfsutil bug). If either still reproduces ON THE FIXED BUILD after relogin, reopen BACKLOG item 4 as [stuck]. Then: `nomarchy-menu snapshot` now opens the **btrfs-assistant GUI**: a *themed* polkit prompt must appear (hyprpolkitagent — first on-hardware outing) and the GUI must open as root. Also exercise the fzf fallback in a terminal (`sudo nomarchy-snapshots`): browse/diff, restore a file (`undochange`), and a root-config rollback behind the typed-`yes` gate. Bonus check: any other pkexec flow now prompts instead of silently failing. — 2026-07-04 Bernardo: PASS on the fixed build — polkit prompt appears, GUI opens as root, fzf fallback works. Restore/rollback not exercised → residual item below. - [ ] **Snapshots restore + rollback exercise** (residual from the item above — the GUI/polkit half passed 2026-07-04): in `sudo nomarchy-snapshots`, restore a single file (`undochange`) and walk a root-config rollback up to (or through) the typed-`yes` gate. - [ ] **Update awareness** — with `nomarchy.updates.enable`, let the timer fire (or start the unit): indicator appears only when inputs are behind, notification only on count growth, click opens the upgrade flow. - [ ] **VPN menu live paths** — import a real WireGuard `.conf` and an `.ovpn` via System → VPN, toggle up/down (● / ○ state), and the Tailscale block: up/down + exit-node without sudo (operator grant). - [ ] **Printer menu** — with `nomarchy.services.printing`, System → Printers opens system-config-printer; add a printer, test page. - [ ] **GRUB UEFI ISO theme render** — boot the ISO on UEFI hardware: composed splash background, palette menu in the lower third, accent timeout bar. - [ ] **Visual theme pass** — live ISO: all six identity themes (bars) + the four authored rofi `.rasi` (nord/retro-82/lumon/kanagawa) look right, not just parse. - [x] **Auto-commit on a real machine** — System › Auto-commit toggles on (row shows state, notification fires); a theme apply from SUPER+T then shows a `nomarchy: apply theme …` commit in `~/.nomarchy` (`git log`); unrelated dirty files in the checkout stay uncommitted; toggle off is itself the last commit. Also: the "Auto timezone (on/off)" row label now reflects the real state (the `= true` comparison fix). — 2026-07-04 Bernardo: PASS — theme changes committed and the toggle self-committed. ## AMD dev box only - [ ] **AMD runtime bits** — VA-API (`vainfo` → radeonsi), amd-pstate EPP active and PPD switching governors; opt-ins: ROCm (`rocminfo`, a GPU PyTorch/Ollama smoke) and the XDNA NPU driver loading. - [ ] **Fingerprint** — `fprintd-enroll` + (opt-in PAM) login/sudo. ## Latitude 5410 only - [x] **Waybar theme-switch resilience** (finding #1 re-test, needs main ≥ the supervisor commit + relogin) — switch themes repeatedly (incl. summer-day/night whole-swaps): the bar restarts cleanly each time; if anything kills it, it's back within ~a second. `pgrep -f nomarchy-waybar` shows the supervisor. — 2026-07-04 Bernardo: PASS — theme switches clean; pkill respawn so fast the bar never visibly disappears. - [x] **Media keys + gestures** (from dccceb4) — volume/brightness keys drive the OSD; touchpad gestures work. — 2026-07-04 Bernardo: PASS, volume/brightness keys and touchpad gestures all working. - [ ] **v1 QA batch on-hardware pass** (583708d batch was QEMU-verified) — general smoke before the next `main → v1` promotion. ## T14s only - [ ] **Webcam IR-hide end-to-end on Nomarchy** — installer detects the RGB+IR pair, bakes `hardware.camera.hideIrSensor`; `wpctl status` shows one colour source; an app picker lists one camera; Howdy-style direct `/dev/video2` reads still work.