Skip to content

v3.13.0

Latest

Choose a tag to compare

@115jon 115jon released this 05 Nov 10:36
02c2365

3.13.0 (2026-11-05)

Features

  • mobile: ✨ join voice with a single admission (c5f3357)
  • mobile: ✨ pull simulcast cameras at their top layer (0e74233)
  • realtime: ✨ admit a voice join with one request (0652e6e)
  • realtime: ✨ share one socket core and gate opcodes by socket role (2d026c9)
  • realtime: one socket core for both rooms, with opcodes gated by socket role (ab548bc)
  • voice-media: ✨ close kept opt-in pulls on request (a070cef)
  • voice-room: ✨ relay simulcast layers and request rid fallback (8bcfe8c)
  • voice: ✨ add a publication reconciler to the voice package (7322167)
  • voice: ✨ add a voice session state machine package (60d2fc2)
  • voice: ✨ add the device rules to the voice package (fba1ea6)
  • voice: ✨ add the screen share lifecycle to the voice package (16a8704)
  • voice: ✨ give the publication reconciler a screen slot (ab91930)
  • voice: ✨ join voice with a single admission on web (272f06e)
  • voice: ✨ keep a remote participant's media through their reconnect (9600ec6)
  • voice: ✨ make the room the one authority on voice channel rosters (10c40a4)
  • voice: ✨ pull camera simulcast layers by rendered size (4526b83)
  • voice: ✨ skip the send window when there is no leave trigger (947048c)
  • voice: cameras send simulcast layers and viewers pull the one a tile needs (015dca2)
  • voice: one admission request per voice join (231c02c)
  • voice: the room is the one authority on voice channel rosters (32e24ce)

Bug Fixes

  • calls: 🐛 build the dm call room from the gateway user id (346551c)
  • calls: 🐛 prefer the gateway user id for the dm call room (7d255cc)
  • chat: 🐛 join the switch target after the old voice session left (909b22e)
  • chat: switching voice channels joins the new channel again (d5f93dc)
  • mobile: 🐛 disconnect within the leave on a phone (4b383f5)
  • mobile: 🐛 stop pulling video in the background (74be669)
  • mobile: 🐛 watch video when joining from the channel list (20c838c)
  • presence: 🐛 show disconnected dm and friend rows as offline (5a23dee)
  • presence: disconnected people no longer show online in DMs (c8386a7)
  • realtime: 🐛 keep the retired nonce table when its carry-over fails (53223e7)
  • realtime: 🐛 retry voice identify when the join cannot be verified (f539683)
  • room: 🐛 abandon an identify whose socket closed or was superseded (b182633)
  • room: 🐛 keep mute and deafen state on a re-sent voice channel join (ebacb5f)
  • voice-room: 🐛 pull simulcast cameras at top layer for old clients (ed71279)
  • voice: 🐛 drop a track publication whose publisher left mid-check (a18b216)
  • voice: 🐛 end lost sessions and release leftover state on leave (d2b4312)
  • voice: 🐛 end only the call a late voice leave belongs to (1ea48e5)
  • voice: 🐛 end or fall back a native share that cannot reconnect (d748069)
  • voice: 🐛 keep a watched share's video pulled until the share ends (48da625)
  • voice: 🐛 keep mute, device swaps and first capture through recovery (93996a7)
  • voice: 🐛 keep saved audio devices across restarts (8e5f38f)
  • voice: 🐛 keep simulcast rids when the camera track is replaced (5a2a637)
  • voice: 🐛 keep the fallback mic when a saved-device lookup fails (12ee30c)
  • voice: 🐛 keep unidentified voice sockets out of room broadcasts (47bfd29)
  • voice: 🐛 keep voice rosters through room resets and seq drift (3ac946d)
  • voice: 🐛 match saved devices by label before a shared groupId (0c566e2)
  • voice: 🐛 only let a user disconnect their own voice session (c76843d)
  • voice: 🐛 reopen the saved mic and speaker once they are listed (6e4e262)
  • voice: 🐛 reschedule the alarm after a failed voice identify (b180bba)
  • voice: 🐛 serialize stream audio restarts and clear failed shares (c9aa0e4)
  • voice: 🐛 show a camera turned back on to viewers (4ffd416)
  • voice: 🐛 show the still or loader until a tile has live video (c7cf924)
  • voice: 🐛 stop replanning an unpublish the connection already made (bd02e29)
  • voice: 🐛 stop stray screen captures and withdraw before native (6da3041)
  • voice: a camera turned back on reaches viewers, and layer switches land in 300 ms (03eac9b)
  • voice: close voice socket races and keep unidentified sockets out of the room (793d059)
  • voice: lost sessions end cleanly and native stream audio toggles (81f1258)
  • voice: only the session's own user can disconnect it from voice (dd7900b)
  • voice: saved microphone and speaker survive an app restart (6180238)

Performance Improvements

  • voice: ⚡️ pull screen video only once the viewer watches it (fd276f1)
  • voice: ⚡️ switch simulcast layers without waiting on the sfu (2c71432)