Parent: #22
Flow
- User sends via twin UI → message stored encrypted → instant display
- Background worker picks up pending messages → sends via AppleScript
- Status updates: pending → sent → delivered (if read receipt available)
- Incoming iMessage messages → polled via sqlite → added to encrypted store → pushed to twin UI
Edge cases
- iMessage unavailable (not macOS): twin works standalone, no sync
- iMessage send fails: retry with backoff, show error in twin UI
- Duplicate detection: message ID matching between twin store and iMessage DB
🤖 Generated with Claude Code
Parent: #22
Flow
Edge cases
🤖 Generated with Claude Code