From 0443ef55d19bc9ac1e96a4f677b73202748beeb7 Mon Sep 17 00:00:00 2001 From: Robin Date: Wed, 26 Aug 2026 17:05:38 +0200 Subject: [PATCH] Remove feature_use_device_session_member_events Support for events with an array of memberships from different devices was removed over a year ago in matrix-js-sdk ffd3c9575e9def576739baf6b1dc329b0db55c0c. --- config/config.devenv.json | 3 --- config/config.sample.json | 3 --- src/config/ConfigOptions.ts | 12 ------------ src/state/CallViewModel/localMember/LocalMember.ts | 7 +------ 4 files changed, 1 insertion(+), 24 deletions(-) diff --git a/config/config.devenv.json b/config/config.devenv.json index df0ff4c18..48602406b 100644 --- a/config/config.devenv.json +++ b/config/config.devenv.json @@ -5,9 +5,6 @@ "server_name": "synapse.m.localhost" } }, - "features": { - "feature_use_device_session_member_events": true - }, "ssla": "https://static.element.io/legal/element-software-and-services-license-agreement-uk-1.pdf", "matrix_rtc_session": { "wait_for_key_rotation_ms": 3000, diff --git a/config/config.sample.json b/config/config.sample.json index 78f9536da..0baa522e4 100644 --- a/config/config.sample.json +++ b/config/config.sample.json @@ -8,9 +8,6 @@ "livekit": { "livekit_service_url": "https://livekit-jwt.mydomain.com" }, - "features": { - "feature_use_device_session_member_events": true - }, "ssla": "https://static.element.io/legal/element-software-and-services-license-agreement-uk-1.pdf", "matrix_rtc_mode": "compatibility", "matrix_rtc_session": { diff --git a/src/config/ConfigOptions.ts b/src/config/ConfigOptions.ts index ffe04d69e..de6500b1d 100644 --- a/src/config/ConfigOptions.ts +++ b/src/config/ConfigOptions.ts @@ -86,15 +86,6 @@ export interface ConfigOptions { * Allow to join group calls without audio and video. */ feature_group_calls_without_video_and_audio?: boolean; - - /** - * Send device-specific call session membership state events instead of - * legacy user-specific call membership state events. - * This setting has no effect when the user joins an active call with - * legacy state events. For compatibility, Element Call will always join - * active legacy calls with legacy state events. - */ - feature_use_device_session_member_events?: boolean; }; /** @@ -267,9 +258,6 @@ export interface ResolvedConfigOptions extends ConfigOptions { } export const DEFAULT_CONFIG: ResolvedConfigOptions = { - features: { - feature_use_device_session_member_events: true, - }, sync_disconnect_grace_period_ms: 10000, ssla: "https://static.element.io/legal/element-software-and-services-license-agreement-uk-1.pdf", media_quality: { diff --git a/src/state/CallViewModel/localMember/LocalMember.ts b/src/state/CallViewModel/localMember/LocalMember.ts index fcc8ed0a6..5108b7e3b 100644 --- a/src/state/CallViewModel/localMember/LocalMember.ts +++ b/src/state/CallViewModel/localMember/LocalMember.ts @@ -851,9 +851,7 @@ export function enterRTCSession( // have started tracking by the time calls start getting created. // groupCallOTelMembership?.onJoinCall(); - const { features, matrix_rtc_session: matrixRtcSessionConfig } = Config.get(); - const useDeviceSessionMemberEvents = - features?.feature_use_device_session_member_events; + const { matrix_rtc_session: matrixRtcSessionConfig } = Config.get(); const { sendNotificationType: notificationType, callIntent } = getUrlParams(); const multiSFU = matrixRTCMode === MatrixRTCMode.Compatibility || @@ -895,9 +893,6 @@ export function enterRTCSession( notificationType, callIntent, manageMediaKeys: encryptMedia, - ...(useDeviceSessionMemberEvents !== undefined && { - useLegacyMemberEvents: !useDeviceSessionMemberEvents, - }), delayedLeaveEventRestartMs: matrixRtcSessionConfig?.delayed_leave_event_restart_ms, delayedLeaveEventDelayMs: