Files
Nomarchy/agent/HARDWARE-QUEUE.md
Bernardo Magri fd6e5f60e9
All checks were successful
Check / eval (push) Successful in 2m53s
fix(theme): generated waybar/rofi CSS invisible on on-surface palettes (item 27)
Follow-on to the swaync fix (a643391): the generated Waybar CSS colored
the module row and #window @subtext and dim states @muted, and the
generated rofi theme put @fg text on @surface chips — invisible where
palettes use those roles as "on-surface" (flexoki-light: subtext==base,
surface==text; gruvbox: muted/base = 1.27). flexoki-light has no
whole-swap, so it ran this CSS. Generated surfaces only — the summer
whole-swaps are hand-authored and untouched.

- waybar: secondary text → alpha(@text, 0.85); dim states (inactive
  workspaces, DND bell, muted volume) → alpha(@text, 0.5).
- rofi: @dim → text+"80", @surface → text+"1a" (#RRGGBBAA fg tints).
- check-theme-contrast.py pairings/docs now cover all three generated
  surfaces; status glyphs (good/warn/bad on base, worst 2.05) are
  deliberately not held to a text ratio — raising them is palette
  design, a human decision.

Verified: V0; V1 (checks.theme-contrast green over 21 themes;
downstream-template-home builds; rendered waybar style has zero
@subtext/@muted/@surface; rendered custom.rasi shows fg-derived
tints). Honesty: NOT visually verified — V3 queued (flexoki-light
eyeball + dark-theme regression spot-check).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 19:08:18 +01:00

7.8 KiB
Raw Blame History

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 unplugsudo 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.
  • 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: 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.
  • 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.
  • 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.
  • 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.
  • Fingerprintfprintd-enroll + (opt-in PAM) login/sudo.

Latitude 5410 only

  • 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.
  • 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.