Skip to content

feat: automate React Native source-map upload - #941

Open
ablaszkiewicz wants to merge 2 commits into
mainfrom
ab/feat/react-native-source-maps
Open

feat: automate React Native source-map upload#941
ablaszkiewicz wants to merge 2 commits into
mainfrom
ab/feat/react-native-source-maps

Conversation

@ablaszkiewicz

@ablaszkiewicz ablaszkiewicz commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Related PRs

Part of the React Native source-map upload rollout:


What

There were some changes we had to do in our expo plugin to inject path to an env file so then it's injected into the native technology which then loads it and calls upload of dsyms/proguard.

Had to do:

Test screen in the wizard
CleanShot 2026-07-24 at 12 44 51@2x

Expo iOS

JS crash view in PostHog Native crash view in PostHog
CleanShot 2026-07-22 at 14 43 10 CleanShot 2026-07-23 at 10 22 33

Expo Android

JS crash got grouped to the same issue as iOS one on the same build (as expected).
In android native crash we've got clean deminification (we don't have source context because we don't support that for android)

JS crash view in PostHog Native crash view in PostHog
CleanShot 2026-07-23 at 10 29 57 CleanShot 2026-07-23 at 10 33 30

Bare RN iOS & Android

Made a decision to no support this right now. Wasted a lot of time trying to make that work. It seems that expo is the standard recommended by the RN itself. On top of that wizard was extremely slow because changes required to make this work are extremely complex. Maybe I will revisit this in the future. For now we display this:

Bare react native error message
CleanShot 2026-07-23 at 15 24 32@2x

🤖 Generated with Claude Code

Promote react-native from recognised-but-blocked to automatable in the
error-tracking-upload-source-maps program, mirroring the Android flip (#931):

- add react-native to AUTOMATABLE_VARIANTS and VARIANTS_REQUIRING_POSTHOG_CLI
  (RN builds invoke a machine-global posthog-cli from Xcode build phases and
  Gradle tasks, same as ios/android)
- move react-native out of the non-automatable guard list into
  VARIANT_PRECEDENCE, ahead of android/ios so RN repos with nested Gradle or
  Xcode manifests are not misclassified as plain native apps
- replace the flat framework-string clamp with a conditional guard: flutter
  always clamps; RN/Expo-labelled projects clamp only when they did not
  resolve to the react-native target

The context-mill skill variant (error-tracking-upload-source-maps-react-native)
already publishes; flutter remains the only recognised non-automatable variant.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 22, 2026 09:26
@ablaszkiewicz
ablaszkiewicz requested review from a team as code owners July 22, 2026 09:26

Copilot AI left a comment

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

Copy link
Copy Markdown

🧙 Wizard CI

Run the Wizard CI and test your changes against wizard-workbench example apps by replying with a GitHub comment using one of the following commands:

Test all apps:

  • /wizard-ci all

Test all apps in a directory:

  • /wizard-ci basic-integration
  • /wizard-ci mcp-analytics
  • /wizard-ci revenue

Test an individual app:

  • /wizard-ci basic-integration/android
  • /wizard-ci basic-integration/angular
  • /wizard-ci basic-integration/astro
Show more apps
  • /wizard-ci basic-integration/django
  • /wizard-ci basic-integration/fastapi
  • /wizard-ci basic-integration/flask
  • /wizard-ci basic-integration/javascript-node
  • /wizard-ci basic-integration/javascript-web
  • /wizard-ci basic-integration/laravel
  • /wizard-ci basic-integration/next-js
  • /wizard-ci basic-integration/nuxt
  • /wizard-ci basic-integration/python
  • /wizard-ci basic-integration/rails
  • /wizard-ci basic-integration/react-native
  • /wizard-ci basic-integration/react-router
  • /wizard-ci basic-integration/sveltekit
  • /wizard-ci basic-integration/swift
  • /wizard-ci basic-integration/tanstack-router
  • /wizard-ci basic-integration/tanstack-start
  • /wizard-ci basic-integration/vue
  • /wizard-ci mcp-analytics/custom-dispatcher
  • /wizard-ci mcp-analytics/typescript-sdk
  • /wizard-ci revenue/stripe

Results will be posted here when complete.

Bare React Native (no expo package) cannot inject the chunk IDs PostHog
needs to resolve stack traces, so uploads succeed while every frame stays
unresolved ("No chunk id sent with frame"). The agentic picker now
classifies react-native projects without the expo dependency as
non-instrumentable with an explicit reason, and the agent runner gets an
abort case for `[ABORT] bare react native not supported`.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants