docs(agent): NEXT #76 hibernation default + zram
All checks were successful
Check / eval (push) Successful in 2m51s
All checks were successful
Check / eval (push) Successful in 2m51s
Promote hibernation+zram product intent to the queue head; [big] with design/module/installer/V3 slices. FUTURE stub points at #76.
This commit is contained in:
@@ -24,11 +24,34 @@ in [`docs/ROADMAP.md`](../docs/ROADMAP.md); map in
|
||||
|
||||
## NOW
|
||||
|
||||
*(empty — NEXT is empty; see LATER / FUTURE / PROPOSED)*
|
||||
*(empty — NEXT's top item is the queue head)*
|
||||
|
||||
## NEXT
|
||||
|
||||
*(empty — no actionable queue head; #20 deferred to FUTURE)*
|
||||
### 76. Hibernation default + zram `[big]`
|
||||
**Product intent (Bernardo 2026-07-10):** hibernation on by default;
|
||||
zram on alongside for live memory pressure. Disk swap ≥ RAM for the
|
||||
hibernate image; zram high-priority for day-to-day swap (not sufficient
|
||||
alone for resume).
|
||||
|
||||
**Scope (split before/while implementing — do not land as one mega-PR):**
|
||||
|
||||
1. **Design** — installer disk layout (swapfile size = RAM? partition?),
|
||||
`resume`/`resume_offset`, LUKS + systemd-initrd resume, priority
|
||||
(zram > disk), interaction with existing `@swap` / `swapSize` disko
|
||||
path, what to do when swap was installed as `"0"`.
|
||||
2. **Module** — NixOS: `zramSwap.enable`, disk swap + hibernation
|
||||
(`boot.resumeDevice` / swapfile resume), menu or documented power
|
||||
path for Hibernate (already in Power menu if swap works).
|
||||
3. **Installer** — new installs create hibernation-capable swap by
|
||||
default; document migration for existing machines (add swapfile +
|
||||
rebuild).
|
||||
4. **Verify** — V0/V1: eval + unit/config assertions; V2: VM resume if
|
||||
feasible; **V3**: real laptop hibernate → power off → resume
|
||||
(HARDWARE-QUEUE). Encrypted root is the hard case.
|
||||
|
||||
**Out of scope:** TLP changes; formatter. Prefer boring NixOS knobs over
|
||||
custom scripts.
|
||||
|
||||
## LATER
|
||||
|
||||
@@ -66,6 +89,19 @@ the `vm-checks` job in `.gitea/workflows/check.yml` (`runs-on: nix-kvm`,
|
||||
`nix flake check` + toplevel/HM builds). Do not enable the job until
|
||||
that label is online (Gitea queues forever otherwise).
|
||||
|
||||
### Formatter — adopt later `[human]`
|
||||
**Intent:** add a Nix formatter (likely `nixfmt-rfc-style`) in a dedicated
|
||||
pass: reformat the tree once, document in CONVENTIONS, optional CI
|
||||
check. **Not** the queue head — no drive-by reformats until that pass.
|
||||
|
||||
### Hibernation default + optional zram
|
||||
**Intent:** hibernation on by default (disk swap + resume). **zram is
|
||||
compatible** if disk swap remains for the hibernation image; zram only
|
||||
helps *live* memory pressure (compressed RAM swap), not resume-after-
|
||||
poweroff. Prefer: high-priority zram for day-to-day + lower-priority
|
||||
disk swap ≥ RAM for hibernate. Design before NEXT (installer layout,
|
||||
encrypted root, `resume_offset`).
|
||||
|
||||
## PROPOSED (agent suggestions — await human triage)
|
||||
|
||||
*Agents: append here with a one-paragraph pitch (what/why/cost). Do not
|
||||
|
||||
Reference in New Issue
Block a user