A published server now restores itself after the internet drops. If you list your receiver in the public directory, a broken connection used to take it off the list permanently — and it needed somebody to go and restart it by hand. That is no good for a receiver on a hilltop, and worse on the connections most likely to blink: mobile broadband and satellite.
Three separate faults, any one of them enough on its own.
The tunnel wedged itself. VibeServer read cloudflared's output only until it had the address, and then stopped reading. cloudflared kept writing into a pipe nothing was emptying, filled it, and stopped dead. An outage is exactly when it has the most to say, so the outage itself jammed the tunnel — and it stayed jammed long after the connection came back.
A dead tunnel was never replaced. The server checked whether it had ever had an address rather than whether the tunnel was still there, so it never restarted one. It simply went on announcing an address with nothing behind it — worse than being absent, because the directory kept advertising it as reachable. It now notices within about a second instead of up to a quarter of an hour, and keeps retrying patiently for as long as the connection is out.
A brief outage could cost a server its public name. A connection that could not be reached at all was mistaken for the directory disowning us, and the server threw away credentials that are issued only once — then tried to register again and was refused by its own stale entry. Those two cases are now told apart, and only a genuine refusal releases the name.
Your friendly address does not change. Only the anonymous tunnel name underneath it cycles, which nobody sees. The directory was always built for this; the server simply never told it where it had moved to.
Also fixed: stopping one radio's tunnel could kill every other radio's tunnel on the same machine.
Requires macOS 14 or later. Signed and notarised — download, unzip, drag to Applications.