Quentin Gliech
0e0fc9e4e7
Merge #20450 : Allow loading the synthetic join of a Server Announcement room with /context
2026-11-03 09:26:55 +01:00
Quentin Gliech
e409dcc5a7
Merge #20448 : Server Announcement Room Tags
...
# Conflicts:
# synapse/handlers/sync.py
2026-11-03 09:26:34 +01:00
Quentin Gliech
206770a461
Merge #20423 : Allow reading Server Announcement history outside of sync
2026-11-03 09:26:04 +01:00
Quentin Gliech
ac15617be5
Merge #20427 : Handle read receipts in Server Announcement rooms
2026-11-03 09:26:04 +01:00
Quentin Gliech
9dc7f4eeba
Merge #20413 : Deliver Server Announcements over Sliding Sync
2026-11-03 09:26:04 +01:00
Quentin Gliech
0229106ab7
Merge #20412 : Deliver Server Announcement over Legacy Sync
2026-11-03 09:24:41 +01: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
Paul Chobert
a50d068a38
Explain why a room can be missing from the fetched events
2026-10-30 22:07:48 +01:00
dependabot[bot]
cc172f7ac7
Bump tornado from 6.5.9 to 6.6 ( #20437 )
2026-10-30 15:47:50 -05:00
Paul Chobert
e6cb44c1da
Rename announcement_room_ids to synthetic_join_announcement_room_ids
2026-10-30 21:39:46 +01:00
Paul Chobert
a5c6cb7a44
Move get_first_non_state_event_positions to the stream store, skipping outliers
2026-10-30 21:24:06 +01: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
Paul Chobert and Quentin Gliech
8817b384f4
Invalidate cache for all potential arguments
...
Co-authored-by: Quentin Gliech <quenting@element.io >
2026-10-30 19:13:14 +01: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
Paul Chobert
ba5267d88f
Serve the synthetic join of announcement rooms over /context
...
The event ID given to non-members in /sync could not be loaded, as the event
is never persisted. Return it at the position of the room's create event, for
the requesting user only.
2026-10-30 17:00:07 +01:00
Paul Chobert
5812546ab8
Merge remote-tracking branch 'upstream/barodeur/srv-announcements-sync-legacy' into barodeur/srv-announcements-synthetic-membership-history
2026-10-30 17:00:07 +01: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
Paul Chobert
d3830e68b7
Deliver and protect the m.server_notice tag in announcement rooms
2026-10-30 16:46:09 +01: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
Paul Chobert
89d30460b0
Treat synthetic membership as a membership in the tag check
2026-10-30 11:27:41 +01:00
Paul Chobert
bbef8a1b10
Only allow tagging currently configured announcement rooms
2026-10-30 11:27:41 +01:00
Paul Chobert
5ea93a5955
Add changelog
2026-10-30 11:27:41 +01:00
Paul Chobert
8ff205b754
Add support for tagging as synthetic member
2026-10-30 10:53:57 +01:00
Paul Chobert
f16c09e694
Merge branch 'develop' into barodeur/srv-announcements-history-access
2026-10-29 23:52:40 +01:00
Paul Chobert
9158f4ff4b
Explain the server announcement membership override
2026-10-29 23:51:33 +01:00
Paul Chobert and Andrew Morgan
795089e832
Add docstring to ServerAnnouncementsHistoryTestCase._send_relation()
...
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com >
2026-10-29 23:50:27 +01:00
Paul Chobert
988e61f91c
Keep the world-readable fallback under the except clause
2026-10-29 23:45:41 +01:00
Paul Chobert
2f48ba778e
Separate the server announcement case in the docstring
2026-10-29 23:34:50 +01:00
Paul Chobert
dddc0c99fe
Keep server announcement history readable once the room is unconfigured
2026-10-29 23:15:50 +01:00
Paul Chobert
c0f1b5ef9e
Test reading server announcement history once the room is unconfigured
2026-10-29 23:15:49 +01:00
Paul Chobert
2b5c81e80f
Explain the removed sender test setup
2026-10-29 23:05:55 +01:00
Paul Chobert
a65d4b1981
Rename reader test parameter to reader_type
2026-10-29 22:51:23 +01:00
Paul Chobert
90f45d5b99
Merge remote-tracking branch 'upstream/develop' into barodeur/srv-announcements-sync-legacy
...
# Conflicts:
# tests/rest/client/test_sync.py
2026-10-29 22:46:12 +01:00
Paul Chobert
450f4fb35f
Serialize the synthetic join like other events
2026-10-29 22:34:50 +01:00
Paul Chobert
0c97b2ca0a
Deliver room account data changes in announcement rooms
2026-10-29 22:15:09 +01:00
Paul Chobert
407f556b1d
Test room account data delivery for non-members of announcement rooms
2026-10-29 22:15:09 +01: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
Paul Chobert
e8482807a7
Explain the first announcement lookup
2026-10-29 19:22:27 +01:00
Paul Chobert
366acefe52
Explain why former members' real membership is removed from announcement rooms
2026-10-29 18:50:33 +01:00
Paul Chobert and Quentin Gliech
0d524eabec
Parenthesise the is_announcement argument
...
Co-authored-by: Quentin Gliech <quenting@element.io >
2026-10-29 18:22:45 +01:00
Paul Chobert
64e993eb4b
Explain why former members skip the leave entry on initial sync
2026-10-29 18:15:22 +01:00
Paul Chobert
ee2e6fa0c1
Clarify which announcement rooms are included
2026-10-29 17:54:49 +01:00
Paul Chobert
811217b652
Say which since token left_room_ids is relative to
2026-10-29 17:31:46 +01:00
Paul Chobert
c20068e6e7
Use the max stream position as the bound for first announcements
2026-10-29 17:24:46 +01:00
Paul Chobert
ea92aa352c
Send only state changes once the client has the announcement room
...
Any sync covering a room's first announcement delivers the room with full
state, so a client whose since token is past that announcement already has it.
2026-10-29 17:24:45 +01: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