Uh oh!
There was an error while loading. Please reload this page.
This repository was archived by the owner on Aug 6, 2026. It is now read-only.
feat: integrate Recall SDK for meeting detection and recording - #65
Merged
Conversation
ContributorAuthor
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
lucasheriquesforce-pushed
the
feat/recall-sdk-integration
branch
5 times, most recently
from
October 27, 2025 14:43
68ae01b to
5ffb727Compare10 tasks
lucasheriquesforce-pushed
the
feat/recall-sdk-integration
branch
from
October 27, 2025 16:25
5ffb727 to
b5f4955Comparelucasheriquesforce-pushed
the
feat/recall-sdk-integration
branch
8 times, most recently
from
October 28, 2025 19:00
f7f85a9 to
ef6bc29Comparelucasheriques
marked this pull request as ready for review
October 28, 2025 19:06
lucasheriques
requested review from
jonathanlab, k11kirky and rafaeelaudibert
and removed request for
jonathanlabOctober 28, 2025 19:24
lucasheriquesforce-pushed
the
feat/recall-sdk-integration
branch
from
October 28, 2025 20:28
ef6bc29 to
21f1235CompareAdd 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.
lucasheriquesforce-pushed
the
feat/recall-sdk-integration
branch
from
October 29, 2025 04:19
21f1235 to
6625edcCompare
This was referenced Oct 29, 2025
jonathanlab
approved these changes
Oct 29, 2025
jonathanlab
left a comment
Contributor
There was a problem hiding this comment.
Great stuff, I like the IDB usage 🚢
ContributorAuthor
Merge activity
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Notetaker: Meeting Recording & Transcription
Automatic recording and transcription for Google Meet, Zoom, Teams, and Slack.
Architecture
Key decision: Zustand is the single source of truth. Main process only coordinates.
Why Zustand for state management:
Data flows:
isRecording→ Creates recording in API → Sends IPC → Zustand stores → UI updatesState:
isRecording(deduplication),windowToRecordingMap(Recall SDK only provides windowId, we need to map it to our recordingId)Current Limitations
isRecordingflag prevents concurrent recordings (by design for v1)What to Review
Core files:
src/main/services/recallRecording.ts- Recall SDK integration, event forwardingsrc/renderer/services/recordingService.ts- IPC handlers, batch uploads, crash recoverysrc/renderer/stores/activeRecordingStore.ts- Recording state managementWatch for:
Schemas.DesktopRecordingfrom generated API (not custom interfaces)isRecordingboolean check (no IPC)Special thanks to @rafaeelaudibert on his tip to keep all Recall's state outside of React. ❤️