diff --git a/packages/overlays/matrix-synapse/patches/0001-nix-use-postgres-17.patch b/packages/overlays/matrix-synapse/patches/0001-nix-use-postgres-17.patch
index accdedf..ae24787 100644
--- a/packages/overlays/matrix-synapse/patches/0001-nix-use-postgres-17.patch
+++ b/packages/overlays/matrix-synapse/patches/0001-nix-use-postgres-17.patch
@@ -1,4 +1,4 @@
-From 9279a3afa3792427a87caf864e68e631aec3b407 Mon Sep 17 00:00:00 2001
+From 3854baab3efd243cd62f9e30bb1d2edea685cb1f Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Fri, 25 Jul 2025 08:25:28 +0200
Subject: [PATCH 01/24] nix: use postgres 17
diff --git a/packages/overlays/matrix-synapse/patches/0002-nix-fix-flake.patch b/packages/overlays/matrix-synapse/patches/0002-nix-fix-flake.patch
index 89f7a7c..ea8c622 100644
--- a/packages/overlays/matrix-synapse/patches/0002-nix-fix-flake.patch
+++ b/packages/overlays/matrix-synapse/patches/0002-nix-fix-flake.patch
@@ -1,4 +1,4 @@
-From 3815d07cfc961a33970ff6a633b2a784347679e6 Mon Sep 17 00:00:00 2001
+From f30af4b3169b497ea54f3e16f7bd188efcd32b4f Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Mon, 9 Jun 2025 17:38:34 +0200
Subject: [PATCH 02/24] nix: fix flake
diff --git a/packages/overlays/matrix-synapse/patches/0003-nix-Update-flake.patch b/packages/overlays/matrix-synapse/patches/0003-nix-Update-flake.patch
index 8c6d965..8f00ff9 100644
--- a/packages/overlays/matrix-synapse/patches/0003-nix-Update-flake.patch
+++ b/packages/overlays/matrix-synapse/patches/0003-nix-Update-flake.patch
@@ -1,4 +1,4 @@
-From 2af8ac106c6293bc4773f6ce6bc4726de34717ef Mon Sep 17 00:00:00 2001
+From 45faeed7e54c334d430141e456253510d2e4abcd Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Thu, 13 Nov 2025 13:57:10 +0100
Subject: [PATCH 03/24] nix: Update flake
diff --git a/packages/overlays/matrix-synapse/patches/0004-nix-Temporarily-disable-go-in-flake.patch b/packages/overlays/matrix-synapse/patches/0004-nix-Temporarily-disable-go-in-flake.patch
index d07e7b6..ecfa5e0 100644
--- a/packages/overlays/matrix-synapse/patches/0004-nix-Temporarily-disable-go-in-flake.patch
+++ b/packages/overlays/matrix-synapse/patches/0004-nix-Temporarily-disable-go-in-flake.patch
@@ -1,4 +1,4 @@
-From e22d8e8148e718517a97a3862c1703e9cd8d3798 Mon Sep 17 00:00:00 2001
+From 13fa20d227a762a848ebd4d522b8e0f10c7404c6 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Sat, 16 Aug 2025 20:18:45 +0200
Subject: [PATCH 04/24] nix: Temporarily disable go in flake
diff --git a/packages/overlays/matrix-synapse/patches/0005-Add-test-script.patch b/packages/overlays/matrix-synapse/patches/0005-Add-test-script.patch
index 298b5ae..88b3efb 100644
--- a/packages/overlays/matrix-synapse/patches/0005-Add-test-script.patch
+++ b/packages/overlays/matrix-synapse/patches/0005-Add-test-script.patch
@@ -1,4 +1,4 @@
-From 09271771eee0188524ec1a553e8788c828846f5b Mon Sep 17 00:00:00 2001
+From c5168c1e88c635df2ef8b9aaf1921657034c0b35 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Thu, 13 Nov 2025 13:56:59 +0100
Subject: [PATCH 05/24] Add test script
diff --git a/packages/overlays/matrix-synapse/patches/0006-Fix-gitignore-to-ignore-.venv.patch b/packages/overlays/matrix-synapse/patches/0006-Fix-gitignore-to-ignore-.venv.patch
index 4de298e..8f54a16 100644
--- a/packages/overlays/matrix-synapse/patches/0006-Fix-gitignore-to-ignore-.venv.patch
+++ b/packages/overlays/matrix-synapse/patches/0006-Fix-gitignore-to-ignore-.venv.patch
@@ -1,4 +1,4 @@
-From 18dc29d6776d5d888db1b78fa936545fb98c67d1 Mon Sep 17 00:00:00 2001
+From 3d2ae2ecffcac03cfa93c206ad8079adf8b206fa Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Mon, 9 Jun 2025 17:46:10 +0200
Subject: [PATCH 06/24] Fix gitignore to ignore .venv
diff --git a/packages/overlays/matrix-synapse/patches/0007-Fast-auth-links.patch b/packages/overlays/matrix-synapse/patches/0007-Fast-auth-links.patch
index db96ea1..c57986c 100644
--- a/packages/overlays/matrix-synapse/patches/0007-Fast-auth-links.patch
+++ b/packages/overlays/matrix-synapse/patches/0007-Fast-auth-links.patch
@@ -1,4 +1,4 @@
-From 669cab3576182215852c9c2a06739106f1aecc14 Mon Sep 17 00:00:00 2001
+From 9e7ae8bcd370f79a657d44f2d89b641f1abe68e7 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Tue, 22 Jul 2025 05:07:01 +0200
Subject: [PATCH 07/24] Fast auth links
@@ -64,7 +64,7 @@ index 6e38b55686..2bab1e53c5 100644
def make_in_list_sql_clause(
database_engine: BaseDatabaseEngine,
diff --git a/synapse/storage/databases/main/event_federation.py b/synapse/storage/databases/main/event_federation.py
-index cc7083b605..55a0714f14 100644
+index 415926eb0a..0e34a3ffc3 100644
--- a/synapse/storage/databases/main/event_federation.py
+++ b/synapse/storage/databases/main/event_federation.py
@@ -47,6 +47,7 @@ from synapse.storage.database import (
diff --git a/packages/overlays/matrix-synapse/patches/0008-Add-too-much-logging-to-room-summary-over-federation.patch b/packages/overlays/matrix-synapse/patches/0008-Add-too-much-logging-to-room-summary-over-federation.patch
index f81e616..29736d4 100644
--- a/packages/overlays/matrix-synapse/patches/0008-Add-too-much-logging-to-room-summary-over-federation.patch
+++ b/packages/overlays/matrix-synapse/patches/0008-Add-too-much-logging-to-room-summary-over-federation.patch
@@ -1,4 +1,4 @@
-From 5b827992d4c68a0ff31e544cf28f78541b16bf74 Mon Sep 17 00:00:00 2001
+From 657c794672e1ae73e2689b576ed55286a6961805 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Wed, 23 Apr 2025 17:53:52 +0200
Subject: [PATCH 08/24] Add too much logging to room summary over federation
diff --git a/packages/overlays/matrix-synapse/patches/0009-Log-entire-room-if-accessibility-check-fails.patch b/packages/overlays/matrix-synapse/patches/0009-Log-entire-room-if-accessibility-check-fails.patch
index 71ab64b..4074550 100644
--- a/packages/overlays/matrix-synapse/patches/0009-Log-entire-room-if-accessibility-check-fails.patch
+++ b/packages/overlays/matrix-synapse/patches/0009-Log-entire-room-if-accessibility-check-fails.patch
@@ -1,4 +1,4 @@
-From dfc816f4f3a2a457013013d4415a99d60d971289 Mon Sep 17 00:00:00 2001
+From 037f114b2a3f49bd6efbba061a6d9d89cd845f05 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Wed, 23 Apr 2025 18:24:57 +0200
Subject: [PATCH 09/24] Log entire room if accessibility check fails
diff --git a/packages/overlays/matrix-synapse/patches/0010-Use-parse_boolean-for-unredacted-content.patch b/packages/overlays/matrix-synapse/patches/0010-Use-parse_boolean-for-unredacted-content.patch
index fe73296..de8b635 100644
--- a/packages/overlays/matrix-synapse/patches/0010-Use-parse_boolean-for-unredacted-content.patch
+++ b/packages/overlays/matrix-synapse/patches/0010-Use-parse_boolean-for-unredacted-content.patch
@@ -1,4 +1,4 @@
-From f2d18127aff7ad78db1f868e53fe804d70bbe981 Mon Sep 17 00:00:00 2001
+From 6894b8d14cb0b02e8a6fd0120ffd63b0387fbd98 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Tue, 27 May 2025 06:14:26 +0200
Subject: [PATCH 10/24] Use parse_boolean for unredacted content
@@ -9,10 +9,10 @@ Signed-off-by: Rory& <root@rory.gay>
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/synapse/rest/client/room.py b/synapse/rest/client/room.py
-index 65d9c130ef..a395f1d693 100644
+index 83664814a6..f17c1f5e26 100644
--- a/synapse/rest/client/room.py
+++ b/synapse/rest/client/room.py
-@@ -1050,10 +1050,9 @@ class RoomEventServlet(RestServlet):
+@@ -1053,10 +1053,9 @@ class RoomEventServlet(RestServlet):
requester = await self.auth.get_user_by_req(request, allow_guest=True)
include_unredacted_content = self.msc2815_enabled and (
diff --git a/packages/overlays/matrix-synapse/patches/0011-Expose-tombstone-in-room-admin-api.patch b/packages/overlays/matrix-synapse/patches/0011-Expose-tombstone-in-room-admin-api.patch
index 074c615..37254e3 100644
--- a/packages/overlays/matrix-synapse/patches/0011-Expose-tombstone-in-room-admin-api.patch
+++ b/packages/overlays/matrix-synapse/patches/0011-Expose-tombstone-in-room-admin-api.patch
@@ -1,4 +1,4 @@
-From 216293bb5649fab432fbec34af80e68ff2217276 Mon Sep 17 00:00:00 2001
+From 95f19ecaa28acb6299ced36ac408af368c200937 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Tue, 27 May 2025 06:37:52 +0200
Subject: [PATCH 11/24] Expose tombstone in room admin api
@@ -11,10 +11,10 @@ Signed-off-by: Rory& <root@rory.gay>
3 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/synapse/rest/admin/rooms.py b/synapse/rest/admin/rooms.py
-index a886859ffa..e97d076a44 100644
+index 61511b9360..3ff2865b96 100644
--- a/synapse/rest/admin/rooms.py
+++ b/synapse/rest/admin/rooms.py
-@@ -301,6 +301,10 @@ class ListRoomRestServlet(RestServlet):
+@@ -302,6 +302,10 @@ class ListRoomRestServlet(RestServlet):
direction = parse_enum(request, "dir", Direction, default=Direction.FORWARDS)
reverse_order = True if direction == Direction.BACKWARDS else False
@@ -25,7 +25,7 @@ index a886859ffa..e97d076a44 100644
# Return list of rooms according to parameters
rooms, total_rooms = await self.store.get_rooms_paginate(
start,
-@@ -310,6 +314,7 @@ class ListRoomRestServlet(RestServlet):
+@@ -311,6 +315,7 @@ class ListRoomRestServlet(RestServlet):
search_term,
public_rooms,
empty_rooms,
@@ -34,10 +34,10 @@ index a886859ffa..e97d076a44 100644
response = {
diff --git a/synapse/rest/client/room.py b/synapse/rest/client/room.py
-index a395f1d693..6631e629db 100644
+index f17c1f5e26..7f3b1153f7 100644
--- a/synapse/rest/client/room.py
+++ b/synapse/rest/client/room.py
-@@ -1054,7 +1054,6 @@ class RoomEventServlet(RestServlet):
+@@ -1057,7 +1057,6 @@ class RoomEventServlet(RestServlet):
request,
"fi.mau.msc2815.include_unredacted_content"
)
@@ -46,10 +46,10 @@ index a395f1d693..6631e629db 100644
if include_unredacted_content and not await self.auth.is_server_admin(
requester
diff --git a/synapse/storage/databases/main/room.py b/synapse/storage/databases/main/room.py
-index 7ac88e4c2a..ff647c0c5b 100644
+index a0c42082f0..68c2edfc14 100644
--- a/synapse/storage/databases/main/room.py
+++ b/synapse/storage/databases/main/room.py
-@@ -605,6 +605,7 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
+@@ -779,6 +779,7 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
search_term: str | None,
public_rooms: bool | None,
empty_rooms: bool | None,
@@ -57,7 +57,7 @@ index 7ac88e4c2a..ff647c0c5b 100644
) -> tuple[list[dict[str, Any]], int]:
"""Function to retrieve a paginated list of rooms as json.
-@@ -624,6 +625,7 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
+@@ -798,6 +799,7 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
If true, empty rooms are queried.
if false, empty rooms are excluded from the query. When it is
none (the default), both empty rooms and none-empty rooms are queried.
@@ -65,7 +65,7 @@ index 7ac88e4c2a..ff647c0c5b 100644
Returns:
A list of room dicts and an integer representing the total number of
rooms that exist given this query
-@@ -792,11 +794,43 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
+@@ -966,11 +968,43 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
room_count = cast(tuple[int], txn.fetchone())
return rooms, room_count[0]
diff --git a/packages/overlays/matrix-synapse/patches/0012-fix-Always-recheck-messages-pagination-data-if-a-bac.patch b/packages/overlays/matrix-synapse/patches/0012-fix-Always-recheck-messages-pagination-data-if-a-bac.patch
index e666cfe..d58c52f 100644
--- a/packages/overlays/matrix-synapse/patches/0012-fix-Always-recheck-messages-pagination-data-if-a-bac.patch
+++ b/packages/overlays/matrix-synapse/patches/0012-fix-Always-recheck-messages-pagination-data-if-a-bac.patch
@@ -1,4 +1,4 @@
-From 6c31b7de9e5d860a223e0a73749276048fd9f617 Mon Sep 17 00:00:00 2001
+From 60cd3178e8d941d32bedd1538f9a84102eed9215 Mon Sep 17 00:00:00 2001
From: Jason Little <j.little@famedly.com>
Date: Wed, 30 Apr 2025 09:29:42 -0500
Subject: [PATCH 12/24] fix: Always recheck `/messages` pagination data if a
@@ -11,7 +11,7 @@ Signed-off-by: Rory& <root@rory.gay>
2 files changed, 33 insertions(+), 36 deletions(-)
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py
-index 14805ac80f..04f8587fd8 100644
+index b3444dd2ef..2d5612fc04 100644
--- a/synapse/handlers/federation.py
+++ b/synapse/handlers/federation.py
@@ -191,7 +191,7 @@ class FederationHandler:
@@ -32,7 +32,7 @@ index 14805ac80f..04f8587fd8 100644
"""
# Starting the processing time here so we can include the room backfill
# linearizer lock queue in the timing
-@@ -306,7 +304,7 @@ class FederationHandler:
+@@ -308,7 +306,7 @@ class FederationHandler:
limit=1,
)
if not have_later_backfill_points:
@@ -41,7 +41,7 @@ index 14805ac80f..04f8587fd8 100644
logger.debug(
"_maybe_backfill_inner: all backfill points are *after* current depth. Trying again with later backfill points."
-@@ -326,15 +324,15 @@ class FederationHandler:
+@@ -328,15 +326,15 @@ class FederationHandler:
)
# We return `False` because we're backfilling in the background and there is
# no new events immediately for the caller to know about yet.
@@ -60,7 +60,7 @@ index 14805ac80f..04f8587fd8 100644
# If we're approaching an extremity we trigger a backfill, otherwise we
# no-op.
-@@ -353,7 +351,7 @@ class FederationHandler:
+@@ -355,7 +353,7 @@ class FederationHandler:
current_depth,
limit,
)
@@ -69,7 +69,7 @@ index 14805ac80f..04f8587fd8 100644
# For performance's sake, we only want to paginate from a particular extremity
# if we can actually see the events we'll get. Otherwise, we'd just spend a lot
-@@ -421,7 +419,7 @@ class FederationHandler:
+@@ -423,7 +421,7 @@ class FederationHandler:
logger.debug(
"_maybe_backfill_inner: found no extremities which would be visible"
)
@@ -78,7 +78,7 @@ index 14805ac80f..04f8587fd8 100644
logger.debug(
"_maybe_backfill_inner: extremities_to_request %s", extremities_to_request
-@@ -444,7 +442,7 @@ class FederationHandler:
+@@ -446,7 +444,7 @@ class FederationHandler:
)
)
@@ -87,7 +87,7 @@ index 14805ac80f..04f8587fd8 100644
# TODO: Should we try multiple of these at a time?
# Number of contacted remote homeservers that have denied our backfill
-@@ -467,7 +465,7 @@ class FederationHandler:
+@@ -469,7 +467,7 @@ class FederationHandler:
# If this succeeded then we probably already have the
# appropriate stuff.
# TODO: We can probably do something more intelligent here.
@@ -96,7 +96,7 @@ index 14805ac80f..04f8587fd8 100644
except NotRetryingDestination as e:
logger.info("_maybe_backfill_inner: %s", e)
continue
-@@ -491,7 +489,7 @@ class FederationHandler:
+@@ -493,7 +491,7 @@ class FederationHandler:
)
denied_count += 1
if denied_count >= max_denied_count:
@@ -105,7 +105,7 @@ index 14805ac80f..04f8587fd8 100644
continue
logger.info("Failed to backfill from %s because %s", dom, e)
-@@ -507,7 +505,7 @@ class FederationHandler:
+@@ -509,7 +507,7 @@ class FederationHandler:
)
denied_count += 1
if denied_count >= max_denied_count:
@@ -114,7 +114,7 @@ index 14805ac80f..04f8587fd8 100644
continue
logger.info("Failed to backfill from %s because %s", dom, e)
-@@ -519,7 +517,7 @@ class FederationHandler:
+@@ -521,7 +519,7 @@ class FederationHandler:
logger.exception("Failed to backfill from %s because %s", dom, e)
continue
@@ -123,7 +123,7 @@ index 14805ac80f..04f8587fd8 100644
# If we have the `processing_start_time`, then we can make an
# observation. We wouldn't have the `processing_start_time` in the case
-@@ -531,14 +529,9 @@ class FederationHandler:
+@@ -533,14 +531,9 @@ class FederationHandler:
**{SERVER_NAME_LABEL: self.server_name}
).observe((processing_end_time - processing_start_time) / 1000)
@@ -140,10 +140,10 @@ index 14805ac80f..04f8587fd8 100644
async def send_invite(self, target_host: str, event: EventBase) -> EventBase:
"""Sends the invite to the remote server for signing.
diff --git a/synapse/handlers/pagination.py b/synapse/handlers/pagination.py
-index 7b9c829056..368fa3e007 100644
+index 8cbe4b63c8..ab02e3acb8 100644
--- a/synapse/handlers/pagination.py
+++ b/synapse/handlers/pagination.py
-@@ -632,27 +632,31 @@ class PaginationHandler:
+@@ -633,27 +633,31 @@ class PaginationHandler:
or missing_too_many_events
or not_enough_events_to_fill_response
):
diff --git a/packages/overlays/matrix-synapse/patches/0013-Fix-pagination-with-large-gaps-of-rejected-events.patch b/packages/overlays/matrix-synapse/patches/0013-Fix-pagination-with-large-gaps-of-rejected-events.patch
index b82b2ba..1afd173 100644
--- a/packages/overlays/matrix-synapse/patches/0013-Fix-pagination-with-large-gaps-of-rejected-events.patch
+++ b/packages/overlays/matrix-synapse/patches/0013-Fix-pagination-with-large-gaps-of-rejected-events.patch
@@ -1,4 +1,4 @@
-From c960746dd2eb364ed647e2ac1ce67db938e8d6f5 Mon Sep 17 00:00:00 2001
+From f502069e368880d4b3129f5a45b41b74869e694e Mon Sep 17 00:00:00 2001
From: Nicolas Werner <nicolas.werner@hotmail.de>
Date: Sun, 8 Jun 2025 23:14:31 +0200
Subject: [PATCH 13/24] Fix pagination with large gaps of rejected events
@@ -9,10 +9,10 @@ Signed-off-by: Rory& <root@rory.gay>
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/synapse/handlers/pagination.py b/synapse/handlers/pagination.py
-index 368fa3e007..350c1ccd9e 100644
+index ab02e3acb8..2a715f1c8b 100644
--- a/synapse/handlers/pagination.py
+++ b/synapse/handlers/pagination.py
-@@ -565,7 +565,7 @@ class PaginationHandler:
+@@ -566,7 +566,7 @@ class PaginationHandler:
(
events,
next_key,
@@ -21,7 +21,7 @@ index 368fa3e007..350c1ccd9e 100644
) = await self.store.paginate_room_events_by_topological_ordering(
room_id=room_id,
from_key=from_token.room_key,
-@@ -648,7 +648,7 @@ class PaginationHandler:
+@@ -649,7 +649,7 @@ class PaginationHandler:
(
events,
next_key,
@@ -30,7 +30,7 @@ index 368fa3e007..350c1ccd9e 100644
) = await self.store.paginate_room_events_by_topological_ordering(
room_id=room_id,
from_key=from_token.room_key,
-@@ -671,6 +671,15 @@ class PaginationHandler:
+@@ -672,6 +672,15 @@ class PaginationHandler:
next_token = from_token.copy_and_replace(StreamKeyType.ROOM, next_key)
diff --git a/packages/overlays/matrix-synapse/patches/0014-RequestRatelimiter-expose-can_do_action.patch b/packages/overlays/matrix-synapse/patches/0014-RequestRatelimiter-expose-can_do_action.patch
index 266135b..a3befc1 100644
--- a/packages/overlays/matrix-synapse/patches/0014-RequestRatelimiter-expose-can_do_action.patch
+++ b/packages/overlays/matrix-synapse/patches/0014-RequestRatelimiter-expose-can_do_action.patch
@@ -1,4 +1,4 @@
-From 79ebebba08a1ff26d93606daf808f7c07cbf19b2 Mon Sep 17 00:00:00 2001
+From ab1b213e5438e6b5c973f0591fc76a22cf24a160 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Fri, 25 Jul 2025 08:26:15 +0200
Subject: [PATCH 14/24] RequestRatelimiter: expose can_do_action
diff --git a/packages/overlays/matrix-synapse/patches/0015-Clarify-pre_event_ids-assert-in-event-creation-handl.patch b/packages/overlays/matrix-synapse/patches/0015-Clarify-pre_event_ids-assert-in-event-creation-handl.patch
index f476f33..1d5de1a 100644
--- a/packages/overlays/matrix-synapse/patches/0015-Clarify-pre_event_ids-assert-in-event-creation-handl.patch
+++ b/packages/overlays/matrix-synapse/patches/0015-Clarify-pre_event_ids-assert-in-event-creation-handl.patch
@@ -1,4 +1,4 @@
-From 5281f1a0db81a620113452176a1ef8194d1e8e4a Mon Sep 17 00:00:00 2001
+From f185b8bbe732e115fede0322da86ab176f68bdd8 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Sat, 16 Aug 2025 20:19:08 +0200
Subject: [PATCH 15/24] Clarify pre_event_ids assert in event creation handler
@@ -9,10 +9,10 @@ Signed-off-by: Rory& <root@rory.gay>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py
-index eb01622515..65782dc459 100644
+index 4032c7eca9..435e6b5c14 100644
--- a/synapse/handlers/message.py
+++ b/synapse/handlers/message.py
-@@ -1285,7 +1285,7 @@ class EventCreationHandler:
+@@ -1324,7 +1324,7 @@ class EventCreationHandler:
if state_event_ids is not None:
# Do a quick check to make sure that prev_event_ids is present to
# make the type-checking around `builder.build` happy.
diff --git a/packages/overlays/matrix-synapse/patches/0016-Add-bulk-send-events-endpoint.patch b/packages/overlays/matrix-synapse/patches/0016-Add-bulk-send-events-endpoint.patch
index a589d9d..5d07d0e 100644
--- a/packages/overlays/matrix-synapse/patches/0016-Add-bulk-send-events-endpoint.patch
+++ b/packages/overlays/matrix-synapse/patches/0016-Add-bulk-send-events-endpoint.patch
@@ -1,4 +1,4 @@
-From 20006e0e445baf4d1364ed439cc15050895755cd Mon Sep 17 00:00:00 2001
+From 6f6e656426f6d1e91aec75b87e28237014fa702e Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Sat, 26 Jul 2025 09:50:56 +0200
Subject: [PATCH 16/24] Add bulk send events endpoint
@@ -30,7 +30,7 @@ index 705d74dee1..075c3de261 100644
}
diff --git a/synapse/rest/client/room.py b/synapse/rest/client/room.py
-index 6631e629db..f21240e346 100644
+index 7f3b1153f7..168415249b 100644
--- a/synapse/rest/client/room.py
+++ b/synapse/rest/client/room.py
@@ -23,10 +23,12 @@
@@ -46,14 +46,15 @@ index 6631e629db..f21240e346 100644
import attr
from prometheus_client.core import Histogram
-@@ -51,12 +53,14 @@ from synapse.api.errors import (
+@@ -51,6 +53,7 @@ from synapse.api.errors import (
UnredactedContentDeletedError,
)
from synapse.api.filtering import Filter
+from synapse.api.ratelimiting import RequestRatelimiter
from synapse.events.utils import (
EventClientSerializer,
- SerializeEventConfig,
+ FilteredEvent,
+@@ -58,6 +61,7 @@ from synapse.events.utils import (
format_event_for_client_v2,
)
from synapse.handlers.pagination import GetMessagesResult
@@ -61,7 +62,7 @@ index 6631e629db..f21240e346 100644
from synapse.http.server import HttpServer
from synapse.http.servlet import (
ResolveRoomIdMixin,
-@@ -513,7 +517,6 @@ class RoomSendEventRestServlet(TransactionRestServlet):
+@@ -514,7 +518,6 @@ class RoomSendEventRestServlet(TransactionRestServlet):
txn_id,
)
@@ -69,7 +70,7 @@ index 6631e629db..f21240e346 100644
def _parse_request_delay(
request: SynapseRequest,
max_delay: int | None,
-@@ -1755,6 +1758,112 @@ class RoomSummaryRestServlet(ResolveRoomIdMixin, RestServlet):
+@@ -1758,6 +1761,112 @@ class RoomSummaryRestServlet(ResolveRoomIdMixin, RestServlet):
remote_room_hosts,
)
@@ -182,7 +183,7 @@ index 6631e629db..f21240e346 100644
def register_servlets(hs: "HomeServer", http_server: HttpServer) -> None:
RoomStateEventRestServlet(hs).register(http_server)
-@@ -1764,6 +1873,7 @@ def register_servlets(hs: "HomeServer", http_server: HttpServer) -> None:
+@@ -1767,6 +1876,7 @@ def register_servlets(hs: "HomeServer", http_server: HttpServer) -> None:
JoinRoomAliasServlet(hs).register(http_server)
RoomMembershipRestServlet(hs).register(http_server)
RoomSendEventRestServlet(hs).register(http_server)
diff --git a/packages/overlays/matrix-synapse/patches/0017-admin-api-send-more-data.patch b/packages/overlays/matrix-synapse/patches/0017-admin-api-send-more-data.patch
index 4f56fff..ac2f3b9 100644
--- a/packages/overlays/matrix-synapse/patches/0017-admin-api-send-more-data.patch
+++ b/packages/overlays/matrix-synapse/patches/0017-admin-api-send-more-data.patch
@@ -1,4 +1,4 @@
-From e72191197df3a6570dcf01ec4388eff15157ab58 Mon Sep 17 00:00:00 2001
+From 565b3334daf72a68c01b194d438d36226414973f Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Mon, 27 Oct 2025 19:23:42 +0100
Subject: [PATCH 17/24] admin api - send more data
@@ -11,10 +11,10 @@ Signed-off-by: Rory& <root@rory.gay>
3 files changed, 66 insertions(+), 22 deletions(-)
diff --git a/synapse/rest/admin/rooms.py b/synapse/rest/admin/rooms.py
-index e97d076a44..09a8a01f77 100644
+index 3ff2865b96..cad8f205e3 100644
--- a/synapse/rest/admin/rooms.py
+++ b/synapse/rest/admin/rooms.py
-@@ -302,7 +302,15 @@ class ListRoomRestServlet(RestServlet):
+@@ -303,7 +303,15 @@ class ListRoomRestServlet(RestServlet):
reverse_order = True if direction == Direction.BACKWARDS else False
emma_include_tombstone = parse_boolean(
@@ -31,7 +31,7 @@ index e97d076a44..09a8a01f77 100644
)
# Return list of rooms according to parameters
-@@ -314,7 +322,9 @@ class ListRoomRestServlet(RestServlet):
+@@ -315,7 +323,9 @@ class ListRoomRestServlet(RestServlet):
search_term,
public_rooms,
empty_rooms,
@@ -57,10 +57,10 @@ index 075c3de261..c0b0a9923f 100644
}
}
diff --git a/synapse/storage/databases/main/room.py b/synapse/storage/databases/main/room.py
-index ff647c0c5b..823540f4a0 100644
+index 68c2edfc14..e427ffa78a 100644
--- a/synapse/storage/databases/main/room.py
+++ b/synapse/storage/databases/main/room.py
-@@ -606,6 +606,8 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
+@@ -780,6 +780,8 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
public_rooms: bool | None,
empty_rooms: bool | None,
emma_include_tombstone: bool = False,
@@ -69,7 +69,7 @@ index ff647c0c5b..823540f4a0 100644
) -> tuple[list[dict[str, Any]], int]:
"""Function to retrieve a paginated list of rooms as json.
-@@ -626,10 +628,13 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
+@@ -800,10 +802,13 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
if false, empty rooms are excluded from the query. When it is
none (the default), both empty rooms and none-empty rooms are queried.
emma_include_tombstone: If true, include tombstone events in the results.
@@ -83,7 +83,7 @@ index ff647c0c5b..823540f4a0 100644
# Filter room names by a string
filter_ = []
where_args = []
-@@ -799,35 +804,61 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
+@@ -973,35 +978,61 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
_get_rooms_paginate_txn,
)
diff --git a/packages/overlays/matrix-synapse/patches/0018-Allow-overriding-max-background-task-count.patch b/packages/overlays/matrix-synapse/patches/0018-Allow-overriding-max-background-task-count.patch
index 0c70f7b..91063ce 100644
--- a/packages/overlays/matrix-synapse/patches/0018-Allow-overriding-max-background-task-count.patch
+++ b/packages/overlays/matrix-synapse/patches/0018-Allow-overriding-max-background-task-count.patch
@@ -1,4 +1,4 @@
-From d06812d14a01684c9dfaddc56756118a14e0cdb6 Mon Sep 17 00:00:00 2001
+From 8757be9747020372ba76b95e5b36dae24449087a Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Tue, 28 Oct 2025 00:01:45 +0100
Subject: [PATCH 18/24] Allow overriding max background task count
diff --git a/packages/overlays/matrix-synapse/patches/0019-max-and-min-were-probably-switched.-Set-max-to-arbit.patch b/packages/overlays/matrix-synapse/patches/0019-max-and-min-were-probably-switched.-Set-max-to-arbit.patch
index 7052a97..43144b3 100644
--- a/packages/overlays/matrix-synapse/patches/0019-max-and-min-were-probably-switched.-Set-max-to-arbit.patch
+++ b/packages/overlays/matrix-synapse/patches/0019-max-and-min-were-probably-switched.-Set-max-to-arbit.patch
@@ -1,4 +1,4 @@
-From 9278458858ba5237de2def33e479257da847ef8b Mon Sep 17 00:00:00 2001
+From 52e5804439f74346972abc9cc0dea28c7e67fa84 Mon Sep 17 00:00:00 2001
From: Jason Little <j.little@famedly.com>
Date: Fri, 2 Jan 2026 12:48:22 -0600
Subject: [PATCH 19/24] max() and min() were probably switched. Set max to
diff --git a/packages/overlays/matrix-synapse/patches/0020-changelog.patch b/packages/overlays/matrix-synapse/patches/0020-changelog.patch
index 28df036..108ed0f 100644
--- a/packages/overlays/matrix-synapse/patches/0020-changelog.patch
+++ b/packages/overlays/matrix-synapse/patches/0020-changelog.patch
@@ -1,4 +1,4 @@
-From f519fa835fa3da23ed312d7c64e548635dce28a5 Mon Sep 17 00:00:00 2001
+From a69c1aff5c261cdc4f239ff9455bd0fe9dcac89e Mon Sep 17 00:00:00 2001
From: Jason Little <j.little@famedly.com>
Date: Tue, 20 Jan 2026 06:42:18 -0600
Subject: [PATCH 20/24] changelog
diff --git a/packages/overlays/matrix-synapse/patches/0021-Update-changelog.d-19394.bugfix.patch b/packages/overlays/matrix-synapse/patches/0021-Update-changelog.d-19394.bugfix.patch
index b6a0441..047a782 100644
--- a/packages/overlays/matrix-synapse/patches/0021-Update-changelog.d-19394.bugfix.patch
+++ b/packages/overlays/matrix-synapse/patches/0021-Update-changelog.d-19394.bugfix.patch
@@ -1,4 +1,4 @@
-From 351c195c6e78f93f22d01c368163e9db94e7496d Mon Sep 17 00:00:00 2001
+From 7428f78876be4004a48e63f69cf39818fe3bdc38 Mon Sep 17 00:00:00 2001
From: Jason Little <j.little@famedly.com>
Date: Wed, 21 Jan 2026 06:57:34 -0600
Subject: [PATCH 21/24] Update changelog.d/19394.bugfix
diff --git a/packages/overlays/matrix-synapse/patches/0022-Adjust-for-the-retry-interval-actually-being-a-timeo.patch b/packages/overlays/matrix-synapse/patches/0022-Adjust-for-the-retry-interval-actually-being-a-timeo.patch
index bcfbdf4..614d4b4 100644
--- a/packages/overlays/matrix-synapse/patches/0022-Adjust-for-the-retry-interval-actually-being-a-timeo.patch
+++ b/packages/overlays/matrix-synapse/patches/0022-Adjust-for-the-retry-interval-actually-being-a-timeo.patch
@@ -1,4 +1,4 @@
-From d4b741a582dde5ab68bbda75e02f617758055a52 Mon Sep 17 00:00:00 2001
+From 5b2cff0cd0284dca13bb05ef943b8d0ccddc1504 Mon Sep 17 00:00:00 2001
From: Jason Little <j.little@famedly.com>
Date: Mon, 26 Jan 2026 10:26:38 -0600
Subject: [PATCH 22/24] Adjust for the retry interval actually being a timeout
diff --git a/packages/overlays/matrix-synapse/patches/0023-unecessarily-long-pump-in-test-left-over-from-testin.patch b/packages/overlays/matrix-synapse/patches/0023-unecessarily-long-pump-in-test-left-over-from-testin.patch
index 5b11819..c3b6d9f 100644
--- a/packages/overlays/matrix-synapse/patches/0023-unecessarily-long-pump-in-test-left-over-from-testin.patch
+++ b/packages/overlays/matrix-synapse/patches/0023-unecessarily-long-pump-in-test-left-over-from-testin.patch
@@ -1,4 +1,4 @@
-From 60191c1dce61b42fc9eaeffad77ba573de072d0f Mon Sep 17 00:00:00 2001
+From 2c0e2bb897aa64b79d91f2710058cf31fef9e324 Mon Sep 17 00:00:00 2001
From: Jason Little <j.little@famedly.com>
Date: Mon, 26 Jan 2026 11:18:29 -0600
Subject: [PATCH 23/24] unecessarily long pump() in test, left over from
diff --git a/packages/overlays/matrix-synapse/patches/0024-adjust-changelog-again.patch b/packages/overlays/matrix-synapse/patches/0024-adjust-changelog-again.patch
index 2926890..243014c 100644
--- a/packages/overlays/matrix-synapse/patches/0024-adjust-changelog-again.patch
+++ b/packages/overlays/matrix-synapse/patches/0024-adjust-changelog-again.patch
@@ -1,4 +1,4 @@
-From 887fd0bf50e451d63c1675de40712bf32c8baa7c Mon Sep 17 00:00:00 2001
+From 0257cf3bb3d92408654e3e1a1bc9ea58133b1653 Mon Sep 17 00:00:00 2001
From: Jason Little <j.little@famedly.com>
Date: Mon, 26 Jan 2026 11:18:38 -0600
Subject: [PATCH 24/24] adjust changelog(again)
|