fix(shell): reload the packaged renderer back onto its in-app route (#1622)

The packaged renderer is index.html over file:// with path routing, so
after in-app navigation the document URL names a path with no file behind
it. A main-process reload (macOS View > Reload, DevTools) failed with
ERR_FILE_NOT_FOUND and stranded the window on Chromium's error page; a
renderer-initiated reload (the settings unsaved-changes guard's confirmed
location.reload()) was cancelled by the will-navigate trust check and
silently did nothing.

Both legs now re-load the packaged index with the route in a restoreRoute
query parameter, which main.ts restores with history.replaceState before
Angular bootstraps. The did-fail-load recovery is deferred to the error
page's dom-ready: a load issued from inside the failure event yields a
document that never receives animation frames and never paints.

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Fable 5.1 authored and GitHub committed 2026-09-19 08:43:43 +02:00
1 parent fa8ce26991
commit 6f987d79d8
14 files changed
+1113 -12

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
---
type: fix
area: shell
---
Reloading the desktop app while on any page no longer breaks it: View › Reload
on macOS used to leave a blank, dead window until restart, and the reload
offered by the settings unsaved-changes dialog did nothing. Both now reload the
app back onto the page you were on.