Skip to content

Release packages - #1362

Merged
alan-george-lk merged 1 commit into
mainfrom
knope/release
Sep 8, 2026
Merged

Release packages#1362
alan-george-lk merged 1 commit into
mainfrom
knope/release

Conversation

@knope-bot

@knope-bot knope-bot Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Important

Merging this pull request will create these releases

livekit-datatrack 0.1.15 (2026-09-08)

Features

Fixes

  • Add data streams v2 to exposed uniffi interface - Data streams v2 uniffi #1286 (@1egoman)
  • Add the PASSTHROUGH encoding preset and remove the unused UpdateEgressRequest from the generated protocol

livekit-uniffi 0.1.10 (2026-09-08)

Features

Fixes

  • Add data streams v2 to exposed uniffi interface - Data streams v2 uniffi #1286 (@1egoman)
  • Lower the Android UniFFI AAR minSdk from 24 to 21
  • Add the PASSTHROUGH encoding preset and remove the unused UpdateEgressRequest from the generated protocol
  • Add self_test_http_get / self_test_ws_echo / has_http_client / has_ws_client UniFFI exports so foreign hosts can exercise the transport seam end-to-end.
  • Attach Dart/Flutter cdylib assets to releases and prepare livekit_uniffi for pub.dev publishing
  • Update Android's JNA dependency version to 5.19.1 to support 16KB page sizes

livekit-token-source 0.1.3 (2026-09-08)

Features

Fixes

livekit-protocol 0.7.13 (2026-09-08)

Features

  • Add the PASSTHROUGH encoding preset and remove the unused UpdateEgressRequest from the generated protocol

livekit-common 0.1.3 (2026-09-08)

Fixes

  • Add the PASSTHROUGH encoding preset and remove the unused UpdateEgressRequest from the generated protocol

livekit-signaling 0.1.1 (2026-09-08)

Features

Fixes

Moves the signalling client into a new livekit-signaling crate. livekit-api

re-exports it under the historical livekit_api::signal_client path, now marked
deprecated: it is internal SDK API, and dependents should use livekit-signaling
directly. livekit-api no longer depends on livekit-net.

Also drops two dependencies that were declared but never used: scopeguard and
bytes.

livekit 0.9.0 (2026-09-08)

Breaking Changes

Fixes

  • Add data streams v2 to exposed uniffi interface - Data streams v2 uniffi #1286 (@1egoman)
  • Add the PASSTHROUGH encoding preset and remove the unused UpdateEgressRequest from the generated protocol
  • Fix pre-encoded frame segfault on macOS
  • Handle capture of dmabuf using existing capture path
  • Add self_test_http_get / self_test_ws_echo / has_http_client / has_ws_client UniFFI exports so foreign hosts can exercise the transport seam end-to-end.

Make AdmProxy worker-thread-affine: all platform ADM access now happens on the WebRTC worker thread, matching the ADM threading contract.

  • The platform ADM is now created lazily on the first PlatformAudio acquire on all platforms, so apps that never use platform audio never construct it.
  • Fixes Android platform recording delivering no audio: the audio transport was never registered on the lazily created ADM.
  • Fixes a shutdown race by keeping the runtime threads alive as long as Rust can reach the audio device controller.
  • Adds a platform_audio example exercising the PlatformAudio API and the worker-thread marshaling.

Add agent guidance for detecting and preventing memory-lifecycle regressions in

Rust, FFI, and native WebRTC code.

Close peer connections before awaiting signal teardown

SessionInner::close released the peer connections only after two awaits that can block
indefinitely, so cancelling close() — for example by wrapping it in a timeout — left the
transports open and their ICE UDP sockets bound for the lifetime of the process. Long-lived
clients eventually exhausted their file descriptors. The transports are now closed before
the first await, which makes the teardown safe to cancel.

Moves the internal region-discovery cache into a new livekit-region crate. No

public API or behaviour change.

Moves the signalling client into a new livekit-signaling crate. livekit-api

re-exports it under the historical livekit_api::signal_client path, now marked
deprecated: it is internal SDK API, and dependents should use livekit-signaling
directly. livekit-api no longer depends on livekit-net.

