"You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott
Work in this release was contributed by @hyunbinseo. Thank you for your contribution!
10.61.0
Important Changes
feat(core): Enable streamGenAiSpans by default (#21732)
The SDK now extracts all gen_ai spans out of a transaction and sends them as v2 envelope items by default. This prevents gen_ai spans from being dropped when the transaction payload exceeds size limits. Because they are no longer constrained by transaction size limits, AI message data is also no longer truncated by default. Set enableTruncation: true on the respective AI integration to re-enable truncation. To keep the previous behavior, set streamGenAiSpans: false.
Self-hosted Sentry users should opt out with streamGenAiSpans: false, since streamed gen_ai spans may not be ingested by their Sentry instance.
Other Changes
feat(cloudflare): Add batch, exec, and withSession D1 instrumentation (#21292)
feat(cloudflare): Instrument SQL API in sqlite durable objects (#21656)
@sentry/react now exports version-agnostic wrappers for React Router v6+ SPA instrumentation.
The new exports replace the version-specific V6/V7 variants, which are now deprecated:
Deprecated
New
reactRouterV6BrowserTracingIntegration / V7
reactRouterBrowserTracingIntegration
withSentryReactRouterV6Routing / V7
wrapReactRouterRouting
wrapCreateBrowserRouterV6 / V7
wrapCreateBrowserRouter
wrapCreateMemoryRouterV6 / V7
wrapCreateMemoryRouter
wrapUseRoutesV6 / V7
wrapUseRoutes
The deprecated exports continue to work and will be removed in the next major version.
docs: Clarify comment and PR-body guidelines for agents (#21596)
feat(deps-dev): Bump @sveltejs/kit from 2.53.3 to 2.60.1 in /dev-packages/e2e-tests/test-applications/sveltekit-2-svelte-5 (#21212)
feat(deps-dev): Bump esbuild from 0.19.12 to 0.28.1 in /dev-packages/e2e-tests/test-applications/create-remix-app-express-vite-dev (#21512)
feat(deps): Bump @babel/core from 7.29.0 to 7.29.6 ()
</details>
10.58.0
Important Changes
feat(hono): Add support for the Deno runtime (#21450)
@sentry/hono now supports the Deno runtime via a new @sentry/hono/deno entry point.
Install @sentry/deno as a peer dependency and initialize Sentry through the sentry() middleware:
import { Hono } from 'hono';import { sentry } from '@sentry/hono/deno';const app = new Hono();app.use( sentry(app, { dsn: '__DSN__', // or Deno.env.get('SENTRY_DSN') tracesSampleRate: 1.0,
Other Changes
feat(hono): Add HTTP connection info to server spans (#21408)
feat(node-core): Attach log message and fields to pino error events (#21422)
feat(react-router): Always build client instrumentation and deprecate useInstrumentationAPI (#21432)
feat(react-router): Rename client navigation roots from the route pattern (#21463)
ci(deps): Bump actions/github-script from 7 to 9 (#21300)
ci(deps): Bump anthropics/claude-code-action from 1.0.124 to 1.0.142 (#21445)
feat(deps): Bump shell-quote from 1.8.3 to 1.8.4 (#21412)
feat(deps): Bump the remix group with 4 updates (#21447)
</details>
10.57.0
Important Changes
feat(angular): Add support for Angular 22 (#21330)
@sentry/angular now officially supports Angular 22.
ref(core): Deprecate sendDefaultPii in favor of dataCollection (#21277)
sendDefaultPii is deprecated and will be removed in v11. The new dataCollection option lets you control each category of collected data.
sendDefaultPii: true still works and maps to enabling all dataCollection categories.
dataCollection.userInfo defaults to true when dataCollection is provided, meaning auto-populated user.* fields (e.g. IP address from a request) are collected by default.
Data you set explicitly (like via Sentry.setUser()) is always sent regardless.
When dataCollection is not set at all, the legacy sendDefaultPii behavior applies (userInfo: false by default) to preserve backward compatibility.
Note that an empty dataCollection: {} falls back to more permissive defaults than sendDefaultPii: false, so replicate the old behavior by opting out explicitly:
test(browser): Add unit test for http client header collection behavior (#21273)
</details>
10.55.0
Important Changes
feat(hono): Promote @sentry/hono to stable and deprecate honoIntegration (#21208)
The @sentry/hono SDK is now stable. See the Sentry Hono SDK docs to get started.
docs(tanstackstart-react): Promote SDK status to beta (#21175)
This release promotes the @sentry/tanstackstart-react SDK to beta. For details on how to use it, check out the
Sentry TanStack Start SDK docs. Please reach out on
GitHub if you have any feedback or concerns.
feat(hono): Add shouldHandleError option to sentry() middleware (#21205)
The sentry() middleware now accepts a shouldHandleError callback to control which errors are captured and sent to Sentry. By default, 3xx/4xx HTTP errors are ignored and 5xx errors and plain Error objects are captured. Return true from the callback to capture an error, false to suppress it.
feat(react-router): Stabilize the instrumentation API (#21470)
React Router's instrumentation API is now stable — the @experimental markers have been removed from createSentryServerInstrumentation, createSentryClientInstrumentation, and the related helpers and types.
The manual server wrappers wrapServerLoader and wrapServerAction are now deprecated in favor of it. Export instrumentations = [Sentry.createSentryServerInstrumentation()] from your entry.server.tsx to instrument all loaders and actions without wrapping them individually.
perf(core): Reuse unchanged Vercel AI messages JSON
feat(nestjs): Migrate vendored nest instrumentation to Sentry APIs (#21516)
ref: Remove unused SENTRY_BUILD_PRESERVE_MODULES env check from rollup configs (#21487)
Server and client traces are now automatically connected, allowing you to see the full request lifecycle from server-side rendering through client-side hydration in a single trace.
Server transaction names are now parametrized automatically (e.g., GET /users/123 becomes GET /users/$userId), improving transaction grouping in Sentry.
feat(tanstackstart-react): Show readable server function names in traces (#21190)
Server function spans now show human-readable names (e.g., GET /_serverFn/greet instead of GET /_serverFn/a10e70b3...). The tanstackstart.function.hash.sha256 span attribute has been renamed to tanstackstart.function.id.