diff --git a/changelog.d/12436.feature b/changelog.d/12436.feature
new file mode 100644
index 0000000000..883ac15574
--- /dev/null
+++ b/changelog.d/12436.feature
@@ -0,0 +1,2 @@
+Include bundled aggregations in search results
+([MSC3666](https://github.com/matrix-org/matrix-spec-proposals/pull/3666)).
diff --git a/synapse/config/experimental.py b/synapse/config/experimental.py
index 0dd4c59581..447476fbfa 100644
--- a/synapse/config/experimental.py
+++ b/synapse/config/experimental.py
@@ -28,8 +28,6 @@ class ExperimentalConfig(Config):
# MSC3440 (thread relation)
self.msc3440_enabled: bool = experimental.get("msc3440_enabled", False)
- # MSC3666: including bundled relations in /search.
- self.msc3666_enabled: bool = experimental.get("msc3666_enabled", False)
# MSC3026 (busy presence state)
self.msc3026_enabled: bool = experimental.get("msc3026_enabled", False)
diff --git a/synapse/handlers/search.py b/synapse/handlers/search.py
index 30eddda65f..102dd4b57d 100644
--- a/synapse/handlers/search.py
+++ b/synapse/handlers/search.py
@@ -59,8 +59,6 @@ class SearchHandler:
self.state_store = self.storage.state
self.auth = hs.get_auth()
- self._msc3666_enabled = hs.config.experimental.msc3666_enabled
-
async def get_old_rooms_from_upgraded_room(self, room_id: str) -> Iterable[str]:
"""Retrieves room IDs of old rooms in the history of an upgraded room.
@@ -353,22 +351,20 @@ class SearchHandler:
state = await self.state_handler.get_current_state(room_id)
state_results[room_id] = list(state.values())
- aggregations = None
- if self._msc3666_enabled:
- aggregations = await self._relations_handler.get_bundled_aggregations(
- # Generate an iterable of EventBase for all the events that will be
- # returned, including contextual events.
- itertools.chain(
- # The events_before and events_after for each context.
- itertools.chain.from_iterable(
- itertools.chain(context["events_before"], context["events_after"]) # type: ignore[arg-type]
- for context in contexts.values()
- ),
- # The returned events.
- search_result.allowed_events,
+ aggregations = await self._relations_handler.get_bundled_aggregations(
+ # Generate an iterable of EventBase for all the events that will be
+ # returned, including contextual events.
+ itertools.chain(
+ # The events_before and events_after for each context.
+ itertools.chain.from_iterable(
+ itertools.chain(context["events_before"], context["events_after"]) # type: ignore[arg-type]
+ for context in contexts.values()
),
- user.to_string(),
- )
+ # The returned events.
+ search_result.allowed_events,
+ ),
+ user.to_string(),
+ )
# We're now about to serialize the events. We should not make any
# blocking calls after this. Otherwise, the 'age' will be wrong.
|