Repository navigation
feat(samples): Add Nav3 sample app (JAVA-274) - #6222
Merged
Merged
Conversation
0xadam-brown
requested review from
adinauer,
markushi,
romtsn and
runningcode
as code owners
October 5, 2026 08:57
Contributor
|
📲 Install BuildsAndroid
|
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
force-pushed
the
ref/extract-shared-sample-app-infra
branch
from
October 6, 2026 03:53
bef6b0f to
5d20ce5
Compare
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
force-pushed
the
feat/nav3-sample-app
branch
from
October 6, 2026 07:21
24523ee to
17b7421
Compare
Member
Author
|
Rebased on an updated target; otherwise unchanged. |
romtsn
approved these changes
Oct 6, 2026
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
force-pushed
the
feat/nav3-sample-app
branch
from
October 6, 2026 09:40
17b7421 to
0b0196d
Compare
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]>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 2 total unresolved issues (including 1 from previous review).
❌ 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.
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
enabled auto-merge (squash)
October 6, 2026 10:00
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

📜 Description
PR introduces a sample app for our Sentry Nav3 integration – in particular,
SentryNavEffect.The key implementation classes are
Nav3SetupActivityandNav3Activity, each of which is closely modeled after the existingNav2SetupActivityandNav2Activitythat 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
Basic flow for verifying nav transaction boundaries and data generation
View nav transactions in real time via bottom sheet
Flow for ensuring nav3 transactions continue to play nicely with custom transactions
Performance stress testing
💚 How did you test it?
Manually by installing the sample app and navigating through relevant flows.
📝 Checklist
sendDefaultPIIis enabled.🔮 Next steps
@ApiStatus.Internalannotations from SentryNavEffect, SentryNavOptions, and BackStackEntryMapper + add an appropriate CHANGELOG entry + publish thesentry-android-navigation3module via craft (link).rememberSentryEntryProvider()method that lets us extract Sentry back stack entry info from the mapping users already have to do on behalf ofNavDisplay. (We don't have to hold up release of Nav3 support for this.)#skip-changelog