Summary
Starting a desktop recording from the Zoom Call detected flow selects native ScreenCaptureKit call capture. The recording successfully captures both microphone and system audio, but it does not start or feed the recording live-transcription sidecar. As a result, live Sidekick/Coach consumers receive no transcript during the meeting even though the final post-stop transcription succeeds.
A manual recording started immediately afterward in the production app selected the standard audio-capture path and produced live transcript events normally. This makes the failure specific to the native-call capture path, not microphone permissions or audio availability.
Environment
- macOS
- Zoom desktop call
- Minutes Dev bundle:
com.useminutes.desktop.dev, version 0.23.0
- Minutes production bundle:
com.useminutes.desktop, version 0.23.0
- Both bundles have
com.apple.security.device.audio-input entitlement
- Reproduced: 2026-07-27
Reproduction
- Join a Zoom meeting.
- In Minutes Dev, use the Call detected recording action.
- Confirm recording is active.
- Check
minutes transcript --status during the meeting.
- Speak and allow remote participants to speak.
- Stop the recording and allow final processing to complete.
- Start a manual recording in Minutes production during the same meeting and compare live transcript status.
Actual behavior
Native-call recording (Minutes Dev)
The recording-start event advertised only native-call capabilities:
{
"event_type": "recording.started",
"source": "capture",
"capabilities": [
"native-call.capture",
"screen-capture-kit",
"mode.meeting"
]
}
During the recording:
{
"active": false,
"line_count": 54,
"diagnostic": "sidecar status unavailable"
}
No fresh live.utterance.final events were emitted for that session.
However, the stopped capture produced a healthy 91-second native-call artifact with separate stems:
- Voice stem: mean
-34.8 dB, max -13.3 dB
- System stem: mean
-23.3 dB, max -3.8 dB
- Post-stop Whisper processing: 28 segments / 183 words
- Final artifact: 211 words
This proves microphone and system-audio capture were functioning.
Manual recording control (Minutes production)
The immediately following manual recording advertised:
{
"event_type": "recording.started",
"source": "capture",
"capabilities": [
"audio.capture",
"live.utterance.final",
"mode.meeting"
]
}
Its live status became healthy and live.utterance.final events arrived during the meeting.
Expected behavior
A desktop recording started through native ScreenCaptureKit call capture should provide the same live-transcription contract as the standard recording path:
- start the recording sidecar;
- feed it an appropriate live stream derived from the native microphone/system stems;
- write
live-transcript-status.json and live-transcript.jsonl;
- emit
live.utterance.final events;
- include
live.utterance.final in the recording.started capabilities when available.
If live transcription cannot be supported on the native path, the UI and capability contract should state that explicitly instead of allowing Sidekick/Coach to silently attach to an audio recording with no live evidence.
Likely code gap
The standard capture functions in crates/core/src/capture.rs call start_live_sidecar(...) and feed captured samples through live_tx.
The native desktop path in tauri/src-tauri/src/commands.rs::start_native_call_recording starts the ScreenCaptureKit helper and emits native-call.capture / screen-capture-kit, but does not start or feed the live sidecar.
This appears to be an architectural wiring gap rather than a TCC permission failure.
Impact
High for live-assistance workflows: the durable recording succeeds, but terminal Sidekick and Coach silently receive no live transcript on the primary native desktop call-capture path.
Summary
Starting a desktop recording from the Zoom Call detected flow selects native ScreenCaptureKit call capture. The recording successfully captures both microphone and system audio, but it does not start or feed the recording live-transcription sidecar. As a result, live Sidekick/Coach consumers receive no transcript during the meeting even though the final post-stop transcription succeeds.
A manual recording started immediately afterward in the production app selected the standard audio-capture path and produced live transcript events normally. This makes the failure specific to the native-call capture path, not microphone permissions or audio availability.
Environment
com.useminutes.desktop.dev, version0.23.0com.useminutes.desktop, version0.23.0com.apple.security.device.audio-inputentitlementReproduction
minutes transcript --statusduring the meeting.Actual behavior
Native-call recording (Minutes Dev)
The recording-start event advertised only native-call capabilities:
{ "event_type": "recording.started", "source": "capture", "capabilities": [ "native-call.capture", "screen-capture-kit", "mode.meeting" ] }During the recording:
{ "active": false, "line_count": 54, "diagnostic": "sidecar status unavailable" }No fresh
live.utterance.finalevents were emitted for that session.However, the stopped capture produced a healthy 91-second native-call artifact with separate stems:
-34.8 dB, max-13.3 dB-23.3 dB, max-3.8 dBThis proves microphone and system-audio capture were functioning.
Manual recording control (Minutes production)
The immediately following manual recording advertised:
{ "event_type": "recording.started", "source": "capture", "capabilities": [ "audio.capture", "live.utterance.final", "mode.meeting" ] }Its live status became healthy and
live.utterance.finalevents arrived during the meeting.Expected behavior
A desktop recording started through native ScreenCaptureKit call capture should provide the same live-transcription contract as the standard recording path:
live-transcript-status.jsonandlive-transcript.jsonl;live.utterance.finalevents;live.utterance.finalin therecording.startedcapabilities when available.If live transcription cannot be supported on the native path, the UI and capability contract should state that explicitly instead of allowing Sidekick/Coach to silently attach to an audio recording with no live evidence.
Likely code gap
The standard capture functions in
crates/core/src/capture.rscallstart_live_sidecar(...)and feed captured samples throughlive_tx.The native desktop path in
tauri/src-tauri/src/commands.rs::start_native_call_recordingstarts the ScreenCaptureKit helper and emitsnative-call.capture/screen-capture-kit, but does not start or feed the live sidecar.This appears to be an architectural wiring gap rather than a TCC permission failure.
Impact
High for live-assistance workflows: the durable recording succeeds, but terminal Sidekick and Coach silently receive no live transcript on the primary native desktop call-capture path.