Files
Nomarchy/agent/HARDWARE-QUEUE.md
Bernardo Magri bc4e8e1410 feat(state): opt-in auto-commit of state mutations (Phase 4)
settings.autoCommit — toggled from System › Auto-commit (self-gated on
the flake being a git repo) — makes every nomarchy-theme-sync apply/set
also git-commit theme-state.json in the downstream flake, so settings
history is `git log`. Off by default.

Design: the flag is live-read by the tool on each write (nothing in Nix
consumes it → instant toggle, no rebuild, no new option); the commit is
pathspec-limited to theme-state.json so unrelated dirty files are never
swept up; it fires when the flag is on before OR after the write, so
the disable-toggle itself lands in history; same-value writes no-op
(diff against HEAD); missing git identity falls back to
Nomarchy <nomarchy@localhost>; `bg next` is deliberately excluded.

Rider fix: `get` now prints booleans JSON-style (true, not Python's
True) — un-sticking the System menu's "Auto timezone (on/off)" label,
whose `= true` comparison could never match. All shell consumers
already normalise true|True, so no other behavior change.

Verified: V0 (py_compile, nix flake check) + V1 (HM generation builds,
generated nomarchy-menu passes bash -n, wiring present in the rendered
script) + a 7-assertion sandbox-repo round-trip covering enable/set/
same-value/disable/post-disable/apply paths and the identity fallback.
Remaining: on-machine check queued in agent/HARDWARE-QUEUE.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:12:29 +01:00

4.1 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.
  • 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.
  • 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/rollbacknomarchy-menu snapshotnomarchy-snapshots: browse/diff, restore a file (undochange), and a root-config rollback, each behind 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).

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

  • Media keys + gestures (from dccceb4) — volume/brightness keys drive the OSD; touchpad gestures work.
  • 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.