Use the unstable LiveKit transport type

UnstableLivekitTransport covers every shape a homeserver may advertise
while MSC4195 evolves: a LiveKit SFU `url`, a `livekit_service_url`, or
both. Switching to it means a service URL is no longer guaranteed, so the
remaining code that relies on one checks for it explicitly: delegation
probing skips transports without one, the connection map keys transports
by whichever URL they carry, and the OpenID flow rejects transports
without a service URL until the client-server API flow lands.
This commit is contained in:
Robin
2026-10-12 10:30:52 +02:00
committed by Johannes Marbach
parent d5bbb43e3a
commit 83e1396bdd
25 changed files with 157 additions and 127 deletions
+3 -3
View File
@@ -40,7 +40,7 @@ import { E2eeType } from "../../e2ee/e2eeType";
import { observeInboundRtpStreamStats$ } from "./observeRtpStreamStats";
import { type UserMediaViewModel } from "./UserMediaViewModel";
import { type ScreenShareViewModel } from "./ScreenShareViewModel";
import { type LivekitTransport } from "matrix-js-sdk/lib/matrixrtc";
import { type UnstableLivekitTransport } from "matrix-js-sdk/lib/matrixrtc";
// TODO: Encryption status is kinda broken and thus unused right now. Remove?
export enum EncryptionStatus {
@@ -63,7 +63,7 @@ export interface BaseMemberMediaViewModel extends BaseMediaViewModel {
* The LiveKit transport on which this member should be publishing. Exposed
* for debugging.
*/
transport$: Behavior<LivekitTransport | undefined>;
transport$: Behavior<UnstableLivekitTransport | undefined>;
/**
* Whether there should be a warning that this media is unencrypted.
*/
@@ -76,7 +76,7 @@ export interface MemberMediaInputs extends BaseMediaViewModel {
livekitRoom$: Behavior<LivekitRoom | undefined>;
audioSource: AudioSource;
videoSource: VideoSource;
transport$: Behavior<LivekitTransport | undefined>;
transport$: Behavior<UnstableLivekitTransport | undefined>;
encryptionSystem: EncryptionSystem;
}