Skip to content

feat(sveltekit): Register a route provider backed by reported route ids - #23557

Draft
logaretm wants to merge 1 commit into
awad/route-provider-tanstackfrom
awad/route-provider-sveltekit
Draft

feat(sveltekit): Register a route provider backed by reported route ids#23557
logaretm wants to merge 1 commit into
awad/route-provider-tanstackfrom
awad/route-provider-sveltekit

Conversation

@logaretm

@logaretm logaretm commented Aug 24, 2026

Copy link
Copy Markdown
Member

Registers a route provider for SvelteKit, for both the Kit 2 and Kit 3 variants.

SvelteKit has no public route matcher and page.route.id is not available synchronously, so this is the first cache-backed provider: it answers from route ids the instrumentation has already reported rather than by matching. Both variants already read the route id to rename the span, so they record it on the way through.

Adds createCachedRouteProvider to core for this, since Solid and Angular need the same thing. Keeps the statefulness private to the provider, so the API stays URL in, string out.

Part of #23556

@logaretm
logaretm force-pushed the awad/route-provider-sveltekit branch from cc6c20e to 1d44621 Compare August 24, 2026 20:17
@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size % Change Change
@sentry/browser 28.57 kB - -
@sentry/browser - with treeshaking flags 26.92 kB - -
@sentry/browser - with treeshaking flags tracing without tracing 26.82 kB - -
@sentry/browser (incl. Tracing) 48.34 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 48.36 kB - -
@sentry/browser (incl. Tracing, Profiling) 51.25 kB - -
@sentry/browser (incl. Tracing, Replay) 87.74 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 77.2 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 92.45 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 105.13 kB - -
@sentry/browser (incl. Feedback) 45.81 kB - -
@sentry/browser (incl. sendFeedback) 33.36 kB - -
@sentry/browser (incl. FeedbackAsync) 38.47 kB - -
@sentry/browser (incl. Metrics) 29.52 kB - -
@sentry/browser (incl. Logs) 29.8 kB - -
@sentry/browser (incl. Metrics & Logs) 30.45 kB - -
@sentry/react 30.33 kB - -
@sentry/react (incl. Tracing) 50.52 kB - -
@sentry/vue 35.4 kB - -
@sentry/vue (incl. Tracing) 50.59 kB +0.54% +271 B 🔺
@sentry/svelte 28.6 kB - -
CDN Bundle 30.68 kB +1.21% +366 B 🔺
CDN Bundle (incl. Tracing) 49.24 kB +0.75% +366 B 🔺
CDN Bundle (incl. Logs, Metrics) 32.93 kB +1.21% +393 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics) 51.12 kB +0.76% +385 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics) 73.27 kB +0.5% +363 B 🔺
CDN Bundle (incl. Tracing, Replay) 86.66 kB +0.38% +325 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 88.53 kB +0.44% +380 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) 92.43 kB +0.4% +367 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 94.34 kB +0.36% +335 B 🔺
CDN Bundle - uncompressed 91.14 kB +1.35% +1.21 kB 🔺
CDN Bundle (incl. Tracing) - uncompressed 147.33 kB +0.83% +1.21 kB 🔺
CDN Bundle (incl. Logs, Metrics) - uncompressed 97.44 kB +1.26% +1.21 kB 🔺
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 153.02 kB +0.8% +1.21 kB 🔺
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 226.38 kB +0.54% +1.21 kB 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed 266.6 kB +0.46% +1.21 kB 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 272.28 kB +0.45% +1.21 kB 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 280.3 kB +0.44% +1.21 kB 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 285.96 kB +0.43% +1.21 kB 🔺
@sentry/nextjs (client) 53.31 kB +0.47% +249 B 🔺
@sentry/sveltekit (client) 49.16 kB +0.83% +403 B 🔺
@sentry/core/server 64.95 kB - -
@sentry/core/browser 52.48 kB +0.72% +373 B 🔺
@sentry/node 117.49 kB +0.03% +26 B 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection) 85.18 kB - -
@sentry/node - without tracing 82.03 kB +0.03% +24 B 🔺
@sentry/aws-serverless 91.46 kB +0.03% +20 B 🔺
@sentry/cloudflare (withSentry) - minified 194.68 kB - -
@sentry/cloudflare (withSentry) 481.3 kB - -

View base workflow run

@logaretm
logaretm force-pushed the awad/route-provider-sveltekit branch from 1d44621 to 19e3885 Compare August 24, 2026 20:27
@logaretm
logaretm force-pushed the awad/route-provider-sveltekit branch from 19e3885 to cab886c Compare August 24, 2026 20:52
SvelteKit has no public route matcher and `page.route.id` is not available
synchronously, so the provider answers from route ids the instrumentation has
already seen rather than by matching. Uses core's cached provider, so the
statefulness stays private and the API stays URL in, string out.
@logaretm
logaretm force-pushed the awad/route-provider-sveltekit branch from cab886c to 6a00322 Compare August 24, 2026 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant