Skip to content

Conversation

@lucasheriques
Copy link
Contributor

@lucasheriques lucasheriques commented Oct 29, 2025

Summary

  • Add RecordingView component to display full meeting details with live transcript
  • Show conditional sections: Summary/Action Items/Notes only for past recordings
  • Active recordings show simplified view focused on live transcript
  • Live transcript supports auto-scroll with manual override

Implementation

RecordingView component (src/renderer/features/notetaker/components/RecordingView.tsx):

  • Displays meeting header (title, platform, timestamp)
  • Conditionally renders Summary/Action Items/Notes sections for past recordings only
  • Shows live transcript with auto-scroll for active recordings
  • Transcript display: speaker colors, timestamps, alternating row backgrounds
  • Auto-scroll hint visible when user scrolls away during active recording

NotetakerView integration (src/renderer/features/notetaker/components/NotetakerView.tsx):

  • Renders RecordingView when a recording is selected
  • Passes selected recordingItem to component

Notes

This PR builds on #73 which provides the foundation (hooks, stores, keyboard navigation).

Add Recall.ai Desktop SDK integration for automatic detection and
recording of Zoom, Teams, and Google Meet meetings with real-time
status updates and management UI.

Features:
- Automatic meeting detection (Zoom/Teams/Google Meet)
- Recording lifecycle with status updates (recording → uploading → processing)
- Notetaker UI for viewing and managing recordings
- PostHog backend integration for storage and backup
- IPC handlers for renderer/main process communication

Security:
- Proper URL hostname validation (prevents substring injection)
- UUID validation for recording IDs (prevents path traversal)
- Title-based detection only as fallback with warning logs

Architecture:
- Recall SDK runs in main process with event listeners
- PostHog API client for CRUD operations on recordings
- Zustand store for UI state management
- Status updates via IPC from main to renderer

Configuration:
- Vite: externalize Recall SDK (prevent bundling)
- Forge: unpack Recall SDK from asar archive
- Initialize SDK automatically on authentication

This PR implements Phase 1B of the desktop recordings feature,
providing the foundation for future transcript streaming and
note-taking capabilities.
- Add RecordingView component with comprehensive recording detail display
- Display meeting header (title, platform, timestamp)
- Scaffold 4 main sections with "Coming soon" placeholders:
  - Summary (AI-generated)
  - Action items (AI-extracted tasks)
  - Notes (user-written with timestamps)
  - Transcript (live or historical)
- Implement live transcript with auto-scroll
  - Auto-scroll to bottom as new segments arrive
  - Manual scroll disables auto-scroll until near bottom
  - Only show auto-scroll hint for active recordings
- Use native scrollable Box instead of ScrollArea for better control
- Product-focused hierarchy: actionable info (summary/tasks) above reference (transcript)
- Transcript constrained to 300px max-height to leave room for other sections
lucasheriques added a commit that referenced this pull request Oct 29, 2025
## Summary
- Extract unique participants from transcript segments when recording ends
- Display participant count and names in RecordingView header
- Show participants as blue badges below meeting metadata

## Implementation
**Client-side extraction** (`recordingService.ts`):
- When meeting ends, extract unique participants from all transcript segments
- Single-pass array operation with Set deduplication (efficient even for 1000+ segments)
- Update recording with participants list via API

**UI Display** (`RecordingView.tsx`):
- Show participant count in header metadata ("3 participants")
- Display participant names as blue badges
- For active recordings: extract from current segments
- For past recordings: use stored participants field

## Notes
Builds on #74 (live transcripts) which provides the RecordingView component.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants