-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
featureFeature level issuesFeature level issues
Description
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
emailandphonefields to person DreamNode metadata - Contact fields only applicable to person-type nodes (not idea-type)
- Graceful fallback when metadata missing
AppleScript Integration
- Create
FaceTimeServicefor 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
- Person DreamNode metadata includes optional
emailandphonefields - Contact fields stored in
.udd/metadata.jsonformat - Graceful error message when contact info missing
- Temporary command for quick contact info testing (Phase 1)
- Native edit mode UI for contact editing (Phase 3)
FaceTime Integration
-
FaceTimeServiceclass created with AppleScript integration - Command "InterBrain: Start Video Call" initiates FaceTime call
- FaceTime launches with contact pre-filled from metadata
- Error handling for FaceTime app unavailability
- Cross-platform abstraction considered in service design
Mode Switching
- Automatic transition to copilot mode when call starts
- Command "InterBrain: End Video Call" exits copilot mode
- Smooth UX flow from call initiation to active copilot session
- Proper cleanup when exiting copilot mode
User Experience
- Clear error messages for all failure scenarios
- Contact info only relevant for person-type nodes
- Integration feels natural within existing InterBrain workflow
- Edit mode shows contact fields for person nodes (Phase 3)
Dependencies
- Complete Copilot System with Real-time Search (Complete Copilot System with Real-time Search #327) ✅
- Person DreamNode metadata structure
- macOS AppleScript capabilities
- Existing edit mode infrastructure
Definition of Done
- Person DreamNode metadata supports
emailandphonefields - "InterBrain: Start Video Call" command successfully launches FaceTime
- Automatic mode switching to copilot works seamlessly
- "InterBrain: End Video Call" command exits copilot gracefully
- Error states handled with clear user feedback
- Edit mode UI allows editing contact info for person nodes
- All phases tested in Obsidian development vault
- Code follows project architectural patterns
- Tests passing with
npm run check-all
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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
featureFeature level issuesFeature level issues