Skip to content

Add missing exports and update public API report - #6731

Merged
antonis merged 4 commits into
mainfrom
feat/export-public-api-option-types
Sep 18, 2026
Merged

antonis merged 4 commits into
mainfrom
feat/export-public-api-option-types

Conversation

@antonis

@antonis antonis commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Description

Several user-facing option and configuration types were only reachable structurally (e.g. as the argument type to an integration) but never exported by name. Because api-extractor only inlines the shape of types exported from the entry point, their fields rendered as an opaque name — so field-level additions to those types produced no diff in sentry-react-native.api.md, and public-facing changes could land without showing up in the report.

This exports the 31 already-public types so their full shape is tracked in the report. No new API surface — every type is already documented and reachable today; this only makes it importable by name and visible in the report diff. Changes are type-only (export type / an added export keyword); runtime JS is unaffected.

Proof these are already public-facing

Area Types Docs
Init & core options BaseReactNativeOptions, ReactNativeWrapperOptions, ProfilingOptions, ProfilingLifecycle, SentryReplayQuality options, profiling
Session Replay MobileReplayOptions, ScreenshotStrategy, ReplayConfiguration session-replay
Integrations HermesProfilingOptions, BreadcrumbsOptions, LinkedErrorsOptions, ReactNativeErrorHandlersOptions, SpotlightReactNativeIntegrationOptions, GraphQLReactNativeIntegrationOptions, SupabaseReactNativeIntegrationOptions default, spotlight, graphql, plugin
Tracing & navigation ReactNativeTracingOptions, ReactNavigationIntegrationOptions, ReactNativeNavigationOptions, ExpoRouterIntegrationOptions automatic, react-navigation, react-native-navigation, expo-router
Touch TouchEventBoundaryProps user-interaction
User Feedback FeedbackFormProps, FeedbackGeneralConfiguration, FeedbackTextConfiguration, FeedbackCallbacks, FeedbackFormStyles, FeedbackFormTheme, ScreenshotButtonProps, ScreenshotButtonStyles, ScreenshotButtonTextConfiguration, ImagePickerConfiguration, ImagePicker user-feedback/configuration

Intentionally excluded: _experiments (experimental), third-party image-picker shims, the deprecated standalone FeedbackButton prop types, and internal structural containers (ReactNativeClientOptions, ReactNativeTransportOptions).

Type of change

  • Enhancement (added public exports, no behavior change)

Motivation and Context

Public-facing SDK changes can slip through review because the API report doesn't surface field-level changes to types it tracks only by name. This closes that gap for the option/config types the report was tracking structurally.

How did you test it?

  • yarn build:sdk
  • yarn api-report:generate + yarn api-report:check (exit 0)
  • yarn circularDepCheck, yarn lint:lerna, yarn test:sdk
  • Runtime JS byte-identical (type-only changes)

Next steps

The api-report tooling doesn't fail CI on ae-forgotten-export warnings, so this class of gap can silently recur. A follow-up could add a guard that flags newly-forgotten public exports.

🤖 Generated with Claude Code

Re-export already-public option/configuration types from the entry point
so their full shape is tracked in the API report and field-level changes
surface in its diff. Type-only change; runtime JS is unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@antonis
antonis force-pushed the feat/export-public-api-option-types branch from 2f3924c to 303ded4 Compare September 16, 2026 15:09
@github-actions

github-actions Bot commented Sep 16, 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).


  • Add missing exports and update public API report by antonis in #6731
  • fix(ios): Honor shutdownTimeout on iOS by antonis in #6749

🤖 This preview updates automatically when you update the PR.

@antonis antonis added the ready-to-merge Triggers the full CI test suite label Sep 16, 2026
@github-actions

github-actions Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor
Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against e4378e2

@antonis
antonis marked this pull request as ready for review September 16, 2026 15:11
@antonis
antonis requested review from a team, alwx and lucas-zimerman as code owners September 16, 2026 15:11
@github-actions

