Important Changes
- feat(browser): Add support for GraphQL persisted operations (#18505)
The graphqlClientIntegration now supports GraphQL persisted operations (queries). When a persisted query is detected, the integration will capture the operation hash and version as span attributes:
graphql.persisted_query.hash.sha256- The SHA-256 hash of the persisted querygraphql.persisted_query.version- The version of the persisted query protocol
Additionally, the graphql.document attribute format has changed to align with OpenTelemetry semantic conventions. It now contains only the GraphQL query string instead of the full JSON request payload.
Before:
:::javascript
"graphql.document": "{\"query\":\"query Test { user { id } }\"}"
After:
:::javascript
"graphql.document": "query Test { user { id } }"
Other Changes
- feat(node): Support
propagateTraceparentoption (#18476) - feat(bun): Expose spotlight option in TypeScript (#18436)
- feat(core): Add additional exports for
captureExceptionandcaptureMessageparameter types (#18521) - feat(core): Export
captureExceptionandcaptureMessageparameter types (#18509) - feat(core): Parse individual cookies from cookie header (#18325)
- feat(node): Add instrument OpenAI export to node (#18461)
- feat(nuxt): Bump
@sentry/vite-pluginand@sentry/rollup-pluginto 4.6.1 (#18349) - feat(profiling): Add support for Node v24 in the prune script (#18447)
- feat(tracing): strip inline media from messages (#18413)
- feat(node): Add ESM support for postgres.js instrumentation (#17961)
- fix(browser): Stringify span context in linked traces log statement (#18376)
- fix(google-cloud-serverless): Move @types/express to optional peerDeps (#18452)
- fix(node-core): passthrough node-cron context (#17835)
- fix(tanstack-router): Check for
fromLocationexistence before reporting pageload (#18463) - fix(tracing): add system prompt, model to google genai (#18424)
- fix(tracing): Set span operations for AI spans with model ID only (#18471)
- ref(browser): Improve profiling debug statement (#18507)
Internal Changes
- chore: Add external contributor to CHANGELOG.md ([#18473](https://github.com/getsentry/sentry-javascript/pull/18473)) - chore: upgrade Playwright to ~1.56.0 for WSL2 compatibility ([#18468](https://github.com/getsentry/sentry-javascript/pull/18468)) - chore(bugbot): Add testing conventions code review rules ([#18433](https://github.com/getsentry/sentry-javascript/pull/18433)) - chore(deps): bump next from 14.2.25 to 14.2.35 in /dev-packages/e2e-tests/test-applications/create-next-app ([#18494](https://github.com/getsentry/sentry-javascript/pull/18494)) - chore(deps): bump next from 14.2.32 to 14.2.35 in /dev-packages/e2e-tests/test-applications/nextjs-orpc ([#18520](https://github.com/getsentry/sentry-javascript/pull/18520)) - chore(deps): bump next from 14.2.32 to 14.2.35 in /dev-packages/e2e-tests/test-applications/nextjs-pages-dir ([#18496](https://github.com/getsentry/sentry-javascript/pull/18496)) - chore(deps): bump next from 15.5.7 to 15.5.9 in /dev-packages/e2e-tests/test-applications/nextjs-15 ([#18482](https://github.com/getsentry/sentry-javascript/pull/18482)) - chore(deps): bump next from 15.5.7 to 15.5.9 in /dev-packages/e2e-tests/test-applications/nextjs-15-intl ([#18483](https://github.com/getsentry/sentry-javascript/pull/18483)) - chore(deps): bump next from 16.0.7 to 16.0.9 in /dev-packages/e2e-tests/test-applications/nextjs-16 ([#18480](https://github.com/getsentry/sentry-javascript/pull/18480)) - chore(deps): bump next from 16.0.7 to 16.0.9 in /dev-packages/e2e-tests/test-applications/nextjs-16-cacheComponents ([#18479](https://github.com/getsentry/sentry-javascript/pull/18479)) - chore(deps): bump next from 16.0.7 to 16.0.9 in /dev-packages/e2e-tests/test-applications/nextjs-16-tunnel ([#18481](https://github.com/getsentry/sentry-javascript/pull/18481)) - chore(deps): bump next from 16.0.9 to 16.0.10 in /dev-packages/e2e-tests/test-applications/nextjs-16 ([#18514](https://github.com/getsentry/sentry-javascript/pull/18514)) - chore(deps): bump next from 16.0.9 to 16.0.10 in /dev-packages/e2e-tests/test-applications/nextjs-16-tunnel ([#18487](https://github.com/getsentry/sentry-javascript/pull/18487)) - chore(tests): Added test variant flag ([#18458](https://github.com/getsentry/sentry-javascript/pull/18458)) - test(cloudflare-mcp): Pin mcp sdk to 1.24.0 ([#18524](https://github.com/getsentry/sentry-javascript/pull/18524))Work in this release was contributed by @sebws and @TBeeren. Thank you for your contributions!
Bundle size 📦
| Path | Size |
|---|---|
| @sentry/browser | 24.23 KB |
| @sentry/browser - with treeshaking flags | 22.76 KB |
| @sentry/browser (incl. Tracing) | 40.58 KB |
| @sentry/browser (incl. Tracing, Profiling) | 45.08 KB |
| @sentry/browser (incl. Tracing, Replay) | 78.1 KB |
| @sentry/browser (incl. Tracing, Replay) - with treeshaking flags | 68.07 KB |
| @sentry/browser (incl. Tracing, Replay with Canvas) | 82.67 KB |
| @sentry/browser (incl. Tracing, Replay, Feedback) | 94.62 KB |
| @sentry/browser (incl. Feedback) | 40.54 KB |
| @sentry/browser (incl. sendFeedback) | 28.8 KB |
| @sentry/browser (incl. FeedbackAsync) | 33.68 KB |
| @sentry/react | 25.9 KB |
| @sentry/react (incl. Tracing) | 42.73 KB |
| @sentry/vue | 28.58 KB |
| @sentry/vue (incl. Tracing) | 42.35 KB |
| @sentry/svelte | 24.24 KB |
| CDN Bundle | 26.59 KB |
| CDN Bundle (incl. Tracing) | 41.23 KB |
| CDN Bundle (incl. Tracing, Replay) | 76.9 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 82.23 KB |
| CDN Bundle - uncompressed | 78.15 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 122.44 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 235.75 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 248.21 KB |
| @sentry/nextjs (client) | 44.9 KB |
| @sentry/sveltekit (client) | 40.94 KB |
| @sentry/node-core | 50.39 KB |
| @sentry/node | 157.7 KB |
| @sentry/node - without tracing | 90.85 KB |
| @sentry/aws-serverless | 106 KB |