Donāt miss this weekās Matrix Live, where Amandine & Matthew talk about the growth of the Foundation and how it will help all of us working in the Matrix ecosystem be more successful. And in case you missed it, a job description for the Foundationās first Managing Director has now been posted. If you think you have what it takes, or if you want to share it with others who might, donāt delay!
Some of you might have heard of it, but weāre about to launch a (long overdue) update of the matrix.org website! The current one has served us well, but it grew organically as exciting projects and features were added to it. It became a little impractical to navigate and sometimes confusing.
The new matrix.org website, nicknamed āZolaā after the static site generator it uses, is not just a fresh coat of paint on the website: itās a complete rewrite to address three kind of people who would browse the website. Sorted by time theyāre willing to spend on a web page:
The general public, who is not tech savvy and doesnāt want to understand how things work, but who wants to get an easy onboarding
Community managers, who are not too tech savvy but are willing to spend a bit of time to understand more advanced use cases
Developers who want to understand how matrix works, and who want to build & break things!
Something looks off, misplaced, is not aligned well or behaves oddly
Something is missing (the doc is incomplete? Some informationg is missing somewhere?)
Thereās an accessibility issue
Something doesnāt work on your browser
Itās not clear how to get to a particular information (youāre looking for a client or a SDK, and after visiting the website you still donāt know which one to use or how to get it?)
We still need to:
Finish up the Bots page (which will likely be replaced by an Integrations page)
Flesh out the support page to highlight more of the work of the Matrix.org Foundation
Import the historical projects that are no longer maintained (clients, servers, bots, bridges, sdks)
If you want to follow along, you can join the #matrix.org-website:matrix.org room.
Help us make the website look as neat as possible for launch!
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.
Lots of MSCs moving through the process this week. Iām particularly excited about MSC3952: Intentional Mentions, which modifies the default push rules to only generate a notification if the senderās client has specifically intended to mention you. Thatās a really impactful, user-facing feature!
The other MSCs on the list, especially MSC2246: Asynchronous media uploads, bring quality-of-life improvements and unlock future functionality in Matrix. Check them out!
MSC3189 proposes a concept of per-room/per-space profiles within Matrix, allowing users to have different display names and avatars across their various rooms and spaces. To do so, an optional query parameter scope is added to all profile-related endpoints. When specified, the scope defines the profile that should be used to complete that action.
That way you can represent yourself in a business context in one space, and a less serious context in another space. Short of profile-rooms, this would get us a fair way towards having multiple public profiles in Matrix!
Check out the MSC if youāre interested. Reviews are always welcome!
š This week some follow-up work further improving End-to-End Encryption took place. Compatibility between Nheko and Element devices through Construct have been fixed. About two weeks ago my quality assessment of e2ee through Construct was about 30%. Last week saw major progress but we were still maxing out around 70%. This week is closer to 90%; a few UISIās are still happening in some places such as a userās first message to an encrypted room. Weāll have that worked out soon enough.
š Iād like to thank Giovanni Bottaro for fixing some compatibility issues with the Dart Matrix SDK (Fluffychat) by replacing some HTTP 201 (Created) codes returned by Construct with HTTP 200ās instead.
š Tell us how important reliable e2ee is to you in #test:zemos.net today.
This handy tool bridges Meshtastic channels and Matrix rooms 1:1, and is built using matrix-nio.
For those unfamiliar with Meshtastic, itās a project enabling encrypted long-distance messaging via decentralized LoRa meshnets, using affordable devices. LoRa is license-free and certification-free in most of the world, making it accessible for everyone. Radios automatically rebroadcast messages, creating a mesh network for group communicationāeven from the furthest member. The Meshtastic mesh can sustain up to 80 device nodes, depending on settings.
Naturally, we wanted to integrate this incredible tech with Matrix.
M<>M Relayās Features:
Bidirectional message relay between Meshtastic meshnets and Matrix chat rooms, supporting multiple meshnets
Serial and network connections to Meshtastic devices
Truncation of long messages to fit within Meshtasticās payload size
Extended features via plugins, such as meshnet health plugin analyzing telemetry data and providing network stats
E2EE support is planned, but not yet implemented (we appreciate any help!)
Weāre excited about extending our meshnetsā range using existing Matrix bridges. Learn more and download the files here.
Join our #meshtastic-relay-1:matrix.org where we currently have 3 meshnets connected. If you have Meshtastic devices, weād love help with testing, but all users are welcome.
Greetings all; Hookshot latest release is out, along with some exciting news!
You may recall the TWIM post for 2.6.0 from back in January having announced Encrypted Room Support, though not without warnings of it being experimental & not quite ready for prime time. Well, the latest release changes all that: encrypted room support is much more stable now, as weāve collaborated with the fine folks behind the matrix-sdk-crypto Rust library to squash some of the biggest bugs that had been plaguing Hookshot. Encryption support even works for Service Bots!
Other than enabling encryption in your Hookshotās config file, there is no migration necessary to enable these fixes, even if youāve already enabled Hookshotās encryption from before this release. Please give it a try and let us know how it goes!
This release also brings some useful features for RSS feeds: the ability to customize the format of feed messages, and the option to toggle posting messages for feed failures. This provides much more control & peace of mind over your feed messages, so give them a try & enjoy!
Finally, to align with the recent release of Node 20, this latest Hookshot release adds support for Node 20, and drops support for Node 16. The latter is due to Hookshotās policy of supporting only LTS & Active releases of Node. So, please ensure to update your Node versions if needed.
Fridayās greetings TWIM. On June 15th, 2018 I submitted my first pull request to matrix-appservice-irc. Little did I know then, that nearly 5 years later I would now be announcing the 1.0.0 release candidate of the IRC bridge. This release brings a major new component, which is the ability to restart the bridge in place. This allows us to effectively do noise-less restarts of our larger bridges (in nearly all cases). This should also give us quite a bit more headroom on the bridge, so performance should improve.
The feature is currently marked as experimental but has been tested by the bridge crew fairly extensively, so the major wrinkles should have been ironed out by now. Weād really appreciate feedback, so please try it out.
Weāve also bumped the minimum required version of the bridge to Node 18 to slightly get ahead of the curve, as Node 16 is due to lose support later this year.
Notable changes for this release include:
IRC connections can now be run via an external process using āconnection poolingā, allowing the bridge to be restarted without IRC connection loss. (#1669)
Recursive relations MSC to improve stuck notifications is moving forwards. Along with some other major steps forward in our investigation into stuck notifications weāre feeling confident that our next few releases will significantly reduce the amount of issues in this area.
Weāre also still working on updating the Settings screen for notifications.
The Intentional mentions MSC passed its FCP this week so work to stabilize it will begin soon.
Weāre smashing through accessibility bugs and working closely with our design team to address larger concerns such as text sizes and color contrasts.
progress is being made on improving the the sliding sync integration and our focus for the upcoming week is to ensure that our integration tests are asserting the right things to support these steps forwards.
the Room List has also seen an update this week, specifically the sorting functionality ensuring that only rooms with new messages move up the stack.
push notifications work is ongoing as as weāre implementing local notification handlers
and weāre also working on OIDC support, media uploading, the design system and generally improving our stack
We have shipped Element Call release 0.3.8 today ā still in beta. In order to get a data driven approach towards getting out of beta we added a bunch of telemetry to Element Call in our previous release using the Open Telemetry framework. And in the meantime we gathered together with submitted rage-shakes (also now backed by Open Telemetry) meaningful insights which enabled us to identify and fix two major split-brain issues. You will find the full list of changes in the release notes.
We released another breaking change this week :p bump to v0.19.0, the main features/changes from last time include:
Upgrading to matrix api 1.6
Private read receipts support
Fixed an issue where loading archive returned a stale version. Since different sync timeouts bust through the cache, we make use of that to be able to load the new archive immediately.
Thereās also a way for clients to provide media streams when starting a call, which should make setting up calls with audio/video mute toggles much easier
Long time no see! A few new shiny things have landed recently:
Trinity now supports reading the wasm commands from multiple, custom directories. Of course, all of these are watched by Trinity so any module in there will be instantaneously hot-loaded as usual.
Trinity has been dockerized! Itās now possible to start Trinity in a Docker environment, provided a few environment variables and configuration options. In particular, thanks to the previous change, itās also possible to hack only on the commands, and not have to compile the host runtime on your machine yourself.
Weāve also started experimenting with higher-level Rust traits to simplify even more the implementation of commands. If you have any feedback about this, or opinions about developer ergonomics for implementing Matrix bots in general, come over the #trinity:delire.party channel and letās chat about that!
Iām trying to get to senses and make releases a bit more often than before - so hereās libQuotient 0.7.2, with massive internal code cleanup work carried out by Volker (@vkrause:kde.org) and a few functional fixes. The release notes are at the usual place.
This is likely the last 0.7.x release of libQuotient - after discussions within the team we agreed to prioritise a release of libQuotient 0.8 to fix a few API shortcomings in the current codebase (around E2EE but not only). This means that the final Quaternion 0.0.96 is unlikely to be released for another month or so, as it will be done on libQuotient 0.8 as well.
In addition to the 0.7.2 release, weāve been working on improving the documentation for libQuotient. You can now see an up-to-date version of the documentation at https://quotient-im.github.io/libQuotient
Iāve been working on refactoring one of my older projects, synapse-media-proxy, which separates the media repository from Synapse (similar to matrix-media-repo), but instead only acting as a caching proxy layer. This keeps the media in long-term storage at the homeserver (which is literally at home in my case, behind a slower residential line), but serves requests as fast as possible from a cheap VPS which keeps a minimal in-memory cache.
The refactor includes a lot of general cleanup/rework, but also moves the caching from in-process caches to a separate Redis database, as my previous implementation had some memory leakage. While not quite finished yet (no uploads, url previews), preliminary benchmarks for downloads and thumbnailing are very promising, way faster than both the original implementation and normal synapse. Benchmarks were done with wrk, all against localhost on the same machine for a fair comparison.
You can see the progress by comparing branches here
Lack of rooms discovery for new users is one of the issues we noticed while installing and hosting hundreds of Matrix servers on etke.cc
Today, we welcome you to MatrixRooms.info, a search engine built for matrix rooms discovery.
The current index contains over 230,000 rooms across 19,000 servers, and weāre constantly tweaking it to provide more relevant search results.
Even non-English users may find it useful because it does automatic language detection in room names and topics.
We plan the following future improvements:
Searching by language
Searching by specific field
Providing a browsable catalog of rooms by server/language/etc
Implementing a subset of the Matrix Server-Server API to request (and provide!) a Matrix-native rooms directory
Iāve started writing a Matrix client tutorial, explaining how to use the Matrix Client-Server API. Itās still in the very early stages, but Iāve gotten to the point of being able to write a simple echo bot. Iāll be tackling end-to-end encryption next. Feedback is welcome. Client authors, if you have any tips and tricks, or potential pitfalls, that you think that every client author should know, feel free to share. The document can be read at https://uhoreg.gitlab.io/matrix-tutorial/ and the sources are at https://gitlab.com/uhoreg/matrix-tutorial.
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
test.zemos.net
156.5
2
l1qu1d.net
164
3
skladka.net
217.5
4
dendrite.s3cr3t.me
221
5
conduit.rs
235
6
willian.wang
294.5
7
777.tf
369.5
8
chat.eutampieri.eu
505
9
zemos.net
574
10
kumma.juttu.asia
636
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.