From dbc7741f586eebb661ab2d4bec2232006ed36ee5 Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Sat, 11 Jul 2026 19:21:50 +0100 Subject: [PATCH] docs(backlog): #89 slice-1 tray inventory done; #76 unblocked by migration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tray SNI inventory run live on the T14s: nm-applet, udiskie, Telegram and EasyEffects are name-based (icon-lookup overridable); Signal and ZapZap publish pixmaps only (slice 3). Method: watcher's RegisteredStatusNotifierItems + busctl get-property. #76: the dev box now runs Nomarchy (migrated 2026-07-11), so the 'not a Nomarchy machine' blocker is gone — retagged [human]; queue step 1 (swapfile/zram/resume_offset wiring) verified live, only the power-cycle test remains. Co-Authored-By: Claude Fable 5 --- agent/BACKLOG.md | 27 +++++++++++++++++---------- agent/HARDWARE-QUEUE.md | 15 +++++++-------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/agent/BACKLOG.md b/agent/BACKLOG.md index 6e741a0..82fe4c9 100644 --- a/agent/BACKLOG.md +++ b/agent/BACKLOG.md @@ -28,11 +28,15 @@ in [`docs/ROADMAP.md`](../docs/ROADMAP.md); map in ## NEXT -### 76. Hibernation default — all agent work shipped `[blocked:hw]` +### 76. Hibernation default — all agent work shipped `[human]` Hibernation + zram on by default (product intent, Bernardo 2026-07-10). -**All V0/V1/V2 slices done** (2026-07-10); only the V3 check remains — on a -machine **actually running Nomarchy** (the dev box runs Bernardo's own NixOS, -not Nomarchy, so it can't close it). Steps in HARDWARE-QUEUE. Design record in +**All V0/V1/V2 slices done** (2026-07-10); only the V3 check remains. +**Unblocked 2026-07-11:** the dev box (TuringMachine T14s) now RUNS Nomarchy +(migrated per docs/MIGRATION.md) with exactly the target layout — step 1 of +the queue entry verified live (`/swap/swapfile` file-type swapon, zram0 prio +100, `resume=`+`resume_offset=` on cmdline). Remaining: Bernardo performs the +power-cycle (hibernate → power off → single LUKS unlock → session restored) — +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`. - Installer/template already default new installs to a RAM-sized encrypted @@ -62,12 +66,15 @@ blue (T14s V3, 2026-07-11); Signal / Telegram / ZapZap (all flatpaks on the T14s) likely worse. Goal: every tray icon reads like part of the bar. Slices: -1. **Inventory (V3-ish, cheap):** run each target app, read - `org.kde.StatusNotifierItem` `IconName` / `IconPixmap` / `IconThemePath` - off the bus (method proven 2026-07-11: watcher's - `RegisteredStatusNotifierItems` + `busctl get-property`). Name-based → - overridable via icon lookup; pixmap-based → *not* themable from outside - (needs a per-app knob/patch). Record the split in the item. +1. **Inventory — DONE (T14s live session, 2026-07-11):** + | app | IconName | pixmap? | verdict | + |---|---|---|---| + | nm-applet | `nm-signal-*` (state-varying) | no | **name-based** — override the `nm-*` family | + | udiskie | `drive-removable-media-usb-panel` | no | **name-based** | + | Telegram | `org.telegram.desktop[-mute/-attention]-symbolic` | yes (fallback) | **name-based** — ship all state names | + | Signal | `Signal_status_icon_1` (generated, not a real theme name) | yes | **pixmap** — slice 3 | + | ZapZap | *(empty)* | yes | **pixmap** — slice 3; check its own tray-style setting first | + | EasyEffects 8 | `com.github.wwmm.easyeffects` (prior T14s finding) | — | **name-based**; NB `--gapplication-service` alone registers no SNI | 2. **Override layer:** an HM-managed shadow icon dir that wins the XDG lookup for the session icon theme (e.g. `xdg.dataFile "icons//…"` shadowing the store copy, or a diff --git a/agent/HARDWARE-QUEUE.md b/agent/HARDWARE-QUEUE.md index a1b3317..76a1124 100644 --- a/agent/HARDWARE-QUEUE.md +++ b/agent/HARDWARE-QUEUE.md @@ -219,16 +219,15 @@ the **T14s** (webcam case). - [ ] **#76 hibernate→resume on a real Nomarchy install** — the V2 VM test proves the resume mechanism + zram coexistence, but QEMU can't feed a boot-time `resume_offset` for a btrfs *swapfile* nor drive the LUKS - initrd unlock, so this triple needs hardware. **Requires a machine - actually running Nomarchy** (installer default swap = RAM), NOT the dev - box — that box runs Bernardo's own NixOS (TuringMachine, 25.11); its - layout resumes fine (verified 2026-07-10) but that only corroborates - the *layout*, not Nomarchy's oom.nix/patch-template/rofi wiring. - Candidate: a fresh Nomarchy install on a Latitude, or the dev box - *after* migrating to Nomarchy (docs/MIGRATION.md). - 1. Confirm the wiring on the Nomarchy box: `swapon --show` lists + initrd unlock, so this triple needs hardware. **The dev box qualifies + since 2026-07-11**: TuringMachine (T14s) migrated to Nomarchy per + docs/MIGRATION.md — it now exercises Nomarchy's oom.nix/rofi wiring, + not just the layout. + 1. ✓ Confirm the wiring on the Nomarchy box: `swapon --show` lists `/swap/swapfile` (Type file) **and** `/dev/zram0` at priority 100; `cat /proc/cmdline` shows `resume_offset=…` + `resume=` the btrfs UUID. + (**Verified on TuringMachine 2026-07-11**: swapfile 34G file-type, + zram0 prio 100, `resume_offset=533760`.) 2. Open apps, note an unsaved in-RAM state. `nomarchy-menu → Power → Hibernate` (or `systemctl hibernate`). Machine writes image, **powers off**.