From 85ed3b5587f664a9eaacc22edcbf03fb09692abc Mon Sep 17 00:00:00 2001 From: iamdoubz <> Date: Mon, 13 Jul 2026 19:25:31 -0500 Subject: [PATCH] docs(api-contracts): note transcript://segment re-emit + live diarization://updated (FR-SPK) --- docs/04-api-contracts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/04-api-contracts.md b/docs/04-api-contracts.md index af90f18..deccc5b 100644 --- a/docs/04-api-contracts.md +++ b/docs/04-api-contracts.md @@ -183,9 +183,9 @@ privacy_self_check(): { "recording://state" { meetingId, state: "recording"|"paused"|"stopped"|"cancelled", elapsedMs } "recording://level" { meetingId, rms: number, peak: number } // waveform (FR-CAP-5) "recording://device" { meetingId, recovered: boolean, message: string } // capture device change (FR-CAP-6) -"transcript://segment" { meetingId, segment: TranscriptSegment } // live segments (FR-TRX-2) +"transcript://segment" { meetingId, segment: TranscriptSegment } // live segments (FR-TRX-2); may re-emit a committed segment with a refined `speaker` — replace by `segment.id` "transcript://finalized" { meetingId, segmentCount } -"diarization://updated" { meetingId, speakers: SpeakerInfo[] } // after post-pass (FR-SPK) +"diarization://updated" { meetingId, speakers: SpeakerInfo[] } // post-pass AND live 15s provisional passes (FR-SPK); carries "You" once the mic voiceprint matches "llm://token" { meetingId, text } // streamed summary (FR-LLM-4) "llm://done" { meetingId, summary: SummaryFile } // full summary.json contents, not just a pointer "model://progress" { id, receivedBytes, totalBytes }