docs: design spec + implementation plan for generic navigation_devtools#1
Merged
masreplay merged 16 commits intoJul 16, 2026
Conversation
Generalize the auto_route-only DevTools extension into a navigation_devtools core with a pluggable NavigationAdapter API covering Navigator 1.0, the Navigator 2.0 Router API, go_router, and auto_route, plus an adapter conformance test kit and a capability-aware multi-router panel UI. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
…, new package stubs, examples/) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
…lti-router NavigateRequest Also splits the web-only VmServiceDataSource out of data_source.dart so extension widget tests compile on the Dart VM, and renames the example package to auto_route_example. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
…vice extensions Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
Note: subscription cancel futures must not be awaited inside testWidgets fake-async — they never complete there; the kit uses unawaited(). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
…nned against 16.3.0) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
…; AutoRouteDevTools.init kept as shim Old ext.autoRouteDevtools.* service extensions are removed — the panel now speaks ext.navigationDevtools.* via the core registry. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
…irect badges NavigationPanel speaks protocol v2 (getRouters + per-router config/stack), gates every affordance on the selected router's capabilities, and adds empty/not-instrumented states with per-adapter setup snippets. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
…auto_route_devtools bundle The panel UI was visually verified against seeded fixtures for both a full-capability GoRouter view (selector, shell nesting, redirect badges) and a pop-only Navigator 1.0 view (tree pane replaced by explainer). lib/main_screenshot.dart is the committed harness for regenerating the docs/images screenshots. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
…into navigation_devtools_test flutter_test cannot be imported from a runtime package's lib/ (pub publish error), so the kit ships as its own dev-dependency package. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
…CI workflow Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
…nings Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
…paired-observer recipe tested and documented Navigator1Adapter already captures showDialog/showModalBottomSheet as pageless frames (regression-tested, poppable from the panel). go_router and auto_route route state never contains pageless routes, so the documented recipe is pairing their adapter with a Navigator1Adapter observer on the same navigator — proven by tests in both packages. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN
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.
Generalize the auto_route-only DevTools extension into a navigation_devtools
core with a pluggable NavigationAdapter API covering Navigator 1.0,
the Navigator 2.0 Router API, go_router, and auto_route, plus an adapter
conformance test kit and a capability-aware multi-router panel UI.
Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01GpNWM852Ee3GJFEeJEd4vN