Core — Post-Meeting
Slice 4a Core.
Slice 4: Post-Meeting Reprocessing + Speaker ID
Owner: Core engineer Domain: Core Complexity: M Status: ✅ Done
The automatic pipeline that runs after recording stops.
Tasks
- publish
TranscriptionJobMessageandMeetingTerminatedMessageon session stop consumeMeetingSessionTerminated— drain AssemblyAI buffer; send final segments via REST - ML: skip task extraction when existing live tasks present
- Core:
POST /transcriptions/{id}/remap-speakerandPOST /transcriptions/{id}/identify-speakers - ML: speaker centroid computation + identify + remap pipeline
Test cases:
| Test | Location | Assertion |
|---|---|---|
| Post-meeting pipeline triggers automatically | test_system | Recording stop → transcript segments replaced with higher-accuracy version |
| Tasks from live session preserved | test_system | After post-meeting processing, user-created and system tasks still present |
| Speaker labels resolved to person_id | test_core | Cosine similarity match → segment person_id updated |
Talking points promoted to is_final: true | test_system | After post-meeting processing, talking points have is_final: true |
| Headline generated | test_system | Meeting has non-null headline after post-meeting processing |