OpenRiot v7.9.13 — The One That Respects Your Time

“Some things are worth waiting for. Others are just large.” — The OpenRiot Crew, watching a progress bar that wasn’t actually progressing.


Release Overview

v7.9.12 fixed WireGuard route corruption on toggle, quieted the update checker, and preserved transmission settings across reinstalls. v7.9.13 adds one more thing: the installer no longer silently attempts to download half a gigabyte of RTS data without asking.

Zero A.D. is massive. The package alone is ~500MB and can take 30–45 minutes on slower mirrors. Previously the installer treated it like any other game, gave zero feedback during the download, and killed the process after 10 minutes. Now it asks twice, waits an hour, and tells you it’s still alive every 5 minutes.


Zero A.D.: Respect the User’s Time

The installer ran pkg_add 0ad with a 10-minute timeout and no progress indication. On slow mirrors the download alone exceeded this. Users saw silence, then Timed out after 10m: 0ad — with a partially downloaded, broken package left behind.

The fix is threefold:

  1. Double confirmation. When the installer reaches 0ad, it prompts: Zero A.D. is massive (~500MB+) and takes 30–45 minutes to install. Install it? [Y/n] followed by Are you sure? This will take a while. [Y/n]. If either answer is no, 0ad is skipped cleanly — not counted as a failure.

  2. 60-minute timeout for 0ad only. All other packages remain at 30 minutes. The retry path (base name fallback) also uses the extended timeout when applicable.

  3. Heartbeat every 5 minutes. Every package install now emits Still running: <package> at 5-minute intervals until completion or timeout. No more silent hangs.

File Change
source/installer/packages.go confirm0ad() with double
  prompt; 60m timeout for 0ad;
  5m heartbeat ticker for all
  packages; dynamic timeout msg

Since v7.9.12 (Recap)

WireGuard: Trust the Tool

Start() and Stop() no longer call ReconnectWifi(), which was flushing wg-quick’s route table on every toggle. Restart() added for clean WiFi+VPN reconnects.

File Change
source/wireguard/wireguard.go Removed ReconnectWifi();
  added Restart()
source/nmtui/update.go Uses wireguard.Restart()

Privacy: Quieter Update Checks

--update-status interval reduced from 3600s to 14400s. Offline state shows up-to-date arrow instead of ?.

File Change
config/polybar/config.ini.tmpl interval = 14400
source/update/update.go Offline → up-to-date icon

Config Preservation

Transmission settings.json is now protected from overwrite on reinstall via preserve_if_exists.

File Change
install/packages.yaml preserve transmission settings

Since v7.9.11 (Recap)

Polybar Clickability — IPC-gated startup, removed soft restart. xenodm Greeter — Display mirroring on login, xconsole removed. Night Lightsct replaces redshift daemon. Games — Zero A.D. and Extreme Tux Racer added. Test InfrastructureTMPDIR=$(HOME)/.tmp for OpenBSD noexec. Documentation — 10 stale docs deleted; lessons merged into AGENTS.md.


🧾 Files Changed

File Change
source/installer/packages.go confirm0ad(); 60m timeout;
  5m heartbeat; dynamic msgs
source/wireguard/wireguard.go Removed ReconnectWifi();
  added Restart()
source/nmtui/update.go Uses wireguard.Restart()
source/update/update.go Offline → up-to-date icon
config/polybar/config.ini.tmpl Interval 3600 → 14400
install/packages.yaml preserve transmission settings

🗣️ Final Words

“v7.9.10 made sure your packets went to the right router. v7.9.11 made sure you could click the bar that told you they arrived. v7.9.12 made sure they didn’t disappear when you turned the tunnel on. v7.9.13 makes sure you actually wanted to spend forty-five minutes downloading an RTS before it starts.”

Consent is important. Even for video games.

Ship it.