Synapse 1.44.0 is out now!
Loads of Bug Fixes
This release primarily includes fixes for over a dozen long-standing bugs. For example:
- Messages containing null bytes are now properly indexed for search.
- The Room Search Admin API now allows searching for rooms with non-ascii titles.
- URL preview caches, which are meant to be ephemeral, are no longer mirrored from the local media store into other media providers.
Faster JSON Responses
We now stay within C code while generating large JSON objects for responses, which should be substantially faster than the previous technique, which fell back to Python for encoding.
New Extension Module APIs
Spam checker modules can now use a
user_may_create_room_with_invites callback to inspect room creation events which include invitations to users via Matrix or other media (email, etc.).
Additionally, the ModuleApi can now inspect IP and User Agent data, as well as checking whether Rooms and MXIDs are local to the current homeserver.
We've also been busy refactoring. For example:
- Prometheus stats now distinguish between cache evictions due to entries expiring, and cache evictions due to the cache being full.
synapse.storage.databases.statemodules are now fully type annotated and checked by mypy, among others.
- The user directory search code was cleaned up in preparation for future fixes.
- Another half dozen pull requests were merged with an aim toward clarifying federated event authentication code (and associated logging).
Lastly, this release has seen considerable work toward supporting MSC2716: Incrementally importing history into existing rooms, along with an update to match the current state of MSC3231: Token authenticated registration.