-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
featureFeature level issuesFeature level issues
Description
Enhanced Description
Conversation Recording & Export System tracks DreamNode invocations during FaceTime calls and generates email summaries with AI-powered conversation highlights. The system embeds invocation events directly into the real-time transcript for temporal alignment, then exports a pre-filled email draft with timestamped DreamNode links and conversation summary.
Parent Specification: #269
Parent Epic: #257
Technical Approach
1. Conversation Recording Architecture
- Trigger: Start recording when "Start Video Call" command executes
- Track: DreamNode invocations (click-based, not hotkey)
- Data structure:
{ timestamp: Date, nodeName: string, dreamUUID: string } - Real-time transcript embedding: Append
(Invoked: NodeName)inline to active transcript - Storage: Local-only, ephemeral (cleared on "End Video Call")
2. AI Summary System (Future-Proof Architecture)
- Provider abstraction layer: Interface for swappable LLM providers
- Initial implementation: Claude API via plugin settings
- Future-ready: OpenRouter integration, open-source model support
- Summary scope: Conversation summary with explicit attention to
(Invoked: NodeName)markers - Output: Contextualized DreamNode references with plain text deep links
3. Obsidian URI Deep Links
- Single node link:
obsidian://interbrain-clone?vault=<vault>&uuid=<dreamUUID> - Batch clone link:
obsidian://interbrain-clone-batch?vault=<vault>&uuids=<uuid1,uuid2,uuid3> - Behavior: Opens Obsidian, triggers InterBrain clone command with UUID(s)
- User flow: Click link → Obsidian opens → DreamNode(s) cloned to vault
- Current status: Proof of concept (logs + Notice), clone logic deferred to networking epic
4. Email Export via AppleScript
- Trigger: Automatic on "End Video Call" command
- Pre-filled fields:
- To: FaceTime contact email (auto-populated)
- Subject: "Call Summary: [Contact Name] - [Date]"
- Body:
- Header: "Call with [Person] on [Date] at [Time], Duration: [X minutes]"
- AI-generated conversation summary
- Timestamped list of invoked DreamNodes with deep links (plain text)
- Download link: https://github.com/ProjectLiminality/InterBrain?tab=readme-ov-file#installation--setup
- Batch clone link for all shared nodes
- User action: Review and send, or dismiss draft
5. Plugin Settings Integration
- Settings tab: Standard Obsidian
PluginSettingTabwith text input - Field: "Claude API Key" (password-style input)
- Storage: Obsidian's built-in
saveData()/loadData()system - Future: Additional fields for OpenRouter, model selection
Enhanced Acceptance Criteria
Conversation Timeline Tracking
- Track DreamNode invocations with precise timestamps
- Store invocation metadata: nodeName, dreamUUID, timestamp
- Start recording on "Start Video Call" command
- Embed invocation markers inline in transcript:
(Invoked: NodeName) - Maintain temporal ordering for future time-aligned summaries
AI Summary Generation
- Plugin settings tab with Claude API key input
- Abstract LLM provider interface for future extensibility
- Generate conversation summary from transcript text
- Explicitly identify and contextualize invoked DreamNodes in summary
- Handle edge case: pure discussion (no invocations) vs. node-rich conversations
Obsidian URI Deep Links
- Register custom URI handler:
obsidian://interbrain-clone - Single node clone via URI with UUID parameter
- Batch clone URI for multiple UUIDs
- Links open Obsidian and trigger handler (proof of concept with logs/Notice)
Email Export System
- Generate pre-filled Apple Mail draft via AppleScript
- Auto-populate recipient from FaceTime contact email
- Email body includes conversation metadata (date, time, duration)
- Timestamped list of invoked DreamNodes with clickable deep links
- Include batch clone link for all shared nodes
- Include InterBrain download/install link
- Trigger automatically on "End Video Call" (dismissible)
Data Management
- Clear conversation data when ending copilot mode
- Local-only storage (no cloud sync)
- Minimal memory footprint for long conversations
Integration Points
- Copilot System (Complete Copilot System with Real-time Search #327): Hooks into click-based invocation (DreamspaceCanvas.tsx)
- Transcription Service: Appends invocation markers to active transcript
- FaceTime Integration: Uses contact info for email auto-population
- Settings Framework: Standard Obsidian plugin settings pattern
Implementation Notes
- Click-based invocation: Records when user clicks DreamNode in copilot mode
- CORS workaround: Uses Obsidian's
requestUrl()instead offetch()for Claude API - Transcript preservation: Reads content before stopping transcription service
- Plain text emails: Working implementation after HTML attempt failed
- Deep links: Proof of concept established, actual clone logic deferred
Definition of Done
- All acceptance criteria met and tested
- Plugin settings integration working
- Email export generates correct AppleScript output
- Deep links proof of concept working (console logs + Notice)
- AI summary accurately reflects conversation context
- User testing confirms workflow is intuitive
- Code reviewed and merged to epic branch
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
featureFeature level issuesFeature level issues