Data flow
How a meeting flows — capture → diarize → identify → enrich → view.
There are four flows. All of them keep capture identity-free and all naming consent-gated.
Engine note. Our own stack runs the diarization below — diart (live) + TD, our own trained model, for the authoritative post-pass. While we scale our own models on TEE GPUs, a managed engine (Deepgram) currently serves as a temporary fallback; it uses the identical Redis wire format, so the flows are unchanged. Diarization separates speakers; it does not name them. Identity always comes from VFTEE, so capture stays identity-free. See Status.
Online (live)
In-person (live)
Post-meeting (authoritative)
Manual tag
Regulated-data redaction
See Verifiable redaction.
The segment contract
The split between diarization and identity is exact — segment_dict:
| Field | Owner |
|---|---|
start, end, local_speaker | Capture |
voiceprint_id, name, decision, confidence | VFTEE |
A second meeting recognizes the same voices — the voiceprint count does not grow. The durable
job queue (#16) makes finalize crash-safe: restarting Conclave, the worker, or the GPU box loses no
jobs (Redis XAUTOCLAIM + dead-letter).