fix(state): the "rename it" tip led into the error it was fixing
All checks were successful
Check / eval (push) Successful in 3m51s
All checks were successful
Check / eval (push) Successful in 3m51s
Verifying Bernardo's #107 upgrade path (legacy theme-state.json checkout → new code) turned up a footgun in state-read.nix's own help text. It said: • Still on theme-state.json? Rename it to state.json (…) On a git flake only tracked files exist, so a hand-rename leaves state.json untracked and therefore invisible — producing exactly the "state file is missing" error the tip hangs off. Point at the menu write (which stages the rename via git add --intent-to-add + git rm), name `git add state.json` for the manual path, and add a bullet for "file is on disk but eval says missing", which is otherwise a genuinely confusing dead end. Message verified by rendering the real failure, not by reading the source. The rename itself is safe and needs no code change: with identical content, theme-state.json and state.json produce byte-identical derivations (HM 2yqqy8h…, system 9qp9l3g…), so it cannot change what boots. Legacy eval, the migration write, and re-eval on a dirty/intent-to-add tree all pass. #133 filed: no check pins the compat shim, so it can rot before we drop it.
This commit is contained in:
@@ -121,6 +121,18 @@ size, or truncation. Either fix the guest (fontconfig + icon cache in the
|
||||
test node) or document the gap in docs/TESTING.md §5 so the next agent does
|
||||
not chase it — right now nothing warns them.
|
||||
|
||||
### 133. No check pins the #107 legacy-name compat shim
|
||||
|
||||
`lib.mkFlake`, doctor and lifecycle all still accept `theme-state.json`, and
|
||||
`nomarchy-state-sync` migrates it on write — but nothing in `checks.*`
|
||||
evaluates a checkout that has *only* the legacy name, so the shim can rot
|
||||
silently while every check stays green. It is load-bearing until every
|
||||
existing machine has taken one menu write. Add a cheap eval check: a fixture
|
||||
dir with `theme-state.json` only → `mkFlake` resolves it; plus the write-side
|
||||
migration (state.json created + git-staged, legacy `git rm`'d). Proven by
|
||||
hand 2026-07-15 (drvPaths identical across the rename) — this just keeps it
|
||||
proven. Delete together with the shim + the `nomarchy-theme-sync` alias.
|
||||
|
||||
### 120. A netinstall ISO, next to the fat offline one
|
||||
|
||||
Bernardo 2026-07-14, after seeing the measured size: **keep the current ISO
|
||||
|
||||
Reference in New Issue
Block a user