diff --git a/client/src/main.js b/client/src/main.js index 1700bd5..afd85ef 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -1,4 +1,4 @@ -const { app, BrowserWindow, ipcMain } = require("electron"); +const { app, BrowserWindow, ipcMain, session } = require("electron"); const path = require("path"); const fs = require("fs"); const { spawn } = require("child_process"); @@ -445,6 +445,24 @@ app.whenReady().then(async () => { // Load configuration first loadConfig(); + // Grant microphone permission automatically + session.defaultSession.setPermissionRequestHandler((webContents, permission, callback) => { + const allowedPermissions = ['media', 'mediaKeySystem', 'audioCapture']; + if (allowedPermissions.includes(permission)) { + console.log(`Granting permission: ${permission}`); + callback(true); + } else { + console.log(`Denying permission: ${permission}`); + callback(false); + } + }); + + // Also handle permission check (for some Electron versions) + session.defaultSession.setPermissionCheckHandler((webContents, permission) => { + const allowedPermissions = ['media', 'mediaKeySystem', 'audioCapture']; + return allowedPermissions.includes(permission); + }); + // Start backend sidecar if embedded mode is enabled startBackendSidecar();