From a6c7333ea31e873f7e81712ed55e9c4c622cc114 Mon Sep 17 00:00:00 2001 From: Lotus CI Date: Sat, 17 Oct 2026 18:09:33 -0400 Subject: [PATCH] fix(rooms): members can start and join calls in new private rooms (#328) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit createRoom granted org.matrix.msc3401.call.member at user level only for voice rooms. Every other room fell back to Synapse's state_default (50), so in a private group room (where Lotus shows the call button and rings) only admins could start a call; members saw "1 Live · Join" and then "You don't have permission to join!". All new non-space rooms now get call.member: 0 (spaces keep their own override). Verified headless through Create Room → Private: before, no call.member entry (state_default 50); now 0. Existing rooms are unchanged; an admin can set it in room permissions. Fixes #328 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5 --- src/app/components/create-room/utils.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/app/components/create-room/utils.ts b/src/app/components/create-room/utils.ts index 957ec3285..f1d1a6ca7 100644 --- a/src/app/components/create-room/utils.ts +++ b/src/app/components/create-room/utils.ts @@ -139,8 +139,11 @@ export const createRoom = async (mx: MatrixClient, data: CreateRoomData): Promis data.allowFederation, data.additionalCreators, ), - power_level_content_override: - data.type === RoomType.Call ? createVoiceRoomPowerLevelsOverride() : undefined, + // [Gitea #328] Every non-space room gets call.member at user level, not just + // voice rooms: the call button is shown in private group rooms too, and with + // Synapse's state_default (50) only admins could start or join a call there + // ("You don't have permission to join!"). + power_level_content_override: createVoiceRoomPowerLevelsOverride(), initial_state: initialState, };