Synapse 1.156.0rc1 (2026-06-30)
Features
- Expose MSC4354 Sticky Events over MSC4186 (Simplified) Sliding Sync. (#19591)
- Stabilize support for sending ephemeral events to application services, as per MSC2409. Contributed by @jason-famedly @ Famedly. (#19758)
- Include
allowed_room_idsin the/summaryclient-server API response for rooms with restricted join rules, as required by Matrix 1.15.
Contributed by @FrenchGithubUser @famedly. (#19762) - MSC4140: Cancellable delayed events: Allow authentication on delayed event management endpoints (such as
/restart) to bypass ratelimits for unauthenticated requests based on the client IP address. (#19794) - Add new metric
synapse_non_deactivated_user_countwhich tracks the number of non-deactivated users in the database, split byapp_service. (#19848) - The
GET /_matrix/client/unstable/org.matrix.msc1763/retention/configurationendpoint is now provided when retention
is enabled andexperimental_features.msc1763_enabledis enabled, based on
MSC1763. (#19853) - Add experimental support for MSC4491: Invite reasons in room creation. (#19874)
Bugfixes
- Provide remote servers a way to find out about an event created during the remote join handshake. Contributed by @FrenchGithubUser and @jason-famedly @ Famedly. (#19390, #19855, #19856)
- Advertise
org.matrix.msc4143inunstable_featureswhenmsc4143_enabledis set. (#19646) - Fix a long-standing bug where the badge notification count for a room could become permanently inflated if a read receipt was sent before the room's notification counts were first summarised. (#19785)
- Fix startup listener logging to report the actual bound TCP port, so listeners configured with port
0no longer logSynapse now listening on TCP port 0. (#19810) - Fix notification counts being inflated after a
/purge_historywhen notifications had already been rotated into the summary table. (#19834) - Fix
/synccaching transient errors for thesync_response_cache_duration. (#19845) - Fix local events being deleted by the Purge History admin API despite
delete_local_eventsbeing set to false, in room versions other than 1 and 2. (#19850) - Fix a bug where a user's dehydrated device (MSC3814) was deleted when their device list was synced from Matrix Authentication Service (e.g. upon logging out their last device), breaking offline key delivery. (#19892)
Improved Documentation
- Update
auto_join_roomsconfig documentation to cover requirements for auto-joining invite-only rooms. (#19660) - Add stable endpoint for MSC3266: Room summary API into worker docs. Contributed by @olmari. (#19788)
- Tweak wording of Rust crate dependency update policy. (#19829)
- Fixed the Admin API user endpoint documentation examples to use JSON booleans (true/false) instead of numeric (0/1) values. (#19847)
Internal Changes
- Make
simple_select_one_onecol_txn()more helpful by naming the table of the select - as all other query wrapper functions already did. (#19869) - Refactor
get_user_which_could_invitelogic to reuseget_users_which_can_issue_invite. Contributed by Noah Markert. (#19732) - Fix a flaky test (
twisted.protocols.amp.TooLongerror undertrial -jN) caused by an oversized debug log line. (#19832) - Upload Complement test logs as CI artifacts instead of printing the raw output to the build log. (#19840)
- Fix release script considering any workflow completion as successful. (#19843)
- Force keyword-args for clear
default_config(server_name="test")usage in test utilities. (#19849) - Add
.ruff_cache/directory to.gitignore. (#19854) - Bump
poetryin CI from2.2.1to2.4.1. (#19866, #19877) - Split out
deferredandtokio_runtimeto their own Rust modules. (#19868) - Prevent the
cargo-testandcargo-benchCI jobs from being skipped, even on PRs that have Rust changes. (#19883)