Auger/progress.md

59 lines
2.6 KiB
Markdown

# 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
- `SettingsPage` can 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`.
- `updateFeed` replaces feed object and can change derived `id`:
- 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
1. Fix the `SettingsPage` API key crash and respect feed `enabled` flags during aggregation.
2. Replace template widget test with app-specific widget tests for navigation + settings.
3. Extract pipeline orchestration from `HomePage` into a dedicated service for testability.
4. Add structured error/reporting model surfaced in the UI.
5. Add retry/backoff and timeout handling for external requests.