Export CheckStatus as enum, not just type - #1855 (@Ludobaka)
fix: improve ordering of resolving waitForBufferStatus calls - #1877 (@lukasIO)
Close streamcontrollers when datatrack gets unpublished - #1879 (@lukasIO)
Moves "connected to Livekit Server" log within RTCEngine.join so it shows up for reconnects as well as connects - #1873 (@1egoman)
Adds data tracks support - #1820 (@1egoman) (docs, blog post)
Send publisher offer with join request to accelerate connection - #1846 (@cnderrauber)
Enable E2EE key-size configuration via ExternalE2EEKeyProvider options - #1841 (@MariusBernhardt)
e2ee: ensure current key index isn't unintentionally updated - #1830 (@lukasIO)
Prevent unmute -> mute -> unmute cycle for track restarts that happen during unmute - #1793 (@mfairley)
Use controller.error to signal unexpected errors mid data stream - #1834 (@lukasIO)
Signal leave on failed connection attempts if signalling is connected - #1817 (@lukasIO)
Vendored ts-debounce and added critical timers to debounce function - #1800 (@mfairley)
Ensure cryptor setup respects async queue in worker - #1833 (@lukasIO)
Adds new OutgoingDataTrackManager to manage sending data track payloads - #1810 (@1egoman)
Ensure connection state mismatches aren't triggered for ongoing PC connection attempts - #1807 (@lukasIO)
Fix unnecessary track restarts on unmute when using ideal device constraints - #1794 (@mfairley)
Prevent ongoing renegotiations from declaring the negotiation as timed out - #1813 (@lukasIO)
Add data track packetizer and depacketizer implementations - #1798 (@1egoman)
Add missing type exports required by @livekit/components-core - #1815 (@1egoman)
export type RoomEventCallbacks - #1599 (@shincurry)
Remove experimental tag on some stabilized features - #1777 (@lukasIO)
Fix connection check issues with pinned regions - #1775 (@lukasIO)
Control latency of lossy data channel - #1754 (@cnderrauber)
Add docs comments making it clear TokenSource-prefixed exported types shouldn't be used for TokenSource construction - #1776 (@1egoman)
Fix leaking memory by removing event listener from correct scope - #1768 (@wuhkuh)
Wait for dc buffer status low for all published packets - #1691 (@lukasIO)
Fix message loss during resuming/migration - #1757 (@cnderrauber)
Add connectionCount tracking and stop auto refetching after timeout - #1756 (@lukasIO)
Add explicit error types for future helper - #1753 (@lukasIO)
fix(LocalTrackAudio): prevent overwriting constraint flags - #1744 (@itamayo)
Add exponential backoff strategy in case of connection failures - #1715 (@lukasIO)
Add participant as an optional parameter to EncryptionError events emitted on room level - #1723 (@CSantosM)
fix(e2ee): propagate worker data decryption errors and reject corresponding promises - #1729 (@CSantosM)
Fix potential undefined access while disconnecting - #1734 (@lukasIO)
Add new areTokenSourceFetchOptionsEqual function - #1733 (@1egoman)
Ensure publication isn't attempted after timeout rejected the promise - #1725 (@lukasIO)
Apply server supplied cache control settings for region url provider - #1669 (@lukasIO)
Only export types for TokenSource variants to try to push users to use the TokenSource.foo static constructors instead - #1707 (@1egoman)
Add check to ensure track visibility update only happens when adaptiveStream is enabled - #1712 (@1egoman)
Populate participant identity when receiving encrypted e2ee packets - #1679 (@lukasIO)
Export supportsAudioOutputSelection helper - #1676 (@lukasIO)
Fix bug in isResponseExpired token expiry checking logic - #1683 (@1egoman)
Use WebSocketStream for sequential signal processing - #1638 (@lukasIO)
Support for data channel encryption on React-Native - #1678 (@davidliu)
Add preliminary support for data message decryption - #1595 (@lukasIO)
Add video autoplay attributes to PublishVideoCheck - #1648 (@Doomann)
Ensure handleDisconnect is called also when already in Reconnecting state - #1671 (@lukasIO)
Fix TS 5.9 generic Uint8Array declaration when inferred - #1668 (@lukasIO)
Properly clean up event listeners in getNewAudioContext() - #1660 (@indexds)
Avoid uncaught errors related to send/disconnect races - #1674 (@bryfox)
Register online listener in engine's join - #1658 (@lukasIO)
add TokenSource token fetching abstraction - #1645 (@1egoman)