Synapse 1.46.0 is out now and includes support for Ubuntu 21.10: Impish Indri.
This release includes a fix for a performance regression that surfaced in Synapse 1.44.
Progress on Threading
While still disabled by default, we're beginning to land code in Synapse to support threaded discussions in Matrix. In particular, the
m.thread event relationship defined in MSC3440 is now implemented behind a configuration flag.
There are still many open questions here, and MSC3440 has not yet been approved to merge into the Matrix spec, but it's a start. Threading is essential to Matrix's continued growth and adoption, and we're excited to provide server-side support to this effort.
Bug Fixes and Refactors
This release is mostly comprised of bug fixes and improvements to static typing. Of note:
export-dataadmin command now works and is tested in CI. This command helps server administrators respond to GDPR Subject Access Requests.
- A weeks-long effort to refactor how Synapse validates the
auth_eventsfield of incoming PDUs has concluded, resolving a few corner cases which could incorrectly allow events into the room state which should instead be rejected.
- Further static type hints have been added to Synapse, improving our precise type coverage to 85% of all lines. Currently, 13% of the Python files in
synapse/are skipped during mypy runs. We'd like to cut this in half by the end of the year, as well as increasing overall precise coverage in the codebase.
This week also saw the release of Sydent 2.5.0, the reference implementation of a Matrix Identity Server. In addition to fixing bugs, Sydent 2.5.0 passes
mypy --strict, uses Jinja2 for templates, and supports the
room_type field from MSC3288 to better differentiate between invitations to rooms and invitations to Spaces.
- The Admin API to create or modify accounts now accepts a
user_typefield, allowing for accounts to be set as belonging to bots or support staff.
- Password auth providers can now be implemented using the new pluggable extension module APIs.
Please see the Synapse Release Notes for a complete list of changes in this release.