OpenRiot v7.9.68 — The Machine Checks Itself

“The construct had a panel for everything it could do and nothing for what it had become. It could stand the tunnel up and never ask why it felt slow. It could hold a hundred gigabytes of nothing on a full disk and call it fine. So we gave it a mirror: eight questions it asks about itself, in plain sight, on a timer. The Turing Police would call it a ‘self-auditing posture assessment’ and charge a seat license for the privilege of reading your own logs. We call it the machine finally looking at its own face.” — The OpenRiot Crew, v7.9.68


Release Overview

The Control Center gains a Health section: eight read-only checks that watch for the things that cause panics, security holes, slowness and leaks. Issues are shown first and fixed one at a time, on your say-so.

Total changes: the Health panel, two corrected checks, and a handful of small fixes.


🩺 The Health Panel

Health is the seventh room in the Control Center. It runs read-only probes every few seconds and lists one row per check:

 Syspatch   OK   up to date
 Disk       OK   / 22 GB free
 Firewall   OK   pf enabled
 doas       OK   safe
 Swap       OK   0% used
 Kernel     OK   in sync
 Packages   OK   in sync
 Crashes    FAIL unclean filesystem

Nothing auto-applies. Move to a row, press enter, and it runs that row’s fix in the background while the panel keeps breathing. Where a fix can’t be applied safely, the row is report-only and says so instead of pretending.


📊 The Eight Questions

Check Looks for Fix
Syspatch pending security patches doas syspatch
Disk least free space on /, /home, /var report
Firewall pf enabled enable pf
doas /etc/doas.conf perms report
Swap swap pressure report
Kernel kernel/package drift (panics) guided upgrade
Packages drift vs packages.yaml reinstall
Crashes panics, unclean fs, core dumps report

Some of these are deliberately report-only. If /etc/doas.conf is wrong, doas itself refuses to run, so doas cannot fix doas. An unclean filesystem needs single-user fsck, not a keypress. The machine tells the truth and leaves the dangerous parts to you.


🔍 Two Lies the First Draft Told

The Disk check first measured free space as a percentage. It flagged /home as a failure at 4% while 150 GB sat free on a large disk. Percentage is the wrong unit: what matters is whether you are about to run out. It now measures in gigabytes — failure under 1 GB, warning under 5 GB — so a big disk with a small percentage is not a problem and a small disk with a small absolute number is.

The Crashes check first labeled anything suspicious panic in dmesg — including a harmless-looking line that was actually WARNING: / was not properly unmounted. That is a filesystem that was not cleanly closed, not a panic. It now names what it found: panic logged or unclean filesystem.

A check that cries wolf is worse than no check. Both were fixed before they could teach you to ignore the panel.


⚙️ Small Fixes

  • The Screen Recording row in System now hides unless a recording is actually running; an idle “not recording” row was noise.
  • The Control Center keybinding was bound to Space; i3’s keysym is lowercase space. The chord silently did nothing. It launches now.
  • The panel calls the binary by path, not by hoping PATH is set in a GUI session.

🧾 Files Changed

File Change
source/control/health.go NEW — checks, status, fixes
source/control/model.go Health section + state
source/control/update.go Health messages, routing, fix
  handling; System item count
source/control/view.go Health rendering; recording
  auto-hide
source/control/backend.go Package reinstall launcher
source/control/update_test.go Tests for each check’s logic
source/update/update.go KernelDrift() exported
config/i3/keybindings.conf space keysym fix
README.md Release-notes TOC

🗣️ Final Words

“The construct can watch the network and the disk and the battery. It should also be able to watch itself. A check that lies about a full disk is a check you learn to ignore, and a panel you ignore is a panel that isn’t there. The Turing Police will keep selling you dashboards that phone home. We kept the mirror in the room and the logs on the machine.” — The OpenRiot Crew, v7.9.68