Important Changes
-
feat(browser): Add View Hierarchy integration (#14981)
A new
viewHierarchyIntegrationcaptures the DOM structure when an error occurs, providing a snapshot of the page state for debugging. Enable it in your Sentry configuration:import * as Sentry from '@sentry/browser'; Sentry.init({ dsn: '__DSN__', integrations: [Sentry.viewHierarchyIntegration()], });
-
feat(cloudflare): Split alarms into multiple traces and link them (#19373)
Durable Object alarms now create separate traces for each alarm invocation, with proper linking between related alarms for better observability.
-
feat(cloudflare): Enable RPC trace propagation with
enableRpcTracePropagation(#19991, #20345)A new
enableRpcTracePropagationoption enables automatic trace propagation for Cloudflare RPC calls via.fetch(), ensuring distributed traces flow correctly across service bindings. -
feat(core): Add
enableTruncationoption to AI integrations (#20167, #20181, #20182, #20183, #20184)All AI integrations (OpenAI, Anthropic, Google GenAI, LangChain, LangGraph) now support an
enableTruncationoption to control whether large AI inputs/outputs are truncated. -
feat(opentelemetry): Vendor
AsyncLocalStorageContextManager(#20243)The OpenTelemetry context manager is now vendored internally, reducing external dependencies and ensuring consistent behavior across environments.
Other Changes
- feat(core): Export a reusable function to add tracing headers (#20076)
- feat(core): Expose
rewriteSourcestop level option (#20142) - feat(deps): bump defu from 6.1.4 to 6.1.6 (#20104)
- feat(node-native): Add support for V8 v14 (Node v25+) (#20125)
- feat(node): Include global scope for
eventLoopBlockIntegration(#20108) - fix(core, node): Support loading Express options lazily (#20211)
- fix(core): Set
conversation_idonly ongen_aispans (#20274) - fix(core): Use
ai.operationIdfor Vercel AI V6 operation name mapping (#20285) - fix(deno): Avoid inferring invalid span op from Deno tracer (#20128)
- fix(deno): Handle
reader.closedrejection fromreleaseLock()in streaming (#20187) - fix(nextjs): Preserve directive prologues in turbopack loaders (#20103)
- fix(nextjs): Skip custom browser tracing setup for bot user agents (#20263)
- fix(opentelemetry): Use WeakRef for context stored on scope to prevent memory leak (#20328)
- fix(replay): Use live click attributes in breadcrumbs (#20262)
Internal Changes
- chore: Add PR review reminder workflow (#20175)
- chore: Fix lint warnings (#20250)
- chore(bugbot): Add rules to flag test-flake-provoking patterns (#20192)
- chore(ci): Bump actions/cache to v5 and actions/download-artifact to v7 (#20249)
- chore(ci): Bump dorny/paths-filter from v3.0.1 to v4.0.1 (#20251)
- chore(ci): Remove codecov steps from jobs that produce no coverage/JUnit data (#20244)
- chore(ci): Remove craft changelog preview (#20271)
- chore(ci): Remove node-overhead GitHub Action (#20246)
- chore(ci): Replace pr-labels-action with native GitHub expressions (#20252)
- chore(ci): Skip flaky issue creation for optional tests (#20288)
- chore(deps-dev): Bump @sveltejs/kit from 2.53.3 to 2.57.1 (#20216)
- chore(deps-dev): Bump vite from 7.2.0 to 7.3.2 in /dev-packages/e2e-tests/test-applications/tanstackstart-react (#20107)
- chore(deps): Bump axios from 1.13.5 to 1.15.0 (#20180)
- chore(deps): Bump axios from 1.13.5 to 1.15.0 in /dev-packages/e2e-tests/test-applications/nestjs-basic (#20179)
- chore(deps): Bump hono from 4.12.7 to 4.12.12 (#20118)
- chore(deps): Bump hono from 4.12.7 to 4.12.12 in /dev-packages/e2e-tests/test-applications/cloudflare-hono (#20119)
- chore(deps): Bump next from 16.1.7 to 16.2.3 in nextjs-16-cf-workers (#20289)
- chore(size-limit): Bump failing size limit scenario (#20186)
- ci: Add automatic flaky test detector (#18684)
- ci: Extract test names for flaky test issues (#20298)
- ci: Remove Docker container for Verdaccio package publishing (#20329)
- fix(ci): Prevent command injection in ci-metadata workflow (#19899)
- fix(e2e-tests): Remove flaky navigation breadcrumb assertions from parameterized-routes tests (#20202)
- fix(e2e): Add op check to waitForTransaction in React Router e2e tests (#20193)
- fix(node-integration-tests): Fix flaky kafkajs test race condition (#20189)
- ref(core): Add registry in Vercel ai integration (#20098)
- ref(core): Automatically disable truncation when span streaming is enabled in Anthropic AI integration (#20228)
- ref(core): Automatically disable truncation when span streaming is enabled in Google GenAI integration (#20229)
- ref(core): Automatically disable truncation when span streaming is enabled in LangChain integration (#20230)
- ref(core): Automatically disable truncation when span streaming is enabled in LangGraph integration (#20231)
- ref(core): Automatically disable truncation when span streaming is enabled in OpenAI integration (#20227)
- ref(core): Automatically disable truncation when span streaming is enabled in Vercel AI integration (#20232)
- ref(core): Merge embeddings operations constants (#20095)
- ref(core): Remove unused constants from vercel-ai-attributes.ts (#20096)
- ref(nextjs): Refactor
findInjectionIndexAfterDirectivesfor better readability (#20310) - ref(opentelemetry): Replace
@opentelemetry/resourceswith inlinegetSentryResource()(#20327) - test: Fix flaky ANR test by increasing blocking duration (#20239)
- test(bun): Add bun integration test folder (#20286)
- test(cloudflare): Skip flaky durableobject-spans test (#20282)
- test(openai): Use multi-message scenario in no-truncation test (#20194)
- test(react): Remove duplicated test mock (#20200)
- tests(ai): Fix streaming+truncation integration tests across AI integrations (#20326)
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser | 25.18 KB |
| @sentry/browser - with treeshaking flags | 23.71 KB |
| @sentry/browser (incl. Tracing) | 42.59 KB |
| @sentry/browser (incl. Tracing + Span Streaming) | 44.26 KB |
| @sentry/browser (incl. Tracing, Profiling) | 47.37 KB |
| @sentry/browser (incl. Tracing, Replay) | 80.8 KB |
| @sentry/browser (incl. Tracing, Replay) - with treeshaking flags | 70.55 KB |
| @sentry/browser (incl. Tracing, Replay with Canvas) | 85.38 KB |
| @sentry/browser (incl. Tracing, Replay, Feedback) | 97.34 KB |
| @sentry/browser (incl. Feedback) | 41.59 KB |
| @sentry/browser (incl. sendFeedback) | 29.74 KB |
| @sentry/browser (incl. FeedbackAsync) | 34.62 KB |
| @sentry/browser (incl. Metrics) | 26.44 KB |
| @sentry/browser (incl. Logs) | 26.57 KB |
| @sentry/browser (incl. Metrics & Logs) | 27.24 KB |
| @sentry/react | 26.89 KB |
| @sentry/react (incl. Tracing) | 44.81 KB |
| @sentry/vue | 29.89 KB |
| @sentry/vue (incl. Tracing) | 44.38 KB |
| @sentry/svelte | 25.2 KB |
| CDN Bundle | 27.79 KB |
| CDN Bundle (incl. Tracing) | 43.64 KB |
| CDN Bundle (incl. Logs, Metrics) | 29.13 KB |
| CDN Bundle (incl. Tracing, Logs, Metrics) | 44.7 KB |
| CDN Bundle (incl. Replay, Logs, Metrics) | 67.12 KB |
| CDN Bundle (incl. Tracing, Replay) | 79.74 KB |
| CDN Bundle (incl. Tracing, Replay, Logs, Metrics) | 80.79 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 85.13 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) | 86.17 KB |
| CDN Bundle - uncompressed | 81.17 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 130.51 KB |
| CDN Bundle (incl. Logs, Metrics) - uncompressed | 85.22 KB |
| CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed | 133.84 KB |
| CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed | 205.7 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 244.99 KB |
| CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed | 248.31 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 257.6 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed | 260.91 KB |
| @sentry/nextjs (client) | 47.28 KB |
| @sentry/sveltekit (client) | 43.02 KB |
| @sentry/node-core | 56.58 KB |
| @sentry/node | 170.68 KB |
| @sentry/node - without tracing | 95.57 KB |
| @sentry/aws-serverless | 112.42 KB |