Important Changes
-
feat(core): Apply scope attributes to logs (#18184)
You can now set attributes on the SDK's scopes which will be applied to all logs as long as the respective scopes are active. For the time being, only
string,numberandbooleanattribute values are supported.Sentry.geGlobalScope().setAttributes({ is_admin: true, auth_provider: 'google' }); Sentry.withScope(scope => { scope.setAttribute('step', 'authentication'); // scope attributes `is_admin`, `auth_provider` and `step` are added Sentry.logger.info(`user ${user.id} logged in`, { activeSince: 100 }); Sentry.logger.info(`updated ${user.id} last activity`); }); // scope attributes `is_admin` and `auth_provider` are added Sentry.logger.warn('stale website version, reloading page');
-
feat(replay): Add Request body with
attachRawBodyFromRequestoption (#18501)To attach the raw request body (from
Requestobjects passed as the firstfetchargument) to replay events, you can now use theattachRawBodyFromRequestoption in the Replay integration:Sentry.init({ integrations: [ Sentry.replayIntegration({ attachRawBodyFromRequest: true, }), ], });
-
feat(tanstackstart-react): Trace server functions (#18500)
To enable tracing for server-side requests, you can now explicitly define a server entry point in your application and wrap your request handler with
wrapFetchWithSentry.// src/server.ts import { wrapFetchWithSentry } from '@sentry/tanstackstart-react'; import handler, { createServerEntry } from '@tanstack/react-start/server-entry'; export default createServerEntry( wrapFetchWithSentry({ fetch(request: Request) { return handler.fetch(request); }, }), );
-
feat(vue): Add TanStack Router integration (#18547)
The
@sentry/vuepackage now includes support for TanStack Router. UsetanstackRouterBrowserTracingIntegrationto automatically instrument pageload and navigation transactions with parameterized routes:import { createApp } from 'vue'; import { createRouter } from '@tanstack/vue-router'; import * as Sentry from '@sentry/vue'; import { tanstackRouterBrowserTracingIntegration } from '@sentry/vue/tanstackrouter'; const router = createRouter({ // your router config }); Sentry.init({ app, dsn: '__PUBLIC_DSN__', integrations: [tanstackRouterBrowserTracingIntegration(router)], tracesSampleRate: 1.0, });
Other Changes
- feat(core): Capture initialize attributes on MCP servers (#18531)
- feat(nextjs): Extract tracing logic from server component wrapper templates (#18408)
- feat(nextjs): added webpack treeshaking flags as config (#18359)
- fix(solid/tanstackrouter): Ensure web vitals are sent on pageload (#18542)
Internal Changes
- chore(changelog): Add entry for scope attributes (#18555)
- chore(changelog): Add entry for tanstack start wrapFetchWithSentry (#18558)
- chore(deps): bump @trpc/server from 10.45.2 to 10.45.3 in /dev-packages/e2e-tests/test-applications/node-express-incorrect-instrumentation (#18530)
- chore(deps): bump @trpc/server from 10.45.2 to 10.45.3 in /dev-packages/e2e-tests/test-applications/node-express-v5 (#18550)
- chore(e2e): Pin to react-router 7.10.1 in spa e2e test (#18548)
- chore(e2e): Remove check on
http.response_content_length_uncompressed(#18536) - chore(github): Add "Closes" to PR template (#18538)
- test(cloudflare-mcp): Unpin mcp sdk (#18528)
- test(nextjs): Add e2e tests for server component spans in next 16 (#18544)
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser | 24.24 KB |
| @sentry/browser - with treeshaking flags | 22.77 KB |
| @sentry/browser (incl. Tracing) | 40.62 KB |
| @sentry/browser (incl. Tracing, Profiling) | 45.12 KB |
| @sentry/browser (incl. Tracing, Replay) | 78.3 KB |
| @sentry/browser (incl. Tracing, Replay) - with treeshaking flags | 68.28 KB |
| @sentry/browser (incl. Tracing, Replay with Canvas) | 82.88 KB |
| @sentry/browser (incl. Tracing, Replay, Feedback) | 94.82 KB |
| @sentry/browser (incl. Feedback) | 40.56 KB |
| @sentry/browser (incl. sendFeedback) | 28.82 KB |
| @sentry/browser (incl. FeedbackAsync) | 33.7 KB |
| @sentry/react | 25.92 KB |
| @sentry/react (incl. Tracing) | 42.77 KB |
| @sentry/vue | 28.6 KB |
| @sentry/vue (incl. Tracing) | 42.39 KB |
| @sentry/svelte | 24.25 KB |
| CDN Bundle | 26.62 KB |
| CDN Bundle (incl. Tracing) | 41.25 KB |
| CDN Bundle (incl. Tracing, Replay) | 77.1 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 82.44 KB |
| CDN Bundle - uncompressed | 78.18 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 122.47 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 236.27 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 248.74 KB |
| @sentry/nextjs (client) | 44.93 KB |
| @sentry/sveltekit (client) | 40.98 KB |
| @sentry/node-core | 50.4 KB |
| @sentry/node | 157.71 KB |
| @sentry/node - without tracing | 90.87 KB |
| @sentry/aws-serverless | 106.02 KB |