compatcompatSign in
LiveKit

LiveKit SDK migration

Upgrade livekit-server-sdk and livekit-client together: async tokens, renamed RoomEvents, typed protobuf responses.

1 repository · 3 migrations a month · no card

What compat detects

  • livekit-client
  • livekit-server-sdk
  • @livekit/components-react
  • @livekit/agents
  • @livekit/rtc-node

LiveKit's v2 line changed the server SDK, the client SDK and the React components at once. compat upgrades them as a set, so token generation, room events and component props stay consistent.

What breaks across majors

  1. 01

    livekit-server-sdk v2: AccessToken.toJwt() became async; RoomServiceClient returns typed protobuf objects.

  2. 02

    livekit-client v2 removed deprecated Room options and renamed several RoomEvents and track publication APIs.

  3. 03

    @livekit/components-react tracks the client major; both move together.

  4. 04

    @livekit/agents changed the plugin API between 0.x and 1.x.

Typecheck catches the async token change and renamed events. Media behaviour cannot be exercised in CI, so compat marks call testing as a manual step.

What a livekit-server-sdk 1.x to 2.x run looks like

Illustrative

compat finds every toJwt() call and awaits it, updates RoomServiceClient usages to the typed responses, bumps the client and components together, re-runs your checks and lists a manual room test in the pull request. Illustrative; no public run recorded yet.

  1. 01

    Detect

    compat finds the LiveKit packages your code imports and the upstream releases that affect them.

  2. 02

    Migrate and verify

    It edits only the affected code in a disposable sandbox, regenerates the lockfile, and runs your existing tests, type checks, lint and build where available.

  3. 03

    Pull request

    It opens a PR with the diff, verification results, warnings and manual steps. A person merges.

Questions

Does compat merge the LiveKit migration automatically?
No. compat has no merge capability. It pushes a branch and opens a pull request with the diff, the recorded checks and any manual steps. A person on your team reviews and merges.
Which checks run?
Your repository's own: install, typecheck, lint, test and build where the scripts exist. Each is listed in the pull request as passed, failed or not run. A check that did not run is never shown as passed.
Does compat need my production credentials?
No. Migrations run in a disposable sandbox with your code and package manager, not your environment. Checks that need live credentials are reported as not run.
How does compat know a release affects my repository?
It watches the LiveKit packages your code imports, reads new release notes, and judges relevance against the files that actually use the SDK. Irrelevant releases are dismissed with the reason; relevant ones become a proposal or, if you allow it, a run.