Flea Flicker d7faa617df
CI / Test (pull_request) Successful in 18s
CI / Lint & Typecheck (pull_request) Successful in 26s
CI / Build & Push Docker Image (pull_request) Successful in 47s
fix(GRO-2094): instrument bootstrap with global error + ErrorBoundary
The bundle at /login was executing but the React tree never painted —
no console errors, no fallback UI, just an empty <div id='root'>.
Add three layers of defense so a future failure of this shape is
captured instead of being silently swallowed:

  1. window 'error' and 'unhandledrejection' listeners in main.tsx,
     printing structured context to console.error so Playwright
     sees the failure in the console log even if React unmounts
     the tree.

  2. A top-level <ErrorBoundary> in main.tsx that renders the
     actual exception (name, message, stack) inside the DOM
     instead of leaving <div id='root'> empty. The boundary also
     logs to console.error via componentDidCatch.

  3. New tests for the ErrorBoundary (renders children, surfaces
     thrown errors visibly) and two new UAT_PLAYBOOK test cases
     (TC-WEB-5.1.6 / 5.1.7) that explicitly assert the
     'never-blank-root' invariant on UAT.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-02 16:05:15 +00:00
2026-05-02 21:35:00 +00:00
2026-05-14 17:42:22 +00:00

web

GroomBook web app (extracted from groombook/app monorepo)

S
Description
GroomBook web app (extracted from groombook/app monorepo)
Readme 42 MiB
Languages
TypeScript 99.5%
CSS 0.3%