Features
-
Aggregate TurboModule call counts + latency per
(module, method, kind)and flush them on transaction finish and on a lazy periodic timer (#6377)Counters land on the finishing transaction as a synthetic
turbo_modules.aggregatechild span (per-call breakdown in span attributes) plus headline measurements on the root span (turbo_modules.call_count,turbo_modules.error_count,turbo_modules.total_ms,turbo_modules.top_module_ms). Long-running sessions without transactions emit a periodic info-level event (default every 30s, only when there's data).Sentry.init({ integrations: [ Sentry.turboModuleContextIntegration({ // optional knobs (defaults shown): enableAggregateStats: true, aggregateFlushIntervalMs: 30_000, ignoreTurboModules: ['RNSentry'], }), ], });
-
Add
Sentry.reportFullyDisplayed()imperative API for signaling Time to Full Display (#6419) -
Add
enableHistoricalTombstoneReportingoption to report historical tombstones from Android'sApplicationExitInfo(#6450)
Fixes
- Fix iOS time-to-initial-display fallback spans reporting a spurious
deadline_exceededstatus and inflated duration (#6438) - Fix
TypeErrorwhenshowFeedbackForm/showFeedbackButton/showScreenshotButtonis called beforeFeedbackFormProvidermounts (#6435) - Fix orphaned TTID/TTFD spans in the trace view (#6437)
- Fix iOS retain cycle in
RNSentryOnDrawReporterViewleaking TTID/TTFD reporter views and their frame-tracker listeners (#6449) - Fix
expoRouterIntegrationbailing out on cold start whenSentry.init()runs before Expo Router's Root Layout mounts — thestore.navigationRefcheck is now retried until both the ref and its.currentare populated (#6451) - Fix
reactNavigationIntegrationreading a stale route from an override provider (e.g.expoRouterIntegration), causing navigation transactions to be named/attributed for the previous route (#6458)
Internal
- Migrate iOS code from the deprecated
PrivateSentrySDKOnlySPI (andSentrySwizzle.hmacro) to the newSentrySDK.internalSwift API exposed by sentry-cocoa 9.19.0, via a thin in-pod ObjC↔Swift bridge (#6380)