fix(voice): self-video, DM-call takeover, and live participants preview #118

Merged
nrupard merged 1 commit from fix/voice-call-bugs into main 2026-05-15 19:59:07 +02:00
Owner
  • Camera toggle on: call updateTileMedia(self) and reassign srcObject so the local
  • Accepting a 1:1 DM call now leaves any active enclave voice channel first, so a single user cannot end up in two simultaneous calls fighting over the mic/camera.
  • Broadcast VoiceJoined/VoiceLeft to room subscribers (not just current voice members) and have the voice page subscribe to its room over WS. Maintain a live participants map on the client, seeded from the server-rendered preview and updated on every roster/joined/left event, then re-render the preview HTML from it (including before un-hiding it on leave). Fixes the leaver seeing "no one here" after leaving a busy call and the joiner seeing an empty preview on a busy call.
- Camera toggle on: call updateTileMedia(self) and reassign srcObject so the local <video> actually unhides after the first start (it stayed display:none before, so the camera owner could not see themselves while peers could). - Accepting a 1:1 DM call now leaves any active enclave voice channel first, so a single user cannot end up in two simultaneous calls fighting over the mic/camera. - Broadcast VoiceJoined/VoiceLeft to room subscribers (not just current voice members) and have the voice page subscribe to its room over WS. Maintain a live participants map on the client, seeded from the server-rendered preview and updated on every roster/joined/left event, then re-render the preview HTML from it (including before un-hiding it on leave). Fixes the leaver seeing "no one here" after leaving a busy call and the joiner seeing an empty preview on a busy call.
fix(voice): self-video, DM-call takeover, and live participants preview
All checks were successful
Check / clippy + fmt + tests (pull_request) Successful in 2m52s
52ab2c997e
- Camera toggle on: call updateTileMedia(self) and reassign srcObject so the local <video> actually unhides after the first start (it stayed display:none before, so the camera owner could not see themselves while peers could).
- Accepting a 1:1 DM call now leaves any active enclave voice channel first, so a single user cannot end up in two simultaneous calls fighting over the mic/camera.
- Broadcast VoiceJoined/VoiceLeft to room subscribers (not just current voice members) and have the voice page subscribe to its room over WS. Maintain a live participants map on the client, seeded from the server-rendered preview and updated on every roster/joined/left event, then re-render the preview HTML from it (including before un-hiding it on leave). Fixes the leaver seeing "no one here" after leaving a busy call and the joiner seeing an empty preview on a busy call.
nrupard deleted branch fix/voice-call-bugs 2026-05-15 19:59:07 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/lets-chat!118
No description provided.