Live-class recording
A live class is recorded automatically. The recorder starts on the first published track, and the finished file becomes a recording that enrolled founders can play.
States
The live class has two separate status fields.
The diagrams show the intended path. The service does not guard the order: start, end and cancel set the status whatever the current state is. A class that nobody ever publishes into stays at recording status NONE. That is correct: there is nothing to record.
Why it starts on the first track
An earlier version started the egress when the class started. In an empty room the composite layout renders nothing and never signals that it has started, so the egress timed out with code 412 ("Start signal not received") and no file was written. Starting on track_published fixed it. See ADR 6.
Playback
The recording is listed for enrolled learners at GET /api/v1/lms/recordings/course/{courseId} and played through the same stream-token mechanism as lesson video. See Video upload and Range streaming.
Sources: services/lms-service/src/main/java/com/rtih/startupos/lms/{service/LiveClassService,resource/EgressWebhookResource}.java, .agents/tasks/lms-egress-412/fix-report.md.