Also drops two dependencies that were declared but never used: scopeguard and
bytes.

Fix CUDA and FFI resource cleanup during SDK shutdown.

NVIDIA encoder and decoder factories now share a reference-counted CUDA context
and destroy it when the final factory is dropped. FFI shutdown now releases
leftover handles one at a time so nested drop_handle calls do not re-enter
DashMap::clear(). Adds regression coverage for FFI-handle, watcher, and
configuration cleanup during disposal.

Expose network_type on IceCandidateStats

Chromium's local RTCIceCandidateStats carries a non-standard networkType field (WiFi,
cellular, ethernet, etc.), but IceCandidateStats had no place to put it, so it was silently
dropped during get_stats() deserialization. Adds network_type: Option<String> to the struct;
non-breaking since it already derives #[serde(default)].

Fix room-session and data-channel leaks across connect/disconnect cycles.

The E2EE manager callback now captures RoomSession weakly so the session can
drop after disconnect. Data-channel observer callbacks are cleared during RTC
teardown so the observer/callback cycle cannot keep peer connections alive.
Adds regression coverage for room-session destruction and data-channel callback
cleanup.

Fix native video-source lifecycle and NVENC initialization failure handling.

The raw-video keepalive task now uses a weak liveness check and defers its
black I420 buffer allocation until source liveness is confirmed, so dropping
an unused source releases its resources. nvEncInitializeEncoder failures now
propagate instead of leaving the encoder half-initialized.

livekit-ffi 0.12.77 (2026-09-08)

Features

Fixes

  • Add data streams v2 to exposed uniffi interface - Data streams v2 uniffi #1286 (@1egoman)
  • Add the PASSTHROUGH encoding preset and remove the unused UpdateEgressRequest from the generated protocol
  • Fix pre-encoded frame segfault on macOS
  • Handle capture of dmabuf using existing capture path
  • Add self_test_http_get / self_test_ws_echo / has_http_client / has_ws_client UniFFI exports so foreign hosts can exercise the transport seam end-to-end.

Make AdmProxy worker-thread-affine: all platform ADM access now happens on the WebRTC worker thread, matching the ADM threading contract.

  • The platform ADM is now created lazily on the first PlatformAudio acquire on all platforms, so apps that never use platform audio never construct it.
  • Fixes Android platform recording delivering no audio: the audio transport was never registered on the lazily created ADM.
  • Fixes a shutdown race by keeping the runtime threads alive as long as Rust can reach the audio device controller.
  • Adds a platform_audio example exercising the PlatformAudio API and the worker-thread marshaling.

Add agent guidance for detecting and preventing memory-lifecycle regressions in

Rust, FFI, and native WebRTC code.

Close peer connections before awaiting signal teardown

SessionInner::close released the peer connections only after two awaits that can block
indefinitely, so cancelling close() — for example by wrapping it in a timeout — left the
transports open and their ICE UDP sockets bound for the lifetime of the process. Long-lived
clients eventually exhausted their file descriptors. The transports are now closed before
the first await, which makes the teardown safe to cancel.

Moves the internal region-discovery cache into a new livekit-region crate. No

public API or behaviour change.

Moves the signalling client into a new livekit-signaling crate. livekit-api

re-exports it under the historical livekit_api::signal_client path, now marked
deprecated: it is internal SDK API, and dependents should use livekit-signaling
directly. livekit-api no longer depends on livekit-net.

Also drops two dependencies that were declared but never used: scopeguard and
bytes.

Fix CUDA and FFI resource cleanup during SDK shutdown.

NVIDIA encoder and decoder factories now share a reference-counted CUDA context
and destroy it when the final factory is dropped. FFI shutdown now releases
leftover handles one at a time so nested drop_handle calls do not re-enter
DashMap::clear(). Adds regression coverage for FFI-handle, watcher, and
configuration cleanup during disposal.

Expose network_type on IceCandidateStats

