Files
Nomarchy/docs
Bernardo Magri 19ba4e2b12
Some checks failed
Check / eval (push) Has been cancelled
fix(nixos): smartd self-gates on the hardware — the doctor was right, smartd wasn't
BACKLOG #118. Bernardo booted the live ISO and the Waybar health icon was red,
reporting smartd. Everything downstream turned out to be working correctly,
which is the part worth recording: smartd's config is DEVICESCAN, and where no
drive answers SMART it exits 17 ("Unable to monitor any SMART enabled
devices"), systemd marks the unit failed, nomarchy-doctor faithfully reports a
failed system unit, and Waybar paints @bad. The doctor was telling the truth.
smartd was the bug.

Scope was never live-only, which is why this sat in NOW rather than as a live
nit: services.smartd.enable mkDefaults true on every machine and QEMU virtio
exposes no SMART, so every VM install has been booting to a health warning
about a daemon with nothing to do — and every V2 run had been showing it as
noise.

Fixed with the distro's own self-gate convention: an ExecCondition running
`smartctl --scan`, which prints nothing exactly when smartd would find nothing.
A failed condition leaves the unit inactive rather than failed. Deliberately
NOT SuccessExitStatus = 17: that would also swallow exit 17 from a machine that
does have drives, which is the entire reason the daemon ships.

V2. checks.smartd-gate boots the REAL distro module rather than a restatement
of it (its nixpkgs.config needs mkForce to yield to the test's pkgs) and
asserts both halves, because they pull in opposite directions: a gate that
never skips leaves the red icon, and a gate that always skips silently disables
drive-health monitoring on real hardware — the failure nobody notices until a
disk dies quietly. So the no-SMART node must go ActiveState=inactive, unfailed,
and absent from `systemctl --failed` (what the doctor actually reads); and the
gate's logic is driven against a scan that DOES find a device, since QEMU
cannot answer SMART honestly and pretending otherwise would test nothing. The
check was proved to fail by unwiring the condition. flake check, doctor,
hardware-toggles, live-baseline-apps, option-docs and state-bridges pass.

V3 pending: that smartd still RUNS where drives have SMART (dev box, real
NVMe). Queued with an explicit fail-condition — if it skips there, revert the
gate rather than tune it.

Also swept: #120's size table said the duplicate chromium was gone; #121 was
reverted, so it is back and the table says so.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 17:38:58 +01:00
..

Docs map

Where human and agent documentation lives. Do not invent a third tree for the same facts.

Path Audience Role
../README.md Everyone What Nomarchy is, install, options tables
VISION.md Maintainers + agents Product north star toward v1.0 and beyond — themes, not a task queue
ROADMAP.md Maintainers + agents Design/decision records + shipped log (historical ✓)
HARDWARE.md Users + agents Firmware, profiles, drivers, unsupported machines
TESTING.md Maintainers + agents Verification ladder, honesty rule, ISO/VM recipes
RECOVERY.md Users Broken theme/desktop/boot → undo
OVERRIDES.md Users Downstream Nix overrides
MIGRATION.md Users Existing NixOS → Nomarchy without reinstall
OMARCHY.md Users Coming from Omarchy — bindings/theme/install/config map
Path Role
../AGENTS.md Agent entry point, any vendor/harness (CLAUDE.md symlinks to it)
../agent/README.md Agent instructions + executable loop state: BACKLOG, LOOP, VERIFICATION, …
../.claude/ Claude Code adapter only: permissions + subagent defs

How work flows

VISION  (what we want the product to feel like)
   │
   ▼  human triages slices into…
BACKLOG (what's next, ordered — agents execute only this)
   │
   ▼  lasting design notes after ship →
ROADMAP ✓ entries

Agents do not implement directly from VISION or ROADMAP. They take the top actionable item in agent/BACKLOG.md (see agent/LOOP.md). They may append PROPOSED pitches that reference VISION § … or ROADMAP § ….