feat(app): top-level error boundary so a render error no longer blanks the app (#1194)

* feat(app): add a top-level error boundary so a render error no longer blanks the app

Until now any thrown error during render took the whole window down with no recovery (issue #382). A class ErrorBoundary around the authenticated shell catches it and shows a recoverable fallback (Try again / Reload app) while playback keeps going. Hook-free + English-only with literal CSS var() fallbacks so it renders even when i18n/theme/state is what broke.

* docs(changelog): error boundary prevents the app blanking on a render error (PR #1194)
This commit is contained in:
Psychotoxical
2026-06-26 20:51:42 +02:00
committed by GitHub
parent afe5b377e0
commit 014d57c53c
5 changed files with 130 additions and 3 deletions
+6 -3
View File
@@ -32,6 +32,7 @@ import { useMigrationOrchestrator } from '../hooks/useMigrationOrchestrator';
import { IS_WINDOWS } from '../utils/platform';
import TauriEventBridge from './TauriEventBridge';
import AppShell from './AppShell';
import ErrorBoundary from '../components/ErrorBoundary';
import BlockingMigrationGate from './BlockingMigrationGate';
import RequireAuth from './RequireAuth';
import { useMigrationStore } from '../store/migrationStore';
@@ -191,9 +192,11 @@ export default function MainApp() {
path="/*"
element={
<RequireAuth>
<DragDropProvider>
<AppShell />
</DragDropProvider>
<ErrorBoundary>
<DragDropProvider>
<AppShell />
</DragDropProvider>
</ErrorBoundary>
</RequireAuth>
}
/>