From 01f23308187e76d0164acf6879562f05f5e8daea Mon Sep 17 00:00:00 2001 From: timedout Date: Sat, 13 Jun 2026 22:39:10 +0100 Subject: [PATCH 1/2] Implement unstable support for MSC4491 Signed-off-by: timedout --- synapse/config/experimental.py | 3 +++ synapse/handlers/room.py | 5 +++++ synapse/rest/client/versions.py | 1 + 3 files changed, 9 insertions(+) diff --git a/synapse/config/experimental.py b/synapse/config/experimental.py index c958a278fc6..aa308a25b86 100644 --- a/synapse/config/experimental.py +++ b/synapse/config/experimental.py @@ -617,3 +617,6 @@ def read_config( # MSC4455: Preview URL capability # Tracked in: https://github.com/element-hq/synapse/issues/19719 self.msc4452_enabled: bool = experimental.get("msc4452_enabled", False) + + # MSC4491: Invite reasons in room creation + self.msc4491_enabled: bool = experimental.get("msc4491_enabled", False) diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py index 13647caa2a9..c75fff91706 100644 --- a/synapse/handlers/room.py +++ b/synapse/handlers/room.py @@ -1345,6 +1345,11 @@ async def create_room( if is_direct: content["is_direct"] = is_direct + if self.config.experimental.msc4491_enabled: + reason = config.get("uk.timedout.msc4491.invite_reason") + if reason and isinstance(reason, str): + content["reason"] = reason + for invitee in invite_list: ( member_event_id, diff --git a/synapse/rest/client/versions.py b/synapse/rest/client/versions.py index bb1711f2cf2..f5e91ded1be 100644 --- a/synapse/rest/client/versions.py +++ b/synapse/rest/client/versions.py @@ -208,6 +208,7 @@ async def on_GET(self, request: SynapseRequest) -> tuple[int, JsonDict]: "org.matrix.msc4380.stable": True, # MSC4445: Sync timeline order "org.matrix.msc4445.initial_sync_timeline_topological_ordering": True, + "uk.timedout.msc4491.create_room_invite_reasons": self.config.experimental.msc4491_enabled, }, }, ) From ba3b5634a91e3a4de1515a24908ff39f78da898c Mon Sep 17 00:00:00 2001 From: Andrew Morgan Date: Thu, 25 Jun 2026 09:51:18 +0100 Subject: [PATCH 2/2] newsfile --- changelog.d/19874.feature | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/19874.feature diff --git a/changelog.d/19874.feature b/changelog.d/19874.feature new file mode 100644 index 00000000000..57238e820fe --- /dev/null +++ b/changelog.d/19874.feature @@ -0,0 +1 @@ +Add experimental support for [MSC4491: Invite reasons in room creation](https://github.com/matrix-org/matrix-spec-proposals/pull/4491). \ No newline at end of file