github-actions Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 3867.59 ms 1229.20 ms -2638.38 ms
Size 5.15 MiB 6.90 MiB 1.75 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
0a9e622+dirty 3835.87 ms 1221.07 ms -2614.80 ms
7d6fd3a+dirty 1223.29 ms 1229.57 ms 6.28 ms
5ca03f9+dirty 3844.55 ms 1218.36 ms -2626.19 ms
774257e+dirty 3846.90 ms 1215.02 ms -2631.88 ms
40c9884+dirty 3837.72 ms 1226.61 ms -2611.11 ms
4e0b819+dirty 3839.05 ms 1210.75 ms -2628.30 ms
d038a14+dirty 3845.71 ms 1228.11 ms -2617.59 ms
57e0069+dirty 3842.29 ms 1212.12 ms -2630.17 ms
882f8ae+dirty 3840.30 ms 1224.41 ms -2615.88 ms
5125c43+dirty 3846.45 ms 1221.12 ms -2625.32 ms

App size

Revision Plain With Sentry Diff
0a9e622+dirty 4.98 MiB 6.51 MiB 1.53 MiB
7d6fd3a+dirty 3.38 MiB 4.77 MiB 1.39 MiB
5ca03f9+dirty 4.98 MiB 6.53 MiB 1.55 MiB
774257e+dirty 5.15 MiB 6.70 MiB 1.54 MiB
40c9884+dirty 4.98 MiB 6.51 MiB 1.53 MiB
4e0b819+dirty 4.98 MiB 6.46 MiB 1.49 MiB
d038a14+dirty 5.15 MiB 6.67 MiB 1.51 MiB
57e0069+dirty 4.98 MiB 6.50 MiB 1.52 MiB
882f8ae+dirty 5.15 MiB 6.70 MiB 1.54 MiB
5125c43+dirty 5.15 MiB 6.68 MiB 1.53 MiB

Previous results on branch: feat/export-public-api-option-types

Startup times

Revision Plain With Sentry Diff
64d3769+dirty 3870.98 ms 1234.66 ms -2636.32 ms

App size

Revision Plain With Sentry Diff
64d3769+dirty 5.15 MiB 6.90 MiB 1.75 MiB

@github-actions

github-actions Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 510.95 ms 546.74 ms 35.79 ms
Size 50.56 MiB 56.49 MiB 5.93 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
f3215d3+dirty 396.53 ms 436.66 ms 40.13 ms
d0e3b3e+dirty 443.19 ms 480.00 ms 36.81 ms
a5d243c+dirty 499.20 ms 525.62 ms 26.42 ms
7fd0012+dirty 422.41 ms 445.57 ms 23.17 ms
0a147b2+dirty 442.80 ms 522.24 ms 79.44 ms
d7d54c6+dirty 423.54 ms 498.56 ms 75.02 ms
c823bb5+dirty 468.26 ms 516.16 ms 47.90 ms
5789645+dirty 502.66 ms 594.19 ms 91.53 ms
40c9884+dirty 453.76 ms 478.98 ms 25.22 ms
d771cd5+dirty 432.29 ms 464.38 ms 32.09 ms

App size

Revision Plain With Sentry Diff
f3215d3+dirty 48.30 MiB 53.49 MiB 5.19 MiB
d0e3b3e+dirty 49.74 MiB 55.09 MiB 5.34 MiB
a5d243c+dirty 48.30 MiB 53.54 MiB 5.23 MiB
7fd0012+dirty 50.56 MiB 56.46 MiB 5.90 MiB
0a147b2+dirty 49.74 MiB 55.08 MiB 5.34 MiB
d7d54c6+dirty 49.74 MiB 55.09 MiB 5.34 MiB
c823bb5+dirty 48.30 MiB 53.58 MiB 5.28 MiB
5789645+dirty 49.74 MiB 54.85 MiB 5.11 MiB
40c9884+dirty 49.74 MiB 55.09 MiB 5.34 MiB
d771cd5+dirty 49.74 MiB 55.36 MiB 5.62 MiB

Previous results on branch: feat/export-public-api-option-types

Startup times

Revision Plain With Sentry Diff
64d3769+dirty 476.15 ms 517.28 ms 41.13 ms

App size

Revision Plain With Sentry Diff
64d3769+dirty 50.56 MiB 56.51 MiB 5.95 MiB

@github-actions

github-actions Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 3865.56 ms 1231.30 ms -2634.27 ms
Size 5.15 MiB 6.90 MiB 1.75 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
68ae91b+dirty 3836.36 ms 1222.04 ms -2614.32 ms
0b5a379+dirty 3857.69 ms 1230.34 ms -2627.35 ms
bf168a4+dirty 3846.83 ms 1221.33 ms -2625.49 ms
f170ec3+dirty 3844.74 ms 1222.67 ms -2622.07 ms
68672fc+dirty 3832.22 ms 1228.29 ms -2603.93 ms
84cba31+dirty 3830.40 ms 1204.44 ms -2625.96 ms
2c735cc+dirty 1223.33 ms 1224.38 ms 1.04 ms
b9bebee+dirty 3858.02 ms 1231.92 ms -2626.11 ms
a50b33d+dirty 1207.11 ms 1212.10 ms 5.00 ms
5569641+dirty 3824.35 ms 1210.78 ms -2613.57 ms

App size

Revision Plain With Sentry Diff
68ae91b+dirty 4.98 MiB 6.46 MiB 1.48 MiB
0b5a379+dirty 5.15 MiB 6.70 MiB 1.54 MiB
bf168a4+dirty 4.98 MiB 6.47 MiB 1.49 MiB
f170ec3+dirty 5.15 MiB 6.69 MiB 1.53 MiB
68672fc+dirty 5.15 MiB 6.71 MiB 1.55 MiB
84cba31+dirty 4.98 MiB 6.55 MiB 1.57 MiB
2c735cc+dirty 3.38 MiB 4.74 MiB 1.35 MiB
b9bebee+dirty 5.15 MiB 6.68 MiB 1.53 MiB
a50b33d+dirty 3.38 MiB 4.73 MiB 1.35 MiB
5569641+dirty 5.15 MiB 6.67 MiB 1.51 MiB

Previous results on branch: feat/export-public-api-option-types

Startup times

Revision Plain With Sentry Diff
64d3769+dirty 3845.78 ms 1217.14 ms -2628.64 ms

App size

Revision Plain With Sentry Diff
64d3769+dirty 5.15 MiB 6.90 MiB 1.75 MiB

@sentry

sentry Bot commented Sep 17, 2026

Copy link
Copy Markdown

📲 Install Builds

Android

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

⚙️ sentry-react-native Build Distribution Settings

@github-actions

Copy link
Copy Markdown
Contributor

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 465.76 ms 524.54 ms 58.78 ms
Size 50.56 MiB 56.51 MiB 5.95 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
a2585ce+dirty 426.36 ms 483.26 ms 56.90 ms
882f8ae+dirty 399.98 ms 427.06 ms 27.08 ms
af33f3b+dirty 434.90 ms 506.14 ms 71.24 ms
ecf47a2+dirty 420.40 ms 458.02 ms 37.62 ms
acd838e+dirty 422.63 ms 462.39 ms 39.76 ms
7fd0012+dirty 444.73 ms 470.08 ms 25.35 ms
580fb5c+dirty 436.34 ms 471.63 ms 35.28 ms
5ca03f9+dirty 423.30 ms 467.00 ms 43.70 ms
5c1e987+dirty 423.52 ms 471.64 ms 48.12 ms
822d35b+dirty 429.31 ms 498.04 ms 68.73 ms

App size

Revision Plain With Sentry Diff
a2585ce+dirty 49.74 MiB 55.36 MiB 5.61 MiB
882f8ae+dirty 48.30 MiB 53.60 MiB 5.29 MiB
af33f3b+dirty 49.74 MiB 55.09 MiB 5.35 MiB
ecf47a2+dirty 49.74 MiB 54.82 MiB 5.07 MiB
acd838e+dirty 48.30 MiB 53.60 MiB 5.30 MiB
7fd0012+dirty 50.56 MiB 56.46 MiB 5.90 MiB
580fb5c+dirty 49.74 MiB 54.79 MiB 5.05 MiB
5ca03f9+dirty 49.74 MiB 55.26 MiB 5.52 MiB
5c1e987+dirty 43.75 MiB 48.08 MiB 4.33 MiB
822d35b+dirty 49.74 MiB 54.84 MiB 5.10 MiB

antonis and others added 3 commits September 17, 2026 12:58
New MobileReplayOptions fields from main now surface in the report
because this branch exports the type with its full shape.

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

@lucas-zimerman lucas-zimerman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM!

@antonis
antonis merged commit 5afef28 into main Sep 18, 2026
84 of 87 checks passed
@antonis
antonis deleted the feat/export-public-api-option-types branch September 18, 2026 04:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Triggers the full CI test suite

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants