diff --git a/ROADMAP.md b/ROADMAP.md index 652b003..eec25f0 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -63,6 +63,12 @@ This document tracks planned features and their implementation status. - Creates contacts marked as `isReceivedCard` - "Scan Card" button in Contacts toolbar +- [x] **watchOS companion app** - Show default card QR code on Apple Watch + - Full-screen default card display (no card picker) + - QR codes pre-generated on iPhone (CoreImage not available on watchOS) + - Syncs via WatchConnectivity framework + - Automatic sync when cards created, edited, or deleted on iPhone + --- ## 🔲 Planned Features @@ -132,11 +138,18 @@ This document tracks planned features and their implementation status. - [x] **SwiftData persistence** with CloudKit sync - [x] **Bedrock integration** - Design system, QR code generator -- [x] **iOS-Watch sync** via App Groups +- [x] **iOS-Watch sync** via WatchConnectivity framework + - ⚠️ App Groups do NOT work for iPhone ↔ Watch (different devices) + - Uses `updateApplicationContext` for persistent sync + - Watch app must be embedded in iOS app with "Code Sign On Copy" checked - [x] **Unit tests** for models, stores, and new features - [x] **Fixed data persistence** - Removed aggressive store deletion on startup - [x] **Custom symbol assets** - Brand icons in asset catalog with proper rendering - [x] **Drag-and-drop reordering** - Using `draggable` and `dropDestination` modifiers +- [x] **Single source of truth for names** - Removed legacy `displayName` property + - `fullName` computed from individual name fields (prefix, firstName, lastName, etc.) + - `vCardName` for plain vCard export + - No stored displayName that can get out of sync ### Planned @@ -144,7 +157,6 @@ This document tracks planned features and their implementation status. - [ ] **Spotlight indexing** - Search cards from iOS search - [ ] **Siri shortcuts** - "Share my work card" - [ ] **App Intents** - iOS 17+ action button support -- [ ] **Migrate legacy properties** - Move all cards to new ContactField array --- @@ -153,8 +165,9 @@ This document tracks planned features and their implementation status. - Features marked with 🔲 are planned but not yet implemented - Features requiring backend are deferred until infrastructure is available - Priority may shift based on user feedback -- Legacy contact properties (email, phone, linkedIn, etc.) maintained for backward compatibility +- watchOS uses WatchConnectivity (NOT App Groups) - see `Agents.md` for details +- `fullName` is computed, not stored - never add a `displayName` property --- -*Last updated: January 9, 2026* +*Last updated: January 10, 2026*