Eric Eastwood
eeeaa20e6a
Better flow for upgrade note
2026-11-04 14:58:35 -06:00
Eric Eastwood
6cc064d011
Same number of blank lines (4)
2026-11-04 14:57:25 -06:00
Eric Eastwood
6329040881
Better changelog entry
2026-11-04 14:56:17 -06:00
Eric Eastwood
0b1b12e6d7
Restore #20397
2026-11-04 14:51:56 -06:00
Eric Eastwood
0c5f95b8ed
Easier to follow wording
2026-11-04 14:46:23 -06:00
Eric Eastwood
37ddbe954b
Explain what changed in the MSC4388 implementation
2026-11-04 14:44:33 -06:00
Eric Eastwood
424421559d
Fix GitHub link
2026-11-04 14:41:33 -06:00
Eric Eastwood
bd8662be03
Combine server announcement items
2026-11-04 14:40:57 -06:00
Eric Eastwood
55ec151c16
Point to upgrade notes
2026-11-04 14:38:51 -06:00
Eric Eastwood
76b31ad6c1
Move upgrade notes to correct release
...
(PR took a little while to merge)
2026-11-04 14:36:17 -06:00
Eric Eastwood
1e3529d8cc
Remove change that already was backported/shipped in `1.164.1
2026-11-04 14:30:33 -06:00
Eric Eastwood
f2d0563e82
Remove another change that already was backported/shipped
2026-11-04 14:29:48 -06:00
Eric Eastwood
8aa96d627b
Remove fixes already backported/shipped in prior releases
2026-11-04 14:28:09 -06:00
Eric Eastwood
560da50b43
Remove whitespace that messes with the whole list spacing
2026-11-04 14:22:41 -06:00
Eric Eastwood
678abe961c
Link MSC4480
2026-11-04 14:21:45 -06:00
Eric Eastwood
2a20394aa3
Link MSC4508
2026-11-04 14:19:58 -06:00
Eric Eastwood
3e198cd051
1.165.0rc1
2026-11-04 14:18:37 -06:00
Ayesha Waseem
44757a4917
Prefer the stored server key valid for longest when several notaries answered ( #20406 )
...
`KeyStore.get_server_keys_json` orders the `server_keys_json` rows of a
key by `ts_added_ms` and each row overwrites the previous one, so the
last notary to answer wins even when its `ts_valid_until_ms` is lower
than an earlier answer's. When that answer is stale, `StoreKeyFetcher`
returns a key below `minimum_valid_until_ts` and event signature
verification fails although a long enough key is stored.
The query now orders by `ts_valid_until_ms, ts_added_ms`, so the
longest-valid entry wins and the most recent one still wins a tie.
`tests/crypto/test_keyring.py` stores two notary responses for one key,
the longer-lived one first, and checks that the lookup and
`verify_json_for_server` use it. Not covered:
`get_server_keys_json_for_remote` and
`get_all_server_keys_json_for_remote`, which still prefer the most
recently added row.
Fixes #20358
### Pull Request Checklist
* [x] Pull request is based on the develop branch
* [x] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog ).
* [x] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html ) is
correct (ruff check, ruff format and mypy run on the changed files)
2026-11-04 19:36:40 +00:00
45175f2247
[Server Announcements] Admin API to send announcements and list the rooms ( #20467 )
...
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com >
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-04 18:33:10 +00:00
2e81f0785a
Handle read receipts in Server Announcement rooms ( #20427 )
...
Co-authored-by: Quentin Gliech <quenting@element.io >
Co-authored-by: Andrew Morgan <andrew@amorgan.xyz >
2026-11-04 18:32:44 +00:00
Paul Chobert and Quentin Gliech
7593add0c5
Server Announcement Room Tags ( #20448 )
...
> [!NOTE]
> **Epic**: [Efficient Server
Announcements](https://github.com/element-hq/synapse/issues/20240 )
In the previous PR, @anoadragon453 noted that we should sync account
data, see
https://github.com/element-hq/synapse/pull/20412#discussion_r4404823625 .
Unfortunately, tagging required another change in the authorization
check.
This PR:
- [x] Allows synthetic members to set tags (eg: `m.favorite`)
- [x] Return tags of announcement rooms in Sync
- [x] Legacy Sync
- [ ] Sliding Sync
_Should merge the branch `barodeur/srv-announcements-sync-sliding` &
change the PR base branch_.
- [x] Always returns the tag `m.server_notice`
- [x] Prevent from removing the tag `m.server_notice`
### Pull Request Checklist
<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->
* [x] Pull request is based on the develop branch
* [ ] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog ).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
- Use markdown where necessary, mostly for `code blocks`.
- End with either a period (.) or an exclamation mark (!).
- Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [x] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html ) is
correct (run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters ))
---------
Co-authored-by: Quentin Gliech <quenting@element.io >
2026-11-04 15:44:33 +01:00
Andrew Morgan
749a21a0bf
[Server Announcements] Set the management user profile info to that of the room ( #20468 )
2026-11-04 13:38:08 +00:00
Andrew Morgan
e2661d692b
Correctly invalidate announcement room ID mapping in unit tests ( #20469 )
2026-11-04 12:39:53 +00:00
Quentin Gliech and Andrew Morgan
4902d34f93
[Server Announcements] Don't deliver announcement rooms to excluded users in legacy sync ( #20465 )
...
Follow-up to https://github.com/element-hq/synapse/pull/20407 , which
added the `excluded_user_ids` option without enforcing it. This makes
legacy `/sync` respect it: users listed in a room's `excluded_user_ids`
no longer get that room through the synthetic join. They can still read
it, as it is world-readable.
The cached lookup now maps room ID to config ID, so the per-user filter
runs in memory and adds no database query to `/sync`.
`get_server_announcement_room_ids()` is kept as a wrapper, so the
stacked PRs are unaffected.
Known limitation, documented in the config docs: changing the list does
not update rooms that clients already have. A newly excluded user keeps
the room, which stops updating. A user removed from the list gets new
events without the room's state until their next initial sync. I think
that's an okay limitation for now, as we don't really expect this list
to be used for real users
---------
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com >
2026-11-04 11:55:07 +01:00
Bardi Harborow
5a057d8a3b
Stop restricting TLS listeners to the P-256 key exchange group ( #20374 )
...
Remove the `set_tmp_ecdh` call in
`ServerContextFactory.configure_context`. On OpenSSL 1.1.0+ it replaces
the default list of supported groups with only P-256, so TLS listeners
could not negotiate X25519 or X25519MLKEM768. The call was needed on
OpenSSL 1.0.x, which enabled no curves by default. Synapse now requires
[`cryptography>=3.4.7`](https://github.com/element-hq/synapse/blob/26a92c711161be9f9b8c69b33144ba7fe5b31063/pyproject.toml#L80 ),
so OpenSSL is always 1.1.0 or later. Twisted's `CertificateOptions`
already [skips this
step](https://github.com/twisted/twisted/blob/twisted-26.4.0/src/twisted/internet/_sslverify.py#L1848-L1854 )
on 1.1.0+.
Fixes #20373
### Pull Request Checklist
<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->
* [x] Pull request is based on the develop branch
* [x] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog ).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
- Use markdown where necessary, mostly for `code blocks`.
- End with either a period (.) or an exclamation mark (!).
- Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [x] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html ) is
correct (run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters ))
Signed-off-by: Bardi Harborow <bardi@bardiharborow.com >
2026-11-03 22:17:26 +00:00
dependabot[bot]
a0a3aa8de9
Bump the all-github-actions group with 3 updates ( #20456 )
...
Bumps the all-github-actions group with 3 updates:
[dtolnay/rust-toolchain](https://github.com/dtolnay/rust-toolchain ),
[actions/upload-artifact](https://github.com/actions/upload-artifact )
and
[actions/download-artifact](https://github.com/actions/download-artifact ).
Updates `dtolnay/rust-toolchain` from
02cb101ec7c40f2c49e1d9714d64511d8e1b74de to
683b588c487a69d01f6c6ddf40f036ff682cc2c8
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dtolnay/rust-toolchain/commit/683b588c487a69d01f6c6ddf40f036ff682cc2c8 "><code>683b588</code></a>
Add 1.99.1 patch release</li>
<li><a
href="https://github.com/dtolnay/rust-toolchain/commit/e2a55d2ffb04f378e9626c28d38b36d230d1e12f "><code>e2a55d2</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/rust-toolchain/issues/187 ">#187</a>
from dtolnay/pwn</li>
<li><a
href="https://github.com/dtolnay/rust-toolchain/commit/6af9a09a9f985be78d729e2c9b2440bdb0314675 "><code>6af9a09</code></a>
Unify flags[@] and downgrade[@]</li>
<li><a
href="https://github.com/dtolnay/rust-toolchain/commit/83d06109b7912fe94032e68e59feb6b9e3070e34 "><code>83d0610</code></a>
Safely handle action inputs</li>
<li><a
href="https://github.com/dtolnay/rust-toolchain/commit/7e38f4b43b4db5c8dd498af069a4f6196df1d067 "><code>7e38f4b</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/rust-toolchain/issues/186 ">#186</a>
from WaterWhisperer/feat/retry-install</li>
<li><a
href="https://github.com/dtolnay/rust-toolchain/commit/7645b072e70aa7a5ee7bb3e38735e66b822d8321 "><code>7645b07</code></a>
Retry release-server checksum failures</li>
<li>See full diff in <a
href="https://github.com/dtolnay/rust-toolchain/compare/02cb101ec7c40f2c49e1d9714d64511d8e1b74de...683b588c487a69d01f6c6ddf40f036ff682cc2c8 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `actions/upload-artifact` from 7.0.1 to 7.0.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/upload-artifact/releases ">actions/upload-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Improves artifact download retries when the service returns HTTP 429
(rate limiting), including honoring valid Retry-After headers.</li>
<li>Updates <code>@actions/artifact</code> to v6.3.1.</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/tunc-d "><code>@tunc-d</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/upload-artifact/pull/821 ">actions/upload-artifact#821</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v7.0.1...v7.0.2 ">https://github.com/actions/upload-artifact/compare/v7.0.1...v7.0.2 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/upload-artifact/commit/cf430e030ddbb5b0abf93d22962f4752f3646cd9 "><code>cf430e0</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/822 ">#822</a>
from actions/tunc-d-prepare-upload-v7-0-2</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/c2acdedd35a8824a1552c7137f8c18288c3ea469 "><code>c2acded</code></a>
chore: prepare v7.0.2 release</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/4687c1bbaa0a58abb517d90b4bbade6754c80c1a "><code>4687c1b</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/821 ">#821</a>
from actions/tunc-d-upload-artifact-package-bump</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/8cbe1bebdb858105d8fdd88f81404d4de4595719 "><code>8cbe1be</code></a>
Bump <code>@actions/artifact</code> to 6.3.1</li>
<li>See full diff in <a
href="https://github.com/actions/upload-artifact/compare/043fb46d1a93c77aae656e7c1c64a875d1fc6a0a...cf430e030ddbb5b0abf93d22962f4752f3646cd9 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `actions/download-artifact` from 8.0.1 to 8.0.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/download-artifact/releases ">actions/download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v8.0.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Update the readme by <a
href="https://github.com/danwkennedy "><code>@danwkennedy</code></a> in
<a
href="https://redirect.github.com/actions/download-artifact/pull/473 ">actions/download-artifact#473</a></li>
<li>Improves artifact download retries when the service returns HTTP 429
(rate limiting), including honoring valid Retry-After headers.</li>
<li>Update <code>@actions/artifact</code> to 6.3.1 by <a
href="https://github.com/tunc-d "><code>@tunc-d</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/492 ">actions/download-artifact#492</a></li>
<li>Prepare download-artifact v8.0.2 by <a
href="https://github.com/tunc-d "><code>@tunc-d</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/493 ">actions/download-artifact#493</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/tunc-d "><code>@tunc-d</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/download-artifact/pull/492 ">actions/download-artifact#492</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/download-artifact/compare/v8.0.1...v8.0.2 ">https://github.com/actions/download-artifact/compare/v8.0.1...v8.0.2 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/download-artifact/commit/9000827ccba6bdab643e8b6fd33ac0654aef8333 "><code>9000827</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/493 ">#493</a>
from actions/tunc-d-prepare-download-v8-0-2</li>
<li><a
href="https://github.com/actions/download-artifact/commit/e455989ae00f5bdd4054f05d3e972c6bf8a62dc5 "><code>e455989</code></a>
Prepare download-artifact v8.0.2</li>
<li><a
href="https://github.com/actions/download-artifact/commit/a00b90c4a2f01d73a8c89552caabca6ea3b43137 "><code>a00b90c</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/492 ">#492</a>
from actions/tunc-d-download-artifact-package-bump</li>
<li><a
href="https://github.com/actions/download-artifact/commit/29bb7ce6af5345aeab5bb4774ce7249ee3ccc27f "><code>29bb7ce</code></a>
Update <code>@actions/artifact</code> to 6.3.1</li>
<li><a
href="https://github.com/actions/download-artifact/commit/484a0b528fb4d7bd804637ccb632e47a0e638317 "><code>484a0b5</code></a>
Update the readme (<a
href="https://redirect.github.com/actions/download-artifact/issues/473 ">#473</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/download-artifact/compare/3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c...9000827ccba6bdab643e8b6fd33ac0654aef8333 ">compare
view</a></li>
</ul>
</details>
<br />
<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>
| Dependency Name | Ignore Conditions |
| --- | --- |
| dtolnay/rust-toolchain | [> 1.66.0] |
</details>
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-03 21:00:32 +00:00
bf9a68b017
Allow reading Server Announcement history outside of sync ( #20423 )
...
> [!NOTE]
> Epic: [Efficient Server
Announcements](https://github.com/element-hq/synapse/issues/20240 )
> Follows: https://github.com/element-hq/synapse/pull/20372
This PR first tests that every user can read the server announcements
through the "history" endpoints like
- [x] `GET /rooms/{roomId}/messages`
- [x] `GET /rooms/{roomId}/context/{eventId}`
- [x] `GET /rooms/{roomId}/event/{eventId}`
- [x] `GET /rooms/{roomId}/relations/{eventId}`
- [x] `GET /rooms/{roomId}/threads`
- [x] `GET /rooms/{roomId}/initialSync`
This already works for users who have never been in the room, because
announcement rooms are world-readable.
It doesn't for a sender who was removed from the room's config: Synapse
still uses their `leave` membership and shows them the room as it was
when they left.
This PR then treats a user who left a configured announcement room like
a user who has never been in it.
### Pull Request Checklist
<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->
* [x] Pull request is based on the develop branch
* [x] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog ).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
- Use markdown where necessary, mostly for `code blocks`.
- End with either a period (.) or an exclamation mark (!).
- Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [x] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html ) is
correct (run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters ))
---------
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com >
Co-authored-by: Quentin Gliech <quenting@element.io >
2026-11-03 19:04:28 +01:00
Andrew Morgan and Quentin Gliech
6860a7cbb7
[Server Announcements] Implement excluded_user_ids option ( #20407 )
...
Follow-up to https://github.com/element-hq/synapse/pull/20372 , and
re-uses the changelog.
Adds a new config option to exclude a given list of users from being
proactively pushed events from a given announcement room.
Requested by the ESS team at
https://github.com/element-hq/synapse/issues/20344#issuecomment-6217038992
### Pull Request Checklist
<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->
* [x] Pull request is based on the develop branch
* [x] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog ).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
- Use markdown where necessary, mostly for `code blocks`.
- End with either a period (.) or an exclamation mark (!).
- Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [x] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html ) is
correct (run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters ))
---------
Co-authored-by: Quentin Gliech <quenting@element.io >
2026-11-03 17:50:36 +01:00
JimKnoxx and Claude Opus 5.5
dec679de1c
Do not read media from disk when answering a HEAD request ( #20368 )
...
Fixes #20367
HEAD requests are routed to the GET handlers, so the media download
endpoints read the whole file and stream it to Twisted, which then
discards the body. Stop after writing the headers instead.
### Pull Request Checklist
<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->
* [x] Pull request is based on the develop branch
* [x] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog ).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
- Use markdown where necessary, mostly for `code blocks`.
- End with either a period (.) or an exclamation mark (!).
- Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [x] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html ) is
correct (run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters ))
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-03 15:06:03 +00:00
Paul Chobert and Quentin Gliech
ab8f060746
Deliver Server Announcement over Legacy Sync ( #20412 )
...
> [!NOTE]
> **Epic**: [Efficient Server
Announcements](https://github.com/element-hq/synapse/issues/20240 )
> Follows: https://github.com/element-hq/synapse/pull/20372
When a new announcement is sent in the announcement room, this PR will
ensure that the announcement and the room state are shared with the
client over Legacy Sync.
If you reviewed the PoC before, please note that there are several
differences:
- We intentionally don't wake all sync
- We don't want typing and receipts
- We don't need device lists
### Pull Request Checklist
<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->
* [x] Pull request is based on the develop branch
* [x] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog ).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
- Use markdown where necessary, mostly for `code blocks`.
- End with either a period (.) or an exclamation mark (!).
- Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [x] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html ) is
correct (run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters ))
---------
Co-authored-by: Quentin Gliech <quenting@element.io >
2026-11-03 13:14:08 +01:00
Andrew Ferrazzutti
241dc05caa
MSC4140 + MSC4354: Update sticky delayed event arg ( #20378 )
...
- For the dedicated delayed event scheduling endpoint, drop support for
setting the sticky duration in a query parameter, as MSC4354 is slated
to use only a body parameter for that
- Restrict the sticky duration for delayed events to being strictly
positive, analogously to #20350
2026-11-02 21:46:57 +00:00
Eric Eastwood
33aa953879
Merge branch 'master' into develop
2026-11-02 10:21:32 -06:00
Eric Eastwood
547004446e
Merge branch 'release-v1.164'
2026-11-02 10:21:26 -06:00
Eric Eastwood
c3a58b8a6a
1.164.2
v1.164.2
2026-11-02 10:01:57 -06:00
Quentin Gliech
e3e847083e
[v1.164] Restore the unstable MSC2965 /auth_metadata endpoint ( #20460 )
...
This is a partial revert of
https://github.com/element-hq/synapse/pull/20143 to restore the unstable
`/auth_metadata` C-S API endpoint.
The details on why are in #20459
Since this is affecting live clients (Rust SDK-based clients including
Element X iOS and Android), this PR is against the 1.164 release branch
as we plan to release 1.164.2 with this fix.
The CI failures are unrelated and were already fixed on `develop` in
https://github.com/element-hq/synapse/pull/20386 . Please look at
`develop` counterpart of this PR
https://github.com/element-hq/synapse/pull/20461 for the green CI
2026-11-02 16:55:22 +01:00
dependabot[bot]
cc172f7ac7
Bump tornado from 6.5.9 to 6.6 ( #20437 )
2026-10-30 15:47:50 -05:00
Johannes Marbach and Devon Hudson
1a5fec63e3
Remove duplicative early exit in sliding sync processing ( #20431 )
...
As suggested in
https://github.com/element-hq/synapse/pull/20363#discussion_r4406785188 .
### Pull Request Checklist
<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->
* [x] Pull request is based on the develop branch
* [x] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog ).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
- Use markdown where necessary, mostly for `code blocks`.
- End with either a period (.) or an exclamation mark (!).
- Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [x] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html ) is
correct (run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters ))
---------
Co-authored-by: Devon Hudson <devon.dmytro@gmail.com >
2026-10-30 18:24:03 +00:00
Olivier 'reivilibre
0a88b4287e
Fix MSC4354 Sticky Events that expired during sync processing being returned as expired events in the sticky section of the sync response. ( #20349 )
...
Part of: MSC4354 (Experimental Feature tracking issue #19409 )
This is a bit of an edge case, but nonetheless good to handle.
The included regression tests failed before the fix.
- Fix sticky events that expired during sync processing being returned
See discussion:
https://github.com/matrix-org/matrix-spec-proposals/pull/4354#discussion_r4209309068
See MSC cautionary note:
https://github.com/matrix-org/matrix-spec-proposals/commit/9915d50437ac494efdd91244451f46fd1934168c
---------
Signed-off-by: Olivier 'reivilibre <oliverw@matrix.org >
2026-10-30 17:29:14 +00:00
Johannes Marbach
25492acda3
Stabilise MSC4143 ( #20425 )
...
This stabilizes the implementation of
https://github.com/matrix-org/matrix-spec-proposals/pull/4143 which
includes the following:
- Stable `/rtc/transports` as per
https://github.com/matrix-org/matrix-spec-proposals/pull/4143 and
https://github.com/matrix-org/matrix-spec-proposals/pull/4195 . The
unstable endpoint is retained for backwards compatibility.
- Adding `m.rtc.slot` events to the state events retained during room
upgrades.
### Pull Request Checklist
<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->
* [x] Pull request is based on the develop branch
* [x] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog ).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
- Use markdown where necessary, mostly for `code blocks`.
- End with either a period (.) or an exclamation mark (!).
- Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [x] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html ) is
correct (run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters ))
2026-10-30 15:47:01 +00:00
Eric Eastwood
ee91c5fff0
Add support for Ubuntu 26.10 'Stonking Stingray' ( #20428 )
...
Fix https://github.com/element-hq/synapse/issues/20040
Associated PR: https://github.com/matrix-org/pkg-repo-configs/pull/32
This PR was written following the instructions in Element's internal
handbook page for [adding a new
distribution](https://handbook.element.io/books/backend-team/page/synapse-debian-packages#bkmrk-adding-a-new-distrib ).
2026-10-30 09:30:54 -05:00
Raphael Fakhri
56acc229a5
Return identity server errors from third-party invites instead of a 500 ( #20401 )
...
Fixes #19257 .
When an identity server returns a non-2xx response to
`/_matrix/identity/v2/store-invite` during a third-party invite,
`ask_id_server_for_third_party_invite` lets the `HttpResponseException`
escape. The client receives a 500 `M_UNKNOWN` error and the real cause
(for example, `M_THREEPID_IN_USE`) is lost.
This change catches `HttpResponseException` and converts it with
`to_synapse_error()`, which matches how the other identity server calls
in `IdentityHandler` (bind, `requestToken`) already handle error
responses.
A new test in `ThreepidInviteTestCase` makes the identity server return
a 400 `M_THREEPID_IN_USE` error and checks that the client receives the
same code and errcode. The test fails on `develop` with `500 != 400` and
passes with this change.
2026-10-29 18:43:27 +00:00
Erik Johnston
eca9a4acd3
Fix regression with lazy membership and concurrenet syncs ( #20433 )
...
Broke by #20289 . Hopefully fixes element-hq/element-web#35567 .
One subtle change in #20289 was that we started to filter rooms with
`full_state` set through the cache. This *should* be safe since none of
the membership events should have been previously sent down the sync.
However, there is a bug with the lazy-loaded member cache when two
concurrent syncs for the same device happens. The updates to the cache
from the handling of one request are immediately seen by the other
request, polluting the cache.
This is a relatively common scenario in Element Web when a user reloads
the page. The sync from before the reload is still being processed when
Synapse receives the initial sync from after the reload.
The full fix to correctly handle overlapping requests is a separate PR,
but this is a stop-gap measure that should help Element Web.
2026-10-29 16:06:13 +00:00
Olivier 'reivilibre
b47432bb22
Slightly speed up the 'release artifacts' CI release steps. ( #20397 )
...
Small, easy, low-hanging suggestions when wondering how to speed up our
release process.
- CI: Use multithreading in tarball xz compression
It looks like this compression takes about ~2 minutes. If we use 4 cores
then maybe this will be ~30 seconds + nonlinearity overhead.
- CI: Use trial --jobs=6 instead of -j2 for debs
Other than matching regular CI, this might take off 3~4 min.
Other than that, some caching for the release artifacts step and using
bigger runners to speed up the tests more might help, but those are more
invasive changes.
---------
Signed-off-by: Olivier 'reivilibre <oliverw@matrix.org >
2026-10-29 15:08:26 +00:00
Eric Eastwood
ca28da9663
Merge branch 'master' into develop
2026-10-28 13:31:23 -05:00
Eric Eastwood
6295960ba7
Merge branch 'release-v1.164'
2026-10-28 13:31:17 -05:00
Paul Chobert
1bd2178a08
Add an index on lower(name) to users to speed up username availability checks ( #20369 )
...
Checking whether a username is available looks users up
case-insensitively, with `WHERE lower(name) = lower(?)`. But there is
currently no index on `lower(name)`, so each check scans the whole
table.
This backs registration, `GET /_synapse/admin/v1/username_available` and
`GET /_synapse/mas/is_localpart_available`, which Matrix Authentication
Service will call as the user types in its registration form
([Interactive feedback for username availability in the registration
form
(element-hq/matrix-authentication-service#5977 )](https://github.com/element-hq/matrix-authentication-service/pull/5977 )).
- Adds `users_lower_name` on `users (lower(name))`, built as a
background update, on both PostgreSQL and SQLite.
- matrix.org already has an index with this name and definition, created
by hand ([Postgres indexes differ on matrix.org
(matrix-org/synapse#11893 )](https://github.com/matrix-org/synapse/issues/11893 )).
The background update drops and rebuilds it concurrently rather than
adding a duplicate; lookups fall back to a table scan until the rebuild
finishes.
### Pull Request Checklist
* [x] Pull request is based on the develop branch
* [x] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog ).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
- Use markdown where necessary, mostly for `code blocks`.
- End with either a period (.) or an exclamation mark (!).
- Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [x] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html ) is
correct (run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters ))
2026-10-28 19:22:21 +01:00
Eric Eastwood
167b7ea3bc
1.164.1
v1.164.1
2026-10-28 13:06:18 -05:00
Eric Eastwood
f46bbb27f3
Restore pillow Python 3.11 split
...
See https://github.com/element-hq/synapse/pull/20399
2026-10-28 13:02:30 -05:00
dependabot[bot]
709a03f801
Bump msgpack from 1.2.1 to 1.2.4 ( #20421 )
2026-10-28 13:00:06 -05:00
Jason Robinson
2ff51d3c7f
Partially revert "Reject setting null profile field values" ( #20422 )
...
As per https://github.com/element-hq/synapse/issues/20419 this change
broke Element Web clearing user status, which basically means the client
is stuck with any status, and users cannot set a new one.
EW should move to use DELETE to clear user status, but until then we
should ensure the feature is not broken on existing clients in the wild.
Should we set a clear deprecation time for rejecting nulls? There might
be other clients using profile fields and doing PUT to clear the field.
Discussed in
[`#element-backend-internal:matrix.org`](https://matrix.to/#/!SGNQGPGUwtcPBUotTL:matrix.org/$b7zid3lLGdFDC8pwy1IvSPv3zl9y1fXEpnnBte9vcQU?via=jki.re&via=element.io&via=matrix.org )
[[1]](https://matrix.to/#/!SGNQGPGUwtcPBUotTL:matrix.org/$jTEcHlDBIvKRAKtV-ESXabkPkLia9B7C4JQVkoOxzj0?via=jki.re&via=element.io&via=matrix.org )
Reverts a part of https://github.com/element-hq/synapse/pull/20153 by
only rejecting null fields when the profile update stream is configured
(ie user status requirement).
Future work to unrevert tracked by
https://github.com/element-hq/synapse/issues/20424
2026-10-28 12:56:29 -05:00