The freeze-free receiver buffer, everywhere and automatic
The avatar crosses the public internet, where a few percent of packet loss is normal. The browser's default shallow receiver buffer stalls on every lost packet; a 0.5s cushion recovers it before playout (measured at ~5% loss: ~11fps with multi-second freezes → a steady 25fps). Until now that cushion was applied only by AvatarVideoSurface, so a vanilla page — or a React page rendering the track itself — froze. Nobody embedding the SDK should have to know that knob exists.
realtime-avatar/browsergainsprepareAvatarRoom(room): one call afternew Room(), beforeconnect; every track the room subscribes gets the cushion, audio and video alike. Also exported:applyPlayoutDelay,applyAvatarPlayoutDelay,DEFAULT_AVATAR_PLAYOUT_DELAY_SECONDS. (#57, #58)attachRemoteAudioapplies it for you, so the documented vanilla pattern is covered with no new line.playoutDelaySeconds: falseopts out. (#58)RealtimeAvatarLiveKitRoomapplies it room-wide to whatever you render inside it.playoutDelaySeconds={false}opts out. (#58)- Demos: LiveKit is loaded on the first gesture instead of blocking every handler behind three CDN round trips, and every demo uses the one-liner. (#57)
A minor rather than a patch because the demos import the new surface; a copy of one needs this version or later. Nothing on /react or /react-native changes shape.
Also in this release line since 0.6.1: the 8,000-character instructions envelope (#49), MAX_SESSION_CLIPS following the platform to 20 clips / 8 idle (#50).