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://matrix.org/docs/spec/proposals.
Both new MSCs this week are from @uhoreg, and look pretty great from a spec polish perspective (Iāve been a fan with doing away of public device names for ages). Check them out!
Otherwise, MSC3898 (Native Matrix VoIP signalling) received some review and attention this week.
This MSC would allow users to actually delete account data theyāve set š Currently you cannot delete top-level keys from your account data, only remove their content.
Deleted account data items will come down /sync as having their content updated to {}, which clients that implement MSC3391 will take to mean that the account data item has been deleted. Clients that donāt implement MSC3391 will store the content as {}, which commonly means an unused account data item anyhow.
Yours truly is currently writing an implementation for this in Synapse, and so far implementing the spec as written seems sound!
Itās Friday which means itās time to talk about the newest Synapse release, v1.73.0! A few details:
Please note that this version removes legacy Prometheus metric names entirely. This also means that the enable_legacy_metrics configuration option has been removed; it will no longer be possible to re-enable the legacy metric names.
If you use metrics and have not yet updated your Grafana dashboard(s), Prometheus console(s) or alerting rule(s), please consider doing so when upgrading to this version.
In addition, a few notable features and bugfixes are:
Move MSC3030 /timestamp_to_event endpoints to stable v1 location (/_matrix/client/v1/rooms/<roomID>/timestamp_to_event?ts=<timestamp>&dir=<direction>, /_matrix/federation/v1/timestamp_to_event/<roomID>?ts=<timestamp>&dir=<direction>).
Reduce database load of Client-Server endpoints which return bundled aggregations.
Fix a long-standing bug where paginating from the start of a room did not work. Contributed by @gnunicorn.
Fix a bug introduced in Synapse 0.9 where Synapse would fail to fetch server keys whose IDs contain a forward slash
So⦠some people are distracting me by asking me to play Valheim all the time since Mistlands was in public beta (it is released now). To make that easier to synchronize, especially if not everyone can be online all the time, I wrote a small bridge: https://nheko.im/nheko-reborn/valheimmatrix
Your own messages are
bridged from Valheim to Matrix, while other peoples messages are bridged
(privately) from Matrix to Valheim. This prevents loops and does nice puppeting,
but it means everyone needs to run their own bridge. It also means you can see
other peoples messages on Matrix, as long as they have the mod enabled, even if
you are not signed in yourself.
It is a very hacky experiment, but it works, so⦠why not show it off? Definitely check out the game, it is great!
Weāve also been plugging along on less visible changes during this time like bug-fixes for bridging DMās and fleshing out more of the bridge scenarios like leaving or deleting a room and bans to ensure things stay in sync. We also started bridging private conversations to Matrix behind the scenes back in February so we have a break-away point-in-time to import back from when we do the massive history import to backfill everything. Please note, that you still canāt access these private rooms on Matrix but this will come later either in the form of inviting MXIDās from the Gitter side or when we give access to the gitter.im homeserver itself to self-manage from that side.
Apart from playing Valheim, I at least also did some productive things! (Apart from everyone else who has been helping squashing bugs and jugendhackt of course.)
Nheko now supports MSC3664. Support for this is automatically enabled if it is enabled server side. This allows you to get notifications for events that relate to another event. For example you might want to get notifications for a reply to one of your messages. So you need to check if the replied to event was sent by you. Similar things can be done for relations like ānotify me for reactions to my posts in rooms with less than 20 usersā.
By default only notifications for replies are enabled. You might not notice a difference, since by default you get notified for them because the fallback includes your username, but not all bridges implement that correctly and for me the reply fallback has been one of the biggest sources of bugs, so Iād like to get rid of it long term. (Also some users disable username mentions, because their name is too generic to be useful, in which case this can help as well since it actually checks the sender.)
Threads has made great progress and is nearly ready for release into the wild! Thereās a few bugs remaining that we want to smash before we turn the feature on by default for all users.
Work on Element X is making great progress, weāre even looking at how to improve the iPad and desktop view for users on larger screens.
Element Android 1.5.11 has been released, it includes fixes for some crashes that had been reported via rageshake.
Threads has made great progress and is nearly ready for release into the wild! Thereās a few bugs remaining that we want to smash before we turn the feature on by default for all users.
Please note the release cycle will be slightly different over the holidays!
Work has begun on Android X and fast progress is being made.
Currently weāre looking at performance on the room list and the timeline view, implementing a memory cache to handle things more efficiently.
We are skipping one release cycle over the festive holidays: all apps will receive a release on 20th December (with threads coming out of Beta!) and the following RC will come out on 10th January leading up to a release on 17th January!
Earlier this week, we have release the EFFEKTIO white paper, outlining what we are working on, why we think this matters, where we intend to head with it and what perspective we come from. Weāve published this 30-pager as a Google Doc with comments activated (if you have any feedback on it) as well as with a 2-page executive summary for the busy. You can also join us in #foyer:effektio.org if youād like to discuss it with us.
For a couple of weeks now, we have a fresh nightly build available whenever changes have been merged within the 24 hours prior. Unfortunately the Android package, with mobile being the main target the UI has been developed for, canāt be installed as is (you need to clone and build it yourself for now), the Desktop App for Linux, Windows and Mac do give you an impression what we are after. Mind you that a) other than the chat all sections are still mainly UI mocked and b) it is still in heavy development: things break sometimes.
On the app itself, we have spent a lot of time on getting the chat right. The appās core was upgraded to matrix-sdk 0.6+ to get the latest timeline API in, which required quite some refactoring. But allowed us to implement reactions, edits and replies. Encrypted Messages are still somewhat unreliable though. Prior to the nightly builds weāve also taken some time to clean up the UI to give it a more polished look and make clear which things are simply not enabled yet. On the non-chat side of things, weāve mostly worked on UI things (check out the ToDo-Sections and Pins), while we were waiting for the synapse fix on reading the timeline from the beginning, which is now released in 1.73. Happy to get back to implementing the state machines soon.
You want updates more frequently and close to when they actually happen? Join our #news:effektio.org or hang out with the devs in our #tech:effektio.org matrix room.
libolm 3.2.14 has been released. This is maintenance release. The main change was improvements in the TypeScript types. There were also some improvements in the Python packaging, which should mean that the pre-built Python package for Linux is compatible with more distributions. Unfortunately, there are some issues with the i686 and aarch64 Linux builds, meaning that those packages are not currently available for the current version. However, if the previous version works for you, there is no reason to upgrade. We are investigating the issue, and may provide new packages later.
I am building an Matrix SDK in Elm but Iāve never created or published a library before. This is a practice library to see what I can expect. You can install the library using
Terminal window
elminstallnoordstar/elm-matrix-webhooks
And you can send a webhook message using a function like this:
import Matrix.Webhooks as Hook
send:String -> Cmdmsg
send= Hook.sendMessage toMsg webhook
-- send "Hi TWIM!"
-- send "I support **Markdown!**"
-- send "That's cool, isn't it?"
There is currently no room for this library. Just contact me @bram:noordstar.me for the library or visit #matrix-webhook:tetaneutral.net for questions about the Webhook API.
The latter came up when investigating, whether we could use sanakirja, the pijul database backend, as a multi-process crypto store backend for mobile. This investigation is still on-going.
Further than an investigation is the uniffi async support. After completing the Python backend, Swift is also passing all tests now. Additional Docs should clarify most questions. We are as excited about this as the Mozillians seem to be. Next up: Kotlin backend.
š Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.
I built a ChatGPT bot for Matrix! It does exactly what you think it does: you send a message, and ChatGPT will respond. Itās very cool being able to talk to ChatGPT while on a mobile device.
It sends read receipts when messages are received by the bot, and the bot sends a typing indicator as ChatGPT is āthinkingā š
It currently only works in unencrypted chats. I havenāt managed to get encryption using matrix-bot-sdk working reliably yet. If itās meant to be working, tips or PRs are very welcome! Iāve really enjoyed tinkering withmatrix-bot-sdk on a few projects so far.
Keep in mind any text you send it will go to the closed source servers of OpenAI, and it is unlikely to stay free forever.
The Matrix.org Foundation has a stand at FOSDEM! Come in Brussels on February 4 and 5 to meet us in person, see the fun stuff weāre doing, show us the nice things you are doing and grab cool merch.
We have also received proposals for a little more than a full day of devroom! We only have half a day of in-person devroom. We will (try to?) broadcast the in-person devroom in the Matrix room of course, and then the conference bot will schedule the talks we couldnāt fit in the in-person slots.
Matrix Community Summit Berlin 2022 Podcast (German)
Another week, another episode, another community member interviewed.
Meet Robert, who spoke with Christian, about creating a CMS system on top of matrix.
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
kumma.juttu.asia
284
2
dendrite.s3cr3t.me
343
3
willian.wang
481.5
4
frai.se
646
5
matrix.shutdown.network
986
6
rustybever.be
3051
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.