Skip to content

Require livekit-client ^2.20.0 - #463

Merged
davidliu merged 3 commits into
mainfrom
dl/bump-livekit-client-peer
Sep 23, 2026
Merged

davidliu merged 3 commits into
mainfrom
dl/bump-livekit-client-peer

Conversation

@davidliu

@davidliu davidliu commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Summary

livekit-client 2.19.x (from 2.19.2 on) pre-allocates media sections in single peer connection mode (the default). React Native's libwebrtc doesn't support this, so remote tracks either render black or are never subscribed at all. livekit-client 2.20.0 skips this on React Native (livekit/client-sdk-js#1984).

The current ^2.19.0 peer range still allows the broken versions, so users keep hitting it:

Changes

  • livekit-client peer dependency: ^2.19.0 → ^2.20.0
  • Same bump for the dev dependency, example/ and ci/
  • Refreshed yarn.lock and ci/yarn.lock: livekit-client 2.19.2 → 2.22.3, pulling in @livekit/protocol 1.50.4, webrtc-adapter 9.0.6 and a new machina dependency
  • Patch changeset

Apps pinned to livekit-client 2.19.x will now get a peer dependency warning (an error on npm 7+) until they upgrade.

Test plan

  • yarn install --immutable passes in the repo root and in ci/
  • ci/ postinstall (install-local ../) installs the local package with the new peer range, alongside livekit-client 2.22.3
  • tsc --noEmit: same 25 type errors as on main, none new
  • CI native builds (Android/iOS)

🤖 Generated with Claude Code

livekit-client 2.19.x pre-allocates media sections in single peer
connection mode, which React Native's libwebrtc doesn't support. Remote
tracks then never get subscribed or render black. The fix landed in
livekit-client 2.20.0 (livekit/client-sdk-js#1984).

Bump the peer dependency, dev dependency, example and ci apps, and
refresh the lockfiles.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 3c91858

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@livekit/react-native Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

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

Devin Review

Since livekit-client 2.20.1, NonSharedUint8Array resolves to
Uint8Array<ArrayBuffer> in the published types instead of silently
being unresolved. The native data packet cryptor returns plain
Uint8Array, so assert the non-shared type where we hand buffers back.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@davidliu
davidliu requested a review from 1egoman September 23, 2026 18:01
Comment thread src/e2ee/RNE2EEManager.ts Outdated
Replace the `Uint8Array<ArrayBuffer>` casts with a `NonSharedUint8Array`
alias (`ReturnType<typeof Uint8Array.from>`), matching livekit-client.
The alias stays valid on TypeScript versions before 5.7, where
`Uint8Array` isn't generic.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@davidliu
davidliu merged commit 5c294a1 into main Sep 23, 2026
5 checks passed
@davidliu
davidliu deleted the dl/bump-livekit-client-peer branch September 23, 2026 19:12
@github-actions github-actions Bot mentioned this pull request Sep 23, 2026
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.

2 participants