mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-06-12 19:55:19 +02:00
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.
|
||
|---|---|---|
| .. | ||
| agent-schedule-state.ts | ||
| agent-schedule.ts | ||
| agent.ts | ||
| background-task.ts | ||
| bases.ts | ||
| billing.ts | ||
| blocks.ts | ||
| browser-control.ts | ||
| code-mode.ts | ||
| composio.ts | ||
| events.ts | ||
| example.ts | ||
| frontmatter.ts | ||
| index.ts | ||
| inline-task.ts | ||
| ipc.ts | ||
| live-note.ts | ||
| llm-step-events.ts | ||
| mcp.ts | ||
| message.ts | ||
| models.ts | ||
| prefix-logger.ts | ||
| prompt-block.ts | ||
| rowboat-account.ts | ||
| runs.ts | ||
| service-events.ts | ||
| workspace.ts | ||