@recallai/desktop-sdk 2.0.29 → 2.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ ### 2.0.31 [patch] (MacOS) - 2026-09-08
2
+ - Added support for Zoom Web on macOS
3
+ - Fixed issue where screenshare tiles were detected as participants for Google Meet on macOS
4
+ - Improved participant name detection across locales for Google Meet on macOS
5
+ - Fixed crash when tracking application processes on macOS
6
+ - Improved microphone setup and Zoom shutdown logging on macOS
7
+
8
+ ### 2.0.30 [patch] (MacOS+Windows) - 2026-09-04
9
+ - Added support for detecting Zoom webinars on macOS
10
+ - Added support for Japanese locale Zoom detection on Windows
11
+ - Improved reliability for WebSocket media and transcription connections
12
+ - Improved artifact upload retry behavior
13
+ - Improved Windows network error logging
14
+ - Improved telemetry for dead SCK audio streams on macOS
15
+ - Fixed Google Meet leave-call handling for DSDK bots on macOS
16
+ - Fixed issue where stdin EPIPE errors could cause the macOS SDK executable to fail
17
+ - Fixed issue where system audio capture processes could be orphaned on macOS
18
+ - Fixed Zoom shutdown handling on macOS
19
+
1
20
  ### 2.0.29 [patch] (MacOS+Windows) - 2026-08-16
2
21
  - Added support for Google Meet compliance messaging on Safari on macOS
3
22
  - Fixed issue capturing video and active speakers when using vertical tabs for Google Meet on macOS
@@ -415,4 +434,4 @@
415
434
 
416
435
  ### 1.0.0 [major] (MacOS+Windows) - 2025-07-24 (deprecated)
417
436
 
418
- - Initial Changelog Entry
437
+ - Initial Changelog Entry
package/index.d.ts CHANGED
@@ -24,7 +24,7 @@ export type EventTypeToPayloadMap = {
24
24
  'log': LogEvent;
25
25
  'network-status': NetworkStatusEvent;
26
26
  };
27
- export type Permission = 'accessibility' | 'screen-capture' | 'microphone' | 'system-audio' | 'full-disk-access' | 'teams-automation';
27
+ export type Permission = 'accessibility' | 'screen-capture' | 'microphone' | 'system-audio' | 'full-disk-access' | 'teams-automation' | 'browser-automation';
28
28
  export interface RecallAiSdkWindow {
29
29
  id: string;
30
30
  title?: string;
@@ -34,7 +34,7 @@ export interface RecallAiSdkWindow {
34
34
  export interface RecallAiSdkConfig {
35
35
  api_url?: string;
36
36
  apiUrl?: string;
37
- acquirePermissionsOnStartup?: Exclude<Permission, 'teams-automation'>[];
37
+ acquirePermissionsOnStartup?: Exclude<Permission, 'teams-automation' | 'browser-automation'>[];
38
38
  [key: string]: any;
39
39
  }
40
40
  export interface StartRecordingConfig {
package/index.js CHANGED
@@ -280,10 +280,13 @@ function flushPendingStdinWrites() {
280
280
  if (!err) {
281
281
  return;
282
282
  }
283
- if (session !== stdinWriteSession) {
283
+ if (proc !== currentProc || session !== stdinWriteSession) {
284
284
  return;
285
285
  }
286
286
  rejectPendingCommand(nextWrite.commandId, new Error(`Failed writing ${nextWrite.command} command [${nextWrite.writeSequence}] (${nextWrite.commandId}) to Desktop SDK stdin: ${err.message}`));
287
+ // Node calls the write callback before emitting the same error on
288
+ // stdin. Start teardown here; the stream error handler performs
289
+ // process-wide cleanup and absorbs that subsequent emission.
287
290
  if (currentProc.exitCode === null && !currentProc.killed) {
288
291
  currentProc.kill();
289
292
  }
@@ -462,6 +465,18 @@ function startProcess() {
462
465
  }
463
466
  });
464
467
  const currentProc = proc;
468
+ currentProc.stdin?.on('error', (error) => {
469
+ if (proc !== currentProc || exiting) {
470
+ return;
471
+ }
472
+ // Do not use logError here: it sends a command through this same stdin.
473
+ console.error(`Desktop SDK: stdin stream error: ${error.stack ?? error.message}`);
474
+ resetPendingStdinWrites();
475
+ flushPendingCommands(new Error(`Desktop SDK stdin error: ${error.message}`));
476
+ if (currentProc.exitCode === null && !currentProc.killed) {
477
+ currentProc.kill();
478
+ }
479
+ });
465
480
  stdinWriteSession++;
466
481
  flushingPendingStdinWrites = false;
467
482
  waitingForStdinDrain = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@recallai/desktop-sdk",
3
- "version": "2.0.29",
3
+ "version": "2.0.31",
4
4
  "description": "Recall Desktop SDK",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
@@ -20,5 +20,5 @@
20
20
  "@types/node": "^24.2.0",
21
21
  "typescript": "^5.3.3"
22
22
  },
23
- "commit_sha": "1c0ea15419afd259015a68e28912342656244b33"
23
+ "commit_sha": "b3eb5a671b9d78156cac60566d696a9acd48f726"
24
24
  }