WordloopWordloop
WorkDeliveredLive CaptureTechnical DesignMilestonesLive Recording

App — Live UI

Slice 3 App.

Slice 3: App — Live Recording UI + Audio Streaming

Owner: App engineer Domain: App Complexity: L Prerequisite: Slice 1 merged and ./dev gen all run

The user-facing live recording experience.

Tasks

  • Add recording controls to Meeting Detail (Record / Stop button, state-aware)
  • Implement microphone capture: MediaRecorder → binary chunks → WebSocket
  • Handle RecordingStartedEvent, RecordingStoppedEvent, RecordingDegradedEvent
  • Render live transcript, talking points, and tasks
  • Task input during recording: optimistic mutation with echo suppression
  • Graceful error handling: ML unavailable, session already active

Test cases:

TestLocationAssertion
Start recording → indicator visibletest_appRecording indicator component renders when session active
Live transcript renders final segmentstest_appFinal segment appears in transcript list
Interim segments visually distincttest_appInterim segment has opacity or muted style
Task creation is optimistictest_appTask appears in list before server response
Echo suppression workstest_appWebSocket event with matching sourceClientId is ignored
Degraded mode shows bannertest_appRecordingDegradedEvent → warning banner visible
Full live flow end-to-endtest_systemUser starts recording, sees transcript, adds task, stops — all data persisted

On this page