A git-tracked agent/ directory so AI agents can iterate on the distro unattended (runner-agnostic: /loop, headless claude -p, or a fresh manual session — all state lives in the checkout, per the distro's own philosophy): - LOOP.md — the iteration protocol: orient → pick one BACKLOG task → verify up the V0–V3 ladder → commit+push main → record. Safety rails (v1 untouchable, no force-push, no surprise lock bumps) and stop-and-escalate conditions. - BACKLOG.md — the forward half of docs/ROADMAP.md reworked into a prioritized queue (5 NOW / 6 NEXT / LATER / PROPOSED / Decisions); ROADMAP.md stays the design/decision record + shipped log. - GOALS.md — the four pillars (stable > reproducible/zero-hidden-state > effortless config > beautiful), quality bars, non-goals. - CONVENTIONS.md — coding/design rules (in-flake state, menu placement, Waybar whole-swap parity, toggle-vs-package, no formatter). - MEMORY.md — curated hard-won lessons (VM recipes, btrfs-assistant segfault watch, rofi/WirePlumber/hyprlock gotchas). - HARDWARE-QUEUE.md — every pending V3 on-hardware check collected from the ROADMAP, with exact steps, split by machine. - JOURNAL.md — append-only iteration log, seeded with this bootstrap. Plus a root CLAUDE.md entry point and README/ROADMAP pointers. Verified: V0 — docs-only; nix flake check --no-build green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
64 lines
3.6 KiB
Markdown
64 lines
3.6 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.
|
|
- [ ] **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/rollback** — `nomarchy-menu snapshot` →
|
|
`nomarchy-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.
|
|
|
|
## 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
|
|
- [ ] **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.
|