docs(architecture): note per-stream diarization in the stop data flow (FR-SPK)

This commit is contained in:
iamdoubz committed 2026-07-14 00:53:06 -05:00
1 parent 695a12dc2d
commit d8587b8e93
1 file changed
+8 -4
+8 -4
View File
@@ -84,10 +84,14 @@ issues from feature briefs.
4. Provisional speaker turns (from cheap segmentation) tag segments live; the user may name a
speaker, applied immediately to past/future segments (FR-SPK-2).
5. The notes view renders Markdown that updates as segments arrive (FR-NOTE-1, FR-NOTE-6).
6. On `stop_recording`: finalize the WAV; run full `diarization`, align speaker IDs to segments,
apply name mappings; persist transcript JSON + metadata via `storage` (FR-STORE-1). If "Record
this meeting" is **off**, delete the working WAV **after** the transcript is finalized; if **on**,
keep it as `audio.wav` (ADR-0009, FR-REC-1/4).
6. On `stop_recording`: finalize the WAV; run `diarization`, align speaker IDs to segments,
apply name mappings; persist transcript JSON + metadata via `storage` (FR-STORE-1). When the mic
is on, attribution is **per-stream** (ADR-0005 Phase 3, FR-SPK): the mic-activity timeline that
`audio` recorded (in `audio.wav` frame time, where the mic is folded into the loopback writer) is
the user's "You" spans directly, and sherpa clusters only the far side — the recording diarized
with those ranges masked out. Blind whole-signal clustering + voiceprint is the mic-off fallback.
If "Record this meeting" is **off**, delete the working WAV **after** the transcript is finalized;
if **on**, keep it as `audio.wav` (ADR-0009, FR-REC-1/4).
7. If an LLM provider is configured: `llm` builds a prompt (transcript + metadata + template),
streams a summary/decisions/action-items into the summary panel (FR-LLM-2/4).
8. Action items are parsed and presented for confirmation; confirmed ones persist and may raise