feat(menu): Recovery scopes (#111), System IA (#105), drop Control Center (#110)
Some checks failed
Check / eval (push) Has been cancelled

System is Connectivity / Devices / Recovery / Preferences under the same
six-entry root. Recovery lists desktop (HM), system boot, and BTRFS files
once each with cost labels. Control Center is gone: blur/gaps live in Look
& Feel; update checks and Bluetooth/Printing package toggles in Preferences
(with rebuilds). docs/RECOVERY paths updated.
This commit is contained in:
2026-07-15 11:49:57 +01:00
parent 0ba9633728
commit 856a9d1a49
14 changed files with 246 additions and 420 deletions

View File

@@ -169,44 +169,6 @@ a suspended machine hibernates after the configured delay and resumes, and a
machine without hibernate support hides the row instead of offering a
suspend that never wakes.
### 105. `[big]` System-menu information architecture
Keep exactly six root menu entries while reorganizing System into
Connectivity, Devices, Recovery, and Preferences. This item must be split into
scoped implementation/verification tasks before work starts. Pass = every
current route has one deliberate home, navigation remains shallow, and no
root-level entry is added or lost.
### 110. `[big]` Retire Control Center safely
Split this into two phases before implementation: first build a migration/drop
matrix for every unique setting, then remove the package and all references.
Keyboard and terminal replacements must reject unsafe free-text values. Pass =
no supported setting silently disappears and the second phase leaves no stale
launcher, menu, package, documentation, or generated-artifact reference.
**Facts for the matrix, from #116 (2026-07-14):** its Bluetooth and Printing
rows write `settings.{bluetooth,printing}.enable`, and those keys became live
bridges to the NixOS config in a9f3a64 — until then they wrote JSON nothing
read, so *these two toggles have never actually worked for any user*. That
cuts both ways: "preserve existing behavior" is not a reason to keep them
(there is no behavior to preserve), but the state keys and their bridges are
real now and outlive the TUI — dropping the rows must not drop the keys, or a
machine whose state.json already says `bluetooth.enable = false` will
silently flip back on at the next rebuild. `checks.state-bridges` covers those
two keys and will fail loudly if the bridges go with the tool; keep it green,
and if a key is deliberately retired, remove its case in the same commit.
Whatever inherits the rows should rebuild on toggle rather than print
"requires rebuild" (#117). Updates (`settings.updates.enable`) is HM-side,
where `nomarchy.settings` genuinely exists, and needs none of this.
### 111. Scope-first Recovery menu
Replace confusing Rollback/Snapshots duplication with explicit Desktop
generation, System boot generation, and Files/root BTRFS scopes. Pass = labels
state what is restored and from where before action, with destructive or reboot
effects made clear and each existing recovery path represented once.
## LATER
- **Wallpapers artifact split** (ROADMAP § Faster switches — decided,
@@ -219,8 +181,7 @@ effects made clear and each existing recovery path represented once.
- **MIPI/IPU software-ISP camera** support (no-UVC machines).
- **NixOS release bump → v2** `[human]`: deliberate, hand-edited, never
automated; the previous attempt was discarded (2026-06-22) over a
Hyprland OOM blocker — see MEMORY.md before retrying (NOW#3 should
also soften that blocker class).
Hyprland OOM blocker — see MEMORY.md before retrying.
## FUTURE (decided deferred — not the agent queue head)
@@ -255,25 +216,6 @@ high-ROI, etc.) live in the journal + ROADMAP — not here.*
### Product / day-2
### 117. Control Center says "requires rebuild" and leaves the user to do it
**Filed as an input to #110 (Retire Control Center safely), not as standalone
work** — Bernardo 2026-07-14: the Control Center is going away, so fixing its
toggles would be building on a condemned surface. Recorded because the
observation outlives the tool: it is a fact the #110 migration matrix needs,
and whatever menu inherits these settings must not repeat it.
Noticed while fixing #116 (2026-07-14). `nomarchy-control-center.sh`'s
Bluetooth, Printing and Updates toggles set the state and print "…​ (requires
rebuild)", so the setting only lands whenever the user next thinks to run
`nomarchy-rebuild`. Every menu toggle written since does the rebuild itself
and toasts the outcome (`nomarchy-autologin`, `nomarchy-fingerprint`,
`nomarchy-autotimezone`) — the state-write-then-rebuild shape. A user who
toggles Bluetooth off and sees Bluetooth still running cannot tell "needs a
rebuild" from "the toggle is broken again", which is exactly the symptom #116
removed. Migrating these rows into the rofi menu resolves it for free, since
that shape is the convention there.
### 114. Greeter ignores per-device keyboard layouts
Found by Bernardo 2026-07-14: logging out while docked lands on tuigreet,
@@ -321,7 +263,6 @@ See **VISION**. Open PROPOSED: post-install hardware hints; NVIDIA
deferred past v1; IR portal (b)/(c) need T14s (HARDWARE-QUEUE § T14s).
Standing calls: browser = Chromium; power = PPD.
## Decisions `[human]`
Open calls only Bernardo can make; agents add options/evidence but never

View File

@@ -19,6 +19,18 @@ Template:
---
## 2026-07-15 — #111 Recovery + #105 System IA + #110 retire Control Center
- **Task:** Scope-first Recovery, System submenu IA, retire Control Center.
- **Did:** System → Connectivity / Devices / Recovery / Preferences. Recovery:
Desktop gen (HM list+activate), System boot (toast + RECOVERY.md), Files
BTRFS, What changed. Migrated CC: blur/gaps presets in Look & Feel; update
checks + Bluetooth/Printing package toggles in Preferences (rebuild in
terminal). Removed `pkgs/nomarchy-control-center` + menu entry. Docs
RECOVERY/HARDWARE/VISION updated. Closed #111 #105 #110 #117.
- **Verified:** V0 menu-back; HM gen builds; flake check --no-build.
- **Pending:** V3 eyeball the new menu tree on a real session.
- **Next suggestion:** #115/#120 human decisions, or hardware queue.
## 2026-07-15 — V2 permanent checks for #104 / #122
- **Task:** V2 everything VM-checkable from the #104/#122 batch.
- **Did:** Extracted `pkgs/nomarchy-airplane` (overlay). Added