feat(browser): @maple-dev/browser/react with error boundary and router adapters - #1153
Merged
Makisuo merged 3 commits intoSep 29, 2026
Merged
Maple Review Bot / Maple / review
succeeded
Sep 29, 2026 in 2m 5s
Confidence 5/5 · No issues found
Confidence 5/5 · safe to merge
quality 100/100 · no findings · tests covered · risk low · 2/2 new units observable
Only packages/browser/src/error-filters.ts and its test changed since the last review: matches now resets lastIndex before test, so a global or sticky ignore/allowUrls/denyUrls regex drops every matching error instead of every other one. The fix and its regression test are both correct; safe to merge.
matchesresetspattern.lastIndexbeforetest, fixing statefulg/yfilter regexes- New test asserts a
/chunk/giignore drops three consecutive errors
What was checked
matches(error-filters.ts:55) is the only regex call in the file;BENIGN_MESSAGESandEXTENSION_URL(lines 37-38) carry nog/y, so they need no reset- The regression test at
error-filters.test.ts:83fails against the pre-fix code: the oldpattern.testkept the 2nd of three matches shouldCapturestill treats a missing top frame as keep, andallowUrls/denyUrlsare still top-frame only (error-filters.ts:82-83)
Observability coverage: 2 of 2 changes observable
| Change | Kind | Observable | Evidence |
|---|---|---|---|
| React error boundary + root error handler reporting | error span | yes | reportReactError -> MapleBrowser.captureException with name react.render_error (react.ts:11-21) |
| Router navigation spans (React Router, TanStack Router) | navigation span | yes | MapleBrowser.startNavigation/endNavigation (react.ts:112-190) |
9ec3c09 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple to ask about one.
Loading