Diagnosed the recurring 'tests hang' pain by measurement: the logic layer
is fast and reliable (dart test commons_core ~1s/82 tests; flutter test
test/services ~11s/124 tests, green), and only WIDGET tests hang — because
pumpAndSettle() waits for a screen to stop scheduling frames and a live
source (Drift/Nostr stream, periodic Timer, connectivity/plugin) never does,
so it sits at the 10-minute default and the run looks stuck.
- apps/app_seeds/dart_test.yaml sets timeout: 90s so such a test FAILS fast
and names itself instead of blocking the whole run.
- CLAUDE.md now spells out the split-by-layer workflow (logic via
dart test/flutter test test/services; widget tests targeted + timed out;
never pumpAndSettle a live screen).