rowboat/apps/x/packages
Prakhar Pandey 7f70275c70 fix: resolve macOS mic permission on first click in voice mode
On macOS, the first getUserMedia({audio:true}) call hits TCC permission
status 'not-determined' — the OS prompt appears but the in-flight call
rejects, is silently swallowed, and the UI snaps back to idle. Second
click works because permission is already granted.

Fix: add voice:ensureMicAccess IPC channel (mirroring the existing
meeting:checkScreenPermission pattern) that calls
systemPreferences.askForMediaAccess('microphone') before getUserMedia,
so the same first click proceeds once the user grants access.

Also fixes a secondary bug: on the failure path, the code only called
setState('idle'), leaking the WebSocket that connectWs() had already
opened. Now calls stopAudioCapture() for proper cleanup.
2026-06-10 21:06:03 +05:30
..
core add Gmail contacts autocomplete to compose box (#607) 2026-06-10 14:58:13 +05:30
shared fix: resolve macOS mic permission on first click in voice mode 2026-06-10 21:06:03 +05:30