Ensure the app degrades gracefully when route-level errors, async fetch failures, or unexpected client crashes occur, while preserving a usable recovery path.
- Affected files: app/frontend/src/components/ErrorBoundary.tsx, app/frontend/src/components/ErrorReportingShell.tsx, app/frontend/src/app/layout.tsx, app/frontend/src/app/page.tsx, app/frontend/src/lib/errorReporter.ts, app/frontend/src/hooks/analyticsApi.ts, app/frontend/src/app/marketplace/page.tsx, app/frontend/src/app/settings/page.tsx, app/frontend/src/components/NotificationCenterProvider.tsx
- Acceptance criteria:
- Uncaught route or component errors are captured and shown with a clear fallback state instead of leaving the app blank.
- Error payloads include route context, code origin, and enough metadata for triage without exposing secrets.
- Recovery mechanisms are tested for a representative set of client-side failures.
Ensure the app degrades gracefully when route-level errors, async fetch failures, or unexpected client crashes occur, while preserving a usable recovery path.