1. Start the copilot
The id invariant ismeeting_id == session_uid == native_id.
2. Turn processing on
Processing is opt-in. Toggle it on to start consuming the transcript:3. Stream the merged feed
Subscribe to the SSE stream that merges transcript and copilot output:transcript, card (a proposal), message-delta, tool-call, ping,
meeting-end. Every event carries an SSE id: — on reconnect, echo it as Last-Event-ID to resume
gaplessly.
Approving a card commits it to the workspace (a person, an action item, a decision).
Pause and resume mid-call
Toggle processing off to stop consuming without ending the meeting; the per-meeting cursor freezes. Turn it back on and it resumes from exactly where it stopped:on:true later resumes from the saved cursor ("resumed_from":"<id>") — no re-processing, no gap.
Health
native_resolve:{ok:false,kind:"unauthorized"} rather than silent dead air.