Skip to content

Add full_snapshot to ParticipantUpdate - #1967

Open
lukasIO wants to merge 2 commits into
mainfrom
lukas/participant-update-full-snapshot
Open

lukasIO wants to merge 2 commits into
mainfrom
lukas/participant-update-full-snapshot

Conversation

@lukasIO

@lukasIO lukasIO commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

A client that loses its signal connection can miss the disconnect update for a participant who left during the gap. The server re-sends recent disconnects on resume (livekit/livekit#4910), but that relies on timing and on the update cache, so a missed one still leaves a stale entry in the client's roster. The server already sends the full roster after a resume. The client cannot tell that message from an incremental update, so it cannot drop what is missing.

Change

ParticipantUpdate gets bool full_snapshot = 2. When set, participants lists every participant visible to the receiver, the receiver itself included and hidden participants excluded. A receiver drops any remote participant that is not listed. Unset means an incremental update, as today, so older clients and servers are unaffected.

Server: livekit/livekit#5189. Client: livekit/client-sdk-js#2259. This PR merges first.

Verified

  • mage proto regenerated livekit/livekit_rtc.pb.go. Only the new field changed. go build ./... passes.
  • pnpm generate:proto in packages/javascript emits fullSnapshot: boolean on ParticipantUpdate.

🤖 Generated with Claude Code

lukasIO and others added 2 commits November 11, 2026 13:50
Set when the message lists every participant visible to the receiver, so a
client can drop the remote participants that are missing from it. The server
sets it on the roster it sends after a resume.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@lukasIO lukasIO self-assigned this Nov 11, 2026
@changeset-bot

changeset-bot Bot commented Nov 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 522fc0b

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

This PR includes changesets to release 2 packages
Name Type
@livekit/protocol Patch
github.com/livekit/protocol 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

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