feat(flake): #134 — unstable.<pkg> in the downstream, one input, no hand pins
All checks were successful
Check / eval (push) Successful in 4m16s

Nomarchy now carries a nixpkgs-unstable input and exposes it through
overlays.default as an `unstable` attrset: in the template's
`home.packages = with pkgs; [ … ]` a user writes `unstable.lmstudio`
and is done. Downstream stays one locked input; nomarchy-pull moves it.
lib.nix needed zero changes — mkFlake's pkgs already applies the
overlay. The import is plain and non-recursive, so configs that never
reference unstable. pay nothing beyond the input fetch; allowUnfree
mirrors the base set so the motivating lmstudio resolves.

Home packages are the supported surface (documented convention). Costs
stated in the README, not hidden: you own the pinned+unstable
combination; a second toolchain lands in your closure (~690 of ~4k
paths shared, measured on lmstudio); it moves when the lock moves.
Lock bumps now move two channels — VERIFICATION §5 and CONVENTIONS
updated accordingly. flake.lock gained exactly one node
(nixos-unstable @ 753cc8a); nothing else moved.

Verification: V1 — nix flake check --no-build green; new eval-only
checks.unstable-seam green (26.05pre vs 26.11pre lib.version, no
builds); template HM activation built via mkFlake with unstable.hello
enabled and its closure carries the unstable store path (pg2zfr… vs
pinned nm7p8w…). Implementation by a Sonnet subagent; design and
review on Fable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 15:16:29 +01:00
parent 2f5c1c8b99
commit 07400ab4f9
9 changed files with 108 additions and 28 deletions

View File

@@ -493,6 +493,23 @@ Design/decision records and a running log of shipped work (items marked
V2 by render, both heads + the password dialog, via the new
`tools/plymouth-preview.sh`. V3 (a real docked boot/shutdown) is queued: the
fake heads exist from the start, so the rig cannot resize a canvas.
- ✓ **`unstable.<pkg>` in the downstream (#134, 2026-07-17):** Nomarchy now
carries a `nixpkgs-unstable` input and exposes it through
`overlays.default` as an `unstable` attrset — in the template's
`home.packages = with pkgs; [ … ]` a user writes `unstable.lmstudio` and
is done: one downstream input, still locked, still moved by
`nomarchy-pull`. `lib.nix` needed zero changes (mkFlake's pkgs already
applies the overlay). A plain non-recursive `import` keeps it lazy —
configs that never write `unstable.` pay nothing beyond the input fetch;
`allowUnfree` mirrors the base set so the motivating lmstudio resolves.
Home packages are the supported surface (documented convention — the
overlay is technically visible system-side, deliberately undocumented).
Costs stated in the README, not hidden: you own the combination, second
toolchain in the closure (~690 of ~4k paths shared), moves with the lock.
Lock bumps now move two channels — VERIFICATION §5 + CONVENTIONS updated.
V1: template HM activation built with `unstable.hello`, closure carries
the unstable store path; `checks.unstable-seam` (eval-only) guards the
seam permanently; lock diff added exactly the one node.
- ✓ **The idle brick's CAUSE found (#127 closed, 2026-07-17):** the incident
was misdated — it did not happen "before 12:51:34 Jul 15" (that boot was
healthy all day and ended in a routine clean reboot); it ended the