2.6 KiB
2.6 KiB
Progress
Last updated: 2026-03-06
Current Status
The project is in a functional prototype stage: core feed aggregation and embedding-based grouping are implemented, but production hardening and test quality are still pending.
Completed
- Flutter app shell with desktop platform support (macOS, Linux, Windows).
- Navigation between Home and Settings pages (
go_router). - Persistent settings management via
Provider+SharedPreferences. - Default catalog of business/finance feeds.
- Feed parsing for both RSS and Atom formats.
- Concurrent feed retrieval and aggregation.
- OpenRouter embeddings integration (
openai/text-embedding-3-small). - Relevance filtering using keyword embedding similarity.
- Event grouping by cosine similarity.
- JSON output export pipeline for raw/enriched/relevant/grouped datasets.
In Progress / Partial
- UX for long-running pipeline execution:
- Processing runs on button tap with console logs only.
- No progress indicator, cancellation, or error surface in UI.
- Data quality controls:
- No deduplication or normalization layer before grouping.
- No source weighting/confidence scoring.
- Architecture maturation:
- Core pipeline is orchestrated in UI layer rather than dedicated service/use-case layer.
Known Defects and Risks
SettingsPagecan crash when API key is empty:apiKey.substring(0, 8)is called even when key is"".
- Disabled feeds are still processed:
- Home page currently sends all feed URLs, not only
enabled == true.
- Home page currently sends all feed URLs, not only
updateFeedreplaces feed object and can change derivedid:- If title/url changes, later operations using old id may become inconsistent.
- No guardrails for invalid/empty API key before embedding requests.
- Error handling is mostly
print-based and non-user-visible.
Validation Snapshot (run on 2026-03-06)
flutter analyze: fails with 24 issues- Includes 2 warnings (immutability, unused import) and multiple lint infos.
flutter test: fails- Existing test is the default counter smoke test and does not match current UI.
Testing Coverage
- No meaningful unit tests for:
- feed parsing
- similarity calculations
- grouping behavior
- settings persistence
- No widget/integration tests for Home and Settings user flows.
Next High-Impact Steps
- Fix the
SettingsPageAPI key crash and respect feedenabledflags during aggregation. - Replace template widget test with app-specific widget tests for navigation + settings.
- Extract pipeline orchestration from
HomePageinto a dedicated service for testability. - Add structured error/reporting model surfaced in the UI.
- Add retry/backoff and timeout handling for external requests.