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 bb1b56b..86bf49a 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 fd711be4cc7099a5c890ccfb220ae0ca22a2c366 Mon Sep 17 00:00:00 2001
+From 6a6679f2adc62287a94ed2bc21f0379ba8643395 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Fri, 25 Jul 2025 08:25:28 +0200
Subject: [PATCH 01/19] 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 01bbfd3..31b205f 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 23f71a84efa6d45310d5a886b12f4525ecae075d Mon Sep 17 00:00:00 2001
+From 52073474ad787f1e1ad0a70ec5997a915cd46835 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Mon, 9 Jun 2025 17:38:34 +0200
Subject: [PATCH 02/19] 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 9d2ec22..10cb326 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 b75790c3660d8a7b86ad7cbbc47719d9dc4053bb Mon Sep 17 00:00:00 2001
+From 6431f98505a5ba3d41cfd4a16df1a746818079c2 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Thu, 13 Nov 2025 13:57:10 +0100
Subject: [PATCH 03/19] 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 32f2e81..68a5af1 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 dcabee98b40089abe9af62ff88f87862a4baad26 Mon Sep 17 00:00:00 2001
+From 484d828ca40ed1d2d20d490c0a6d04c5ccfc7177 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Sat, 16 Aug 2025 20:18:45 +0200
Subject: [PATCH 04/19] 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 e177d83..9ec68ee 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 79dfe83b97bfd90fd67a6f6cb10f858c6aa3b64f Mon Sep 17 00:00:00 2001
+From 8f90a5cc49bca091080c5dcb102c538d0ed7380e Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Thu, 13 Nov 2025 13:56:59 +0100
Subject: [PATCH 05/19] 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 e7ed185..700c0c5 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 6ff08bc328baf0b5c792859fb9e68ea2265a4722 Mon Sep 17 00:00:00 2001
+From e0fa2c2646921eee904249af9f410afb65c73b37 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Mon, 9 Jun 2025 17:46:10 +0200
Subject: [PATCH 06/19] 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 4d3365e..e092ea0 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 32c343c8b06e0abd3f55a20163c4d95c8b15b312 Mon Sep 17 00:00:00 2001
+From ad2d33f1df396c1f468c0c0502b0012e16f39342 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Tue, 22 Jul 2025 05:07:01 +0200
Subject: [PATCH 07/19] Fast auth links
@@ -10,10 +10,10 @@ Signed-off-by: Rory& <root@rory.gay>
2 files changed, 47 insertions(+), 4 deletions(-)
diff --git a/synapse/storage/database.py b/synapse/storage/database.py
-index 18f0eac585..cdca6438e4 100644
+index 2d5e1d3c48..b44016d13e 100644
--- a/synapse/storage/database.py
+++ b/synapse/storage/database.py
-@@ -2590,6 +2590,49 @@ class DatabasePool:
+@@ -2591,6 +2591,49 @@ class DatabasePool:
return txn.fetchall()
@@ -64,7 +64,7 @@ index 18f0eac585..cdca6438e4 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 b2f0aeaf58..e8613e4f9f 100644
+index cc7083b605..55a0714f14 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 (
@@ -75,7 +75,7 @@ index b2f0aeaf58..e8613e4f9f 100644
)
from synapse.storage.databases.main.cache import CacheInvalidationWorkerStore
from synapse.storage.databases.main.events_worker import EventsWorkerStore
-@@ -381,8 +382,7 @@ class EventFederationWorkerStore(
+@@ -384,8 +385,7 @@ class EventFederationWorkerStore(
sql = """
WITH RECURSIVE links(chain_id) AS (
SELECT
@@ -85,7 +85,7 @@ index b2f0aeaf58..e8613e4f9f 100644
UNION
SELECT
target_chain_id
-@@ -399,8 +399,8 @@ class EventFederationWorkerStore(
+@@ -402,8 +402,8 @@ class EventFederationWorkerStore(
while chains_to_fetch:
batch2 = tuple(itertools.islice(chains_to_fetch, 1000))
chains_to_fetch.difference_update(batch2)
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 4982526..4f4d61a 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 5eb3c569d5ab5af5998f574fd47c79cad9dc4e2f Mon Sep 17 00:00:00 2001
+From 2cd613e3c422d52693b5f50c2db2e8e1b9ae169e Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Wed, 23 Apr 2025 17:53:52 +0200
Subject: [PATCH 08/19] 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 e343e99..991477d 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 7f107b0e9d35cdf7a68bcf5c1210023e9cdc557a Mon Sep 17 00:00:00 2001
+From 067819eba568fc3acbf5be0a6e1440f59df3e32e Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Wed, 23 Apr 2025 18:24:57 +0200
Subject: [PATCH 09/19] Log entire room if accessibility check fails
diff --git a/packages/overlays/matrix-synapse/patches/0010-Log-policy-server-rejected-events.patch b/packages/overlays/matrix-synapse/patches/0010-Log-policy-server-rejected-events.patch
index 315b983..5d271c9 100644
--- a/packages/overlays/matrix-synapse/patches/0010-Log-policy-server-rejected-events.patch
+++ b/packages/overlays/matrix-synapse/patches/0010-Log-policy-server-rejected-events.patch
@@ -1,4 +1,4 @@
-From 7a88aaade5f86e8061f659d40e2ae56258ca28c3 Mon Sep 17 00:00:00 2001
+From f085fa232b6fce515f43fa5939afb1ab1b5dc3fe Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Tue, 27 May 2025 05:21:46 +0200
Subject: [PATCH 10/19] Log policy server rejected events
diff --git a/packages/overlays/matrix-synapse/patches/0011-Use-parse_boolean-for-unredacted-content.patch b/packages/overlays/matrix-synapse/patches/0011-Use-parse_boolean-for-unredacted-content.patch
index 68819fe..51e28f6 100644
--- a/packages/overlays/matrix-synapse/patches/0011-Use-parse_boolean-for-unredacted-content.patch
+++ b/packages/overlays/matrix-synapse/patches/0011-Use-parse_boolean-for-unredacted-content.patch
@@ -1,4 +1,4 @@
-From e201ce163e0aa622ca709970c773494d84fc3177 Mon Sep 17 00:00:00 2001
+From 39f6d6db06eedce3c3833c2cb705f7758f15abe9 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Tue, 27 May 2025 06:14:26 +0200
Subject: [PATCH 11/19] 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 81a6bd57fc..e819cab02c 100644
+index 5e7dcb0191..dac466f465 100644
--- a/synapse/rest/client/room.py
+++ b/synapse/rest/client/room.py
-@@ -929,10 +929,9 @@ class RoomEventServlet(RestServlet):
+@@ -1023,10 +1023,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/0012-Expose-tombstone-in-room-admin-api.patch b/packages/overlays/matrix-synapse/patches/0012-Expose-tombstone-in-room-admin-api.patch
index 6c56b26..bce8aec 100644
--- a/packages/overlays/matrix-synapse/patches/0012-Expose-tombstone-in-room-admin-api.patch
+++ b/packages/overlays/matrix-synapse/patches/0012-Expose-tombstone-in-room-admin-api.patch
@@ -1,4 +1,4 @@
-From 92db3e480d101db369fa0081275796b5af5d2ce8 Mon Sep 17 00:00:00 2001
+From 37a151a60fcbbf43408962121e31a9c52ea7ff3a Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Tue, 27 May 2025 06:37:52 +0200
Subject: [PATCH 12/19] 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 cf24bc628a..b75364b648 100644
+index a886859ffa..e97d076a44 100644
--- a/synapse/rest/admin/rooms.py
+++ b/synapse/rest/admin/rooms.py
-@@ -295,6 +295,10 @@ class ListRoomRestServlet(RestServlet):
+@@ -301,6 +301,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 cf24bc628a..b75364b648 100644
# Return list of rooms according to parameters
rooms, total_rooms = await self.store.get_rooms_paginate(
start,
-@@ -304,6 +308,7 @@ class ListRoomRestServlet(RestServlet):
+@@ -310,6 +314,7 @@ class ListRoomRestServlet(RestServlet):
search_term,
public_rooms,
empty_rooms,
@@ -34,10 +34,10 @@ index cf24bc628a..b75364b648 100644
response = {
diff --git a/synapse/rest/client/room.py b/synapse/rest/client/room.py
-index e819cab02c..4914826904 100644
+index dac466f465..d28be2befb 100644
--- a/synapse/rest/client/room.py
+++ b/synapse/rest/client/room.py
-@@ -933,7 +933,6 @@ class RoomEventServlet(RestServlet):
+@@ -1027,7 +1027,6 @@ class RoomEventServlet(RestServlet):
request,
"fi.mau.msc2815.include_unredacted_content"
)
diff --git a/packages/overlays/matrix-synapse/patches/0013-fix-Always-recheck-messages-pagination-data-if-a-bac.patch b/packages/overlays/matrix-synapse/patches/0013-fix-Always-recheck-messages-pagination-data-if-a-bac.patch
index 536ca2e..a82c2bc 100644
--- a/packages/overlays/matrix-synapse/patches/0013-fix-Always-recheck-messages-pagination-data-if-a-bac.patch
+++ b/packages/overlays/matrix-synapse/patches/0013-fix-Always-recheck-messages-pagination-data-if-a-bac.patch
@@ -1,4 +1,4 @@
-From be2d5f903febee8d045e38eb110a265dad5033ce Mon Sep 17 00:00:00 2001
+From 3d1e47c508e424851af16abe8ae2169c82bb2f85 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 13/19] fix: Always recheck `/messages` pagination data if a
@@ -11,10 +11,10 @@ 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 1bba3fc758..867f8bec83 100644
+index 7808f8928b..7131a7ae3d 100644
--- a/synapse/handlers/federation.py
+++ b/synapse/handlers/federation.py
-@@ -190,7 +190,7 @@ class FederationHandler:
+@@ -191,7 +191,7 @@ class FederationHandler:
@tag_args
async def maybe_backfill(
self, room_id: str, current_depth: int, limit: int, record_time: bool = True
@@ -23,7 +23,7 @@ index 1bba3fc758..867f8bec83 100644
"""Checks the database to see if we should backfill before paginating,
and if so do.
-@@ -204,8 +204,6 @@ class FederationHandler:
+@@ -205,8 +205,6 @@ class FederationHandler:
should back paginate.
record_time: Whether to record the time it takes to backfill.
@@ -32,7 +32,7 @@ index 1bba3fc758..867f8bec83 100644
"""
# Starting the processing time here so we can include the room backfill
# linearizer lock queue in the timing
-@@ -305,7 +303,7 @@ class FederationHandler:
+@@ -306,7 +304,7 @@ class FederationHandler:
limit=1,
)
if not have_later_backfill_points:
@@ -41,7 +41,7 @@ index 1bba3fc758..867f8bec83 100644
logger.debug(
"_maybe_backfill_inner: all backfill points are *after* current depth. Trying again with later backfill points."
-@@ -325,15 +323,15 @@ class FederationHandler:
+@@ -326,15 +324,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 1bba3fc758..867f8bec83 100644
# If we're approaching an extremity we trigger a backfill, otherwise we
# no-op.
-@@ -352,7 +350,7 @@ class FederationHandler:
+@@ -353,7 +351,7 @@ class FederationHandler:
current_depth,
limit,
)
@@ -69,7 +69,7 @@ index 1bba3fc758..867f8bec83 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
-@@ -420,7 +418,7 @@ class FederationHandler:
+@@ -421,7 +419,7 @@ class FederationHandler:
logger.debug(
"_maybe_backfill_inner: found no extremities which would be visible"
)
@@ -78,7 +78,7 @@ index 1bba3fc758..867f8bec83 100644
logger.debug(
"_maybe_backfill_inner: extremities_to_request %s", extremities_to_request
-@@ -443,7 +441,7 @@ class FederationHandler:
+@@ -444,7 +442,7 @@ class FederationHandler:
)
)
@@ -87,7 +87,7 @@ index 1bba3fc758..867f8bec83 100644
# TODO: Should we try multiple of these at a time?
# Number of contacted remote homeservers that have denied our backfill
-@@ -466,7 +464,7 @@ class FederationHandler:
+@@ -467,7 +465,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 1bba3fc758..867f8bec83 100644
except NotRetryingDestination as e:
logger.info("_maybe_backfill_inner: %s", e)
continue
-@@ -490,7 +488,7 @@ class FederationHandler:
+@@ -491,7 +489,7 @@ class FederationHandler:
)
denied_count += 1
if denied_count >= max_denied_count:
@@ -105,7 +105,7 @@ index 1bba3fc758..867f8bec83 100644
continue
logger.info("Failed to backfill from %s because %s", dom, e)
-@@ -506,7 +504,7 @@ class FederationHandler:
+@@ -507,7 +505,7 @@ class FederationHandler:
)
denied_count += 1
if denied_count >= max_denied_count:
@@ -114,7 +114,7 @@ index 1bba3fc758..867f8bec83 100644
continue
logger.info("Failed to backfill from %s because %s", dom, e)
-@@ -518,7 +516,7 @@ class FederationHandler:
+@@ -519,7 +517,7 @@ class FederationHandler:
logger.exception("Failed to backfill from %s because %s", dom, e)
continue
@@ -123,7 +123,7 @@ index 1bba3fc758..867f8bec83 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
-@@ -530,14 +528,9 @@ class FederationHandler:
+@@ -531,14 +529,9 @@ class FederationHandler:
**{SERVER_NAME_LABEL: self.server_name}
).observe((processing_end_time - processing_start_time) / 1000)
@@ -140,10 +140,10 @@ index 1bba3fc758..867f8bec83 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 a90ed3193c..85648a4288 100644
+index 63e5dfa70c..13aa2c97f4 100644
--- a/synapse/handlers/pagination.py
+++ b/synapse/handlers/pagination.py
-@@ -576,27 +576,31 @@ class PaginationHandler:
+@@ -632,27 +632,31 @@ class PaginationHandler:
or missing_too_many_events
or not_enough_events_to_fill_response
):
diff --git a/packages/overlays/matrix-synapse/patches/0014-Fix-pagination-with-large-gaps-of-rejected-events.patch b/packages/overlays/matrix-synapse/patches/0014-Fix-pagination-with-large-gaps-of-rejected-events.patch
index 0ebc869..291f9c0 100644
--- a/packages/overlays/matrix-synapse/patches/0014-Fix-pagination-with-large-gaps-of-rejected-events.patch
+++ b/packages/overlays/matrix-synapse/patches/0014-Fix-pagination-with-large-gaps-of-rejected-events.patch
@@ -1,4 +1,4 @@
-From e1eb6a1af6c165c0b1a9093a8aa1084ec3acc5b3 Mon Sep 17 00:00:00 2001
+From 5311dbacaa504ba702c22f03b24f527ace458a4a 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 14/19] 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 85648a4288..ea13ac49c0 100644
+index 13aa2c97f4..108ffcdf99 100644
--- a/synapse/handlers/pagination.py
+++ b/synapse/handlers/pagination.py
-@@ -509,7 +509,7 @@ class PaginationHandler:
+@@ -565,7 +565,7 @@ class PaginationHandler:
(
events,
next_key,
@@ -21,7 +21,7 @@ index 85648a4288..ea13ac49c0 100644
) = await self.store.paginate_room_events_by_topological_ordering(
room_id=room_id,
from_key=from_token.room_key,
-@@ -592,7 +592,7 @@ class PaginationHandler:
+@@ -648,7 +648,7 @@ class PaginationHandler:
(
events,
next_key,
@@ -30,7 +30,7 @@ index 85648a4288..ea13ac49c0 100644
) = await self.store.paginate_room_events_by_topological_ordering(
room_id=room_id,
from_key=from_token.room_key,
-@@ -615,6 +615,15 @@ class PaginationHandler:
+@@ -671,6 +671,15 @@ class PaginationHandler:
next_token = from_token.copy_and_replace(StreamKeyType.ROOM, next_key)
diff --git a/packages/overlays/matrix-synapse/patches/0015-RequestRatelimiter-expose-can_do_action.patch b/packages/overlays/matrix-synapse/patches/0015-RequestRatelimiter-expose-can_do_action.patch
index 4033d7f..c16774e 100644
--- a/packages/overlays/matrix-synapse/patches/0015-RequestRatelimiter-expose-can_do_action.patch
+++ b/packages/overlays/matrix-synapse/patches/0015-RequestRatelimiter-expose-can_do_action.patch
@@ -1,4 +1,4 @@
-From 6ef1179418404ecb5ac3b85920756f2f17d0e721 Mon Sep 17 00:00:00 2001
+From 06b8ff395668f72392ae87e676fa900ed80aa562 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Fri, 25 Jul 2025 08:26:15 +0200
Subject: [PATCH 15/19] RequestRatelimiter: expose can_do_action
@@ -9,10 +9,10 @@ Signed-off-by: Rory& <root@rory.gay>
1 file changed, 75 insertions(+)
diff --git a/synapse/api/ratelimiting.py b/synapse/api/ratelimiting.py
-index df884d47d7..1c48bc6f68 100644
+index d6cc3d26b5..bdc9481e4f 100644
--- a/synapse/api/ratelimiting.py
+++ b/synapse/api/ratelimiting.py
-@@ -478,3 +478,78 @@ class RequestRatelimiter:
+@@ -479,3 +479,78 @@ class RequestRatelimiter:
update=update,
n_actions=n_actions,
)
diff --git a/packages/overlays/matrix-synapse/patches/0016-Clarify-pre_event_ids-assert-in-event-creation-handl.patch b/packages/overlays/matrix-synapse/patches/0016-Clarify-pre_event_ids-assert-in-event-creation-handl.patch
index d45a889..9a5a24a 100644
--- a/packages/overlays/matrix-synapse/patches/0016-Clarify-pre_event_ids-assert-in-event-creation-handl.patch
+++ b/packages/overlays/matrix-synapse/patches/0016-Clarify-pre_event_ids-assert-in-event-creation-handl.patch
@@ -1,4 +1,4 @@
-From 151a05690fd3c54feb3ff8f671fa80ef9f5b9176 Mon Sep 17 00:00:00 2001
+From 164eb03fe63eb8f07ed8e45fcb9311f5b65ccf8a Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Sat, 16 Aug 2025 20:19:08 +0200
Subject: [PATCH 16/19] 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 7679303a36..da44d4b349 100644
+index a6499de3a8..b9dbd255ea 100644
--- a/synapse/handlers/message.py
+++ b/synapse/handlers/message.py
-@@ -1276,7 +1276,7 @@ class EventCreationHandler:
+@@ -1274,7 +1274,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/0017-Add-bulk-send-events-endpoint.patch b/packages/overlays/matrix-synapse/patches/0017-Add-bulk-send-events-endpoint.patch
index 71dc684..76a2709 100644
--- a/packages/overlays/matrix-synapse/patches/0017-Add-bulk-send-events-endpoint.patch
+++ b/packages/overlays/matrix-synapse/patches/0017-Add-bulk-send-events-endpoint.patch
@@ -1,4 +1,4 @@
-From f080065c208d131cc191322b19f7b13e5a05352e Mon Sep 17 00:00:00 2001
+From a29ade42ad0e27881e2e6cbd80733e0bab24aeeb Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Sat, 26 Jul 2025 09:50:56 +0200
Subject: [PATCH 17/19] Add bulk send events endpoint
@@ -30,7 +30,7 @@ index baff999ab0..5a85a415e6 100644
}
diff --git a/synapse/rest/client/room.py b/synapse/rest/client/room.py
-index 4914826904..a8cad1d563 100644
+index d28be2befb..7bcfdb68ce 100644
--- a/synapse/rest/client/room.py
+++ b/synapse/rest/client/room.py
@@ -23,10 +23,12 @@
@@ -44,23 +44,25 @@ index 4914826904..a8cad1d563 100644
from urllib import parse as urlparse
+from twisted.internet import defer
+ import attr
from prometheus_client.core import Histogram
-
-@@ -44,11 +46,13 @@ from synapse.api.errors import (
+@@ -45,6 +47,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,
- format_event_for_client_v2,
+@@ -52,6 +55,7 @@ from synapse.events.utils import (
serialize_event,
)
+ from synapse.handlers.pagination import GetMessagesResult
+from synapse.events import EventBase
from synapse.http.server import HttpServer
from synapse.http.servlet import (
ResolveRoomIdMixin,
-@@ -481,7 +485,6 @@ class RoomSendEventRestServlet(TransactionRestServlet):
+@@ -486,7 +490,6 @@ class RoomSendEventRestServlet(TransactionRestServlet):
txn_id,
)
@@ -68,7 +70,7 @@ index 4914826904..a8cad1d563 100644
def _parse_request_delay(
request: SynapseRequest,
max_delay: int | None,
-@@ -1634,6 +1637,112 @@ class RoomSummaryRestServlet(ResolveRoomIdMixin, RestServlet):
+@@ -1728,6 +1731,112 @@ class RoomSummaryRestServlet(ResolveRoomIdMixin, RestServlet):
remote_room_hosts,
)
@@ -181,7 +183,7 @@ index 4914826904..a8cad1d563 100644
def register_servlets(hs: "HomeServer", http_server: HttpServer) -> None:
RoomStateEventRestServlet(hs).register(http_server)
-@@ -1643,6 +1752,7 @@ def register_servlets(hs: "HomeServer", http_server: HttpServer) -> None:
+@@ -1737,6 +1846,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/0018-admin-api-send-more-data.patch b/packages/overlays/matrix-synapse/patches/0018-admin-api-send-more-data.patch
index e1c5331..fd1d70b 100644
--- a/packages/overlays/matrix-synapse/patches/0018-admin-api-send-more-data.patch
+++ b/packages/overlays/matrix-synapse/patches/0018-admin-api-send-more-data.patch
@@ -1,4 +1,4 @@
-From 66cb6913a2f133c9d12d8e84c2d4402de8ea6a89 Mon Sep 17 00:00:00 2001
+From 2192b7e89f700a8203afede1192e71bd1239b733 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Mon, 27 Oct 2025 19:23:42 +0100
Subject: [PATCH 18/19] 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 b75364b648..1df4dd0c2c 100644
+index e97d076a44..09a8a01f77 100644
--- a/synapse/rest/admin/rooms.py
+++ b/synapse/rest/admin/rooms.py
-@@ -296,7 +296,15 @@ class ListRoomRestServlet(RestServlet):
+@@ -302,7 +302,15 @@ class ListRoomRestServlet(RestServlet):
reverse_order = True if direction == Direction.BACKWARDS else False
emma_include_tombstone = parse_boolean(
@@ -31,7 +31,7 @@ index b75364b648..1df4dd0c2c 100644
)
# Return list of rooms according to parameters
-@@ -308,7 +316,9 @@ class ListRoomRestServlet(RestServlet):
+@@ -314,7 +322,9 @@ class ListRoomRestServlet(RestServlet):
search_term,
public_rooms,
empty_rooms,
diff --git a/packages/overlays/matrix-synapse/patches/0019-Allow-overriding-max-background-task-count.patch b/packages/overlays/matrix-synapse/patches/0019-Allow-overriding-max-background-task-count.patch
index c1ac35d..7d265fc 100644
--- a/packages/overlays/matrix-synapse/patches/0019-Allow-overriding-max-background-task-count.patch
+++ b/packages/overlays/matrix-synapse/patches/0019-Allow-overriding-max-background-task-count.patch
@@ -1,4 +1,4 @@
-From 75e8013c1152987f32c62335fe75880ea90752d6 Mon Sep 17 00:00:00 2001
+From 16e117cdf44f6709c112b388789680adbb2993bc Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Tue, 28 Oct 2025 00:01:45 +0100
Subject: [PATCH 19/19] Allow overriding max background task count
@@ -31,10 +31,10 @@ index 78d9d61d3c..42891e3e4c 100644
# to the old method.
if "rc_message" in config:
diff --git a/synapse/util/task_scheduler.py b/synapse/util/task_scheduler.py
-index 3b4423a1ff..2ea5558db3 100644
+index 353ddb70bc..a0326473ef 100644
--- a/synapse/util/task_scheduler.py
+++ b/synapse/util/task_scheduler.py
-@@ -139,6 +139,12 @@ class TaskScheduler:
+@@ -140,6 +140,12 @@ class TaskScheduler:
hook=lambda: {(self.server_name,): len(self._running_tasks)},
)
|