All checks were successful
Check / eval (push) Successful in 3m3s
Audited every rofi -dmenu call site in the generated nomarchy-menu + nomarchy-vpn. The earlier "Back everywhere" pass held up: power, power-profile, theme, clipboard, files, audio, display (both stages), capture, tools, system and all four VPN lists already end in ↩ Back. Fixed: the keybinds cheatsheet — Enter on any row silently closed it; it now ends in ↩ Back returning to the root picker (its launch point), and Enter elsewhere stays a deliberate no-op. Documented (rofi.nix, at the convention comment + call sites): external modi (rofi-calc, rofi-emoji, networkmanager_dmenu, rofi-pulse-select) cannot take an injected row — Esc is their back path; free-text prompts (web, ask) have no list to append to. Verified: V0; V1 (built nomarchy-menu, bash -n OK; awk audit over the generated script shows the only back-less lists are the root picker — by design — and the free-text prompt). V3 spot-check queued. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
138 lines
8.5 KiB
Markdown
138 lines
8.5 KiB
Markdown
# 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).
|
||
- [x] **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: PASS — enabled from the menu, `timedatectl`
|
||
shows Europe/London (the manual set-timezone re-trigger wasn't
|
||
exercised).
|
||
- [ ] **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 (fix shipped — see the
|
||
dedicated SUPER+? entry below).
|
||
- [ ] **SUPER+? opens the cheatsheet** (item 26 fix) — after
|
||
`home-update` + relogin (or `hyprctl reload`), SUPER+? must open
|
||
the keybindings cheatsheet, whose row still reads `SUPER + ?`
|
||
(not `SUPER + SHIFT + ?`).
|
||
- [ ] **swaync readable on summer-day** (item 25 fix) — on summer-day
|
||
after `home-update`: `notify-send "title" "body text"` shows
|
||
readable body text; open the control centre (SUPER+N), hover a
|
||
notification row and check the Clear button — all text legible
|
||
(body/buttons now @text on tinted chips, not subtext/surface).
|
||
- [ ] **Bar + rofi legible on flexoki-light** (item 27 fix) — switch to
|
||
flexoki-light: every Waybar module readable (window title, tray
|
||
row, dimmed inactive workspaces / muted volume visible-but-dim),
|
||
rofi inputbar/alternate rows show text. Spot-check one dark theme
|
||
(e.g. tokyo-night) for no visual regression in the same spots.
|
||
- [ ] **Back-audit spot-check** (item 24) — the keybinds cheatsheet
|
||
(SUPER+? / root menu › Keybindings) now ends in ↩ Back and
|
||
returns to the root picker; spot a couple of submenus (Display,
|
||
VPN › Tailscale) still Back correctly after the audit pass.
|
||
- [ ] **Network menu has no blank rows** (item 22 fix, needs Wi-Fi) —
|
||
after `home-update`, open Tools › Network: no empty separator
|
||
rows between the ethernet/wifi/VPN sections (compact = True).
|
||
KNOWN RESIDUAL: if exactly one nameless wifi row remains showing
|
||
only security+bars, that's a hidden-SSID AP — config can't filter
|
||
it; report it and the follow-up is a small source patch skipping
|
||
empty-name APs in create_ap_list.
|
||
- [ ] **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.
|