Important Changes
-
feat(core): Apply scope attributes to metrics (#18738)
You can now set attributes on the SDK's scopes which will be applied to all metrics as long as the respective scopes are active. For the time being, only
string,numberandbooleanattribute values are supported.Sentry.getGlobalScope().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.metrics.count('clicks', 1, { attributes: { activeSince: 100 } }); Sentry.metrics.gauge('timeSinceRefresh', 4, { unit: 'hour' }); }); // scope attributes `is_admin` and `auth_provider` are added Sentry.metrics.count('response_time', 283.33, { unit: 'millisecond' });
-
feat(tracing): Add Vercel AI SDK v6 support (#18741)
The Sentry SDK now supports the Vercel AI SDK v6. Tracing and error monitoring will work automatically with the new version.
-
feat(wasm): Add applicationKey option for third-party error filtering (#18762)
Adds support for applying an application key to WASM stack frames that can be then used in the
thirdPartyErrorFilterIntegrationfor detection of first-party code.Usage:
Sentry.init({ integrations: [ // Integration order matters: wasmIntegration needs to be before thirdPartyErrorFilterIntegration wasmIntegration({ applicationKey: 'your-custom-application-key' }), ←───┐ thirdPartyErrorFilterIntegration({ │ behaviour: 'drop-error-if-exclusively-contains-third-party-frames', ├─ matching keys filterKeys: ['your-custom-application-key'] ←─────────────────────────┘ }), ], });
Other Changes
- feat(cloudflare): Support
propagateTraceparent(#18569) - feat(core): Add
ignoreSentryInternalFramesoption tothirdPartyErrorFilterIntegration(#18632) - feat(core): Add gen_ai.conversation.id attribute to OpenAI and LangGr… (#18703)
- feat(core): Add recordInputs/recordOutputs options to MCP server wrapper (#18600)
- feat(core): Support IPv6 hosts in the DSN (#2996) (#17708)
- feat(deps): Bump bundler plugins to ^4.6.1 (#17980)
- feat(nextjs): Emit warning for conflicting treeshaking / debug settings (#18638)
- feat(nextjs): Print Turbopack note for deprecated webpack options (#18769)
- feat(node-core): Add
isolateTraceoption tonode-croninstrumentation (#18416) - feat(node): Use
process.on('SIGTERM')for flushing in Vercel functions (#17583) - feat(nuxt): Detect development environment and add dev E2E test (#18671)
- fix(browser): Forward worker metadata for third-party error filtering (#18756)
- fix(browser): Reduce number of
visibilitystateandpagehidelisteners (#18581) - fix(browser): Respect
tunnelindiagnoseSdkConnectivity(#18616) - fix(cloudflare): Consume body of fetch in the Cloudflare transport (#18545)
- fix(core): Set op on ended Vercel AI spans (#18601)
- fix(core): Subtract
performance.now()frombrowserPerformanceTimeOriginfallback (#18715) - fix(core): Update client options to allow explicit
undefined(#18024) - fix(feedback): Fix cases where the outline of inputs were wrong (#18647)
- fix(next): Ensure inline sourcemaps are generated for wrapped modules in Dev (#18640)
- fix(next): Wrap all Random APIs with a safe runner (#18700)
- fix(nextjs): Avoid Edge build warning from OpenTelemetry
process.argv0(#18759) - fix(nextjs): Remove polynomial regular expression (#18725)
- fix(node-core): Ignore worker threads in OnUncaughtException (#18689)
- fix(node): relax Fastify's
setupFastifyErrorHandlerargument type (#18620) - fix(nuxt): Allow overwriting server-side
defaultIntegrations(#18717) - fix(pino): Allow custom namespaces for
msganderr(#18597) - fix(react,solid,vue): Fix parametrization behavior for non-matched routes (#18735)
- fix(replay): Ensure replays contain canvas rendering when resumed after inactivity (#18714)
- fix(tracing): add gen_ai.request.messages.original_length attributes (#18608)
- ref(nextjs): Drop
resolvedependency (#18618) - ref(react-router): Use snake_case for span op names (#18617)
Internal Changes
- chore(bun): Fix
install-bun.jsversion check and improve upgrade feedback (#18492) - chore(changelog): Fix typo (#18648)
- chore(craft): Use version templating for aws layer (#18675)
- chore(deps): Bump IITM to ^2.0.1 (#18599)
- chore(e2e-tests): Upgrade
@trpc/serverand@trpc/client(#18722) - chore(e2e): Unpin react-router-7-framework-spa to ^7.11.0 (#18551)
- chore(nextjs): Bump next version in dev deps (#18661)
- chore(node-tests): Upgrade
@langchain/core(#18720) - chore(react): Inline
hoist-non-react-staticspackage (#18102) - chore(size-limit): Add size checks for metrics and logs (#18573)
- chore(tests): Add unordered mode to cloudflare test runner (#18596)
- ci(deps): bump actions/cache from 4 to 5 (#18654)
- ci(deps): Bump actions/create-github-app-token from 2.2.0 to 2.2.1 (#18656)
- ci(deps): bump actions/upload-artifact from 5 to 6 (#18655)
- ci(deps): bump peter-evans/create-pull-request from 7.0.9 to 8.0.0 (#18657)
- doc: E2E testing documentation updates (#18649)
- ref(core): Extract and reuse
getCombinedScopeDatahelper (#18585) - ref(core): Remove dependence between
performance.timeOriginandperformance.timing.navigationStart(#18710) - ref(core): Streamline and test
browserPerformanceTimeOrigin(#18708) - ref(core): Strengthen
browserPerformanceTimeOriginreliability check (#18719) - ref(core): Use
serializeAttributesfor metric attribute serialization (#18582) - ref(node): Remove duplicate function
isCjs(#18662) - test(core): Improve unit test performance for offline transport tests (#18628)
- test(core): Use fake timers in promisebuffer tests to ensure deterministic behavior (#18659)
- test(e2e): Add e2e metrics tests in Next.js 16 (#18643)
- test(e2e): Pin agents package in cloudflare-mcp test (#18609)
- test(e2e): Pin solid/vue tanstack router to 1.41.8 (#18610)
- test(nestjs): Add canary test for latest (#18685)
- test(node-native): Increase worker block timeout (#18683)
- test(nuxt): Fix nuxt-4 dev E2E test (#18737)
- test(tanstackstart-react): Add canary test for latest (#18686)
- test(vue): Added canary and latest test variants to Vue tests (#18681)
Work in this release was contributed by @G-Rath, @gianpaj, @maximepvrt, @Mohataseem89, @sebws, and @xgedev. Thank you for your contributions!
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser | 24.37 KB |
| @sentry/browser - with treeshaking flags | 22.92 KB |
| @sentry/browser (incl. Tracing) | 40.71 KB |
| @sentry/browser (incl. Tracing, Profiling) | 45.19 KB |
| @sentry/browser (incl. Tracing, Replay) | 78.43 KB |
| @sentry/browser (incl. Tracing, Replay) - with treeshaking flags | 68.37 KB |
| @sentry/browser (incl. Tracing, Replay with Canvas) | 83 KB |
| @sentry/browser (incl. Tracing, Replay, Feedback) | 94.93 KB |
| @sentry/browser (incl. Feedback) | 40.7 KB |
| @sentry/browser (incl. sendFeedback) | 28.95 KB |
| @sentry/browser (incl. FeedbackAsync) | 33.82 KB |
| @sentry/browser (incl. Metrics) | 25.44 KB |
| @sentry/browser (incl. Logs) | 25.59 KB |
| @sentry/browser (incl. Metrics & Logs) | 26.22 KB |
| @sentry/react | 26.05 KB |
| @sentry/react (incl. Tracing) | 42.9 KB |
| @sentry/vue | 28.72 KB |
| @sentry/vue (incl. Tracing) | 42.5 KB |
| @sentry/svelte | 24.39 KB |
| CDN Bundle | 26.83 KB |
| CDN Bundle (incl. Tracing) | 41.46 KB |
| CDN Bundle (incl. Tracing, Replay) | 77.31 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 82.6 KB |
| CDN Bundle - uncompressed | 78.62 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 122.94 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 236.75 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 249.24 KB |
| @sentry/nextjs (client) | 45.2 KB |
| @sentry/sveltekit (client) | 41.08 KB |
| @sentry/node-core | 50.59 KB |
| @sentry/node | 158.26 KB |
| @sentry/node - without tracing | 91.06 KB |
| @sentry/aws-serverless | 106.2 KB |