Repository navigation
feat(browser): Vue Router and Nuxt integration entries - #1131
Open
JeremyFunk wants to merge 3 commits into
Open
JeremyFunk wants to merge 3 commits into
JeremyFunk wants to merge 3 commits into
Maple Review Bot / Maple / review
succeeded
Sep 29, 2026 in 8m 41s
Confidence 4/5 · No issues found
Confidence 4/5 · likely safe to merge
Guard, redirect, cancellation and error-handoff paths are all exercised by the new browser tests against Vue Router 4 and 5.
quality 100/100 · no findings · tests covered · risk medium · 3/3 new units observable
Adds /vue and /nuxt entries to @maple-dev/browser (router navigation spans, Vue error reporting, Nitro Server-Timing, SSR span naming), with peer deps, exports and knip wiring. Contained to the browser SDK and safe to merge.
traceRouteropens one navigation span per Vue Router navigation, named from the route templateMapleVue/reportVueErrorreport Vue-caught errors asvue.error, handing them back to VuenameSsrSpanrenames the Nitro request span tossr <route>mapleNitroPluginappends atraceparentServer-Timing entry to rendered pages
What was checked
traceRouteridempotence and the origin-identity redirect tracking (vue/index.ts:32,:22, tests atvue/index.browser.test.ts:166,:176)MapleVuerethrow matches Vue'scallWithErrorHandling(appErrorHandler…)path, so an unhandled error still reaches Vue's default handlingnameSsrSpan/mapleNitroPluginleave an unmatched URL and a response with no active span unchanged (nuxt/index.test.ts:71,:101)
Observability coverage: 3 of 3 changes observable
| Change | Kind | Observable | Evidence |
|---|---|---|---|
traceRouter navigation spans (vue/index.ts) |
client navigation | yes | startNavigation/endNavigation on Maple's tracer; guard errors recorded via captureException as vue_router.error |
MapleVue / reportVueError (vue/index.ts) |
client error capture | yes | captureException(error, { name: "vue.error", attributes: { "vue.error.info": info } }) |
mapleNitroPlugin / nameSsrSpan (nuxt/index.ts) |
server render hook | yes | serverTiming() on render:response; trace.getActiveSpan()?.updateName("ssr <route>") |
7be71cb · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple to ask about one.
Loading