Skip to content

feat(core): Enable autoInjectSentryLabel by default in Metro config#6141

Open
antonis wants to merge 3 commits into
mainfrom
antonis/issue-6109-auto-inject-sentry-label
Open

feat(core): Enable autoInjectSentryLabel by default in Metro config#6141
antonis wants to merge 3 commits into
mainfrom
antonis/issue-6109-auto-inject-sentry-label

Conversation

@antonis
Copy link
Copy Markdown
Contributor

@antonis antonis commented May 12, 2026

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

Passes autoInjectSentryLabel: true to @sentry/babel-plugin-component-annotate by default when annotateReactComponents is enabled in the Metro config. This enables automatic injection of sentry-label props from static text content at build time.

The Babel plugin (shipped in @sentry/babel-plugin-component-annotate@5.3.0, getsentry/sentry-javascript-bundler-plugins#925) extracts static text from children of touchable components and injects it as a sentry-label prop, improving touch breadcrumb and user interaction span labeling without requiring manual annotation.

Users can opt out:

withSentryConfig(config, {
  annotateReactComponents: {
    autoInjectSentryLabel: false,
  },
});

💡 Motivation and Context

Closes #6109. Part of the "Making breadcrumbs data more useful on React Native" project.

Currently, touch breadcrumbs show component names like "TouchableOpacity" unless developers manually add sentry-label, accessibilityLabel, or testID props. With this change, buttons like <Pressable><Text>Save workout</Text></Pressable> automatically get labeled "Save workout" in breadcrumbs and transaction names.

💚 How did you test it?

  • yarn build — compiles without errors
  • npx jest --config jest.config.tools.js test/tools/sentryBabelTransformer.test.ts — 8/8 pass
  • npx jest --config jest.config.tools.js test/tools/metroconfig.test.ts — 142/142 pass
  • yarn lint — no violations
  • yarn api-report — API report up to date
  • Added test for autoInjectSentryLabel: false override
  • Updated existing tests to verify autoInjectSentryLabel: true is passed by default

📝 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
  • No breaking changes

🔮 Next steps

🤖 Generated with Claude Code

Pass `autoInjectSentryLabel: true` to the babel-plugin-component-annotate
plugin by default when `annotateReactComponents` is enabled. This enables
automatic injection of `sentry-label` props from static text content at
build time, improving touch breadcrumb and user interaction span labeling.

Users can opt out by setting `autoInjectSentryLabel: false` in the
`annotateReactComponents` config option.

Closes #6109

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 12, 2026

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).


  • feat(core): Enable autoInjectSentryLabel by default in Metro config by antonis in #6141
  • chore(deps): update Bundler Plugins to v5.3.0 by github-actions in #6138
  • chore: Merge 8.11.1 back to main by antonis in #6135
  • chore: Update warning regarding iOS crash in sentry-cocoa 9.12.0 by antonis in #6136
  • chore(deps): update CLI to v3.4.2 by github-actions in #6129
  • chore(deps): bump getsentry/craft/.github/workflows/changelog-preview.yml from 2.26.2 to 2.26.3 by dependabot in #6126
  • chore(deps): bump getsentry/craft from 2.26.2 to 2.26.3 by dependabot in #6127
  • chore(deps): bump github/codeql-action from 4.35.3 to 4.35.4 by dependabot in #6128
  • feat(core): Extract text from children of touched components for breadcrumb labels by antonis in #6106
  • chore(deps): bump @babel/plugin-transform-modules-systemjs from 7.25.0 to 7.29.4 by dependabot in #6124
  • chore(deps): bump fast-uri from 3.0.1 to 3.1.2 by dependabot in #6121
  • chore(deps): bump fast-xml-builder from 1.1.5 to 1.2.0 by dependabot in #6120
  • chore(deps): bump socks to ^2.8.8 to fix ip-address vulnerability by antonis in #6117
  • chore(deps): bump uuid to ^13.0.1 to fix buffer bounds check vulnerability by antonis in #6118
  • test(replay): Add passthrough tests for device-state replay breadcrumbs by antonis in #6115
  • chore(deps): update JavaScript SDK to v10.52.0 by github-actions in #6108
  • chore(deps): bump basic-ftp from 5.3.0 to 5.3.1 by dependabot in #6111

🤖 This preview updates automatically when you update the PR.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 12, 2026

Fails
🚫 Pull request is not ready for merge, please add the "ready-to-merge" label to the pull request
Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against c481082

antonis and others added 2 commits May 12, 2026 15:31
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit c481082. Configure here.

@antonis antonis marked this pull request as ready for review May 12, 2026 13:44
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.

Enable autoInjectSentryLabel by default in React Native Metro config

1 participant