Core — Schema, Endpoints, Events
Slice 1 Core.
Slice 1: Core — Schema, Endpoints, WebSocket Events
Owner: Core engineer Domain: Core Complexity: L
The foundation everything else builds on. No UI can be built until these contracts exist and the API spec is regenerated.
Tasks
- Write and apply DB migrations (UUIDv7,
speaker_label,start_ms/end_ms,person_id,is_final,headline,status) - Implement
GET /meetings/{id}/audio-url— returns signed GCS URL - Implement
POST /meetings/{id}/speaker-labels— bulk person_id assignment + voice profile enrichment - Implement
PUT /transcriptions/{id}/segments— atomic replacement - Add new WebSocket events:
RecordingStartedEvent,RecordingStoppedEvent,RecordingDegradedEvent,TalkingPointEvent,TaskEvent - Implement ML streaming session management and audio GCS upload stream
- Regenerate API spec:
./dev gen all
Test cases:
| Test | Location | Assertion |
|---|---|---|
| Migrations apply cleanly | test_core | ./dev db migrate succeeds with no errors |
GET /audio-url returns signed URL | test_core | 200 with url and expires_at fields |
POST /speaker-labels updates segments | test_core | All segments with matching speaker_label receive person_id |
PUT /segments replaces atomically | test_core | New segments replace old; count matches input |
| WebSocket events conform to CloudEvents v1.0 | test_core | Events include specversion, id, source, type, time |
| Unauthenticated requests rejected | test_core | 401 for all new endpoints without auth |