mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 03:38:23 +00:00
confirmKeycloakLogoutIfPrompted waited the full 2s times the onion multiplier for Keycloak's confirmation button even when Keycloak had already redirected away because the end-session request carried an id_token_hint. It now races the button against the page leaving the logout endpoint (waitUntil: commit) and still clicks the button when Keycloak renders the prompt. The dashboard's own confirmLogoutIfNeeded stops the same way, and its poll interval no longer scales, so a slow target is noticed sooner rather than later. inAppLogout's first candidate poll ignored a visible settings link, so a surface without a recognisable logout control or menu trigger, such as the Mastodon home timeline, burned 30s times the multiplier before the existing settings fallback ran. A visible settings link now ends that poll as well; logout controls and menu triggers are still checked first in every round. The settings selector moves to settingsLinksOn so both callers share it. Traces of run 34421944328: the dashboard's confirm probe expired after 2.03s on clearnet and 10.07s over Tor, and Mastodon's biber logout polled 165s over Tor before reaching the settings page. Replayed in Chromium, a Mastodon-shaped surface logs out in 3.24s instead of 33.45s and a redirecting Keycloak logout returns in 0.20s instead of 2.00s, while a prompting one is still confirmed. In the traced persona logouts of six artifacts every other poll found a candidate in its first round, so their path does not change. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>