diff --git a/packages/overlays/matrix-synapse/patches/synapse-fast-links.patch b/packages/overlays/matrix-synapse/patches/0001-Fast-auth-links.patch
index c35ba87..0d92e4e 100644
--- a/packages/overlays/matrix-synapse/patches/synapse-fast-links.patch
+++ b/packages/overlays/matrix-synapse/patches/0001-Fast-auth-links.patch
@@ -1,8 +1,18 @@
+From 1b82f35b613e96c56bf18015e33f34328ad73188 Mon Sep 17 00:00:00 2001
+From: Rory& <root@rory.gay>
+Date: Tue, 22 Jul 2025 05:07:01 +0200
+Subject: [PATCH 01/11] Fast auth links
+
+---
+ synapse/storage/database.py | 43 +++++++++++++++++++
+ .../databases/main/event_federation.py | 8 ++--
+ 2 files changed, 47 insertions(+), 4 deletions(-)
+
diff --git a/synapse/storage/database.py b/synapse/storage/database.py
-index cb4a585..1196781 100644
+index 6188195614..79af139543 100644
--- a/synapse/storage/database.py
+++ b/synapse/storage/database.py
-@@ -2503,6 +2503,49 @@ class DatabasePool:
+@@ -2558,6 +2558,49 @@ class DatabasePool:
return txn.fetchall()
@@ -53,7 +63,7 @@ index cb4a585..1196781 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 46aa590..026f011 100644
+index 46aa5902d8..026f0114ed 100644
--- a/synapse/storage/databases/main/event_federation.py
+++ b/synapse/storage/databases/main/event_federation.py
@@ -52,6 +52,7 @@ from synapse.storage.database import (
@@ -85,3 +95,6 @@ index 46aa590..026f011 100644
)
txn.execute(sql % (clause,), args)
+--
+2.49.0
+
diff --git a/packages/overlays/matrix-synapse/patches/0001-Hotfix-ignore-rejected-events-in-delayed_events.patch b/packages/overlays/matrix-synapse/patches/0002-Hotfix-ignore-rejected-events-in-delayed_events.patch
index 10bda30..3d5ea60 100644
--- a/packages/overlays/matrix-synapse/patches/0001-Hotfix-ignore-rejected-events-in-delayed_events.patch
+++ b/packages/overlays/matrix-synapse/patches/0002-Hotfix-ignore-rejected-events-in-delayed_events.patch
@@ -1,7 +1,7 @@
-From c9685b56adfec0f8917e2a04b792519c57f0baa4 Mon Sep 17 00:00:00 2001
+From 346fb5899fa42d4604b7bf0261c5e1774e6d2c04 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Sun, 20 Apr 2025 00:30:29 +0200
-Subject: [PATCH 01/10] Hotfix: ignore rejected events in delayed_events
+Subject: [PATCH 02/11] Hotfix: ignore rejected events in delayed_events
---
synapse/handlers/delayed_events.py | 7 ++++++-
diff --git a/packages/overlays/matrix-synapse/patches/0002-Add-too-much-logging-to-room-summary-over-federation.patch b/packages/overlays/matrix-synapse/patches/0003-Add-too-much-logging-to-room-summary-over-federation.patch
index 8441823..5f4e596 100644
--- a/packages/overlays/matrix-synapse/patches/0002-Add-too-much-logging-to-room-summary-over-federation.patch
+++ b/packages/overlays/matrix-synapse/patches/0003-Add-too-much-logging-to-room-summary-over-federation.patch
@@ -1,7 +1,7 @@
-From 12f5c44e7d1cedc9f11402fc5c06ce54a8c24915 Mon Sep 17 00:00:00 2001
+From 929d1e329ec26d2e351591206a82c6e235660437 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Wed, 23 Apr 2025 17:53:52 +0200
-Subject: [PATCH 02/10] Add too much logging to room summary over federation
+Subject: [PATCH 03/11] Add too much logging to room summary over federation
Signed-off-by: Rory& <root@rory.gay>
---
@@ -9,10 +9,10 @@ Signed-off-by: Rory& <root@rory.gay>
1 file changed, 36 insertions(+), 4 deletions(-)
diff --git a/synapse/handlers/room_summary.py b/synapse/handlers/room_summary.py
-index 91b131d09b..6e64930682 100644
+index 1f322ac263..59b63b2e7c 100644
--- a/synapse/handlers/room_summary.py
+++ b/synapse/handlers/room_summary.py
-@@ -700,23 +700,55 @@ class RoomSummaryHandler:
+@@ -715,23 +715,55 @@ class RoomSummaryHandler:
"""
# The API doesn't return the room version so assume that a
# join rule of knock is valid.
diff --git a/packages/overlays/matrix-synapse/patches/0003-Log-entire-room-if-accessibility-check-fails.patch b/packages/overlays/matrix-synapse/patches/0004-Log-entire-room-if-accessibility-check-fails.patch
index e1676c6..290f0da 100644
--- a/packages/overlays/matrix-synapse/patches/0003-Log-entire-room-if-accessibility-check-fails.patch
+++ b/packages/overlays/matrix-synapse/patches/0004-Log-entire-room-if-accessibility-check-fails.patch
@@ -1,7 +1,7 @@
-From feb88e251b0a7402095643444710f160b9e73daa Mon Sep 17 00:00:00 2001
+From 0ce933278f77e272e2cc894229a1178e1b4fb552 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Wed, 23 Apr 2025 18:24:57 +0200
-Subject: [PATCH 03/10] Log entire room if accessibility check fails
+Subject: [PATCH 04/11] Log entire room if accessibility check fails
Signed-off-by: Rory& <root@rory.gay>
---
@@ -9,10 +9,10 @@ Signed-off-by: Rory& <root@rory.gay>
1 file changed, 4 insertions(+)
diff --git a/synapse/handlers/room_summary.py b/synapse/handlers/room_summary.py
-index 6e64930682..1c39cfed1b 100644
+index 59b63b2e7c..b65ccdb510 100644
--- a/synapse/handlers/room_summary.py
+++ b/synapse/handlers/room_summary.py
-@@ -916,6 +916,10 @@ class RoomSummaryHandler:
+@@ -931,6 +931,10 @@ class RoomSummaryHandler:
if not room_entry or not await self._is_remote_room_accessible(
requester, room_entry.room_id, room_entry.room
):
diff --git a/packages/overlays/matrix-synapse/patches/0004-Log-policy-server-rejected-events.patch b/packages/overlays/matrix-synapse/patches/0005-Log-policy-server-rejected-events.patch
index 63903f1..ae59e63 100644
--- a/packages/overlays/matrix-synapse/patches/0004-Log-policy-server-rejected-events.patch
+++ b/packages/overlays/matrix-synapse/patches/0005-Log-policy-server-rejected-events.patch
@@ -1,17 +1,17 @@
-From d06fbc3b1b6158a1e3805d3dd282427268dea01a Mon Sep 17 00:00:00 2001
+From 0b5d4c8104bf25f7bbb4e4e7db229742f04199b6 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Tue, 27 May 2025 05:21:46 +0200
-Subject: [PATCH 04/10] Log policy server rejected events
+Subject: [PATCH 05/11] Log policy server rejected events
---
synapse/handlers/room_policy.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/synapse/handlers/room_policy.py b/synapse/handlers/room_policy.py
-index dcfebb128c..3a83c4d6ec 100644
+index 170c477d6f..df5585e4ee 100644
--- a/synapse/handlers/room_policy.py
+++ b/synapse/handlers/room_policy.py
-@@ -84,6 +84,13 @@ class RoomPolicyHandler:
+@@ -87,6 +87,13 @@ class RoomPolicyHandler:
policy_server, event
)
if recommendation != RECOMMENDATION_OK:
diff --git a/packages/overlays/matrix-synapse/patches/0005-Use-parse_boolean-for-unredacted-content.patch b/packages/overlays/matrix-synapse/patches/0006-Use-parse_boolean-for-unredacted-content.patch
index bfb3e75..1c2841c 100644
--- a/packages/overlays/matrix-synapse/patches/0005-Use-parse_boolean-for-unredacted-content.patch
+++ b/packages/overlays/matrix-synapse/patches/0006-Use-parse_boolean-for-unredacted-content.patch
@@ -1,17 +1,17 @@
-From 9c3f28c68cb89e81a98561e0898b00c43a280a65 Mon Sep 17 00:00:00 2001
+From 07d72fd39ea3044577322647d5ed1dd8cb6f77d9 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Tue, 27 May 2025 06:14:26 +0200
-Subject: [PATCH 05/10] Use parse_boolean for unredacted content
+Subject: [PATCH 06/11] Use parse_boolean for unredacted content
---
synapse/rest/client/room.py | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/synapse/rest/client/room.py b/synapse/rest/client/room.py
-index bb41575d46..63ea52baf8 100644
+index 4600a87778..e838341fde 100644
--- a/synapse/rest/client/room.py
+++ b/synapse/rest/client/room.py
-@@ -914,10 +914,9 @@ class RoomEventServlet(RestServlet):
+@@ -915,10 +915,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/0006-Expose-tombstone-in-room-admin-api.patch b/packages/overlays/matrix-synapse/patches/0007-Expose-tombstone-in-room-admin-api.patch
index c12912e..719705e 100644
--- a/packages/overlays/matrix-synapse/patches/0006-Expose-tombstone-in-room-admin-api.patch
+++ b/packages/overlays/matrix-synapse/patches/0007-Expose-tombstone-in-room-admin-api.patch
@@ -1,7 +1,7 @@
-From 23c042aead65385a500be6e671ddd0e942a7e864 Mon Sep 17 00:00:00 2001
+From d3edb4aa9a225f521fdbc406c187fd40343b3963 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Tue, 27 May 2025 06:37:52 +0200
-Subject: [PATCH 06/10] Expose tombstone in room admin api
+Subject: [PATCH 07/11] Expose tombstone in room admin api
---
synapse/rest/admin/rooms.py | 5 ++++
@@ -33,10 +33,10 @@ index f8c5bf18d4..adac1f0362 100644
response = {
diff --git a/synapse/rest/client/room.py b/synapse/rest/client/room.py
-index 63ea52baf8..38230de0de 100644
+index e838341fde..f61152c35b 100644
--- a/synapse/rest/client/room.py
+++ b/synapse/rest/client/room.py
-@@ -918,7 +918,6 @@ class RoomEventServlet(RestServlet):
+@@ -919,7 +919,6 @@ class RoomEventServlet(RestServlet):
request,
"fi.mau.msc2815.include_unredacted_content"
)
@@ -45,7 +45,7 @@ index 63ea52baf8..38230de0de 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 1df06a5171..347dbbba6b 100644
+index 58451d3ff1..66b79db4ed 100644
--- a/synapse/storage/databases/main/room.py
+++ b/synapse/storage/databases/main/room.py
@@ -610,6 +610,7 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
diff --git a/packages/overlays/matrix-synapse/patches/0007-fix-Always-recheck-messages-pagination-data-if-a-bac.patch b/packages/overlays/matrix-synapse/patches/0008-fix-Always-recheck-messages-pagination-data-if-a-bac.patch
index 4ebc20c..363204e 100644
--- a/packages/overlays/matrix-synapse/patches/0007-fix-Always-recheck-messages-pagination-data-if-a-bac.patch
+++ b/packages/overlays/matrix-synapse/patches/0008-fix-Always-recheck-messages-pagination-data-if-a-bac.patch
@@ -1,7 +1,7 @@
-From 99b146825a1a8257d05440ae3e331c68b8e1575a Mon Sep 17 00:00:00 2001
+From afecddceaa6ece4cf797ce27e226a99acb8e8a6d 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 07/10] fix: Always recheck `/messages` pagination data if a
+Subject: [PATCH 08/11] fix: Always recheck `/messages` pagination data if a
backfill might have been needed (#28)
---
@@ -10,7 +10,7 @@ Subject: [PATCH 07/10] fix: Always recheck `/messages` pagination data if a
2 files changed, 34 insertions(+), 37 deletions(-)
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py
-index a6de3e824d..ff751d25f6 100644
+index 015fb3edca..a0bc955121 100644
--- a/synapse/handlers/federation.py
+++ b/synapse/handlers/federation.py
@@ -211,7 +211,7 @@ class FederationHandler:
diff --git a/packages/overlays/matrix-synapse/patches/0008-Fix-pagination-with-large-gaps-of-rejected-events.patch b/packages/overlays/matrix-synapse/patches/0009-Fix-pagination-with-large-gaps-of-rejected-events.patch
index 81a6d3f..ebed62e 100644
--- a/packages/overlays/matrix-synapse/patches/0008-Fix-pagination-with-large-gaps-of-rejected-events.patch
+++ b/packages/overlays/matrix-synapse/patches/0009-Fix-pagination-with-large-gaps-of-rejected-events.patch
@@ -1,7 +1,7 @@
-From 6eb23d3018f68744ba363fb7a89a9a4982d67a19 Mon Sep 17 00:00:00 2001
+From 2f2dd65326b8a8dc6b7ac99dbe7476abb2163469 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 08/10] Fix pagination with large gaps of rejected events
+Subject: [PATCH 09/11] Fix pagination with large gaps of rejected events
---
synapse/handlers/pagination.py | 13 +++++++++++--
diff --git a/packages/overlays/matrix-synapse/patches/0009-Fix-nix-flake.patch b/packages/overlays/matrix-synapse/patches/0010-Fix-nix-flake.patch
index 09a7f5c..4df6090 100644
--- a/packages/overlays/matrix-synapse/patches/0009-Fix-nix-flake.patch
+++ b/packages/overlays/matrix-synapse/patches/0010-Fix-nix-flake.patch
@@ -1,7 +1,7 @@
-From 69d854a8250493f9c1e468f24031378ff334cf7f Mon Sep 17 00:00:00 2001
+From 448de6ea7bfe1c6073726f517988e5deeb510861 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Mon, 9 Jun 2025 17:38:34 +0200
-Subject: [PATCH 09/10] Fix nix flake
+Subject: [PATCH 10/11] Fix nix flake
---
flake.lock | 58 +++++++++++++++++++-----------------------------------
@@ -143,7 +143,7 @@ index a6a2aea328..4e2f01153b 100644
},
"root": "root",
diff --git a/flake.nix b/flake.nix
-index 749c10da1d..e33b233ece 100644
+index 4ff6518aed..76b3c1a4b0 100644
--- a/flake.nix
+++ b/flake.nix
@@ -82,7 +82,7 @@
@@ -155,7 +155,7 @@ index 749c10da1d..e33b233ece 100644
# Additionally install the "rust-src" extension to allow diving into the
# Rust source code in an IDE (rust-analyzer will also make use of it).
extensions = [ "rust-src" ];
-@@ -118,6 +118,8 @@
+@@ -117,6 +117,8 @@
# For releasing Synapse
debian-devscripts # (`dch` for manipulating the Debian changelog)
libnotify # (the release script uses `notify-send` to tell you when CI jobs are done)
@@ -164,7 +164,7 @@ index 749c10da1d..e33b233ece 100644
];
# Install Python and manage a virtualenv with Poetry.
-@@ -140,6 +142,9 @@
+@@ -139,6 +141,9 @@
# force compiling those binaries locally instead.
env.POETRY_INSTALLER_NO_BINARY = "ruff";
@@ -174,7 +174,7 @@ index 749c10da1d..e33b233ece 100644
# Install dependencies for the additional programming languages
# involved with Synapse development.
#
-@@ -160,6 +165,9 @@
+@@ -159,6 +164,9 @@
services.postgres.initialDatabases = [
{ name = "synapse"; }
];
diff --git a/packages/overlays/matrix-synapse/patches/0010-Fix-gitignore-to-ignore-.venv.patch b/packages/overlays/matrix-synapse/patches/0011-Fix-gitignore-to-ignore-.venv.patch
index abe0eb3..82335db 100644
--- a/packages/overlays/matrix-synapse/patches/0010-Fix-gitignore-to-ignore-.venv.patch
+++ b/packages/overlays/matrix-synapse/patches/0011-Fix-gitignore-to-ignore-.venv.patch
@@ -1,14 +1,14 @@
-From 35c7dfe6a8df912f14d4f18642e2af2675d607af Mon Sep 17 00:00:00 2001
+From e1b50954048039a23c538cd260644ccc63d82941 Mon Sep 17 00:00:00 2001
From: Rory& <root@rory.gay>
Date: Mon, 9 Jun 2025 17:46:10 +0200
-Subject: [PATCH 10/10] Fix gitignore to ignore .venv
+Subject: [PATCH 11/11] Fix gitignore to ignore .venv
---
.gitignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.gitignore b/.gitignore
-index a89f149ec1..0567934c4e 100644
+index e333f2320b..3aec96e75e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,6 +30,7 @@ __pycache__/
|