diff --git a/agent/BACKLOG.md b/agent/BACKLOG.md index a3b6aa7..8cb1619 100644 --- a/agent/BACKLOG.md +++ b/agent/BACKLOG.md @@ -249,6 +249,38 @@ high-ROI, etc.) live in the journal + ROADMAP — not here.* ### Product / day-2 +### 134. `unstable.` in the downstream — a newer app without a second flake + +Bernardo 2026-07-15, wanting a newer LM Studio (pinned 0.4.15-2 vs unstable +0.4.19-2) and disliking the only path that works today. There is **no seam**: +`mkFlake` takes `src`/`username`/`hardwareProfile`/`system` only, and +`homeConfigurations` is built from mkFlake's own `pkgs` (`inherit pkgs`), so a +`nixpkgs.overlays` in system.nix cannot reach a home package. The user is left +hand-pinning a `fetchTarball` rev+sha256 in home.nix (verified working) — a +second pin with no lock, which is exactly the Nix expertise the distro exists +to spare them. Sketch: `home.packages = [ unstable.lmstudio ];`, and maybe +`stable.` as an explicit synonym for today's bare `pkgs`. + +The shape that keeps the promises: Nomarchy carries the `nixpkgs-unstable` +input **itself** and exposes it through `overlays.default` as an `unstable` +attrset, so downstream stays **one input**, stays locked, and `nomarchy-pull` +still moves it. Cost/questions to settle before building: +- Lock churn: every lock bump now moves two channels, and the full-checklist + rule (VERIFICATION §5) applies to both. +- Duplication: measured — pinned vs unstable lmstudio build closures share + only 690 of ~3.7–4k paths (separate stdenv bootstrap). Opt-in per package, + but a user who reaches for it pays a second glibc/stack in the closure. +- "Tested together upstream" weakens by construction: nothing validates + pinned-Nomarchy + unstable-app. Needs an explicit, documented "you own this + combination" line, not silence. +- Does `unstable` belong in the eval by default, or only when referenced? + (An unused input still locks + fetches.) +- Scope: home packages only, or system.nix too? + +Alternative if that is too much surface: give `mkFlake` an `overlays ? []` +param (one-line seam, user still owns their own input/pin — cheaper for us, +still expert-only for them). Related: #133. + ### 114. Greeter ignores per-device keyboard layouts Found by Bernardo 2026-07-14: logging out while docked lands on tuigreet,