Thanks for working on Flow Read.
This project currently accepts contributions through GitHub Issues only. Pull requests are disabled and are not accepted.
Use issues to report bugs, request features, propose changes, or share implementation notes. Please include enough context for maintainers to reproduce or evaluate the request.
Flow Read is a Flutter app pinned by .fvmrc. Prefer FVM:
fvm flutter pub get
make runIf FVM is unavailable, use a local Flutter SDK that matches .fvmrc.
Use focused checks while developing, then run broader checks before sharing local implementation notes in an issue:
fvm dart analyze
fvm flutter test
git diff --checkFor release work, use the release tool:
dart run tool/release.dart current
dart run tool/release.dart check
dart run tool/release.dart package-localWhen updating assets/brand/flow_read_logo.png, regenerate the macOS app
switcher icon before sharing changes:
dart run tool/sync_macos_app_icon.dart --fix
dart run tool/sync_macos_app_icon.dart --checkDo not bump versions unless the change is explicitly a release/version update.
- Keep internal planning documents under
private/. private/is ignored by Git and should not be force-added.- Do not commit API keys, logs, backup files, imported books, or
.envfiles. - Run gitleaks before publishing public branches or release tags.
- Keep changes scoped to the active feature or bug.
- Preserve the local-first data model.
- Preserve Hive schema and migration compatibility.
- Keep AI provider configuration user-controlled.
- Keep online dictionary sources optional with local fallback.
- Prefer focused tests for parser, storage, settings, backup, dictionary, RSS, reader, and release behavior.