-
fix(app-icons): stop icon flapping — deterministic app public_url + AppIcon remembers loaded/failed candidates
Release / version (push) Canceled after 0sRelease / frontend (push) Canceled after 0sRelease / linux (amd64) (push) Canceled after 0sRelease / linux (arm64) (push) Canceled after 0sRelease / windows (push) Canceled after 0sRelease / macos (push) Canceled after 0sRelease / release (push) Canceled after 0sBuild and Push Docker Image / build-and-push (push) Canceled after 0sreleased this
2026-09-02 18:36:10 +03:00 | 71 commits to main since this releaseTraefik routers are read out of a Go map, so with several domains on one
upstream (localhost / dashboard.example.com / …) the route attached first —
and with it the app's public_url and the favicon origin the icon falls back
to — changed on every collection tick. Routes are now attached best-first
(publicURLRank: real https domain > http > single-label > loopback/.local/IP,
then lexical) and the app link is picked by the same rank instead of Docker's
port order, so public_url is identical on every refetch.AppIcon re-ran the whole
cascade (two 404 slugs, then the
favicon) on every remount/refetch and whenever public_url changed, which is
why a loaded icon blinked out and, with the browser cache disabled, stayed
gone. It now keeps a per-tab set of candidates that loaded / failed, starts
at the known-good one and skips known 404s, re-picking only when the
candidate list itself changes.Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com
Downloads