Skip to content

feat: Zenrouter 3.0 - #99

Open
definev wants to merge 56 commits into
mainfrom
feat/zenrouter-3.0
Open

feat: Zenrouter 3.0#99
definev wants to merge 56 commits into
mainfrom
feat/zenrouter-3.0

Conversation

@definev

@definev definev commented Aug 17, 2026

Copy link
Copy Markdown
Owner

No description provided.

@vercel

vercel Bot commented Aug 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
zenrouter Error Error Aug 25, 2026 3:04am
zenrouter-docs Ready Ready Preview Aug 25, 2026 3:04am

@codecov-commenter

codecov-commenter commented Aug 17, 2026

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.95%. Comparing base (0cbba5a) to head (ef1c85b).
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
Flag Coverage Δ
zenrouter 99.88% <100.00%> (-0.12%) ⬇️
zenrouter_core 100.00% <100.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

definev added 18 commits August 17, 2026 18:07
…indings

- Introduced `RouteManifestFragment` for modular contributions to the application route manifest, validating local shape and ID uniqueness.
- Added `RouteBindingRegistry` to manage a complete set of route bindings, ensuring no duplicates and supporting both sync and async route target creation.
- Updated `CoordinatorRouteBinding` to facilitate manifest-backed URI parsing without the need for custom parser overrides.
- Renamed `recoverRouteFromUri` to `recoverUri` for consistency across the API.
- Enhanced documentation to reflect these changes and provide examples of the new modular routing capabilities.
…vigation flow

- Added automatic, memory-bounded app screen previews to Observed flow nodes with a capture toggle.
- Introduced a new `NavigationFlowScreenPreview` class to manage in-memory screenshots for observed routes.
- Updated `NavigationFlowRecorder` to store and manage screen previews, ensuring older previews are evicted when limits are reached.
- Enhanced the Observed flow view to support screen capture toggling and display previews within the navigation graph.
- Refactored the graph tab to integrate the new node flow canvas for improved visualization of navigation flows.
- Added zoom functionality to the observed navigation flow view, allowing users to zoom in and out of the graph.
- Implemented edge label toggling for better visualization of connections in the navigation graph.
- Introduced export options for observed flows, enabling users to copy URIs and export flow data in various formats.
- Updated the graph tab to integrate new navigation features, including clipboard support and improved layout options.
- Enhanced tests to cover new zoom and export functionalities, ensuring robust behavior in the navigation flow.
…ggling

- Refactored the `createObservedNodeFlowPorts` function to utilize `createNavigationNodeFlowPorts`, simplifying port creation.
- Removed the edge label toggling feature from the `_ObservedNavigationFlowViewState`, enhancing clarity and reducing complexity.
- Updated related tests to reflect changes in node position handling and removed assertions related to edge labels.
…unctionality

- Introduced a new `devtools_options.yaml` file to store settings for Dart & Flutter DevTools, including documentation links.
- Updated the macOS deployment target in the Xcode project from 10.15 to 12.0 for improved compatibility.
- Added a `debugScreenCapturePixelRatio` property to the `CoordinatorDebug` mixin, allowing for customizable screen capture resolution.
- Refactored the screen capture logic to utilize the new pixel ratio for better image quality.
- Enhanced tests to verify the new pixel ratio functionality and ensure proper screen capture behavior.
- Introduced a read-only mode for both the observed navigation flow and topology graph, allowing users to switch between inspect and preview behaviors.
- Updated the UI to include toggle buttons for read-only mode, enhancing user interaction and control over node manipulation.
- Enhanced tests to verify the functionality of the read-only mode toggle, ensuring correct behavior in both graph views.
- Added support for three layout modes: Stack (floating overlay), Row (side-by-side), and Column (top-and-bottom vertical split) for the DevTools panel.
- Implemented a header tool menu for dynamic switching between layout modes.
- Enhanced the CoordinatorDebug mixin to manage the active layout mode and provide a default configuration.
- Updated the debug overlay to adapt its presentation based on the selected layout mode.
- Added tests to verify the functionality of layout mode switching and resizing behavior in different configurations.
- Updated the debug overlay to include a new connection indicator with a circular design.
- Improved the hover effects for the debug floating action button, adding gradient backgrounds and dynamic border colors.
- Refactored the header icon button to a stateful widget, enabling hover state management for better user feedback.
- Introduced a custom painter for diagonal grip visuals, enhancing the UI experience during interactions.
- Added URI comparison logic to improve route information reporting during navigation.
- Updated the `resolveReportingType` method to handle traversal intents with URI checks, ensuring correct history management.
- Enhanced the `CoordinatorView` to prevent navigation after disposal during asynchronous URI parsing.
- Improved the `reset` method in `NavigationPath` to notify listeners synchronously during navigation transactions.
- Added tests to validate new behavior in route information reporting and navigation state management.
- Updated the route binding mechanism to simplify the binding function signature.
- Introduced new tests for lifecycle management in route guards, ensuring proper execution order of pop guards and lifecycle callbacks.
- Enhanced the test suite to cover scenarios for blocking and allowing route pops, validating the expected behavior during navigation transitions.
- Added `pushReplacement` functionality for indexed/branched parents to activate the destination route.
- Introduced `pushSilently` method to the `CoordinatorMutatable` interface for non-blocking route additions.
- Updated documentation to reflect changes in route binding and navigation methods.
- Enhanced tests to validate new routing behaviors and ensure correct stack management during navigation transitions.
- Added information about new URI operations available on `Uri` for enhanced navigation capabilities.
- Clarified the relationship between `CoordinatorRecoverable` and URI helpers in the migration guide.
- Introduced `deferredBindingFactory` and `deferredRouteNotFoundBinding` to facilitate loading deferred libraries before executing binding factories.
- Updated `RouteBinding.deferred` to utilize the new deferred loading mechanism, enhancing route resolution efficiency.
- Added tests to validate the behavior of deferred library loading in not-found route scenarios, ensuring correct execution order during navigation.
- Introduced a new `codecov.yml` file to manage coverage settings for the zenrouter monorepo, specifying targets and flags for individual packages.
- Updated GitHub Actions workflow to upload coverage reports for both `zenrouter` and `zenrouter_core` packages.
- Enhanced README files for both packages to include updated Codecov badges reflecting the new coverage flags.
- Added coverage annotations to various sections of the code to improve test coverage reporting.
- Refactored the handling of deeplink strategies in the CoordinatorRecoverable mixin for better clarity and maintainability.
- Updated the RoutePattern class to handle empty segments more robustly, ensuring proper error handling.
- Updated references from `CoordinatorRouteBinding` to `RouteModuleBinding` across various files, including documentation, examples, and tests, to reflect the new binding approach.
- Enhanced the migration guide and changelog to clarify the transition and benefits of using `RouteModuleBinding` for manifest-backed URI parsing.
- Ensured compatibility of existing coordinators and modules with the new binding structure, maintaining functionality while improving clarity.
- Revised the README to clarify the purpose of ZenRouter, emphasizing its support for imperative, declarative, and URL-based navigation.
- Introduced a new proposal document for `CoordinatorPath`, outlining the need for independent navigation domains and detailing the proposed architecture for managing multiple coordinators.
- Streamlined the documentation structure to enhance clarity and accessibility for users exploring different navigation paradigms.
- Revised the README files for both `zenrouter` and `zenrouter_core` to better articulate the purpose and features, emphasizing type-safe navigation and the graph-based approach.
- Updated the `pubspec.yaml` descriptions to reflect a more concise and focused overview of the packages, highlighting key functionalities and improvements.
- Enhanced overall documentation clarity to assist users in understanding the navigation framework and its capabilities.
- Simplified the definition of the ManualManifestCoordinator class by consolidating mixin declarations into a single line for improved readability.
- Maintained existing functionality while enhancing code clarity and maintainability.
- Replaced the launcher position management with alignment-based positioning for better responsiveness and maintainability.
- Simplified the layout structure in the `_buildCollapsedView` method, enhancing readability and reducing complexity.
- Updated the `_buildDraggableLauncher` method to streamline the widget tree and improve performance.
- Introduced new methods for converting between alignment and offset, enhancing the flexibility of the launcher positioning.
- Updated versioning across all packages to 3.0.0-beta.1, indicating a prerelease for early testers.
- Revised README and migration guide to reflect the new beta version and dependencies.
- Adjusted changelogs to highlight breaking changes and new features in the beta release.
- Ensured compatibility with `zenrouter_core` and `zenrouter_file_annotation` at the beta version level.
- Added a new see-through panel mode with translucent surfaces and backdrop blur, accessible via the header tool menu and controlled by `setDebugPanelSeeThrough`.
- Implemented a compact mobile UI with a shorter header, icon-only tabs, and a collapsible URI bar.
- Enhanced the draggable functionality of the floating debug panel with viewport clamping.
- Fixed mobile panel and FAB to respect safe area insets without double-applying the bottom inset.
- Enhanced `CoordinatorRouterDelegate.popRoute()` to first attempt to pop the deepest active `Navigator` using `maybePop()`, allowing nested navigators and `PopScope` to handle back requests appropriately.
- Updated `navigatorKey` retrieval logic to ensure correct navigator keys are used for nested paths.
- Added tests to verify that nested `PopScope` can consume back navigation requests as expected.
- Added a new `DOCUMENTATION_BLUEPRINT.md` outlining the structure and goals for the ZenRouter documentation overhaul, including the learning journey, audit findings, and content model.
- Revised `README.md` to reflect the new documentation approach, emphasizing the guided technical book format for ZenRouter 3.
- Updated `.gitignore` to include the `/dist/` directory and modified `pubspec.yaml` to streamline package descriptions and dependencies.
- Created initial chapter files for the documentation, detailing the ZenRouter model, navigation models, and foundational concepts.
- Introduced a new `hosting.json` configuration for deployment settings.
- Replaced the existing sidebar implementation with a more streamlined `StatelessWidget`, improving performance and maintainability.
- Updated the layout to conditionally display the sidebar based on the current path and screen width, enhancing user experience.
- Removed outdated UI elements from the header and sidebar, simplifying the interface and improving clarity.
- Added tests to ensure the sidebar behaves correctly based on navigation state and screen size.
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.

2 participants