Add Share Inbox flow for unresolved WhatsApp imports

This commit is contained in:
Rijad Zuzo
2026-02-19 00:26:18 +01:00
parent d2205bd3d9
commit d70edb4c4c
9 changed files with 1278 additions and 113 deletions
+6 -2
View File
@@ -96,10 +96,14 @@ Behavior notes:
- iOS/Android: integrates with share-intent plugin (`receive_sharing_intent`)
- shared text is parsed and ingested into:
- person profile (auto-create when unresolved)
- person profile (auto-create when identity is confident)
- source->profile link map for follow-up matching
- moment history (`type=whatsapp`)
- Settings includes `Simulate WhatsApp Share` action for local/dev testing.
- ambiguous or missing-identity shares are queued in `Share Inbox` for manual
resolution
- Settings includes:
- `Simulate WhatsApp Share` for local/dev testing
- `Open Share Inbox` to resolve queued items
## Local Persistence Backend
+39 -1
View File
@@ -1,6 +1,44 @@
# Relationship Saver Progress Log
Updated: 2026-02-17
Updated: 2026-02-18
## Collaboration Rule (Carry Forward)
- After every sensible code/documentation change set, create a git commit as
the last step so the next agent session can pick up from clean checkpoints.
## Latest Milestone (2026-02-18): Share Inbox Resolution Flow
Added manual resolution UX and data paths for ambiguous/unidentifiable WhatsApp
shares:
- Introduced unresolved-share queue model:
- `lib/features/local/local_models.dart`
- new `SharedInboxEntry` + `SharedInboxReason`
- persisted in `LocalDataState.sharedInbox`
- Extended ingest result + repository APIs:
- `lib/features/local/local_repository.dart`
- `SharedMessageIngestResult` now reports imported vs queued-for-resolution
- ambiguous/missing-identity shares are routed to inbox instead of forced
auto-link
- added resolution actions:
- resolve inbox item to existing profile
- resolve inbox item by creating a new profile (with optional location)
- dismiss inbox item
- Added dedicated Share Inbox view:
- `lib/features/share_intake/share_inbox_view.dart`
- shows unresolved items, suggested matches, create-profile dialog, dismiss
- Wired entry points:
- `lib/features/share_intake/whatsapp_share_listener.dart`
- snackbar now routes unresolved imports to Share Inbox
- `lib/features/settings/settings_view.dart`
- added `Open Share Inbox` action and updated simulation feedback
- Added tests:
- `test/features/local/local_repository_test.dart`
- unresolved queue behavior
- resolve-to-existing-profile flow
- `test/features/share_intake/share_inbox_view_test.dart`
- inbox render + dismiss behavior
## Latest Milestone (2026-02-17): WhatsApp Share Intake + Profile Quick Actions