NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #722 most downloaded on pub.dev
A builder that supports generated strongly-typed route helpers for package:go_router
Last release 1 months ago
02 Sep 2026
Ships fairly regularly
a new release about every 6 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
80 releases · first in 2022
One column per quarter.
Adds build-time detection of routes that resolve to the same URL pattern. go_router matches the first route that fits, so a duplicated path silently m
Adds build-time detection of routes that resolve to the same URL pattern. go_router matches the first route that fits, so a duplicated path silently makes the later route's page unreachable, and LaterRoute().go(context) navigates you to EarlierRoute's page instead. Today nothing surfaces that until you run into the issue at runtime.
Reported as a warning by default, and new duplicate_route_paths builder option accepts warning (the default), error, and ignore, so teams whose duplicates are mistakes can fail the build instead.
Before, go_router_builder's own example app built clean despite two duplicate registrations:
$ dart run build_runner build
[INFO] Succeeded after 14s with 36 outputs
After:
$ dart run build_runner build
W go_router_builder on lib/all_types.dart:
Duplicate route path detected: DoubleRoute is declared more than once at "double-route/:requiredDoubleField".
That duplicate was real. DoubleRoute had been registered twice since #2395 (2022) and DoubleExtensionRoute since #9458 (2025). Both were unreachable, and this PR removes them. The only change to the generated output is the dead route entries.
What competes for a URL namespace:
product/:id and product/:productId are one pattern.StatefulShellRoute branches, since those own no path of their own and their children compete with the routes around them./home/details/edit and /home/edit stay distinct.$appRoutes collects them into one list. Scope is the library, part files included.Testing: five new golden inputs in test_inputs/ cover sibling duplicates, parameter-name-only differences, StatefulShellRoute branches, relative routes, cross-annotation duplicates, and the sound same-class grouping case. The golden harness gained two optional companion files per input, documented in the README: <name>.dart.options supplies JSON builder options so each severity is exercised through the real option-parsing path, and <name>.dart.warnings asserts logged warnings, with an empty file asserting silence.
Fixes flutter/flutter#190741
Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.
StatefulShellRoute branches, between relative routes, and between separate
annotations in one library. Paths that differ only in a parameter name, or
only in casing where the earlier route sets caseSensitive: false, count as
the same pattern. These are reported as build warnings by default. The new
duplicate_route_paths builder option raises them to build errors with
error, or silences them with ignore.* Adds support for analyzer 14.
Adds hasOverriddenOnExit parameter to GoRouteData.$route and RelativeGoRouteData.$route helper methods for type-safe routes. When set to true, enables
hasOverriddenOnExit parameter to GoRouteData.$route and RelativeGoRouteData.$route helper methods for type-safe routes. When set to true, enables custom onExit callback invocation from route data classes extending GoRouteData or RelativeGoRouteData when the route is removed from the navigation stack.Updates minimum supported SDK version to Flutter 3.38/Dart 3.10.
Adds support for custom types through TypedQueryParameter annotation. The encoder, decoder and compare parameters allow specifying custom functions fo
TypedQueryParameter annotation. The encoder, decoder and compare parameters allow specifying custom functions for encoding, decoding and comparing query parameters in TypedGoRoute constructors. For example, you can use a DateTime parameter with a custom encoder and decoder to convert it to and from a string representation in the URL.Adds support for analyzer 11 and 12.
Adds supports for TypedQueryParameter annotation. Its name parameter allows specifying a different name for the query parameter than the field name. T
TypedQueryParameter annotation.
Its name parameter allows specifying a different name for the query parameter than the field name. The name is escaped to be URL-safe. For example @TypedQueryParameter(name: 'field with space') will generate a query parameter named field+with+space.Requires analyzer 8.2 or higher, to avoid experimental APIs.
analyzer 8.2 or higher, to avoid experimental APIs.Updates supported analyzer versions to 8.x or 9.x.
Allow analyzer: '>=7.4.0 <9.0.0'.
analyzer: '>=7.4.0 <9.0.0'.build: '>=3.0.0 <5.0.0'.source_gen: '>=3.1.0 <5.0.0'.Adds support for classes that support fromJson/toJson. #117261
Fixes unnecessary whitespace in generated RelativeGoRouteData.
RelativeGoRouteData.- Make Route mixins public.
Fixes warnings in generated code of iterable parameters.
Adds support for TypedRelativeGoRoute.
TypedRelativeGoRoute.Changes generated whitespace for better compatibility with new Dart formatter.
Adds support forextension type.
extension type.Updates README.md to use the mixin with _$RouteName.
with _$RouteName.Route classes now required to use a mixin with _$RouteName.
with _$RouteName.Adds support for caseSensitive for go routes.
caseSensitive for go routes.Fixes an issue when enum params are not required
Fixes an issue when navigate to router with invalid params
Adds support for passing preload parameter to StatefulShellBranchData.
preload parameter to StatefulShellBranchData.Fixes trailing ? in the location when a go route has an empty default value.
? in the location when a go route has an empty default value.Fixes an issue by removing unnecessary const in StatefulShellRouteData generation.
const in StatefulShellRouteData generation.Fixes an issue when using a not null List or Set param.
Supports the latest package:analyzer and package:source_gen.
package:analyzer and package:source_gen.Fixes readme typos and uses code excerpts.
Adds an example and a test with onExit.
onExit.Fixes a bug in the example app when accessing BuildContext.
BuildContext.Fixes typo in durationDecoderHelperName.
durationDecoderHelperName.dart_style-2.3.6 (compatible with analyzer-6.5.0).Adds support for passing observers to the StatefulShellBranch for the nested Navigator.
Updates examples to use uri.path instead of uri.toString() for accessing the current location.
Updates minimum supported SDK version to Flutter 3.13/Dart 3.1.
analyzer 5.2.0 or later.restorationScopeId to ShellRouteData.* Fixes new lint warnings.
Adds support for passing observers to the ShellRoute for the nested Navigator.
Fixes a bug of typeArguments losing NullabilitySuffix
Adds initialLocation for StatefulShellBranchConfig
initialLocation for StatefulShellBranchConfigSupports the latest package:analyzer.
package:analyzer.Adds pub topics to package metadata.
Adds Support for StatefulShellRoute
Fixes a bug where shell routes without const constructor were not generated correctly.
Bumps example go_router version to v10.0.0 and migrate example code.
Removes path_to_regexp from the dependencies.
path_to_regexp from the dependencies.Bumps example go_router version and migrate example code.
Cleans up go_router_builder code.
Adds replace methods to the generated routes.
Fixes a bug that the required/positional parameters are not added to query parameters correctly.
Supports required/positional parameters that are not in the path.
Fixes unawaited_futures violations.
Supports name parameter for TypedGoRoute.
TypedGoRoute.Updates the documentation to go_router v7.0.0.
Supports returning value in generated push method. go_router CHANGELOG
push method. go_router CHANGELOGSupports opt-in required extra parameters. #117261
* Adds Support for ShellRoute
Supports default values for Set, List and Iterable route parameters.
Set, List and Iterable route parameters.Generates the const enum map for enums used in List, Set and Iterable.
List, Set and Iterable.Replaces unnecessary Flutter SDK constraint with corresponding Dart SDK constraint.
Fixes the example for the default values in the README.
Updates router_config to not passing itself as extra.
extra.Your coding agent can read these notes before it upgrades. Set up the MCP server →