Chromium's local RTCIceCandidateStats carries a non-standard networkType field (WiFi,
cellular, ethernet, etc.), but IceCandidateStats had no place to put it, so it was silently
dropped during get_stats() deserialization. Adds network_type: Option<String> to the struct;
non-breaking since it already derives #[serde(default)].

Fix room-session and data-channel leaks across connect/disconnect cycles.

The E2EE manager callback now captures RoomSession weakly so the session can
drop after disconnect. Data-channel observer callbacks are cleared during RTC
teardown so the observer/callback cycle cannot keep peer connections alive.
Adds regression coverage for room-session destruction and data-channel callback
cleanup.

Fix native video-source lifecycle and NVENC initialization failure handling.

The raw-video keepalive task now uses a weak liveness check and defers its
black I420 buffer allocation until source liveness is confirmed, so dropping
an unused source releases its resources. nvEncInitializeEncoder failures now
propagate instead of leaving the encoder half-initialized.

livekit-net 0.1.3 (2026-09-08)

Features

Fixes

  • Add data streams v2 to exposed uniffi interface - Data streams v2 uniffi #1286 (@1egoman)
  • Add self_test_http_get / self_test_ws_echo / has_http_client / has_ws_client UniFFI exports so foreign hosts can exercise the transport seam end-to-end.

livekit-data-stream 0.1.4 (2026-09-08)

Fixes

  • Add data streams v2 to exposed uniffi interface - Data streams v2 uniffi #1286 (@1egoman)
  • Add the PASSTHROUGH encoding preset and remove the unused UpdateEgressRequest from the generated protocol

libwebrtc 0.3.47 (2026-09-08)

Features

Expose network_type on IceCandidateStats

Chromium's local RTCIceCandidateStats carries a non-standard networkType field (WiFi,
cellular, ethernet, etc.), but IceCandidateStats had no place to put it, so it was silently
dropped during get_stats() deserialization. Adds network_type: Option<String> to the struct;
non-breaking since it already derives #[serde(default)].

Fixes

  • Fix pre-encoded frame segfault on macOS

Make AdmProxy worker-thread-affine: all platform ADM access now happens on the WebRTC worker thread, matching the ADM threading contract.

  • The platform ADM is now created lazily on the first PlatformAudio acquire on all platforms, so apps that never use platform audio never construct it.
  • Fixes Android platform recording delivering no audio: the audio transport was never registered on the lazily created ADM.
  • Fixes a shutdown race by keeping the runtime threads alive as long as Rust can reach the audio device controller.
  • Adds a platform_audio example exercising the PlatformAudio API and the worker-thread marshaling.

Add agent guidance for detecting and preventing memory-lifecycle regressions in

Rust, FFI, and native WebRTC code.

Fix CUDA and FFI resource cleanup during SDK shutdown.

NVIDIA encoder and decoder factories now share a reference-counted CUDA context
and destroy it when the final factory is dropped. FFI shutdown now releases
leftover handles one at a time so nested drop_handle calls do not re-enter
DashMap::clear(). Adds regression coverage for FFI-handle, watcher, and
configuration cleanup during disposal.

Fix room-session and data-channel leaks across connect/disconnect cycles.

The E2EE manager callback now captures RoomSession weakly so the session can
drop after disconnect. Data-channel observer callbacks are cleared during RTC
teardown so the observer/callback cycle cannot keep peer connections alive.
Adds regression coverage for room-session destruction and data-channel callback
cleanup.

Fix native video-source lifecycle and NVENC initialization failure handling.

The raw-video keepalive task now uses a weak liveness check and defers its
black I420 buffer allocation until source liveness is confirmed, so dropping
an unused source releases its resources. nvEncInitializeEncoder failures now
propagate instead of leaving the encoder half-initialized.

webrtc-sys 0.3.44 (2026-09-08)

Features

  • Handle capture of dmabuf using existing capture path

Fixes

  • Fix pre-encoded frame segfault on macOS

