feat(replays): Add superuser replay debugger dropdown option#116391
Conversation
Add a new dropdown menu item for superusers/employees to open replay data in the Sentry Replay Debugger macOS app. The option copies rrweb frames JSON to clipboard and opens the app via custom URI scheme. Also replace '(superuser)' text with FeatureBadge debug variant on existing superuser-only menu items. Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
📊 Type Coverage Diff✅ No new type safety issues introduced. Coverage: 93.59% |
| <span> | ||
| {tct('Debug in [link]', { | ||
| link: ( | ||
| <ExternalLink href="https://github.com/getsentry/replay-debugger/releases"> | ||
| {t('Sentry Replay Debugger')} | ||
| </ExternalLink> | ||
| ), | ||
| })} | ||
| </span> | ||
| <FeatureBadge type="debug" /> | ||
| </Flex> |
There was a problem hiding this comment.
Bug: Placing an ExternalLink inside a menu item's label alongside an onAction handler creates conflicting click behaviors and an unpredictable user experience.
Severity: MEDIUM
Suggested Fix
To resolve the ambiguity, either remove the ExternalLink from the label if the onAction is the intended primary action, or use the externalHref prop on the menu item itself if the goal is to navigate. Alternatively, handle the click on the ExternalLink separately with its own stopPropagation to prevent the menu item's action from firing.
Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location:
static/app/views/explore/replays/detail/header/replayItemDropdown.tsx#L101-L114
Potential issue: A new menu item, "Debug in Sentry Replay Debugger", is configured with
an `onAction` handler. Simultaneously, its `label` contains a nested `ExternalLink`
component, which renders an `<a>` tag. The parent menu item does not have an
`externalHref`, causing it to render as a `div` with an `onClick` handler that includes
`e.stopPropagation()`. This setup creates conflicting behaviors. When a user clicks the
link, it's ambiguous whether the link's navigation will be prevented by the parent's
click handler, or if both the navigation and the `onAction` handler will fire, leading
to an inconsistent and potentially broken user experience.
Did we get this right? 👍 / 👎 to inform future reviews.
There was a problem hiding this comment.
not ideal but i want the app linked since ppl wont have it installed
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit fac47d7. Configure here.

(superuser)text withFeatureBadgedebug variant on existing superuser-only menu items