From f287fb380075eb602deae9636215209b31ba26da Mon Sep 17 00:00:00 2001 From: Robin Date: Tue, 22 Sep 2026 23:32:31 +0200 Subject: [PATCH] Adapt to matrix-js-sdk removal of oldest_membership support --- package.json | 2 +- pnpm-lock.yaml | 26 +++++++++---------- .../localMember/LocalMember.test.ts | 5 +--- .../CallViewModel/localMember/LocalMember.ts | 2 +- .../MatrixLivekitMembers.test.ts | 6 ++--- src/state/SessionBehaviors.ts | 3 +-- 6 files changed, 20 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index 93d7715a6..05c9312bd 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "livekit-client": "^2.18.1", "lodash-es": "^4.17.21", "loglevel": "^1.9.1", - "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#robin/remove-livekit-alias", + "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#robin/remove-oldest-membership", "matrix-widget-api": "^1.18.0", "node-stdlib-browser": "^1.3.1", "normalize.css": "^8.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4b51b8b17..a982f7af3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -191,8 +191,8 @@ importers: specifier: ^1.9.1 version: 1.9.2 matrix-js-sdk: - specifier: github:matrix-org/matrix-js-sdk#robin/remove-livekit-alias - version: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/24eacbcef2efaa5f4a89857ed028047332d2a70c + specifier: github:matrix-org/matrix-js-sdk#robin/remove-oldest-membership + version: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/6defa47adae28feb7e3906dde25089e0dce42ece matrix-widget-api: specifier: ^1.18.0 version: 1.19.0 @@ -3659,8 +3659,8 @@ packages: constants-browserify@1.0.0: resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} - content-type@3.0.0: - resolution: {integrity: sha512-AIi5H6p0xk5uknXcN3/rmhP8jgp69OfSe/JuKiQAFprJ7UGw7mwj7m4XcmDzlrnJDG+cGpphAINGdU3g3g7kDw==} + content-type@3.1.1: + resolution: {integrity: sha512-GW4qUsfFo59d0HbUibDlWv5wPz+vAAcaTWbKIuKCf0JkC7wWkSyf8f13IpXn5JkeMlB2P8iTSSIjwXljorg2vA==} engines: {node: '>=22'} convert-source-map@2.0.0: @@ -4680,8 +4680,8 @@ packages: matrix-events-sdk@0.0.1: resolution: {integrity: sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==} - matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/24eacbcef2efaa5f4a89857ed028047332d2a70c: - resolution: {gitHosted: true, integrity: sha512-lQeZIDw2OXZeRy0WvjMkT6ZfKWIpsuzCzU9MsfU4h/gTe6jdYRGjf6BRhg9/BOJ0S12lsvcEYslxzcB+usBILA==, tarball: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/24eacbcef2efaa5f4a89857ed028047332d2a70c} + matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/6defa47adae28feb7e3906dde25089e0dce42ece: + resolution: {gitHosted: true, integrity: sha512-jHFmI2C29HJnzs/FIrqdmQD6ytyunyy627onhrxI+xxTGSfYrWhcTUFstNiCAaMt3fc0nNi9aVvLPD3IIglF2A==, tarball: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/6defa47adae28feb7e3906dde25089e0dce42ece} version: 42.3.0 engines: {node: '>=22.0.0'} @@ -4895,8 +4895,8 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-retry@8.0.0: - resolution: {integrity: sha512-kFVqH1HxOHp8LupNsOys7bSV09VYTRLxarH/mokO4Rqhk6wGi70E0jh4VzvVGXfEVNggHoHLAMWsQqHyU1Ey9A==} + p-retry@8.0.1: + resolution: {integrity: sha512-NAigyu8hfvJe7MsS18mnc4is0MZtau3QMdBklaJKK23oBQb6occO3UPM3vHmTckW8KhfyjMZaUOqdTFEYliHgg==} engines: {node: '>=22'} p-try@2.2.0: @@ -9163,7 +9163,7 @@ snapshots: constants-browserify@1.0.0: {} - content-type@3.0.0: {} + content-type@3.1.1: {} convert-source-map@2.0.0: {} @@ -10249,17 +10249,17 @@ snapshots: matrix-events-sdk@0.0.1: {} - matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/24eacbcef2efaa5f4a89857ed028047332d2a70c: + matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/6defa47adae28feb7e3906dde25089e0dce42ece: dependencies: '@babel/runtime': 8.0.0 '@matrix-org/matrix-sdk-crypto-wasm': 18.9.0 another-json: 0.2.0 bs58: 6.0.0 - content-type: 3.0.0 + content-type: 3.1.1 loglevel: 1.9.2 matrix-events-sdk: 0.0.1 matrix-widget-api: 1.19.0 - p-retry: 8.0.0 + p-retry: 8.0.1 sdp-transform: 3.0.0 unhomoglyph: 1.0.6 @@ -10584,7 +10584,7 @@ snapshots: dependencies: p-limit: 3.1.0 - p-retry@8.0.0: + p-retry@8.0.1: dependencies: is-network-error: 1.3.2 diff --git a/src/state/CallViewModel/localMember/LocalMember.test.ts b/src/state/CallViewModel/localMember/LocalMember.test.ts index d17cac33b..8e4217719 100644 --- a/src/state/CallViewModel/localMember/LocalMember.test.ts +++ b/src/state/CallViewModel/localMember/LocalMember.test.ts @@ -156,8 +156,7 @@ describe("enterRTCSession", () => { memberId: "@alice:example.org:DEVICE", userId: "@alice:example.org", }, - [], - transport, + [transport], expect.objectContaining({ manageMediaKeys: true }), ); }); @@ -177,7 +176,6 @@ describe("enterRTCSession", () => { expect(mockedSession.joinRTCSession).toHaveBeenLastCalledWith( expect.any(Object), - [], expect.any(Object), expect.objectContaining({ keyRotationParticipantLimit: 50, @@ -189,7 +187,6 @@ describe("enterRTCSession", () => { enterRTCSession(mockedSession, ownMemberMock, transport, options); expect(mockedSession.joinRTCSession).toHaveBeenLastCalledWith( - expect.anything(), expect.anything(), expect.anything(), expect.objectContaining({ diff --git a/src/state/CallViewModel/localMember/LocalMember.ts b/src/state/CallViewModel/localMember/LocalMember.ts index ad9abb786..36469e7ad 100644 --- a/src/state/CallViewModel/localMember/LocalMember.ts +++ b/src/state/CallViewModel/localMember/LocalMember.ts @@ -998,7 +998,7 @@ export function enterRTCSession( // Multi-sfu does not need a preferred foci list. just the focus that is actually used. // TODO where/how do we track errors originating from the ongoing rtcSession? - rtcSession.joinRTCSession(ownMembershipIdentity, [], transport, { + rtcSession.joinRTCSession(ownMembershipIdentity, [transport], { notificationType, callIntent, manageMediaKeys: encryptMedia, diff --git a/src/state/CallViewModel/remoteMembers/MatrixLivekitMembers.test.ts b/src/state/CallViewModel/remoteMembers/MatrixLivekitMembers.test.ts index c11d779e8..2e0051928 100644 --- a/src/state/CallViewModel/remoteMembers/MatrixLivekitMembers.test.ts +++ b/src/state/CallViewModel/remoteMembers/MatrixLivekitMembers.test.ts @@ -124,7 +124,7 @@ function createEpochedMemberships$(m$: Observable): { const membershipsWithTransport$ = memberships$.pipe( mapEpoch((members) => { return members.map((m) => { - const tr = m.getTransport(m); + const tr = m.getTransport(); return { membership: m, transport: @@ -150,7 +150,7 @@ test("should signal participant on a connection that is publishing", async () => ); const connection = { - transport: bobMembership.getTransport(bobMembership), + transport: bobMembership.getTransport(), } as unknown as Connection; const dataWithPublisher = new ConnectionManagerData(); dataWithPublisher.add(connection, [ @@ -193,7 +193,7 @@ test("should signal participant on a connection that is not publishing", async ( ); const connection = { - transport: bobMembership.getTransport(bobMembership), + transport: bobMembership.getTransport(), } as unknown as Connection; const dataWithPublisher = new ConnectionManagerData(); dataWithPublisher.add(connection, []); diff --git a/src/state/SessionBehaviors.ts b/src/state/SessionBehaviors.ts index 8a73ca711..4ca1c5861 100644 --- a/src/state/SessionBehaviors.ts +++ b/src/state/SessionBehaviors.ts @@ -46,8 +46,7 @@ export const membershipsAndTransports$ = ( memberships$.pipe( mapEpoch((memberships) => { return memberships.map((membership) => { - const oldestMembership = memberships[0] ?? membership; - const transport = membership.getTransport(oldestMembership); + const transport = membership.getTransport(); return { membership, transport: isLivekitTransport(transport) ? transport : undefined,