Implement WhatsApp share intake and person quick actions

This commit is contained in:
Rijad Zuzo
2026-02-19 00:09:28 +01:00
parent 818c1046f3
commit d2205bd3d9
15 changed files with 1463 additions and 4 deletions
+49
View File
@@ -2,6 +2,55 @@
Updated: 2026-02-17
## Latest Milestone (2026-02-17): WhatsApp Share Intake + Profile Quick Actions
Implemented the next major usage-flow slice focused on capture-to-action speed:
- WhatsApp share intake pipeline (MVP):
- `lib/features/share_intake/whatsapp_share_listener.dart`
- `lib/features/share_intake/whatsapp_share_parser.dart`
- listener now ingests shared WhatsApp text into local state while
authenticated
- parser resolves sender-prefixed message shapes (including timestamped
export line format)
- Source identity linking for repeat routing:
- `lib/features/local/local_models.dart`
- `lib/features/local/local_repository.dart`
- added persisted source->profile link records and shared-message history
- repeated shares with same source identity resolve to the same profile
- Auto profile creation on first unresolved share:
- `LocalRepository.ingestSharedMessage(...)`
- creates profile (when needed), writes/updates source link, and appends
WhatsApp moment capture to that profile history
- Profile model enhancement:
- added optional `location` field on `PersonProfile`
- wired into serialization, repository payload mapping, and People editor UI
- People context quick-add:
- `lib/features/people/people_view.dart`
- profile detail now includes `+` quick actions:
- Add Capture
- Add Note
- Add Idea
- Add Reminder
- each action is person-scoped and writes directly to local state
- Settings support for dev/testing:
- `lib/features/settings/settings_view.dart`
- added `Simulate WhatsApp Share` flow to test ingestion without OS share UI
- App bootstrap wiring:
- `lib/main.dart` wraps authenticated shell with `WhatsAppShareListener`
- runtime flag in `lib/core/config/app_config.dart`:
`ENABLE_WHATSAPP_SHARE_INTAKE`
- Added tests:
- `test/features/share_intake/whatsapp_share_parser_test.dart`
- `test/features/local/local_repository_test.dart` share-ingest/link reuse case
- updated migration expectation in
`test/features/local/storage/local_repository_hive_migration_test.dart`
Validation for this milestone:
- `flutter analyze` -> pass
- `flutter test` -> pass
## Latest Milestone (2026-02-17): Interactive Relationship Graph + Person Insights Drilldown
Upgraded the dashboard graph from static visualization to interactive