From 0bb75b05a900c183e255e8e655dcd58a30bf6b98 Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Tue, 14 Jul 2026 16:21:41 +0100 Subject: [PATCH] =?UTF-8?q?docs(agent):=20#117=20is=20an=20input=20to=20#1?= =?UTF-8?q?10,=20not=20work=20=E2=80=94=20Control=20Center=20is=20being=20?= =?UTF-8?q?retired?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bernardo's triage: the Control Center is going away (#110), so making its toggles rebuild would be building on a condemned surface. #117 stays filed because the observation outlives the tool — whatever menu inherits those rows must not reprint "requires rebuild" — but it is marked not-standalone so no agent picks it up as work. The previous entry's "next suggestion: #117" was wrong and the correction is appended rather than rewritten. #110's migration matrix gets what #116 turned up, which changes its shape: its Bluetooth and Printing rows write settings.{bluetooth,printing}.enable, and those keys only became live bridges in a9f3a64 — so those two toggles never worked for any user. There is therefore no behavior to preserve, but the keys and their bridges are real now and outlive the TUI: dropping the rows must not drop the keys, or a machine whose theme-state.json already says bluetooth.enable = false silently flips back on at its next rebuild. checks.state-bridges covers exactly that and fails loudly if the bridges go with the tool. Updates (settings.updates.enable) is read in modules/home/options.nix — the HM side, where nomarchy.settings genuinely exists — so it needs none of this; verified, not assumed. V0: nix flake check --no-build passes. Backlog/journal only. Co-Authored-By: Claude Opus 4.8 --- agent/BACKLOG.md | 40 ++++++++++++++++++++++++++++------------ agent/JOURNAL.md | 18 +++++++++++++++++- 2 files changed, 45 insertions(+), 13 deletions(-) diff --git a/agent/BACKLOG.md b/agent/BACKLOG.md index efb6110..ce30ad2 100644 --- a/agent/BACKLOG.md +++ b/agent/BACKLOG.md @@ -187,6 +187,21 @@ 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 theme-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 @@ -254,21 +269,22 @@ high-ROI, etc.) live in the journal + ROADMAP — not here.* ### 117. Control Center says "requires rebuild" and leaves the user to do it -Noticed while fixing #116 (2026-07-14), not fixed there — the bug was that -its toggles wrote JSON nothing read; this is that they stop one step short -even now that the JSON lands. `nomarchy-control-center.sh`'s Bluetooth, -Printing and Updates toggles set the state and print "… (requires rebuild)", -so the setting only takes effect whenever the user next thinks to run +**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 has no way to tell -"needs a rebuild" from "the toggle is broken again", which is precisely the -symptom #116 just removed. Cost: small — reuse the autologin shape (the TUI -is already a terminal, so a rebuild's output has somewhere to go). Worth -settling first (`[human]`): whether the TUI should rebuild per-toggle, or -offer one "apply changes" at exit, since a user flipping three toggles -should not sit through three rebuilds. +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 diff --git a/agent/JOURNAL.md b/agent/JOURNAL.md index dac6548..ff176c6 100644 --- a/agent/JOURNAL.md +++ b/agent/JOURNAL.md @@ -19,7 +19,23 @@ Template: --- -## 2026-07-14 — #116: the state bridges that never were (this commit) +## 2026-07-14 — triage: #117 is not work, it's an input to #110 (this commit) +- **Task:** Bernardo's call on #117 (filed by the previous entry, which + suggested it as the next item — it is not; that suggestion is stale). +- **Did:** Control Center is being retired (#110, NEXT, `[big]`), so fixing + its toggles builds on a condemned surface. #117 stays filed as a *record* + feeding #110's migration matrix, marked not-standalone. Gave #110 the facts + #116 turned up: its Bluetooth/Printing rows write state keys that only + became live in a9f3a64, so those two toggles never worked for anyone — + meaning there is no behavior to preserve, but the keys and their bridges are + real now and must not be dropped with the rows, or a machine whose state + says `bluetooth.enable = false` silently flips back on at the next rebuild. + `checks.state-bridges` will fail loudly if that happens. +- **Verified:** V0 — `nix flake check --no-build`. Backlog/journal only. +- **Next suggestion:** #110 (the retirement itself, needs splitting first) or + #115 suspend-then-hibernate — both `[human]`-gated on a design question. + +## 2026-07-14 — #116: the state bridges that never were (a9f3a64) - **Task:** BACKLOG #116 — NixOS options defaulting from `config.nomarchy.settings`, an attribute that exists only on the HM side. - **Did:** `nomarchy.settings` is declared in exactly ONE place