Skip to content

feat(nonstop_cli): harden the melos starter and enforce full coverage - #44

Merged
ProjectAJ14 merged 1 commit into
mainfrom
codex/solid-template-quality
Sep 15, 2026
Merged

ProjectAJ14 merged 1 commit into
mainfrom
codex/solid-template-quality

Conversation

@ProjectAJ14

Copy link
Copy Markdown
Contributor

Summary

Followed the generate → improve → verify → port → regenerate workflow for the
default NonStop CLI Melos starter. Changes are limited to the mono-repo brick,
its bundled generator, template verification, and related documentation/CI.

  • Separate app rendering, router composition, bootstrap and notification lifecycle.
  • Inject SDKs, transports, loggers and clocks; clarify ownership and disposal.
  • Fix auth refresh/retry races, cross-origin bearer leakage, response contracts,
    Remote Config defaults, route guards, notification registration and startup failures.
  • Replace hardware-derived notification IDs with persisted random installation IDs;
    remove payload/identity logging from default observers and network logs.
  • Add unit/widget tests throughout the generated workspace, including offline
    Firebase platform doubles and error/lifecycle regression cases.
  • Ship local Melos commands, a strict coverage gate, generated GitHub CI,
    architecture guidance, updated READMEs and changelog.
  • Generate from the CLI's reviewed bundle, with source/hook parity tests, rather
    than silently downloading a different registry template.

Verification

Tested using Flutter 3.44.0 / Dart 3.12.0:

  • CLI formatting and analysis: clean.
  • CLI suite: 28 passing tests, including all 512 module selections rendered
    and parsed for valid Dart and disabled-module imports, plus bundle/hook parity.
  • Fresh full workspace: 2,397/2,397 executable lines (100%), all tests passing,
    clean formatting/analysis and successful web build.
  • Fresh default workspace: 2,394/2,394 (100%), all tests passing, clean
    formatting/analysis and successful web build.
  • Fresh minimal workspace: 767/767 (100%), all tests passing, clean
    formatting/analysis and successful web build.
  • Auth-only, Firestore-only and network-only workspaces also passed their
    analysis, tests, 100% coverage gate and web builds during verification.
  • Browser smoke: Dashboard renders, Explore navigation works, no console errors.
  • Negative coverage test: adding an unimported, untested library makes the real
    gate fail with its missing line; removing it restores 100%. Gate unit tests also
    cover cross-package/path-alias merging, exclusions and missing tests/reports.

The new CI workflow repeats fresh generation for six representative profiles;
the 512-combination check is structural, not 512 full Flutter builds.

Coverage scope and integration boundaries

100% means executable-line coverage of handwritten runtime Dart under workspace
lib/ directories. Only generated .g.dart, .freezed.dart and .i69n.dart
files are excluded; tooling, tests and native platform code are outside the metric.
This is not a claim of complete branch coverage or absence of all bugs.

Firebase credentials, live push delivery, native provider sign-in, backend
authorization/security rules, and product privacy policy remain app-specific
integration work. The starter boots before Firebase is configured; demo-only
unguarded routes are explicitly documented and must not protect real data.

@ProjectAJ14
ProjectAJ14 merged commit 2d1b5ac into main Sep 15, 2026
13 checks passed
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.

1 participant