The auto-reconnect was watching for a class that never appears

FixKlusterServices
Shipped
August 25, 2026 at 7:44 PM UTC
Author
Kamo
Commit
775885e

It keyed on **************** That class exists in Guacamole's stylesheet and in none of its templates, so the selector matched nothing: the script loaded, ran, observed, and could never fire. A no-op that still looks deployed — coverage in appearance only, which is the failure this whole line of work keeps running into. The real markup, from the deployed 1.5.5 index.html, is <div class="fatal-page-error-modal" ng-switch-when="fatalError"> <guac-modal><div class="fatal-page-error"> ... APP.ERROR_PAGE_UNAVAILABLE and ng-switch removes non-matching branches, so presence of the element IS the signal; no visibility check is needed. Both class names are matched so that either one changing does not silently disable recovery again. Not `.client-status-modal`: Guacamole runs its own reconnect countdown for tunnel errors, and a page reload would interrupt a recovery already in progress. The unit tests could not see any of this — the logic was correct, it was simply never reached. So the selector is now asserted against the fatal-error markup copied verbatim from the deployed page. Confirmed the guard works by putting the broken selector back: 11 pass, 1 fails naming the class that appears nowhere.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing