Synapse 1.53.0rc1 (2022-02-15)
Features
- Add experimental support for sending to-device messages to application services, as specified by MSC2409. (#11215, #11966)
- Remove account data (including client config, push rules and ignored users) upon user deactivation. (#11655)
- Experimental support for MSC3666: including bundled aggregations in server side search results. (#11837)
- Enable cache time-based expiry by default. The
expiry_time
config flag has been superseded byexpire_caches
andcache_entry_ttl
. (#11849) - Add a callback to allow modules to allow or forbid a 3PID (email address, phone number) from being associated to a local account. (#11854)
- Stabilize support and remove unstable endpoints for MSC3231. Clients must switch to the stable identifier and endpoint. See the upgrade notes for more information. (#11867)
- Allow modules to retrieve the current instance's server name and worker name. (#11868)
- Use a dedicated configurable rate limiter for 3PID invites. (#11892)
- Support the stable API endpoint for MSC3283: new settings in
/capabilities
endpoint. (#11933, #11989) - Support the
dir
parameter on the/relations
endpoint, per MSC3715. (#11941) - Experimental implementation of MSC3706: extensions to
/send_join
to support reduced response size. (#11967)
Bugfixes
- Fix MSC2716 historical messages backfilling in random order on remote homeservers. (#11114)
- Fix a bug introduced in Synapse 1.51.0 where incoming federation transactions containing at least one EDU would be dropped if debug logging was enabled for
synapse.8631_debug
. (#11890) - Fix a long-standing bug where some unknown endpoints would return HTML error pages instead of JSON
M_UNRECOGNIZED
errors. (#11930) - Implement an allow list of content types for which we will attempt to preview a URL. This prevents Synapse from making useless longer-lived connections to streaming media servers. (#11936)
- Fix a long-standing bug where pagination tokens from
/sync
and/messages
could not be provided to the/relations
API. (#11952) - Require that modules register their callbacks using keyword arguments. (#11975)
- Fix a long-standing bug where
M_WRONG_ROOM_KEYS_VERSION
errors would not include the speccedcurrent_version
field. (#11988)
Improved Documentation
- Fix typo in User Admin API: unpind -> unbind. (#11859)
- Document images returned by the User List Media Admin API can include those generated by URL previews. (#11862)
- Remove outdated MSC1711 FAQ document. (#11907)
- Correct the structured logging configuration example. Contributed by Brad Jones. (#11946)
- Add information on the Synapse release cycle. (#11954)
- Fix broken link in the README to the admin API for password reset. (#11955)
Deprecations and Removals
- Drop support for
webclient
listeners and configuringweb_client_location
to a non-HTTP(S) URL. Deprecated configurations are a configuration error. (#11895) - Remove deprecated
user_may_create_room_with_invites
spam checker callback. See the upgrade notes for more information. (#11950) - No longer build
.deb
packages for Ubuntu 21.04 Hirsute Hippo, which has now EOLed. (#11961)
Internal Changes
- Enhance user registration test helpers to make them more useful for tests involving application services and devices. (#11615, #11616)
- Improve performance when fetching bundled aggregations for multiple events. (#11660, #11752)
- Fix type errors introduced by new annotations in the Prometheus Client library. (#11832)
- Add missing type hints to replication code. (#11856, #11938)
- Ensure that
opentracing
scopes are activated and closed at the right time. (#11869) - Improve opentracing for incoming federation requests. (#11870)
- Improve internal docstrings in
synapse.util.caches
. (#11876) - Do not needlessly clear the
get_users_in_room
andget_users_in_room_with_profiles
caches when any room state changes. (#11878) - Convert
ApplicationServiceTestCase
to usesimple_async_mock
. (#11880) - Remove experimental changes to the default push rules which were introduced in Synapse 1.19.0 but never enabled. (#11884)
- Disable coverage calculation for olddeps build. (#11888)
- Preparation to support sending device list updates to application services. (#11905)
- Add a test that checks users receive their own device list updates down
/sync
. (#11909) - Run Complement tests sequentially. (#11910)
- Various refactors to the application service notifier code. (#11911, #11912)
- Tests: replace mocked
Authenticator
with the real thing. (#11913) - Various refactors to the typing notifications code. (#11914)
- Use the proper type for the
Content-Length
header in theUploadResource
. (#11927) - Remove an unnecessary ignoring of type hints due to fixes in upstream packages. (#11939)
- Add missing type hints. (#11953)
- Fix an import cycle in
synapse.event_auth
. (#11965) - Unpin
frozendict
but exclude the known bad version 2.1.2. (#11969) - Prepare for rename of default Complement branch. (#11971)
- Fetch Synapse's version using a helper from
matrix-common
. (#11979)