OpenRiot v7.9.59 — The Machine Knows When the Tunnel Is Dead
“The icon turned green. The router said connected. The tunnel was up. But Mullvad had run out of credits, so the packets were sailing into a wall. The machine knew. It just never told you. It hung in its own handshake while the green light glowed and the network quietly died. Worse, every time you toggled the tunnel it wrote one more startup line into rc.local, until the file held a hundred and forty-five copies of the same command. We fixed all of it. Now the machine checks. Now the machine waits. Now it tells you when the tunnel is dead instead of standing there with a green light and a straight face. The Turing Police would call it ‘failure detection and idempotent configuration.’ We call it the machine finally telling the truth.” — The OpenRiot Crew, v7.9.59
Release Overview
WireGuard was lying in two ways. Every toggle-on appended another autostart line to /etc/rc.local — 145 copies by the end. And when Mullvad ran out of credits, the tunnel came up dead with a green icon and silence, because the server lookup hung on a blackholed connection with no timeout. Both are fixed, and the machine now says the words out loud when it cannot actually connect. The crypto table got wider columns for bigger numbers, and the lock screen set picked up its final frames plus a background refresh.
Total changes: WireGuard reliability, crypto alignment, lock screens.
🔒 WireGuard: No More Pretending
Three fixes in source/wireguard/wireguard.go.
Autostart no longer duplicates itself. The boot-persistence
helper stripped only its marker comment, never the actual
wg-quick command, so every toggle-on left an orphaned line
behind. It now strips both, so /etc/rc.local holds exactly
one entry and disabling autostart actually removes it.
No more silent hang. Finding the Mullvad server name used
ftp with no timeout. When credits expired, the tunnel
blackholed the lookup and Start() never returned. It now uses
an HTTP client with a five-second timeout, so a dead tunnel
fails fast instead of hanging.
The machine tells you when it’s dead. Start() waits two
seconds for a handshake, then checks real Mullvad egress via
mullvad_exit_ip. If the tunnel did not actually connect, you
get a critical notification: “Failed to connect. Mullvad
account may be expired or out of credits.” No more green icon
lying over a dead network.
🖼️ Lock Screens: Final Frames
Ten new lock screens joined the set (frames 33 through 42), and several existing backgrounds were refreshed. A stray hidden file was also removed.
🔢 Crypto: Numbers That Line Up
The holdings display now uses a shared width formatter, so larger balances stop breaking column alignment. The header, totals row, and stablecoin columns all got matching spacing.
🧾 Files Changed
| File | Change |
|---|---|
source/wireguard/wireguard.go |
setBootPersistence() strips |
| marker and command line; | |
GetServerName() uses timeout’d |
|
HTTP; added IsConnected(); |
|
Start() warns on a dead tunnel. |
|
README.md |
WireGuard setup: chmod 600 |
and PersistentKeepalive = 25. |
|
source/crypto/crypto.go |
Shared width formatter, aligned |
| holdings and stablecoin columns. | |
Locked/33.webp–Locked/42.webp |
NEW — final ten lock screens. |
Locked/*.webp |
UPDATED — background refresh; |
| stray removed. | |
install/openriot |
Rebuilt binary. |
🗣️ Final Words
“A VPN that goes dark without a word is just a very complicated way to break your own network. The old machine would hang there, green and silent, while your traffic went nowhere and your startup file filled up like a hoarder’s basement. Now it checks, it waits, and it tells you the truth. The Turing Police would call it a bug fix. We call it the machine learning to say the words ‘you’re cut off.’“ — The OpenRiot Crew, v7.9.59