Description
Implement AppleScript-based FaceTime integration to enable one-click call initiation from Obsidian commands, automatically transitioning to copilot mode for seamless conversation enhancement workflow.
Parent Specification: #269
Parent Epic: #257
Note: This feature is marked as Optional MVP - can be implemented after core copilot functionality is working.
Technical Approach
Metadata Structure
- Add optional
email and phone fields to person DreamNode metadata
- Contact fields only applicable to person-type nodes (not idea-type)
- Graceful fallback when metadata missing
AppleScript Integration
- Create
FaceTimeService for macOS FaceTime control
- Use AppleScript via Electron child_process for call initiation
- Design with future cross-platform abstraction in mind (Windows/Linux)
Implementation Phases
Phase 1: Basic FaceTime Launch
- Add contact metadata fields to DreamNode type definitions
- Implement AppleScript-based FaceTime call initiation
- Command: "InterBrain: Start Video Call" - launches FaceTime with selected person
- Command: "InterBrain: Set Contact Info" - temporary text input for testing metadata updates
- Error handling for missing contact info and FaceTime unavailability
Phase 2: Automatic Mode Switching
- Auto-switch to copilot mode when video call command triggered
- Command: "InterBrain: End Video Call" - exits copilot mode manually
- Smooth mode transition handling
Phase 3: Native Edit Mode UI Polish
- Add contact info fields to edit mode UI for person nodes
- Integrate contact editing into existing edit mode workflow
- Remove temporary "Set Contact Info" command
Enhanced Acceptance Criteria
Metadata & Contact Management
FaceTime Integration
Mode Switching
User Experience
Dependencies
Definition of Done
Implementation Priority
Status: Ready to implement - Core copilot functionality (#327) is complete and working.
Approach: Incremental development on single feature branch with three phases, each tested before moving to next.
Description
Implement AppleScript-based FaceTime integration to enable one-click call initiation from Obsidian commands, automatically transitioning to copilot mode for seamless conversation enhancement workflow.
Parent Specification: #269
Parent Epic: #257
Note: This feature is marked as Optional MVP - can be implemented after core copilot functionality is working.
Technical Approach
Metadata Structure
emailandphonefields to person DreamNode metadataAppleScript Integration
FaceTimeServicefor macOS FaceTime controlImplementation Phases
Phase 1: Basic FaceTime Launch
Phase 2: Automatic Mode Switching
Phase 3: Native Edit Mode UI Polish
Enhanced Acceptance Criteria
Metadata & Contact Management
emailandphonefields.udd/metadata.jsonformatFaceTime Integration
FaceTimeServiceclass created with AppleScript integrationMode Switching
User Experience
Dependencies
Definition of Done
emailandphonefieldsnpm run check-allImplementation Priority
Status: Ready to implement - Core copilot functionality (#327) is complete and working.
Approach: Incremental development on single feature branch with three phases, each tested before moving to next.