Skip to content

fix(core): handle track replacements in visual layout updates - #1448

Open
fatihcvs wants to merge 1 commit into
livekit:mainfrom
fatihcvs:fix/layout-track-replacement
Open

fatihcvs wants to merge 1 commit into
livekit:mainfrom
fatihcvs:fix/layout-track-replacement

Conversation

@fatihcvs

Copy link
Copy Markdown

updatePages only adds new tracks when the total list length increases. If a track is replaced while another is removed (for example, switching the focused participant or replacing an unpublished camera with its placeholder), the swap searches for an item that was never added and throws Element not part of the array.

Always add the missing items before updating pages, preserving the existing page order and removal logic. Related to #524.

Validation:

  • Four regression cases cover equal-size replacement, replacement while shrinking/growing, and camera-to-placeholder replacement. Three fail on the original code with the reported exception; all 43 sorting tests pass after the fix.
  • 122 core/react/styles tests pass. pnpm build:react, core lint (14 existing warnings), pnpm format:check, and React API check pass.
  • A separate check against the built core package covered 16,900 transitions of unique four-item subsets/permutations across page sizes 1–4, verifying exact output membership and unchanged inputs. No live meeting/browser call was used for this check.

Includes a core patch changeset. Developed and verified with OpenAI Codex assistance.

@changeset-bot

changeset-bot Bot commented Sep 19, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 5fd64cc

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

This PR includes changesets to release 7 packages
Name Type
@livekit/components-core Patch
@livekit/components-react Patch
@livekit/agents-ui Patch
@livekit/component-example-next Patch
@livekit/components-js-docs Patch
@livekit/component-docs-storybook Patch
@livekit/components-docs-gen 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

@vercel

vercel Bot commented Sep 19, 2026

Copy link
Copy Markdown

@fatihcvs is attempting to deploy a commit to the LiveKit Team on Vercel.

A member of the Team first needs to authorize it.

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