diff --git a/changelog.d/10571.feature b/changelog.d/10571.feature
new file mode 100644
index 0000000000..0da318cd5b
--- /dev/null
+++ b/changelog.d/10571.feature
@@ -0,0 +1 @@
+Enable room capabilities ([MSC3244](https://github.com/matrix-org/matrix-doc/pull/3244)) by default and set room version 8 as the preferred room version for restricted rooms.
diff --git a/synapse/api/room_versions.py b/synapse/api/room_versions.py
index 11280c4462..8abcdfd4fd 100644
--- a/synapse/api/room_versions.py
+++ b/synapse/api/room_versions.py
@@ -293,7 +293,7 @@ MSC3244_CAPABILITIES = {
),
RoomVersionCapability(
"restricted",
- None,
+ RoomVersions.V8,
lambda room_version: room_version.msc3083_join_rules,
),
)
diff --git a/synapse/config/experimental.py b/synapse/config/experimental.py
index b918fb15b0..907df9591a 100644
--- a/synapse/config/experimental.py
+++ b/synapse/config/experimental.py
@@ -37,7 +37,7 @@ class ExperimentalConfig(Config):
self.msc2285_enabled: bool = experimental.get("msc2285_enabled", False)
# MSC3244 (room version capabilities)
- self.msc3244_enabled: bool = experimental.get("msc3244_enabled", False)
+ self.msc3244_enabled: bool = experimental.get("msc3244_enabled", True)
# MSC3266 (room summary api)
self.msc3266_enabled: bool = experimental.get("msc3266_enabled", False)
diff --git a/tests/rest/client/v2_alpha/test_capabilities.py b/tests/rest/client/v2_alpha/test_capabilities.py
index ad83b3d2ff..13b3c5f499 100644
--- a/tests/rest/client/v2_alpha/test_capabilities.py
+++ b/tests/rest/client/v2_alpha/test_capabilities.py
@@ -102,7 +102,8 @@ class CapabilitiesTestCase(unittest.HomeserverTestCase):
self.assertEqual(channel.code, 200)
self.assertFalse(capabilities["m.change_password"]["enabled"])
- def test_get_does_not_include_msc3244_fields_by_default(self):
+ @override_config({"experimental_features": {"msc3244_enabled": False}})
+ def test_get_does_not_include_msc3244_fields_when_disabled(self):
localpart = "user"
password = "pass"
user = self.register_user(localpart, password)
@@ -120,7 +121,6 @@ class CapabilitiesTestCase(unittest.HomeserverTestCase):
"org.matrix.msc3244.room_capabilities", capabilities["m.room_versions"]
)
- @override_config({"experimental_features": {"msc3244_enabled": True}})
def test_get_does_include_msc3244_fields_when_enabled(self):
localpart = "user"
password = "pass"
|