Greetings Matrix fans! We've published Synapse version 1.78 as the new stable release this week. Synapse admins are encouraged to upgrade to it at their convenience. Please take a look at the upgrade notes for any important information about upgrading.
Please note that Synapse 1.78.0 replaces the /_synapse/admin/v1/media/<server_name>/delete
admin API with an identical
endpoint at /_synapse/admin/v1/media/delete
. Please update your tooling to use the new endpoint. The deprecated version
will be removed in a future release.
In case you were unaware, Synapse has a command line export data command which allows administrators to export data for a specific user (you can read more about this command here). Synapse 1.78.0 updates this command adding account data to the user information that is returned by the export data command.
This version of Synapse also features a few changes to push rules, with implementations for MSC3758:
Add event_property_is push
rule condition kind,
MSC3966: event_property_contains
push rule condition, and the removal of the spurious dont_notify
action from the defaults for the .m.rule.reaction
pushrule. These changes empower end users to more fully customise their
notification rules - MSC3758 allows users to ask to be notified when a field in an event contains any type of value, rather
than only matching on strings, and MSC3966 provides crucial scaffolding for MSC3952: Intentional Mentions,
which aims to eliminate unintentional mentions and improve the experience of mentions in general.
Synapse v1.78.0 includes some fixes for faster-joins related bugs as we work out the kinks. Some of these include a fix for a bug introduced in Synapse 1.76.0 where partially-joined rooms could not be deleted using the purge room API, and a fix for a bug introduced in Synapse 1.75 where the portdb script would fail to run after a room had been faster-joined. We continue to work to polish faster joins, and thank everyone who filed an issue.
Finally, for those deployments using workers, v1.78.0 fixed a bug introduced in Synapse 1.76 where 5s delays would occasionally occur.
See the full changelog for a complete list of changes in the release. Also please have a look at the upgrade notes.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including (in no particular order): jahway603, williamkray, 999lakhisidhu, hari01584, saddfox, dklimpel, realtyem V02460, and thezaidbintariq.
We are also grateful to anyone helping us make Synapse better by sharing their feedback and reporting issues, or helping with community support questions.
Greetings Matrix fans! We've published Synapse version 1.77 as the new stable release this week. Synapse admins are encouraged to upgrade to it at their convenience.
Mentioning other users on Matrix is difficult: it is not possible to know if mentioning a user by display name or Matrix ID will count as a mention, but is also too easy to mistakenly mention a user.
MSC3952 proposes a solution. Its idea is to make the mentioning explicit in the protocol using a dedicated event property, instead of relying on searching the body of the message as before.
Synapse now implements this as an experimental feature.
Have you ever been annoyed by a noisy notification that keep coming back, but you can't pinpoint
where it's coming from?
This is usually because edits to a message where you are mentioned (or that mention @room
) will
retrigger a noisy notification. That can be pretty annoying when the message is edited 10 times!
MSC3958 is here to solve that, and Synapse now implements it as an experimental feature.
Some iterative optimizations have been implemented that should make joining or leaving large rooms even faster, and should also improve sending message.
See the full changelog, for a complete list of changes in the release.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to these releases, including (in no particular order) icp1994, dklimpel, Fizzadar and realtyem.
We are also grateful to anyone helping us make Synapse better by sharing their feedback and reporting issues, or helping with community support questions.
Hey all,
Matrix 1.6 is out there! Like Matrix 1.5 back in November, this release is largely a maintenance update. Matrix 1.1 through 1.4 have been relatively major upgrades, so a little time between features doesn’t feel like a bad idea :)
As with all spec releases, we encourage implementations to gradually update over the next few months rather than have support for everything on release day - please be kind to the projects you use, and help them gain support if able.
Matrix 1.6 sees just 7 MSCs get merged, though this is to be expected from a maintenance release. Check out Matthew’s Matrix 2.0 talk at FOSDEM for an idea of what’s expected over the next few releases.
We’ve covered a couple of the MSCs below, but read on to the full changelog for the full picture.
It’s here! The time machine we’ve been waiting for!
Primarily part of the Gitter feature parity project (congratulations to the team going all-in on Matrix, by the way) to drive the Matrix Public Archive, the new API gives clients the ability to jump back in time to a nearby event. Being able to find something that was posted on a given day/week, but not being sure of which keywords to look for is a major usability improvement - many thanks to the Gitter team for making Matrix better!
Matrix is going voom
Synapse 1.76 enabled faster joins by default, and while there’s a lot of Python going into making joins as fast as possible, the specification side is a relatively small change at the moment: just don’t send as many events during joins (omit_members
).
There’s potentially more work on the horizon for making faster joins even faster and more robust, and some of that might involve spec work: keep an eye on Synapse releases and TWIM for updates as we make our way to faster joins in Matrix 2.0 :)
MSCs are how the spec changes in the way it does - adding, fixing, and maintaining features for the whole ecosystem to use. Check out the full changelog below, and the Spec Change Proposals page for more information on how these MSCs got merged (hint: they submitted a proposal, which anyone can do - take a look at the Matrix Live episode where Matthew covers the proposal process).
/rooms/<roomID>/timestamp_to_event
endpoint, as per MSC3030. (#1366)hkdf-hmac-sha256.v2
MAC method for SAS verification, as per MSC3783. (#1412)/context
always returns event
even if limit
is zero. Contributed by @sumnerevans at @beeper. (#1239)medium
. (#1417)/timestamp_to_event/<roomID>
endpoint, as per MSC3030. (#1366)/_matrix/federation/v2/send_join
to allow omitting membership events, per MSC3706. (#1393, #1398)/_matrix/federation/v2/send_join
should include heroes for nameless rooms, even when allowed to omit membership events, per MSC3943. (#1425)POST _matrix/federation/v1/user/keys/claim
response schema. (#1351)edu_type
in EDU examples. (#1383)No significant changes.
<content>
to content
in the OpenAPI files for content uploads. (#1370)Greetings Matrix fans! We've published Synapse version 1.76 as the new stable release this week. Synapse admins are encouraged to upgrade to it at their convenience. Please take a look at the upgrade notes for any important information about upgrading.
The big news is that faster joins for all has arrived! When joining a room for the first time, Synapse 1.76.0 will request a partial join from the other server by default. Previously, server admins had to opt-in to this using an experimental config flag.
Server admins can opt out of this feature for the time being by setting
experimental:
faster_joins: false
in their server config.
For everyone else, after a faster join Synapse considers that room "partially joined". In this state, you should be able to
Synapse has to spend more effort to complete the join in the background. Once this finishes, you will be able to
Practically, this means that the experience of joining a large room over federation should be greatly improved. In past versions of Synapse, joining a large room such as Matrix HQ over federation could take up to 30 mins. This time has been cut to ~20-30 seconds to partially join in the new release. Those of you who have been watching this know this has been a huge undertaking, big shout out to the team for getting it over the line! We're excited the community to try it, as always if you encounter any problems you are encouraged to file an issue.
Please note that Synapse has changed the format of the account data and devices replication streams (between workers). This is a forwards- and backwards-incompatible change: v1.75 workers cannot process account data replicated by v1.76 workers, and vice versa.
Once all workers are upgraded to v1.76 (or downgraded to v1.75), account data and device replication will resume as normal.
Room version 10 is now the default room version in Synapse 1.76.0. This room version builds on v9 to introduce a new
knock_restricted
join rule, allowing prospective members to more easily join such a room. The knock_restricted
join
rule allows for prospective members of a room to join either through knocking or through join_restrictions
, which allows
prospective members to join a restricted room based on whether they are a joined member of another room. You can read more
about restricted rooms here.
Synapse has added some new, default push rules for MSC3881-esque event types.
This allows for notifications from polls, ie when a poll starts or ends.
See the full changelog, for a complete list of changes in the release.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to these releases, including: katlol, thezaidbintariq, dklimpel, FSG-Cat, tjay27, emgrav, villepeh.
We are also grateful to anyone helping us make Synapse better by sharing their feedback and reporting issues, or helping with community support questions.
We published Synapse version 1.75 as the new stable release this week. Synapse admins are encouraged to upgrade to it at their convenience. It seems like the blog post for version 1.74 was eaten by Santa's reindeer, so this post will also cover changes from it.
There were no special announcements for the 1.75 release.
Synapse's search functionality has long been poor when searching for non-English terms. Synapse 1.74 introduced support for an optional improved user search experience which has a better awareness of Unicode. To do so, we use the ICU library when Synapse is installed alongside the binding library PyICU.
Synapse installations using Matrix.org docker images or debian packages will automatically have the new search mode enabled.
From-source installations will need to include the user-search
extra when
pip install
Synapse, e.g. pip install matrix-synapse[user-search]
.
NB: because PyICU is not distributed as source-only on PyPI, you will need
to ensure the ICU development headers are available on your system. See the
upgrade notes
for more info.
Please try out the new search mode and let us know how you find it in practice.
Synapse 1.75 adds support for RFC7636 code challenges in the OAuth 2.0 flow.
This is required by Twitter SSO and enabling it can protect against the "authorization code interception attack".
Experimental support for removing account data has landed in Synapse. It was previously possible to create or update account data but not remove them, this is now possible.
The support is experimental and needs to be enabled with a configuration flag since the MSC hasn't landed yet.
In case you missed it we are working on dramatically improve performance of remote room joins, you can refer to this blog post for more details.
The last two Synapse releases brings that a lot closer to a proper release; in particular they contain a lot of work to support faster joins in deployments with multiple workers. The project continues in earnest; we hope to have more to show off in the coming weeks.
See the full changelog, for a complete list of changes in the release. Also please have a look at the upgrade notes for 1.74 version.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to these releases, including (in no particular order): Ashish Kumar, Dirk Klimpel, Jeremy Kescher, Jeyachandran Rathnam, Nick Mills-Barrett, Jason Little, Villepeh and Vertux. We are also grateful to anyone helping us make Synapse better by sharing their feedback and reporting issues, or helping with community support questions.
And here is another update to your beloved Matrix homeserver implementation, Synapse 1.73.
When releasing Synapse 1.69 a couple of months ago, we also announced the removal of old Prometheus metrics that have been replaced by more aptly named ones. he list of these metrics can be found here.
Synapse 1.73 implements the final phase of this plan and entirely removes support for those metrics. As a result,
the enable_legacy_metrics
configuration option, which was introduced in
Synapse 1.71, has also been removed.
Server administrators who are still relying on these legacy metric names are encouraged to update their dashboards at their earliest convenience. For more information, please refer to the upgrade notes.
A bunch of performance improvements have been included in this release, specifically around
the /messages
endpoint.
Improvements to event filtering on the client-server API gave the matrix.org homeserver a first nice bump as visible on this graph:
Various optimizations around fetching bundled aggregations resulted in yet another nice improvement:
Note that the graph from the first image, and the second graph from the second image are apdexes, which is a measure that shows improvement when it goes up (as opposed to e.g. response times, which improve when they go down).
Experimental support for Extensible Events has landed in Synapse.
This is exciting since this global rework of events presentation has been in talks for a while, and having an implementation to experiment with greatly helps bringing the feature closer to completion.
Note that this support is still very much experimental as the related MSCs are still under review and could change at any time, and therefore not recommended for use in production.
See the full changelog, for a complete list of changes in the release. Also please have a look at the upgrade notes for this version.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including (in no particular order) schmop, Ashish Kumar, realtyem, and Brennan Chapman as well as anyone helping us make Synapse better by sharing their feedback and reporting issues.