- Single peer connection mode via
RoomOptions.singlePeerConnection. Requires LiveKit Cloud or LiveKit OSS >= 1.9.2. - Missing data stream and RPC ObjC exposure with ObjC tests
- SoundPlayer API for prepared audio clips with local playback and best-effort remote playback
- Add isFinal property to ReceivedMessage for transcription segment finalization
- Changed minimal supported visionOS version to 26 due to WebRTC dependencies
- Update WebRTC to m144
- Remove swift-collections dependency by replacing with minimal internal implementations
- Local video track freezing during landscape rotation or losing aspect ratio
- Use software rendering in BroadcastImageCodec to avoid GPU crash when app is backgrounded during PiP
- Correct sample-buffer rendering for cropped and scaled screen-share frames
- WebSocket failing to connect in some concurrent scenarios
- Stop audio publishing when audio session activation fails by propagating configuration errors to the audio engine
- Set maximumFramesToRender on mixer audio nodes to prevent kAudioUnitErr_TooManyFramesToProcess (-10874) when iOS negotiates larger IO buffer sizes
- Crash during PeerConnection teardown caused by stats timer race
- Screen share via broadcast extension showing 3fps on receiver due to hardcoded simulcast layer FPS
- WebSocket errors killing new connections
- Voice Processing failing on iOS devices
- Missing objc annotations for some objc class members
- Expose separate bitrate/network priorities for media tracks
- Add option to disable automatic audio session deactivation
- Default other-audio-ducking configuration
- Linker warnings from FFI package
- Crashes on macOS Catalyst
- Reset/stop mixer player nodes on audio engine start/stop
- Camera selection changing after full reconnect
- Prepare connection & region pinning
- Experimental support and bindings for shared Rust crates using UniFFI
- Handle Room moved event
- Default protocol version to v16
- Minor validation logic improvements
- Memory leaks in data channel cancellation code
- Reconnect sequence stuck in failed state
- Crash audio processing adapter during deinit
- Screen sharing not publishing frames with VP9/AV1 codecs
- Crash in VideoView when video dimensions are both 0
- Crash when moving apps to background during broadcast
- Crash in LocalAudioTrack.deinit
- Default degradation preference for non-simulcast tracks
- Race condition during sync preventing track subscription
- Allowed Agent recovery from failed state
- Removed '@unchecked Sendable' extensions on common types
- Timeouts when publishing camera tracks
- Processing data packets out-of-order leading to stream corruption
- Separate delegate methods for reconnect start/completion
- Agent and Session APIs for creating agent-based apps
- Improved capture format logic for multicam devices
- Improved logging with the interface for custom loggers
- Add lastSpokeAt property to Participant
- Abstract token source for easier token fetching in production and faster integration with sandbox environment
- clamp response timeout in performRpc to minimal 1s
- Audio processing delegate lifecycle
- Byte stream MIME type defaulting to text/plain
- App extension compile issues
- Breaking change: Library evolution support (xcframework). May break existing
*Trackextensions. - Serial operations cancellation semantics
- RoomOptions init collision
- Added support for data channel encryption, deprecated existing E2EE options
- Added audio engine availability control
- Added .disconnected connection state
- Auth token in header instead of query param
- Audio capturing for manual rendering mode
- Renderer lifecycle in the video view causing flickering effect
- Restrict transceiver memory leak fix to video tracks
- Screen sharing getting stuck on macOS when the display is turned off
- Only check audio recording perms for device rendering mode
- Fixed race condition between reconnect and disconnect leading to failed disconnects
- Fixed transceiver crash, reverting video memory leak changes
- Recording permission check at SDK level
- Expose audio capture API
- Remote audio buffer when using manual rendering mode
- outputVolume property to audio mixer
- Added the possibility to exlude macOS windows from screen sharing
- HEVC (H.265) codec support
- Added wait until active APIs for RemoteParticipant
- Improved reliability of the data channel
- Drop Xcode 14 (Swift 5.7) support
- Updated webrtc to m137
- Fixed concurrent registration for text/byte streams
- macOS audio start workarounds
- Fixed WebSocket memory leak after disconnecting
- Fixed memory leak while unpublishing video tracks
- Fixed Xcode 26 build errors with Swift 6.2
- Remove problematic KeyPath conformance to Sendable
- Fix race condition during remote track deinit
- Fix WebRTC symbol clash
- Update audio session logic
- Flag to disable automatic audio session configuration
- New API to capture pre-connect audio and send it to agents
- Added BackgroundBlurVideoProcessor
- New mic mute mode
- Ensure audio frames are being generated when publishing audio
- Update to protobuf v1.37.0
- Sendable requirement for internal callbacks
- Added the possibility to compile Swift v6 package in v5 mode
- Add OrderedCollections as Cocoapods dependency
- Fixed crash in VideoView computed property access
- Fixed crash in VideoView.isHidden property access
- Audio mix recorder
- Exposed reconnect mode in RoomDelegate
- Concurrent mic publishing when connecting
- Added the ability to send RTC metrics
- Added internal flags to measure StateSync performance
- Use millisecond precision for Date
- Fast track publishing
- Improve reconnect delay logic
- Changed lock types used for internal synchronization
- Minor SignalClient improvements
- Refactored mute api
- Swift 6: Added Sendable requirement to all delegate protocols
- Added Swift 6 support
- Swift 6: Fixed warnings for MulticastDelegate and related classes
- Swift 6: Fixed warnings for (Local/Remote) Participant and stream handlers
- Swift 6: Fixed warnings for some of the internal RTC classes
- Swift 6: Fixed warnings for mutable state
- Swift 6: Fixed crash in VideoView with .v6 language mode
- Swift 6: Fixed warnings in VideoView and SwiftUIVideoView
- Added missing RED option to AudioPublishOptions
- Added LocalAudioTrackRecorder
- Added the possibility to capture pre-connect audio and send it to agents via data streams
- Removed unnecessary logs from stream handlers
- Explicit AudioManager initialization
- Metal renderer scale factor
- Wrong stream timestamp conversion
- Race condition in WebSocket impl
- Update default audio capture options for Simulator
- Audio engine node detach crash
- ParticipantPermissions exposes canPublishSources
- Data streams: initial support
- Data streams: chunk text along UTF-8 boundaries
- RPC register method is now throwing
- RPC registration methods moved to Room
- RPC registration methods on LocalParticipant deprecated
- Avoid audio engine crash
- Publishing tracks now checks participant permissions and throws an error for insufficient permissions