A fix release for the built-in reverse proxy. Apps whose router first
navigates after an auth check (Dispatcharr is the reported case) looped on
their login page and never rendered; a reload of such a frame, or an app
assigning location.href, silently did nothing. Drop-in.
Fixed
- Proxied apps that route after an auth check no longer loop on their login
page. The runtime interceptor kept the frame's address free of the
/proxy/<slug>prefix only until the windowloadevent, then restored
it. An app whose router first navigates after a network round trip
(Dispatcharr's auth check, for one) then read/proxy/<slug>/loginback
from the browser, matched no route and redirected to/login?next=...
again, until the URL was megabytes long and the frame stayed blank. The
address now stays clean for the life of the document. - Reloading a proxied frame, or an app assigning
location.href, no longer
freezes the frame. The Navigation API handler that redirects such loads
through the proxy readassignandreplacefromLocation.prototype,
where no browser defines them, so it cancelled the navigation and then
threw. It now uses the instance methods and leaves same-document
navigations alone. Browsers without the Navigation API get the same
result from the shell, which recognises an app frame by itswindow.name
and sends it back to the proxied path.
Changed
- Dependencies:
marked18.0.13 andzod4.6.4.