fix(playlist): reconcile fallback lifecycle exactly once - #150
fix(playlist): reconcile fallback lifecycle exactly once#150nicoechaniz wants to merge 8 commits into
Conversation
|
Adversarial follow-up |
|
LiveKit-native evidence added in The opt-in integration test connects real The first controlled attempt also confirmed the production-safe LiveKit default: remote unmute is rejected. The successful lab rerun enabled The local container was stopped and auto-removed. PR remains draft/audio-guarded: no merge or deploy requested. Remaining #39 gap is the explicit health signal for “neither source produces frames” plus audible rehearsal/approval. |
|
Follow-up |
|
Fresh head |
|
Fast Forward checkpoint policy: the newly triggered full E2E workflow was intentionally canceled while this remains an audio-guarded draft. Focused playlist lifecycle tests/build/diff-check are green and the earlier unchanged native LiveKit lifecycle evidence is preserved; unit/lint-build/audio-boundary continue. Full E2E must be explicitly rerun and pass at the approval checkpoint before merge. |
|
Adversarial re-review on current head |
Outcome
Hardens the already-deployed playlist fallback decision with snapshot-based, exact-once lifecycle reconciliation.
ParticipantDisconnectedwhen replacementbeacon01already has live audio;Audio boundary
This PR does not change codec, bitrate, sample rate, channel count, PCM, gain, fade duration/equation, buffers, source selection or routing. It remains draft and requires Nico's explicit audio review before merge. No deploy is requested.
Evidence
npm test --prefix services/playlist-bot: 13/13 pass.npm run build --prefix services/playlist-bot: pass.git diff --check: pass.1922042; the prior head passed browser E2E and frozen-audio.Remaining #39 acceptance
This does not close #39. A controlled LiveKit-native rehearsal and a truthful signal for “neither source is producing audio” remain outstanding.
Risk / rollback
The runtime path still calls the existing
setBeaconAudioAvailableandonBeaconAvailabilityChanged; the helper only suppresses duplicate/stale transitions. Revert the PR merge commit to roll back.Refs #39.