Hereās your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://spec.matrix.org/proposals.
In the new MSCs section there are new flurry of MSCs from Travis.
Matrix 1.9 has also been given a scheduled release date of November 29th, 2023.
Travis has also put out a call in the #sct-office:matrix.org for folks to add/apply feedback to any MSCs related to custom emotes and stickerpacks, as that feature is due to be reviewed (and consolidated) by the Spec Core Team this week or early next week.
This MSC facilitates a few new features related to the storage of user media on homeservers. First, it proposes additional metadata on the /_matrix/media/v3/config endpoint to inform clients of the total number of bytes theyāre allowed to store on the homeserver, as well as the maximum number of total files theyāre able to store.
Second, a new endpoint /_matrix/media/v3/usage would allow users to query how much of their total number of bytes/files theyāre currently using.
Both of these features would allow homeservers to set and communicate media usage quotas to clients, instead of simply returning an error when the user tries to upload media that would exceed it.
Seems like a very sane proposal to me! If this is something that you think would be useful to the Matrix spec, please donāt hesitate to weigh in with your support/feedback :)
Iām Aine from etke.cc, and I want to tell you about a fantastic project weāre working on: Matrix Rooms Search. Itās a search engine for Matrix Federation public rooms.
Recently, we introduced MSC1929 integration into Matrix Rooms Search. This feature automatically notifies server owners by email if a room on their server is reported for any issues. Itās an important step toward enhancing safety within the Matrix Federation.
However, weāve noticed that the adoption of MSC1929 across Matrix servers is relatively low, despite the fact it is going to the proposed Final Comment Period soon. This is where we need your help!
On behalf of the MRS project, weāre reaching out to you to add (or update, if you previously configured it) MSC1929 support to your homeserver. Together, we can make the Matrix Federation a safer and more secure environment for everyone.
So, how can you do this? Itās simple! You just need to serve the /.well-known/matrix/support file with the following structure on your homeserverās domain. If your Matrix ID is @you:example.com, the file should be available at https://example.com/.well-known/matrix/support:
{
"contacts": [
{
"email_address": "your@email.here",
"matrix_id": "@your:mxid.here",
"role": "admin"
}
]
}
If youāre using mdad, thereās a handy guide to assist you in setting this up.
By taking this step, youāll be contributing to a safer and more secure Matrix Federation. We invite you to join us in the #mrs:etke.cc room, where you can connect with others who are interested in the MRS project.
Letās work together to make the Matrix Federation a better place for all of us. Your support means a lot, and itās a step in the right direction for a more secure and connected future.
This past week we released Synapse 1.95rc1! The overall theme seems to be
stability and performance. Although including no new features, it fixes a handful
of known issues, improves performance of purging rooms, and reduces the number of memory allocations of common tasks.
We continued the investigation of test failures around stuck notifications and have identified redactions in threads as one source of issues. The firstfixes for this have landed on develop.
Work on the new room header & details has continued and the initial PR to update the visual language on the right panel is getting close to landing. Weāre also halfway through making touch-ups to the room summary tab.
Native OIDC support is nearing completion. We need to think through guest logins and cross-signing before doing final testing.
Circles is an end-to-end encrypted social network app that lets families and friends safely share photos, videos, and text updates. This week we have new beta releases on both iOS and Android.
Circles iOS beta 0.6.1
This week we released two new beta builds on iOS. The biggest new features include:
Ability to edit posts, and the app now shows the latest version of an edited post
Highlight posts that mention you
Show unread counts for circles and groups
Send read receipts so that unread counts are accurate
Various design improvements
Numerous bug fixes
Known limitations:
QR codes donāt work with Circles Android
Not compatible with accounts created on Circles iOS v0.4.1 and below
While no major work was done, some new features were dropped.
New features
Ability to update user profile, with the option to restore room-specific profiles (why isnāt this a thing in base matrix?)
Handle conversion of floating point values to strings on POST/PUT requests (intended for state but is applied everywhere, may raise bugs in the future though I havenāt come across any)
Fixes
Homeserver-local MXC to URL conversion now removes double slash in base path (no more //_matrix/!)
Added a null check when trying to call sync with homeserver == null
Complement is an end-to-end testing suite for matrix homeservers. Itās used by Synapse, Dendrite and Conduit to test client/federation APIs.
Complement has had some much needed improvements to the API over the past week or two. A summary of the main changes:
Complement now runs 2x fast as before, if you run it with COMPLEMENT_ENABLE_DIRTY_RUNS=1. This speedup is possible because this setting reuses containers between tests rather than creating a new clean container for each test. On Synapseās repository, this decreases CI for postgres/worker mode from 40m to 20m.
Complement CS API tests can now be written out-of-repo. Previously, you could only write Complement tests from within the Complement repository, because tests imported private packages not exposed publicly. These packages have been cleaned up and are now exposed for people to use in their own projects. This is significant because it opens up the door for homeservers to have their own homeserver-specific tests (e.g Synapse admin APIs) in their own repository, whilst reusing all of Complementās machinery. Federation tests cannot be written out-of-repo yet as the federation package is still private.
Complement assertion APIs are cleaner. Complement makes heavy use of test āmatchersā to check that responses have the right data in the right places. These matchers are designed to be composable so you can just use what you want and nothing more. However, helper functions which use the matchers werenāt particularly composable: some required []byte, others gjson.Result, others still http.Response. In addition, the common m.MatchResponse helper function would fail the test if the matcher returned an error, making it impossible to use in cases where you want to āretry until you see Xā. The API has been cleaned up into two packages: should and must. The former will just return errors if the matches fail, whilst the latter will fail the test as before. This makes it easier to reuse matchers in a variety of tests.
Complement handles MSCs better. Previously, MSCs were defined as a dedicated file e.g msc1234_test.go with a conditional build tag at the top of the file. Tests could then opt-in to running the MSC with go test -tags "msc1234" ./tests/.... This wasnāt ideal for a few reasons: A) conditional builds meant that by default the files were not compiled, making it easy to break tests when refactoring, B) it wasnāt possible to just run the MSC tests. MSCs are now dedicated packages and run using go test ./tests/msc1234. This means they are always compiled (no conditional builds) and they can be run stand-alone during development by just executing tests in that directory.
We hope with these changes Complement will be even easier to use and applicable to a wider set of use cases than before.
As a follow-up to Aineās Call-to-Action about the popularization of MSC1929, at etke.cc weād like to lead the effort to make it ubiquitous for Matrix servers to be publishing Matrix/Email contact information for administrator/security-related staff members via a /.well-known/matrix/support file (as described in the MSC).
As such, all future etke.cc customers will be opted into this by default for their Matrix servers. Existing customersā servers will not be affected.
Meet Greg Gwmngilfen, who is one of the Ansible Community managers. He cares about growing and moderating the Ansible community chat. With the use of IRC declining, #Matrix became the new default. Learn how Ansible is using two homeservers to separate between official moderation and open registration community accounts.
Iāve made a bit of progress on my Matrix Client Tutorial, and added some information on how Olm and Megolm decryption fit within a client. Encryption (both Olm and Megolm) look like they will be quite complicated to explain, due to error handling and performance considerations, so Iām expecting that Olm encryption wonāt be written until November at the earliest, and Megolm encryption in December at the earliest.
Dept of Ping š
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank
Hostname
Median MS
1
matrix.its-tps.fr
403
2
herkinf.de
509
3
inu.is
538
4
littlevortex.net
683
5
shiftsystems.net
982
6
matrix.fryer.net.au
2852.5
Thatās all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!
The Foundation needs you
The Matrix.org Foundation is a non-profit and only relies on donations to operate. Its core mission is to maintain the Matrix Specification, but it does much more than that.
It maintains the matrix.org homeserver and hosts several bridges for free. It fights for our collective rights to digital privacy and dignity.