Signed, notarised and stapled. Download, unzip, drag to Applications.
Fixes a server without a Maidenhead locator retrying its listing for ever. The directory requires a locator, and the publisher never checked for one before trying — so a server without it started a tunnel, published, was refused, waited thirty seconds and did the whole thing again, indefinitely. Every lap consumed a fresh tunnel address and sent the directory a request that could never succeed, while the owner saw only a wall of failures with nothing to say the cause was one empty field.
The locator is now validated before any tunnel is started, using the same parser the rest of the server uses, and the reason appears on the setup page: "a Maidenhead locator is required to list this server (e.g. IO83 or IO83xk)". Entering one and saving picks straight back up.
Also in 4.1.11 and 4.1.10:
Audio stuttering in Firefox. The player's watchdog for silently-stalled output was deciding a healthy player was dead — it heard from the output once a second and gave up after two — so any browser hesitation rebuilt the player, and rebuilding it interrupts playback. The cure was the symptom. The output now reports four times a second.
Tunnels use HTTP/2 rather than QUIC, which delivers frames evenly rather than in clumps. Note this applies to tunnels VibeServer starts itself; if you run your own cloudflared, add --protocol http2 to it.