Skip to content

feat(samples): Add Nav3 sample app (JAVA-274) - #6222

Merged
0xadam-brown merged 8 commits into
mainfrom
feat/nav3-sample-app
Oct 6, 2026
Merged

0xadam-brown merged 8 commits into
mainfrom
feat/nav3-sample-app

Conversation

@0xadam-brown

@0xadam-brown 0xadam-brown commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

📜 Description

PR introduces a sample app for our Sentry Nav3 integration – in particular, SentryNavEffect.

The key implementation classes are Nav3SetupActivity and Nav3Activity, each of which is closely modeled after the existing Nav2SetupActivity and Nav2Activity that back our Nav2 sample app.

💡 Motivation and Context

Let's us verify Nav3 integration behavior end-to-end, and to see actual Sentry UI output.

Makes it easy for LLMs to verify behavior under development and after the fact.

addresses: JAVA-274

Screenshots

Setup Activity for enabling / disabling data generation and verifying compatibility with transactions based on Activities and user interactions

1 - setup

Basic flow for verifying nav transaction boundaries and data generation

2 - product-detail

View nav transactions in real time via bottom sheet

3 - transactions

Flow for ensuring nav3 transactions continue to play nicely with custom transactions

4 - custom

Performance stress testing

5 - performance

💚 How did you test it?

Manually by installing the sample app and navigating through relevant flows.

📝 Checklist

  • I added GH Issue ID & Linear ID
  • I added tests to verify the 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.
  • Review from the native team if needed.
  • No breaking change or entry added to the changelog.
  • No breaking change for hybrid SDKs or communicated to hybrid SDKs.
  • Public API changes reviewed by another Mobile SDK team member or implemented according to the develop docs spec.

🔮 Next steps

  • Remove the @ApiStatus.Internal annotations from SentryNavEffect, SentryNavOptions, and BackStackEntryMapper + add an appropriate CHANGELOG entry + publish the sentry-android-navigation3 module via craft (link).
  • sentry-docs
  • Introduce a new rememberSentryEntryProvider() method that lets us extract Sentry back stack entry info from the mapping users already have to do on behalf of NavDisplay. (We don't have to hold up release of Nav3 support for this.)

#skip-changelog

@0xadam-brown 0xadam-brown added the ship-it PR is ready to merge from a reviewer perspective label Oct 5, 2026
@linear-code

linear-code Bot commented Oct 5, 2026

Copy link
Copy Markdown

JAVA-274

@github-actions

github-actions Bot commented Oct 5, 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 8044d13

@sentry

sentry Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

📲 Install Builds

Android

🔗 App Name App ID Version Configuration
SDK Size io.sentry.tests.size 8.59.0 (1) release

⚙️ sentry-android Build Distribution Settings

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale Bugbot comment from a previous run.

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale Bugbot comment from a previous run.

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale Bugbot comment from a previous run.

0xadam-brown added a commit that referenced this pull request Oct 5, 2026
Restore the idle state after warm-up and keep integration-mode recompositions out of extractor and processed-call counters until real navigation work begins.

Refs GH-6222
Co-Authored-By: Codex <[email protected]>
@0xadam-brown
0xadam-brown force-pushed the ref/extract-shared-sample-app-infra branch from bef6b0f to 5d20ce5 Compare October 6, 2026 03:53
0xadam-brown added a commit that referenced this pull request Oct 6, 2026
Restore the idle state after warm-up and keep integration-mode recompositions out of extractor and processed-call counters until real navigation work begins.

Refs GH-6222
Co-Authored-By: Codex <[email protected]>
@0xadam-brown

Copy link
Copy Markdown
Member Author

Rebased on an updated target; otherwise unchanged.

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale Bugbot comment from a previous run.

Base automatically changed from ref/extract-shared-sample-app-infra to main October 6, 2026 09:38
0xadam-brown and others added 5 commits October 6, 2026 11:39
Introduce a sample app for our Sentry Nav3 integration (SentryNavEffect). Key implementation classes are Nav3SetupActivity and Nav3Activity, each of which is closely modeled after the existing Nav2SetupActivity and Nav2Activity that back our Nav2 sample app.

Co-Authored-By: Codex <[email protected]>
Fall back to the single-stack route when saved route arguments are missing and remove unused extractor-count bookkeeping from performance measurements.\n\nCo-Authored-By: Codex <[email protected]>
Record the performance sample from a SideEffect so the SentryNavEffect DisposableEffect and its extractors have completed before timing is captured.\n\nCo-Authored-By: Codex <[email protected]>
Restore the idle state after warm-up and keep integration-mode recompositions out of extractor and processed-call counters until real navigation work begins.

Refs GH-6222
Co-Authored-By: Codex <[email protected]>
@0xadam-brown

Copy link
Copy Markdown
Member Author

Rebased on an updated target; otherwise unchanged.

Record performance counters after successful composition, finish stale custom transactions on return to the home route, and clear A/B measurement guards after restoring integration mode.

Refs JAVA-274

Co-Authored-By: Codex <[email protected]>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 2 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 0b0196d. Configure here.

0xadam-brown and others added 2 commits October 6, 2026 11:52
Run performance counter updates once after SentryNavEffect setup for each back stack or integration-mode change. This preserves extractor guard ordering without including later Scaffold or NavDisplay work in timing measurements.

Refs JAVA-274

Co-Authored-By: Codex <[email protected]>
Let the uncaught exception handler report crash-button failures so deduplication cannot turn them into handled events. Recognize Nav3 scenario tags when labeling transactions in the history sheet.

Refs JAVA-274

Co-Authored-By: Codex <[email protected]>
@0xadam-brown
0xadam-brown enabled auto-merge (squash) October 6, 2026 10:00
@0xadam-brown
0xadam-brown merged commit da4dbf8 into main Oct 6, 2026
71 of 72 checks passed
@0xadam-brown
0xadam-brown deleted the feat/nav3-sample-app branch October 6, 2026 10:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ship-it PR is ready to merge from a reviewer perspective

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants