Releases: livekit/client-sdk-flutter
Release list
v2.9.0
Added: Add native certificate pinning for SDK-owned connections
Added: Add RPC v2 (data-stream-based payloads) with v1 fallback
Added: Audio engine availability and externalCallSystem mode for CallKit
Added: AudioManager audio session options with engine-driven native lifecycle and platform routing controls
Added: Add ConnectionCheck utility for diagnosing connection issues (port of the client-sdk-js connection helper)
Added: Audio frame capture on Linux/Windows
Added: Microphone mute mode control on iOS/macOS
Added: Runtime audio processing controls for local audio tracks
Added: Widget Placeholder added for VideoTrackRenderer
Changed: Default VideoTrackRenderer renderMode to auto, which currently resolves to texture rendering
Fixed: Apply Android media audio attributes during WebRTC initialization
Fixed: Use initialization audio options as the default Android session policy
Fixed: Avoid sticky Android speaker routing when updating route preference
Fixed: Clean up local audio tracks when recording start fails
Fixed: Throw platformUnavailable when runtime audio processing is unsupported
Fixed: Apply create-time audio processing when local recording is prepared
Fixed: Remove non-public buttonPressed: selector from broadcast picker activation
Fixed: Allow selectAudioOutput on Android
Fixed: Support platform video rendering on macOS
Fixed: Emit a single disconnected event when connecting fails
Fixed: Handle switching video render modes without stale renderers
Docs: Add AGENTS.md with agent/contributor guidelines
v2.8.1
Added: Add agent deployment targeting to token source options
Fixed: Android plugin compatibility with AGP 9 built-in Kotlin
Fixed: Use maintain-resolution as the default video degradation preference for local video publishing
Full Changelog: v2.8.0...v2.8.1
v2.8.0
Added: Session API support for simpler E2EE setup
Changed: Manual video quality selection can be used with adaptive stream enabled
Changed: Generated protocol definitions for LiveKit protocol v1.45.8
Fixed: waitForBufferStatusLow busy-waiting after engine close
Fixed: Simulcast lower layers exceeding the top layer
Fixed: forceRelay log message interpolation
Fixed: sendSyncState error handling so sync-state preparation failures are not swallowed
Fixed: Screen share simulcast default low layer alignment
Fixed: Region failover null-provider dereference
Fixed: Android builds with dependencies that require compileSdk 36
Fixed: Deferred track listener leaks across reconnects
Fixed: Adaptive stream dimensions on high-density displays
Fixed: Session.start() reentrancy during concurrent calls
Fixed: Connected server address resolving from the wrong peer connection
Fixed: Reconnect counter null assertion on the first reconnect attempt
Fixed: Premature publication disposal during unpublish
v2.7.0
What's Changed
- Add audio renderer API by @hiroshihorie in #1004
- Fix missing offer in syncState by @hiroshihorie in #1028
- Fix signal resume events by @hiroshihorie in #1027
- chore: bump flutter-webrtc and upgrade to libwebrtc m144. by @cloudwebrtc in #1029
- Bump android m144 by @hiroshihorie in #1030
- Processor fixes 1 by @hiroshihorie in #1038
- Retry jitter by @hiroshihorie in #1036
- Ping RTT by @hiroshihorie in #1035
- Fix dynacast by @hiroshihorie in #1033
- Set video dimensions API by @hiroshihorie in #1037
Full Changelog: v2.6.5...v2.7.0
v2.6.5
What's Changed
- Protocol v16 support by @hiroshihorie in #1003
- Fix pub score static analysis by @hiroshihorie in #1010
- chore: Update dependency constraints to latest compatible versions by @hiroshihorie in #1011
- Fix audio visualizer exception by @hiroshihorie in #1008
- Fix duplicate track publish by @hiroshihorie in #1009
- Fix: use correct ProcessorOptions type based on track kind by @hiroshihorie in #1014
- Fix: preserve audio category options when forcing speaker output by @hiroshihorie in #1015
- [🤖 readme-manager] Update README by @ladvoc in #1017
- chore: Add ReconnectReason for reconnect. by @cloudwebrtc in #1020
- Fix microphone stopping after pre-connect audio by @hiroshihorie in #1021
Full Changelog: v2.6.4...v2.6.5
v2.6.4
What's Changed
- Fix setVideoInputDevice by @hiroshihorie in #973
- Fix duplicate leave by @hiroshihorie in #999
- Optimize audio renderer payloads by @hiroshihorie in #988
- Fix native audio renderer cleanup and simplify Android path by @hiroshihorie in #1001
- Add web support for pre-connect audio buffer by @hiroshihorie in #1000
- Fix web audio capture on Safari by @hiroshihorie in #1006
- Fix web pre-connect audio buffer sample rate by @hiroshihorie in #1007
Full Changelog: v2.6.3...v2.6.4
v2.6.3
What's Changed
- fix: debounce for ensurePublisherConnected. by @cloudwebrtc in #967
- chore: Bump protobuf to v1.44.0 by @hiroshihorie in #980
- Fix meta package import errors by @hiroshihorie in #981
- Fix region provider related bugs by @hiroshihorie in #983
- chore: fix docs and web example workflows by @hiroshihorie in #985
- Fix concurrent modification by @hiroshihorie in #986
- Prevent crashes from writing to closed data stream controllers by @hiroshihorie in #989
- Fix publisher pc causing redundant renegotiations by @hiroshihorie in #990
Full Changelog: v2.6.2...v2.6.3
v2.6.2
What's Changed
- Update protobuf dependency to v6 by @hiroshihorie in #957
- fix: set proper mute state for audio/video tracks after reconnection by @coder-with-a-bushido in #963
- Fix prejoin device dropdown crashes in example app by @hiroshihorie in #966
- Fix iOS CI failing by @hiroshihorie in #968
- fix: stop camera after stop publishing video track(windows). by @cloudwebrtc in #960
- Add bitrate priority control by @hiroshihorie in #969
- Ensure mute state stays in sync after reconnect by @hiroshihorie in #965
- fix: change local video track constructor by @italomiguelpinheiro in #971
New Contributors
- @coder-with-a-bushido made their first contribution in #963
- @italomiguelpinheiro made their first contribution in #971
Full Changelog: v2.6.1...v2.6.2
v2.6.1
What's Changed
- Fixed spelling typo ("Micriphone") in the audio settings UI of the Flutter example app. by @mechtech-mind in #942
- Fix typos in docs and code by @hiroshihorie in #944
- Improve session api related docs by @hiroshihorie in #946
- Minor disposer improvement by @hiroshihorie in #949
- fix: Enable E2EE for VP9 codec by @Linquas in #953
New Contributors
- @mechtech-mind made their first contribution in #942
- @Linquas made their first contribution in #953
Full Changelog: v2.6.0...v2.6.1
v2.6.0
What's Changed
- Session api by @hiroshihorie in #909
- Organize participant map by @hiroshihorie in #931
- Minor session messages optimization by @hiroshihorie in #935
- Enable to translate labels for screen select dialog. by @lawnbot in #899
- chore: Bump dependencies by @spydon in #929
New Contributors
Full Changelog: v2.5.4...v2.6.0