Skip to content

[DO NOT MERGE] test(deps): Validate @sentry/* 11.0.0-beta.1 compatibility - #6682

Draft
antonis wants to merge 12 commits into
mainfrom
chore/js-11-beta-1-compat
Draft

[DO NOT MERGE] test(deps): Validate @sentry/* 11.0.0-beta.1 compatibility#6682
antonis wants to merge 12 commits into
mainfrom
chore/js-11-beta-1-compat

Conversation

@antonis

@antonis antonis commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

Spike / DO NOT MERGE. Compatibility probe for the @sentry/* JavaScript SDK v11.0.0-beta.1. Branched off the beta.0 spike (#6665) with main merged in. Tracks what breaks (for the SDK and for its users) and what still needs covering before the v11 bump (RN-586). Not for merge.

📜 Description

Bumps @sentry/* from 11.0.0-beta.0 to 11.0.0-beta.1 across packages/core, the samples and dev-packages/e2e-tests, on top of the beta.0 compatibility work (#6665). The full diff against main therefore includes both the beta.0 adaptations and the beta.1 bump.

beta.1 required no new source adaptations. Every beta.0 adaptation carried over unchanged, and beta.1 introduced no new RN-facing breakage. Build, the full test suite (1927 SDK + 340 tools), lint, format, circular-dep and API report all pass, and the TS 5.0 type-compat guard passes against beta.1.

✨ What changed since beta.0

beta.1 change (JS SDK) RN impact
Migration guide now documents the @sentry/core entry-point split (#23990) Resolves a beta.0 flag. The shared/browser/server subpath split RN flagged as undocumented is now in MIGRATION.md (@sentry/core/browser, @sentry/core/server).
Migration guide now documents the AI-helper relocation to @sentry/server-utils (MIGRATION.md) Resolves the other beta.0 flag. The removed instrument*AiClient / LangChain / LangGraph helpers are now documented as moved to @sentry/server-utils.
feat(core): throwing user callbacks are isolated instead of captured as events (#23770) No RN change. Behavior refinement only; no RN test or code path depends on the old capture-on-throw behavior.
feat(core): new safeCallback helper (#23760) No RN change. New optional export; not re-exported (RN has its own local safeCallback in sdk.tsx, unrelated).
fix(browser)!: stop tagging DOMException.code on events (#23992) No RN change. RN does not read or assert DOMException.code.
feat(server-utils)!, feat(node), feat(remix)! (Redis cache spans, ignoreStatusCodes, Remix Vite plugin move) N/A — server/framework-only, no RN surface.

Source changes (runtime) — carried over from beta.0

  • tracing/span.ts — real bug fix. v11 no longer stores the active span on a scope._sentrySpan property; it keeps a WeakRef under scope.refs.span. RN's clearActiveSpanFromScope was deleting the old (now non-existent) field, so the previous navigation/interaction span was never detached and became the parent of the next root span — corrupting the trace hierarchy for every navigation and UI-interaction transaction. Now clears via the official _INTERNAL_setSpanForScope helper. This is a latent bug that would ship broken under v11 regardless of the pre-release testing, and the internal field move is not documented in the migration guide.
  • sdk.tsxtraceLifecycle: 'static' pin. v11 defaults span handling to 'stream'. Mobile opts into 'static' so transactions keep being sent as transaction envelopes (the classic v8 shape the native SDKs ingest), rather than streamed spans. This keeps end-user behavior unchanged.
  • tracing/span.ts / replay/xhrUtils.ts — entry-point split. The @sentry/core main entry was split into shared / browser / server subpaths. startIdleSpan and the XhrBreadcrumbHint type moved to @sentry/core/browser. Core ships root-level shim stubs (browser.d.ts / browser.js) so RN's classic moduleResolution: node still resolves the subpath; jest resolves it via RNTestEnvironment.js. Now documented in the beta.1 migration guide.
  • samples/react-native TurboModuleScreen.tsx — sample fix. The TurboModule Playground screen read the aggregated turbo_module.* attributes via spanToJSON(span).data, which v11 empties (the streamed shape has no .data), so the screen rendered nothing and the turboModuleSpanAttributes e2e flow failed on both iOS and Android. Switched to spanToStaticSpanJSON — the classic-shape helper the SDK already uses internally.

⚠️ Breaking changes for Sentry React Native SDK users

When the SDK bundles @sentry/* v11, the following are user-visible breaking changes. Anything RN could absorb has been absorbed (see the last sub-list) so this set is the residue users still need to know about. beta.1 adds nothing new here.

Confirmed breaking:

Change What breaks for the user Migration
Scope.clear() removed Scope is re-exported from @sentry/react-native; getCurrentScope().clear() (or .clear() on any scope) no longer exists. Re-run code in a fresh scope via withScope / withIsolationScope, or re-init the SDK.
spanToJSON() shape changed Re-exported from @sentry/react-native. Now returns the streamed shape (name, attributes, status: 'ok' | 'error', end_timestamp, is_segment, …) instead of the classic description / op / data / timestamp / origin / measurements. Code reading classic fields (e.g. in beforeSendTransaction) breaks. Use the classic fields off event.spans directly, or the classic-shape helper (RN re-exporting spanToStaticSpanJSON is a follow-up — see Next steps).
Custom span status messages normalized span.setStatus({ code: SPAN_STATUS_ERROR, message: 'my text' }) — only canonical status strings survive; any non-canonical message now surfaces as internal_error, so custom status text is lost. Use a canonical status, or carry the detail on a span attribute / tag.
InboundFiltersEventFilters inboundFiltersIntegration still works (aliased), but the integration's name is now "EventFilters". Looking up / removing the integration by the string "InboundFilters" breaks. Reference "EventFilters".
AI instrumentation helpers removed instrumentOpenAiClient, instrumentAnthropicAiClient, instrumentGoogleGenAIClient, createLangChainCallbackHandler, the LangGraph helpers, etc. are no longer re-exported from @sentry/react-native (moved to the server-only @sentry/server-utils, which RN does not depend on). Now documented in the beta.1 migration guide. These are Node/server helpers with little RN applicability; import from a server SDK if needed.
@sentry/types no longer published Types moved into @sentry/core. Direct imports from @sentry/types break. Import types from @sentry/react-native (or @sentry/core).
Public types tightened (anyunknown) Several public types were narrowed; TypeScript users may see new compile errors. Add narrowing / casts where needed.

In progress — will be handled before the bump (tracked, not decided in this spike):

  • sendDefaultPiidataCollection. Dedicated Linear project; the infer_ip PII gap is scoped to logs + metrics envelopes only (events / sessions / spans are already safe). Intent is for users to keep working without a forced rename.
  • Minimum TypeScript 5.0.4. @sentry/core v11 no longer ships TS 3.8 types — it dropped build/types-ts3.8 and its typesVersions mapping — so TS 3.8 falls back to the modern .d.ts and fails to parse them (skipLibCheck can't help: it skips type-checking, not parsing). This raises the floor to TS 5.0.4. Done in this branch: the CI type-compat guard was retargeted from TS 3.8 to 5.0.4 (ts3.8-testts5.0-test); verified @sentry/react-native@sentry/core@11.0.0-beta.1 type-checks cleanly under 5.0.4. Still open: RN currently still down-levels and ships its own TS 3.8 types; whether to drop that (and formally raise the documented minimum) is the remaining decision. Tracked as RN-754 / Raise minimum TypeScript to 5.0.4 and drop TS 3.8 support (v9) #6657.

Explicitly NOT breaking for RN users (RN preserves v8 behavior):

  • Span streaming — pinned to traceLifecycle: 'static'; transactions still send as envelopes.
  • enableLogs — RN re-declares the option.
  • attachStacktrace default — RN already defaults it to true.
  • enableMetrics removal — was never a public RN option, so nothing to migrate.

💡 Motivation and Context

Continuous validation of the JS v11 pre-releases ahead of the RN major (RN-586). Confirms whether each pre-release introduces new breakages, catalogues the user-facing breaking surface, and re-verifies the known gaps still need covering. beta.1 is a clean bump — no new RN-facing breakage, and the two documentation gaps RN raised against beta.0 (entry-point split, AI-helper relocation) are now closed in the migration guide. The full set of v11 findings still handled in this branch:

Change RN handling
Active span moved to scope.refs.span WeakRef New / undocumented — fixed clearActiveSpanFromScope (runtime bug).
@sentry/core entry-point split (browser subpath) startIdleSpan / XhrBreadcrumbHint imports moved to @sentry/core/browser. Now documented upstream (beta.1).
AI instrumentation helpers moved to @sentry/server-utils Re-exports dropped (see breaking-changes table). Now documented upstream (beta.1).
Span streaming is the default Pinned traceLifecycle: 'static'.
spanToJSON shape changed Source uses spanToStaticSpanJSON internally; RN sample's TurboModule screen switched to spanToStaticSpanJSON; user-facing re-export flagged.
Non-canonical span status normalized to internal_error Absorbed; assertions updated.
Child spans drop default sentry.source: 'custom' Absorbed; assertions updated.
Scope.clear() removed Absorbed via resetScope test helper.
InboundFiltersEventFilters rename eventFiltersIntegration aliased as inboundFiltersIntegration.
Dropped TS 3.8 down-levelled types (min TS 5.0.4) CI type-compat guard retargeted from TS 3.8 to 5.0.4 (ts3.8-testts5.0-test).

💚 How did you test it?

  • yarn build — clean.
  • yarn lint, format, yarn circularDepCheck — pass.
  • yarn api-report:check — passes (RN's public surface is unchanged by beta.1).
  • TS-compat guard — TypeScript 5.0.4 (v11's floor) verified against beta.1: @sentry/react-native@sentry/core@11.0.0-beta.1 type-checks with exit 0.
  • yarn testall green (1927 SDK + 340 tools + 1). No test changes were needed on top of beta.0; the beta.0 adaptations (spanToJSONspanToStaticSpanJSON where the classic shape is asserted; startIdleSpan from @sentry/core/browser; Scope.clear()resetScope helper; non-canonical status → internal_error; child-span sentry.source dropped; app.start snapshot re-locked; obsolete enableMetrics and AI-exports tests removed) all continue to pass under beta.1.

Local install used YARN_NPM_MINIMAL_AGE_GATE=0, but beta.1 was published >1 day ago, so CI should not be blocked by yarn's publish quarantine this time. No .yarnrc.yml change was committed (keeps the supply-chain gate intact).

📝 Checklist

  • I added tests to verify changes.
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled.
  • I updated the docs if needed.
  • I updated the wizard if needed.
  • All tests passing.
  • Public API changes reviewed by another Mobile SDK team member or implemented according to the develop docs spec.
  • No breaking changes.

🔮 Next steps

  • Cover the remaining gaps before the v11 bump (RN-586): the sendDefaultPiidataCollection migration (logs/metrics PII), re-exporting spanToStaticSpanJSON so users keep a classic-shape helper, and the down-levelled-types shipping decision — whether RN stops shipping its own TS 3.8 types and formally raises the documented minimum to 5.0.4 (RN-754). The CI type-compat guard is already retargeted to 5.0.4 in this branch.
  • Both beta.0 flags to the JS team are now resolved — the @sentry/core entry-point split and the AI-helper relocation to @sentry/server-utils are both documented in the beta.1 migration guide. The only remaining undocumented internal is the active-span field move (_sentrySpanscope.refs.span WeakRef), which is intentionally not raised as an API-stability ask: RN already relies on core internals like _INTERNAL_flushLogsBuffer, and switching to _INTERNAL_setSpanForScope is more stable than the raw private-field access it replaced.

antonis and others added 12 commits September 2, 2026 17:09
Spike to surface JS v11 compatibility issues via CI. Bumps first-party
@sentry/* dependencies (browser, core, react, bundler-plugins,
eslint-plugin-sdk, typescript) to 11.0.0-alpha.2 across core and the
sample/e2e apps, and adapts the SDK source to the v11 breaking changes:

- spanToJSON() now returns the streamed shape; switched the internals
  that need the classic SpanJSON to spanToStaticSpanJSON().
- inboundFiltersIntegration -> eventFiltersIntegration (re-exported under
  the RN public name).
- AI instrumentation (OpenAI/Anthropic/GenAI/LangChain/LangGraph) moved
  to server-only @sentry/server-utils; dropped those re-exports.
- SEMANTIC_ATTRIBUTE_SENTRY_SOURCE -> SENTRY_SEGMENT_NAME_SOURCE alias.
- ExtendedError / User index signatures tightened to unknown; narrowed
  the affected call sites.
- enableLogs and sendDefaultPii are now RN-owned options (core removed
  them / RN Omits dataCollection); cast getOptions() accordingly.
- Test harness migrated off the removed Scope.clear() via a
  clearAllScopes() helper in test/testutils.ts.

Local: yarn build compiles clean. Known remaining test failures are
tracked as follow-ups (old span shape in assertions, obsolete AI export
test, measurements investigation).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Remove orphaned getCurrentScope/getGlobalScope/getIsolationScope imports
  left by the Scope.clear() -> clearAllScopes() test migration (10 files).
- Regenerate the API report to reflect the removed AI instrumentation
  re-exports and the inboundFilters -> eventFilters rename.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Format the 16 source/test files touched by the v11 migration. The earlier
Lint run never reached the oxfmt step because oxlint failed first on the
orphaned scope imports; with those fixed, oxfmt --check surfaced the drift.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bumps the JS SDK spike from 11.0.0-alpha.2 to 11.0.0-beta.0 across core,
samples and e2e-tests.

beta.0 splits the `@sentry/core` main entry into shared/browser/server
subpaths, removing `startIdleSpan` and `XhrBreadcrumbHint` from the root
export. Import both from the `@sentry/core/browser` subpath (the root-level
shim stubs keep classic `moduleResolution: node` resolution working):

- tracing/span.ts: `startIdleSpan` -> `@sentry/core/browser`
- replay/xhrUtils.ts: `XhrBreadcrumbHint` type -> `@sentry/core/browser`

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Production fixes:
- clearActiveSpanFromScope: v11 stores the active span in a WeakRef under
  scope.refs.span, not the removed scope._sentrySpan property. Deleting the
  old field was a no-op, leaving the previous navigation/interaction span
  active so it became the parent of the next root span. Clear via the
  official _INTERNAL_setSpanForScope helper instead.
- sdk.tsx: pin traceLifecycle: 'static' so mobile keeps the classic
  transaction-envelope behavior instead of v11's new streaming default.

Test updates for v11 behavior changes:
- spanToJSON -> spanToStaticSpanJSON where the classic span shape is asserted.
- startIdleSpan now imported from @sentry/core/browser (entry-point split).
- Scope.clear() removed -> resetScope helper mirrors the old reset.
- Non-canonical status messages normalize to 'internal_error'.
- Child spans no longer carry a default sentry.source: 'custom'.
- app.start snapshot: sentry.segment.name.source key and status 'ok'.
- Drop obsolete enableMetrics suppression test and aiExports test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@sentry/core v11.0.0-beta.0 drops its down-levelled TS 3.8 types
(no `build/types-ts3.8`, `typesVersions` removed), raising the floor to
TypeScript 5.0.4. The old "Type Check Typescript 3.8" guard failed with
parse errors it can't skip (skipLibCheck only skips type-checking, not
parsing) when TS 3.8 hits v11's modern `.d.ts` syntax.

Retarget the guard to TypeScript 5.0.4 (the new minimum): rename the
ts3.8-test project to ts5.0-test and bump its TypeScript devDependency.
Verified locally that @sentry/react-native -> @sentry/core@11.0.0-beta.0
type-checks cleanly under 5.0.4.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…me.source

JS v11 removed the `sentry.source` semantic attribute; the transaction name
source now lives under `sentry.segment.name.source` on the segment span. The
navigation transaction's serialized `contexts.trace.data` therefore carries the
new key (matching the app-start unit snapshot already updated in this branch).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…mpat

# Conflicts:
#	dev-packages/e2e-tests/package.json
#	samples/expo/package.json
#	samples/react-native-macos/package.json
#	samples/react-native/package.json
#	yarn.lock
… v11

JS v11's `spanToJSON` returns the streamed span shape, which no longer
carries the classic `.data` attribute bag. The TurboModule Playground
screen read `spanToJSON(span).data`, so under v11 it collected no
`turbo_module.*` attributes and rendered nothing — failing the
`turboModuleSpanAttributes` e2e flow on both iOS and Android at the
on-screen `scrollUntilVisible` step. Switch to `spanToStaticSpanJSON`,
the classic-shape helper the SDK already uses internally.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Compatibility validation of the @sentry/* JavaScript SDK v11.0.0-beta.1
against the React Native SDK. Bumps @sentry/* from 11.0.0-beta.0 to
11.0.0-beta.1 across packages/core, the samples and dev-packages/e2e-tests.

No new source adaptations were required on top of the beta.0 work: build,
the full test suite (1927 SDK + 340 tools), circular-dep check, API report,
lint and the TS 5.0 type-compat guard all pass unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@linear-code

linear-code Bot commented Sep 7, 2026

Copy link
Copy Markdown

JS-11

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Semver Impact of This PR

None (no version bump detected)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


  • [DO NOT MERGE] test(deps): Validate @sentry/* 11.0.0-beta.1 compatibility by antonis in #6682
  • feat(sample): Add tvOS sample app by antonis in #6677
  • fix(e2e): Pin json gem < 3.0 for RN < 0.72 iOS builds by antonis in #6678
  • feat(ios): Expose enableMemoryIntrospection option by antonis in #6674
  • feat(android): Add anrProfilingSampleRate option by antonis in #6673
  • ci: Unpin Android E2E emulator build by antonis in #6672
  • ref(ios): Remove deprecated private SDK API usage by philprime in #6647
  • chore(deps): update Cocoa SDK to v9.27.0 by github-actions in #6670
  • chore(deps): update Sentry Android Gradle Plugin to v6.21.0 by github-actions in #6671
  • chore(deps): Bump fast-uri to ^3.1.6 to resolve security alerts by antonis in #6662
  • chore(deps): Bump qs to ^6.16.0 to resolve security alerts by antonis in #6663
  • chore(deps): Bump @xmldom/xmldom pins to patched versions to resolve security alerts by antonis in #6664
  • docs: Revamp root and nested AGENTS.md by antonis in #6666

🤖 This preview updates automatically when you update the PR.

@antonis antonis added Blocked skip-changelog ready-to-merge Triggers the full CI test suite labels Sep 7, 2026
@antonis antonis changed the title test(deps): Validate @sentry/* 11.0.0-beta.1 compatibility [DO NOT MERGE] [DO NOT MERGE] test(deps): Validate @sentry/* 11.0.0-beta.1 compatibility Sep 7, 2026
@sentry

sentry Bot commented Sep 7, 2026

Copy link
Copy Markdown

📲 Install Builds

Android

🔗 App Name App ID Version Configuration
Sentry RN io.sentry.reactnative.sample 8.25.0 (105) Release

⚙️ sentry-react-native Build Distribution Settings

Comment on lines 11 to 55
@@ -24,10 +20,8 @@ import { captureFeedback } from '@sentry/core';
import { captureMessage } from '@sentry/core';
import { Client } from '@sentry/core';
import type { ClientOptions } from '@sentry/core';
import { CompiledGraph } from '@sentry/core';
import { consoleLoggingIntegration } from '@sentry/browser';
import { consoleSandbox } from '@sentry/core';
import { createLangChainCallbackHandler } from '@sentry/core';
import { createReduxEnhancer } from '@sentry/react';
import { dedupeIntegration } from '@sentry/react';
import type { Envelope } from '@sentry/core';
@@ -47,33 +41,17 @@ import { getCurrentScope } from '@sentry/core';
import { getGlobalScope } from '@sentry/core';
import { getIsolationScope } from '@sentry/core';
import { getRootSpan } from '@sentry/core';
import { GoogleGenAIChat } from '@sentry/core';
import { GoogleGenAIClient } from '@sentry/core';
import { GoogleGenAIOptions } from '@sentry/core';
import type { HostComponent } from 'react-native';
import { httpClientIntegration } from '@sentry/react';
import { httpContextIntegration } from '@sentry/react';
import type { ImageStyle } from 'react-native';
import { inboundFiltersIntegration } from '@sentry/react';
import { instrumentAnthropicAiClient } from '@sentry/core';
import { InstrumentedMethod } from '@sentry/core';
import { instrumentGoogleGenAIClient } from '@sentry/core';
import { instrumentLangGraph } from '@sentry/core';
import { instrumentOpenAiClient } from '@sentry/core';
import { instrumentStateGraph } from '@sentry/core';
import { instrumentStateGraphCompile } from '@sentry/core';
import { eventFiltersIntegration as inboundFiltersIntegration } from '@sentry/react';
import { Integration } from '@sentry/core';
import { LangChainIntegration } from '@sentry/core';
import { LangChainOptions } from '@sentry/core';
import { LangGraphIntegration } from '@sentry/core';
import { LangGraphOptions } from '@sentry/core';
import { lastEventId } from '@sentry/core';
import { logger } from '@sentry/browser';
import type { makeFetchTransport } from '@sentry/browser';
import { Metric } from '@sentry/core';
import { metrics } from '@sentry/browser';
import { OpenAiClient } from '@sentry/core';
import { OpenAiOptions } from '@sentry/core';
import type { Options } from '@sentry/core';

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removing previously exported AI helpers breaks React Native consumers

The v11 compatibility changes remove the OpenAI, Anthropic, Google GenAI, LangChain, and LangGraph helpers from the @sentry/react-native public entry point. Apps that imported these helpers from React Native will fail to compile after upgrading. Before a releasable v11 release, document whether React Native users should install and import an alternative package or confirm that these helpers are unsupported on React Native.

Evidence
  • packages/core/src/js/index.ts no longer re-exports the AI instrumentation helpers or their types.
  • The entry point explicitly states that the helpers moved to server-only @sentry/server-utils, which is not a dependency of @sentry/react-native.
  • CHANGELOG.md previously documented these helpers as React Native exports in the 8.9.1 release under PR feat(ai): Re-export AI SDK manual instrumentation helpers #6028.
  • No replacement React Native export or migration guidance is included for existing importers, so their imports will fail at compile time.
Also found at 4 additional locations
  • packages/core/etc/sentry-react-native.api.md:149-161
  • packages/core/etc/sentry-react-native.api.md:396-423
  • packages/core/etc/sentry-react-native.api.md:490-495
  • packages/core/src/js/index.ts:50-62

Identified by Warden · code-review · 84H-EYE

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 3874.90 ms 1212.83 ms -2662.07 ms
Size 5.15 MiB 6.89 MiB 1.74 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
ecf47a2+dirty 3835.20 ms 1222.43 ms -2612.77 ms
3817909+dirty 1183.90 ms 1187.50 ms 3.60 ms
5ee78d6+dirty 3847.52 ms 1224.27 ms -2623.25 ms
890d145+dirty 1223.59 ms 1231.37 ms 7.78 ms
e763471+dirty 3841.16 ms 1218.06 ms -2623.09 ms
3d31fcf+dirty 3838.09 ms 1223.46 ms -2614.63 ms
9210ae6+dirty 3815.93 ms 1214.14 ms -2601.79 ms
26843eb+dirty 3861.60 ms 1238.77 ms -2622.82 ms
7a89652+dirty 3861.46 ms 1229.61 ms -2631.85 ms
9ad4522+dirty 3850.40 ms 1222.40 ms -2628.00 ms

App size

Revision Plain With Sentry Diff
ecf47a2+dirty 4.98 MiB 6.46 MiB 1.49 MiB
3817909+dirty 3.38 MiB 4.73 MiB 1.35 MiB
5ee78d6+dirty 5.15 MiB 6.69 MiB 1.53 MiB
890d145+dirty 3.38 MiB 4.77 MiB 1.38 MiB
e763471+dirty 4.98 MiB 6.51 MiB 1.53 MiB
3d31fcf+dirty 4.98 MiB 6.56 MiB 1.58 MiB
9210ae6+dirty 5.15 MiB 6.68 MiB 1.53 MiB
26843eb+dirty 4.98 MiB 6.53 MiB 1.55 MiB
7a89652+dirty 5.15 MiB 6.70 MiB 1.55 MiB
9ad4522+dirty 4.98 MiB 6.56 MiB 1.58 MiB

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 3861.22 ms 1229.70 ms -2631.52 ms
Size 5.15 MiB 6.89 MiB 1.74 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
3b6e9f9+dirty 3822.77 ms 1208.00 ms -2614.77 ms
4e0b819+dirty 3828.96 ms 1205.64 ms -2623.32 ms
1e5d96d+dirty 3845.93 ms 1222.51 ms -2623.42 ms
0a9e622+dirty 3825.35 ms 1219.04 ms -2606.31 ms
5ca03f9+dirty 3873.76 ms 1236.26 ms -2637.51 ms
40c9884+dirty 3826.11 ms 1217.04 ms -2609.07 ms
57e0069+dirty 3842.23 ms 1210.00 ms -2632.23 ms
7ac3378+dirty 1202.35 ms 1198.31 ms -4.04 ms
20fbd51+dirty 3832.52 ms 1206.13 ms -2626.39 ms
822d35b+dirty 3841.52 ms 1221.75 ms -2619.77 ms

App size

Revision Plain With Sentry Diff
3b6e9f9+dirty 5.15 MiB 6.68 MiB 1.53 MiB
4e0b819+dirty 4.98 MiB 6.46 MiB 1.49 MiB
1e5d96d+dirty 4.98 MiB 6.46 MiB 1.49 MiB
0a9e622+dirty 4.98 MiB 6.51 MiB 1.53 MiB
5ca03f9+dirty 4.98 MiB 6.53 MiB 1.55 MiB
40c9884+dirty 4.98 MiB 6.51 MiB 1.53 MiB
57e0069+dirty 4.98 MiB 6.50 MiB 1.52 MiB
7ac3378+dirty 3.38 MiB 4.76 MiB 1.38 MiB
20fbd51+dirty 4.98 MiB 6.46 MiB 1.49 MiB
822d35b+dirty 4.98 MiB 6.50 MiB 1.53 MiB

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 444.18 ms 475.76 ms 31.58 ms
Size 50.56 MiB 56.45 MiB 5.89 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
eb93136+dirty 500.37 ms 532.58 ms 32.21 ms
9210ae6+dirty 444.14 ms 459.80 ms 15.66 ms
94af3bd+dirty 413.04 ms 451.76 ms 38.71 ms
7d6fd3a+dirty 435.06 ms 458.78 ms 23.72 ms
15d4514+dirty 413.63 ms 449.62 ms 35.99 ms
9ad4522+dirty 432.43 ms 450.91 ms 18.49 ms
0a147b2+dirty 442.80 ms 522.24 ms 79.44 ms
7887847+dirty 420.47 ms 460.55 ms 40.08 ms
a3265b6+dirty 410.96 ms 444.76 ms 33.80 ms
57e0069+dirty 442.25 ms 486.64 ms 44.39 ms

App size

Revision Plain With Sentry Diff
eb93136+dirty 48.30 MiB 53.58 MiB 5.28 MiB
9210ae6+dirty 48.30 MiB 53.54 MiB 5.23 MiB
94af3bd+dirty 48.30 MiB 53.57 MiB 5.26 MiB
7d6fd3a+dirty 43.94 MiB 49.00 MiB 5.06 MiB
15d4514+dirty 48.30 MiB 53.60 MiB 5.30 MiB
9ad4522+dirty 49.74 MiB 55.38 MiB 5.63 MiB
0a147b2+dirty 49.74 MiB 55.08 MiB 5.34 MiB
7887847+dirty 49.74 MiB 54.81 MiB 5.07 MiB
a3265b6+dirty 48.30 MiB 53.58 MiB 5.28 MiB
57e0069+dirty 49.74 MiB 54.85 MiB 5.11 MiB

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 432.19 ms 463.57 ms 31.39 ms
Size 50.56 MiB 56.45 MiB 5.89 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
9ad4522+dirty 420.73 ms 444.18 ms 23.45 ms
5a21b51+dirty 471.42 ms 524.22 ms 52.80 ms
c2e182c+dirty 471.64 ms 553.59 ms 81.95 ms
15d4514+dirty 406.77 ms 428.06 ms 21.29 ms
53a3f8e+dirty 451.90 ms 500.02 ms 48.12 ms
f170ec3+dirty 428.71 ms 452.18 ms 23.47 ms
3e3142c+dirty 441.26 ms 496.06 ms 54.80 ms
5fe1c6c+dirty 401.62 ms 445.28 ms 43.66 ms
27d9693+dirty 419.08 ms 469.12 ms 50.04 ms
774257e+dirty 407.09 ms 447.46 ms 40.37 ms

App size

Revision Plain With Sentry Diff
9ad4522+dirty 49.74 MiB 55.38 MiB 5.63 MiB
5a21b51+dirty 48.30 MiB 53.49 MiB 5.19 MiB
c2e182c+dirty 49.74 MiB 54.85 MiB 5.11 MiB
15d4514+dirty 48.30 MiB 53.60 MiB 5.30 MiB
53a3f8e+dirty 50.56 MiB 56.46 MiB 5.90 MiB
f170ec3+dirty 48.30 MiB 53.57 MiB 5.26 MiB
3e3142c+dirty 49.74 MiB 55.44 MiB 5.70 MiB
5fe1c6c+dirty 43.75 MiB 48.14 MiB 4.39 MiB
27d9693+dirty 49.74 MiB 55.09 MiB 5.34 MiB
774257e+dirty 48.30 MiB 53.58 MiB 5.28 MiB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Blocked ready-to-merge Triggers the full CI test suite skip-changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant