docs(agent): correct #76 V3 scope — dev box isn't a Nomarchy install
All checks were successful
Check / eval (push) Successful in 4m20s

The dev box runs Bernardo's own NixOS (TuringMachine, 25.11), not
Nomarchy — so hibernating it tests that config's hibernate, not
Nomarchy's oom.nix/patch-template/rofi wiring, and can't close #76's V3.
Its layout (LUKS cryptroot + btrfs @ + /swap/swapfile + resume_offset)
does resume, which corroborates the MIGRATION.md runbook, but nothing
more. Rescope the two #76 HARDWARE-QUEUE entries to require a machine
actually running Nomarchy (a Latitude install, or the dev box after
migration), and fix the matching reference in the BACKLOG #76 stub.

Verification: V0 (docs/agent-notes only).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-07-10 19:53:23 +01:00
parent ba8963a385
commit aff50e6070
2 changed files with 27 additions and 20 deletions

View File

@@ -30,9 +30,10 @@ in [`docs/ROADMAP.md`](../docs/ROADMAP.md); map in
### 76. Hibernation default — all agent work shipped `[blocked:hw]` ### 76. Hibernation default — all agent work shipped `[blocked:hw]`
Hibernation + zram on by default (product intent, Bernardo 2026-07-10). Hibernation + zram on by default (product intent, Bernardo 2026-07-10).
**All V0/V1/V2 slices done** (2026-07-10); only the V3 laptop check remains **All V0/V1/V2 slices done** (2026-07-10); only the V3 check remains — on a
(HARDWARE-QUEUE → "AMD dev box"). Design record in **ROADMAP § Hibernation + machine **actually running Nomarchy** (the dev box runs Bernardo's own NixOS,
zram by default**. Shipped: not Nomarchy, so it can't close it). Steps in HARDWARE-QUEUE. Design record in
**ROADMAP § Hibernation + zram by default**. Shipped:
- zram default (`modules/nixos/oom.nix`, zstd/50%/prio 100) — `checks.zram-swap`. - zram default (`modules/nixos/oom.nix`, zstd/50%/prio 100) — `checks.zram-swap`.
- Installer/template already default new installs to a RAM-sized encrypted - Installer/template already default new installs to a RAM-sized encrypted
`@swap` swapfile + `resume_offset` wiring; `swapSize=0` = no-swap opt-out. `@swap` swapfile + `resume_offset` wiring; `swapSize=0` = no-swap opt-out.

View File

@@ -290,27 +290,33 @@ that run; leftover open items still need a pass.*
screenshot loaded. Check that the UI draws on the current theme palette screenshot loaded. Check that the UI draws on the current theme palette
(tools colored properly) and hitting save places the screenshot in (tools colored properly) and hitting save places the screenshot in
`~/Pictures/Screenshots/` while hitting copy places it in the clipboard. `~/Pictures/Screenshots/` while hitting copy places it in the clipboard.
- [ ] **#76 hibernate→resume on the real LUKS+@swap layout** — the V2 VM test - [ ] **#76 hibernate→resume on a real Nomarchy install** — the V2 VM test
proves the resume mechanism + zram coexistence, but QEMU can't feed a proves the resume mechanism + zram coexistence, but QEMU can't feed a
boot-time `resume_offset` for a btrfs *swapfile* nor drive the LUKS boot-time `resume_offset` for a btrfs *swapfile* nor drive the LUKS
initrd unlock, so this triple needs hardware (dev box already runs it: initrd unlock, so this triple needs hardware. **Requires a machine
LUKS mapper `cryptroot`, btrfs `@`, `/swap/swapfile`). actually running Nomarchy** (installer default swap = RAM), NOT the dev
1. Confirm the layout: `swapon --show` lists `/swap/swapfile` (Type file) box — that box runs Bernardo's own NixOS (TuringMachine, 25.11); its
**and** `/dev/zram0` at priority 100; `cat /proc/cmdline` shows layout resumes fine (verified 2026-07-10) but that only corroborates
`resume_offset=…`; `nixos-option boot.resumeDevice` is the btrfs UUID. the *layout*, not Nomarchy's oom.nix/patch-template/rofi wiring.
2. Open apps, note an unsaved in-RAM state (e.g. a terminal `echo` scroll, Candidate: a fresh Nomarchy install on a Latitude, or the dev box
an editor buffer). Run `nomarchy-menu → Power → Hibernate` (or *after* migrating to Nomarchy (docs/MIGRATION.md).
`systemctl hibernate`). Machine writes the image and **powers off**. 1. Confirm the wiring on the Nomarchy box: `swapon --show` lists
3. Power on: you unlock LUKS **once** in the themed prompt and land back `/swap/swapfile` (Type file) **and** `/dev/zram0` at priority 100;
in the **same session** — windows/state restored, not a fresh login. `cat /proc/cmdline` shows `resume_offset=…` + `resume=` the btrfs UUID.
4. **Pass** = session restored after a full power-off + single unlock. 2. Open apps, note an unsaved in-RAM state. `nomarchy-menu → Power →
Hibernate` (or `systemctl hibernate`). Machine writes image, **powers
off**.
3. Power on: unlock LUKS **once** in the themed prompt; land back in the
**same session** — state restored, not a fresh login.
4. **Pass** = session restored after full power-off + single unlock.
Fail (fresh boot / stuck initrd) → NOW bug in BACKLOG (capture Fail (fresh boot / stuck initrd) → NOW bug in BACKLOG (capture
`journalctl -b -1 | grep -i -E 'hibernat|resume|swap'`). `journalctl -b -1 | grep -i -E 'hibernat|resume|swap'`).
- [ ] **#76 no-swap Hibernate notify** — on a machine installed with `swap = 0` - [ ] **#76 no-swap Hibernate notify** — on a **Nomarchy** machine installed
(or temporarily `sudo swapoff -a`): `nomarchy-menu → Power → Hibernate` with `swap = 0` (or temporarily `sudo swapoff -a` on one): `nomarchy-menu
must surface a desktop notification ("Couldn't hibernate — likely no → Power → Hibernate` must surface a desktop notification ("Couldn't
swap is configured. See docs/MIGRATION.md → Enabling hibernation."), hibernate — likely no swap is configured. See docs/MIGRATION.md →
**not** a silent no-op. (`swapon` after, if you swapoff'd for the test.) Enabling hibernation."), **not** a silent no-op. (`swapon` after, if you
swapoff'd for the test.)
## AMD dev box only ## AMD dev box only
- [ ] **AMD runtime bits** — VA-API (`vainfo` → radeonsi), amd-pstate EPP - [ ] **AMD runtime bits** — VA-API (`vainfo` → radeonsi), amd-pstate EPP