test+fix: close #14, V2 #57 live install entry, #41 float slice
All checks were successful
Check / eval (push) Successful in 2m57s

- #14: first scheduled lock bump confirmed (8fded63 nomarchy-bump Mon
  05:20 UTC 2026-07-06); remove queue item.
- #57 V2: checks.live-install-entry builds nomarchy-live HM gen and
  asserts Install Nomarchy.desktop + installer bin + menu gate.
- #41: float/center hyprpolkitagent + pinentry-qt from package app-ids;
  capture-float-classes.nix harness (softGL empty); residual portal
  class stays NEXT [blocked:hw]. HARDWARE-QUEUE confirm steps.

Verified: live-install-entry + windowrule-syntax green.
This commit is contained in:
Bernardo Magri
2026-07-10 09:20:15 +01:00
parent 5f3124d160
commit 14558ad296
6 changed files with 205 additions and 34 deletions

View File

@@ -28,40 +28,23 @@ in [`docs/ROADMAP.md`](../docs/ROADMAP.md); map in
## NEXT
### 14. Automated lock bumps — confirm the first real run
Slices b+c shipped 2026-07-05 (`.gitea/workflows/bump.yml`): weekly
schedule (Mon 05:17 UTC) + `workflow_dispatch` as the security
fast-lane; `nix flake update` → eval gate → pathspec-limited lock
commit pushed to `main` on green (that push triggers check.yml as the
second net). Update/commit/push logic simulated locally end-to-end in
a scratch clone, incl. a real update; today's bumped lock evals green.
Remaining (not confirmable from a session): the first scheduled or
dispatched run must land — watch that the runner picks up the cron and
that the Actions token can push. Then delete this item. Item 20's KVM
runner later upgrades the gate from eval-only to the VM suite.
### 20. KVM runner → VM suite in CI `[human]`
The remaining stretch of the CI item — checks-on-push is live and
**green** (run #58; runner = gitea/act_runner docker, eval tier).
Register a second runner on a host with `/dev/kvm` + nix (host-mode
label `nix-kvm`), then an agent uncomments the workflow's `vm-checks`
job: the `checks.*` VM suite + real toplevel/HM builds on every push
that later upgrades item 14's bump gate from eval-only to the full suite.
that later upgrades the bump gate from eval-only to the full suite.
### 41. Floating-window audit — remaining (needs hardware class checks)
(Raised by Bernardo, 2026-07-07 — item 11.) Broaden the `windowrule`
float set beyond the conservative first cut.
_Conservative cut shipped 2026-07-07 (iteration #63, on Bernardo's "take a
conservative approach"):_ float + center the mixer (item 35), **blueman**
(manager/adapters) and **system-config-printer** — the only shipped,
unambiguous config dialogs whose classes are confident. **Remaining
candidates, deliberately deferred because their window class can't be
verified headlessly** (a guessed class = dead rule): the polkit auth
prompt (hyprpolkitagent — no discoverable class in the package), GTK
file-chooser portals (`xdg-desktop-portal-gtk`), and any pinentry dialog.
Next slice: on hardware, run `hyprctl clients` while each is open, read
the real `class`, then append rules. Also revisit whether blueman/s-c-p
actually float once seen (regex tolerance for the `.…-wrapped` form).
### 41. Floating-window audit — residual GTK portal class `[blocked:hw]`
(Raised by Bernardo, 2026-07-07 — item 11.) Conservative cut + 2026-07-10
slice shipped: mixer, blueman, system-config-printer, calendar,
**hyprpolkitagent** + **pinentry-qt** (classes from package app-id
strings; softGL capture harness could not materialize dialogs).
**Still open:** GTK file-chooser portal (`xdg-desktop-portal-gtk`) —
class not discoverable headlessly. On hardware: open a portal file
picker, `hyprctl clients`, append float/center rules if needed; confirm
polkit/pinentry/blueman actually float.
## LATER
@@ -475,7 +458,7 @@ _(User password minimum length = 8 → #54.)_
#### Live ISO discoverability (one durable cue)
_(Live: one always-visible “Install Nomarchy” action → **#57** ✓ 2026-07-10;
V2 pending: live ISO desktop entry smoke.)_
V2: `checks.live-install-entry` on live HM gen.)_
#### Generated config / post-install polish

View File

@@ -8,6 +8,12 @@ the failure as a NOW bug in BACKLOG.md. Machines: the **AMD dev box**
QA machine), the **T14s** (webcam case).
## Any machine (dev box is fine)
- [ ] **#41 float classes (polkit / pinentry / portal / blueman)** — after
rebuild: (1) `pkexec true` or mount a disk → polkit dialog should
float+center; if not, note `hyprctl clients` class while open.
(2) `gpg --sign` or any pinentry prompt → same. (3) App file picker
via portal → capture class for residual rule. (4) blueman-manager /
system-config-printer still float (`.…-wrapped` tolerance).
- [ ] **#55 fingerprint enroll on real reader** — with
`nomarchy.hardware.fingerprint.enable` and a physical reader: System
Fingerprint Enroll a finger; List shows it; Verify succeeds; optional

View File

@@ -17,6 +17,23 @@ Template:
---
## 2026-07-10 — Pending closeout: #14, #57 V2, #41 slice
- **Task:** pending V2/CI/float leftovers after A/B/C batch.
- **Did:** **#14 closed** — first scheduled lock bump landed
`8fded63` (2026-07-06 Mon 05:20 UTC) as `nomarchy-bump` /
`chore(lock): scheduled upstream bump` (Actions token push works).
**#57 V2** — `checks.live-install-entry` asserts live HM gen has
`nomarchy-install.desktop` (Name/Terminal/Exec) + installer bin +
Tools menu gate in `nomarchy-menu`. **#41 slice** — float/center rules
for hyprpolkitagent + pinentry-qt from package app-id strings;
`tools/capture-float-classes.nix` harness (softGL empty clients);
residual GTK portal stays NEXT `#41 [blocked:hw]`. HARDWARE-QUEUE
float confirm steps added.
- **Verified:** **V2** live-install-entry green; windowrule-syntax green.
SoftGL class capture inconclusive (empty clients). **V3** float confirm
+ fingerprint/#60 still HARDWARE-QUEUE. **#20** still `[human]`.
- **Next suggestion:** Bernardo: #20 KVM runner, or HARDWARE-QUEUE pass.
## 2026-07-10 — #55 fingerprint menu + #56 human rebuild errors
- **Task:** NEXT #55 (System Fingerprint) + #56 (rebuild failure UX).
- **Did:** #55 — System row self-gated on fprintd-list; enroll/list/verify/