lukepighetti/fluro
63.5
Adequate · 23 September 2026
1.2k
lines of production code
Dart
primary language
5
measurements over time
What this system is
Fluro is a routing library for Flutter that provides pattern matching, function handlers, and configurable page transitions. It manages navigation by mapping URL patterns to specific handlers, supporting named and query parameters. The system has been updated to support modern Flutter versions with null-safety and native platform integration.
Features
Fluro router library and project metadata
The repository now contains the source and metadata for the Fluro Flutter router library. This includes the CHANGELOG.md detailing version history (e.g., 2.0.5, 2.0.4, 1.7.8), the .metadata file tracking Flutter project properties, a Makefile for build and test automation, and an updated .gitignore. The project license has changed from the original Posse Productions license to the MIT License. The README.md has been expanded to document Fluro's features, such as function handlers, wildcard matching, and null-safety support.
(repo-wide) · high confidence
Behavioural changes
Fluro example app migrated to Flutter's v2 Android embedding and iOS native integration
The example app has been updated to use the modern Flutter plugin system. On Android, the project now uses the v2 embedding with \FlutterActivity\ and \GeneratedPluginRegistrant\, and on iOS, the \AppDelegate\ registers plugins via \GeneratedPluginRegistrant\. This ensures the example app correctly supports native platform integration and plugin resolution in modern Flutter versions.
example · high confidence
Fluro library entry point and routing API updated
The library's public API has been restructured: the old \lib/router.dart\ file was removed and replaced with a new \lib/fluro.dart\ entry point that exports \common\, \extensions\, \fluro\_router\, and \tree\ modules. This change aligns the library's structure with the new Pages / Navigator 2.0 API, avoiding collisions with the standard \Router\ class. Users should update their imports to use the new \fluro\ entry point.
lib · high confidence
Refactor routing API and introduce explicit transition types
The routing API has been refactored to replace the generic \Router\ class with a more specific \FluroRouter\ to avoid naming collisions with Flutter's native \Router\ class. The \define\ and \navigateTo\ methods now accept explicit \TransitionType\ and \transitionDuration\ parameters, allowing users to configure slide, fade, or custom transitions directly in the route definition. Additionally, the \RouteCreator\ and \HandlerFunc\ type signatures have been updated to pass \Map\<String, List\<String\>\>\ for route parameters, and the \BuildContext\ is now passed to handlers to support accessing route settings and arguments via new extension methods.
lib/src · high confidence
Test coverage
Added tests for route parsing and transition types
Added new tests in test/parser\_test.dart to verify that FluroRouter correctly parses named parameters, query parameters, and array parameters. The tests also confirm that the router correctly matches routes and preserves the specified transition type.
test · high confidence
Dependencies
Fluro 2.0.5 release with null-safety and updated dependencies
The Fluro library has been updated to version 2.0.5, introducing null-safety support (SDK \>=2.12.0) and updating the example project to use AndroidX. The main package now includes dev\_dependencies for testing, and the example app's Android configuration has been migrated to AndroidX with updated Gradle and Kotlin versions.
(dependencies) · medium confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 54 → 63 (+9.6)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 96 (-4.1)
- Architecture 100 → 94 (-5.5)
- Maturity 34 → 46 (+12.3)
- Readiness 47 → 59 (+12.7)
- Security 87 → 98 (+11.0)
- Domain Modelling 100 → 100 (+0.0)
Resolved (9)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- No exposed public API
- Test reliability not included
- complexity unreadable for .dart, .kt, .swift — churn × complexity hotspots could not be measured
- dormant codebase — no living knowledge left to concentrate
New (14)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- FluroRouter.matchRoute (cognitive 26) (lib/src/fluro_router.dart)
- FluroRouter.matchRoute (cyclomatic 20) (lib/src/fluro_router.dart)
- FluroRouter.navigateTo (cognitive 16) (lib/src/fluro_router.dart)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- No dependency advisory monitoring
- RouteTree.matchRoute (cognitive 24) (lib/src/tree.dart)
- Workflow token permissions not restricted
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
lukepighetti/fluro was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 23 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit c2bc0592ee4a3bfe9a9875f6f1debed1a0ad63a6 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-955b9cee9818.