Skip to content

Commit f7f85a9

Browse files
committed
feat: integrate Recall.ai SDK for automatic meeting recording
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.
1 parent a9bfa19 commit f7f85a9

24 files changed

+3531
-1570
lines changed

forge.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ function copyNativeDependency(
3636
const config: ForgeConfig = {
3737
packagerConfig: {
3838
asar: {
39-
unpack: "**/*.node",
39+
unpack: "{**/*.node,node_modules/@recallai/**}",
4040
},
4141
prune: false,
4242
name: "Array",

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
"@posthog/agent": "1.15.0",
6666
"@radix-ui/react-icons": "^1.3.2",
6767
"@radix-ui/themes": "^3.2.1",
68+
"@recallai/desktop-sdk": "^1.3.0",
6869
"@tanstack/react-query": "^5.90.2",
6970
"@tiptap/extension-link": "^3.6.6",
7071
"@tiptap/extension-mention": "^3.6.6",
@@ -81,6 +82,7 @@
8182
"ai": "^5.0.75",
8283
"cmdk": "^1.1.1",
8384
"date-fns": "^3.3.1",
85+
"idb-keyval": "^6.2.2",
8486
"node-pty": "1.1.0-beta37",
8587
"radix-themes-tw": "0.2.3",
8688
"react": "^18.2.0",

pnpm-lock.yaml

Lines changed: 81 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/update-openapi-client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { execSync } from "node:child_process";
44
import * as fs from "node:fs";
55
import * as yaml from "yaml";
66

7-
const SCHEMA_URL = "https://us.posthog.com/api/schema/";
7+
const SCHEMA_URL = "http://localhost:8010/api/schema/";
88
const TEMP_SCHEMA_PATH = "temp-openapi.yaml";
99
const OUTPUT_PATH = "src/api/generated.ts";
1010

0 commit comments

Comments
 (0)