Make AdmProxy worker-thread-affine: all platform ADM access now happens on the WebRTC worker thread, matching the ADM threading contract.

  • The platform ADM is now created lazily on the first PlatformAudio acquire on all platforms, so apps that never use platform audio never construct it.
  • Fixes Android platform recording delivering no audio: the audio transport was never registered on the lazily created ADM.
  • Fixes a shutdown race by keeping the runtime threads alive as long as Rust can reach the audio device controller.
  • Adds a platform_audio example exercising the PlatformAudio API and the worker-thread marshaling.

Add agent guidance for detecting and preventing memory-lifecycle regressions in

Rust, FFI, and native WebRTC code.

Fix CUDA and FFI resource cleanup during SDK shutdown.

NVIDIA encoder and decoder factories now share a reference-counted CUDA context
and destroy it when the final factory is dropped. FFI shutdown now releases
leftover handles one at a time so nested drop_handle calls do not re-enter
DashMap::clear(). Adds regression coverage for FFI-handle, watcher, and
configuration cleanup during disposal.

Fix native video-source lifecycle and NVENC initialization failure handling.

The raw-video keepalive task now uses a weak liveness check and defers its
black I420 buffer allocation until source liveness is confirmed, so dropping
an unused source releases its resources. nvEncInitializeEncoder failures now
propagate instead of leaving the encoder half-initialized.

livekit-region 0.1.1 (2026-09-08)

Fixes

Moves the internal region-discovery cache into a new livekit-region crate. No

public API or behaviour change.

livekit-api 0.7.0 (2026-09-08)

Breaking Changes

Fixes

  • Add data streams v2 to exposed uniffi interface - Data streams v2 uniffi #1286 (@1egoman)
  • Add the PASSTHROUGH encoding preset and remove the unused UpdateEgressRequest from the generated protocol
  • Add self_test_http_get / self_test_ws_echo / has_http_client / has_ws_client UniFFI exports so foreign hosts can exercise the transport seam end-to-end.
  • Update sip_busy test GRPc code: failed_precondition -> failed_precondition

Moves the internal region-discovery cache into a new livekit-region crate. No

public API or behaviour change.

Moves the signalling client into a new livekit-signaling crate. livekit-api

re-exports it under the historical livekit_api::signal_client path, now marked
deprecated: it is internal SDK API, and dependents should use livekit-signaling
directly. livekit-api no longer depends on livekit-net.

Also drops two dependencies that were declared but never used: scopeguard and
bytes.

livekit-token 0.1.2 (2026-09-08)

Fixes

  • Add the PASSTHROUGH encoding preset and remove the unused UpdateEgressRequest from the generated protocol

@knope-bot
knope-bot Bot requested review from jhugman and ladvoc as code owners August 26, 2026 13:55

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

This report is out of date. Scroll down for Devin Review's latest report on this PR.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@knope-bot
knope-bot Bot force-pushed the knope/release branch 2 times, most recently from 3840927 to f03216d Compare August 27, 2026 19:36
@knope-bot
knope-bot Bot requested a review from lukasIO as a code owner August 27, 2026 19:36
@knope-bot
knope-bot Bot force-pushed the knope/release branch 2 times, most recently from 72c4137 to 065c3d5 Compare August 28, 2026 22:44
@knope-bot
knope-bot Bot requested a review from cloudwebrtc as a code owner August 28, 2026 22:44
@knope-bot
knope-bot Bot force-pushed the knope/release branch 3 times, most recently from a96ef5b to abe5c97 Compare September 1, 2026 02:38

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

This report is out of date. Scroll down for Devin Review's latest report on this PR.

Devin Review found 1 new potential issue.

⚠️ 1 issue in files not directly in the diff

⚠️ FFI clients lose network type

When Chromium reports networkType, network_type captures it only in Rust. FFI conversions discard it, so foreign clients never receive the released field.

1 flag not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)

Devin Review

@knope-bot
knope-bot Bot force-pushed the knope/release branch 2 times, most recently from b6b391c to c5bcc04 Compare September 1, 2026 19:33
devin-ai-integration[bot]

This comment was marked as resolved.

@alan-george-lk
alan-george-lk merged commit 8066415 into main Sep 8, 2026
25 checks passed
@alan-george-lk
alan-george-lk deleted the knope/release branch September 8, 2026 17:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant