Our guest for Matrix Live is Rich, to talk about how the Synapse team is hard at work to hunt those pesky spinners. Faster room joins now? Yes! But only for the brave!
Dept of Status of Matrix 🌡️
Discourse is looking into possibly integration of their chat with Matrix. No promises yet, but it sounds crazy and cool! https://meta.discourse.org/t/matrix-protocol-for-chat/210780/13
We're all excited to see what Discourse is going to come up with, but it's early day and they don't necessarily want to have all eyes on some experimental work!
Dept of Spec 📜
Andrew Morgan (anoa) reports
- MSC3903: X25519 Elliptic-curve Diffie-Hellman ephemeral for establishing secure channel between two Matrix clients
- MSC3902: Faster remote room joins over federation (overview)
MSCs in Final Comment Period:
- No MSCs are in FCP.
- No MSCs were accepted this week.
Hot off the heels of last week's Matrix v1.4 release, the Spec Core Team are now focusing on the upcoming Matrix v1.5 release, due approximately November 2022. v1.5 is expected to be mainly a maintenance release, and to that end the SCT is spending part of their time fixing up ambiguities and errors in the spec.
These are marked by the "clarification" label on the matrix-spec issue tracker. If you'd like to get involved and help out, please do!
Random MSC of the Week
The random MSC of the week is... MSC2659: Application service ping endpoint!
This is a simple proposal to add a new endpoint to application services which a connected homeserver will occasionally call to let the application service know that the homeserver can reach it. Today, if the homeserver becomes disconnected from the application service, the application service will just assume that there are no new events to receive - which isn't the case.
Knowing that the homeserver is disconnected would allow, for instance, the application service to inform users on bridged networks that their messages are not reaching Matrix.
Dept of Servers 🏢
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Another week, another RC! This week we released 1.69.0rc2, with a host of features and bugfixes. Some notable features are:
- Experimental implementation of MSC3882 to allow an existing device/session to generate a login token for use on a new device/session.
- Experimental support for thread-specific receipts.
- Experimental support for MSC3881: Remotely toggle push notifications for another client.
In addition to support for faster room joins, both federated and local, bugfixes, and internal changes to make Synapse faster and more stable. Speaking of faster, keep your eyes peeled for an announcement soon on faster federated room joins-it's coming 🚀! You can check out 1.69.0rc2 here.
Dept of Bridges 🌉
An Email to Matrix bridge. 1 room = 1 mailbox.
Announcing an new fully-featured email service... oh, no, wait! It's just Postmoogle v0.9.5!
At etke.cc we want to consolidate all communication into Matrix, thus our email bot-o-bridge got new release, the biggest changes are:
- account data encryption (keys and values) - stable symmetric encryption with the passphrase you provide
- catch-all mailboxes - email sent to any non-existing mailbox of your domain will end into the mailbox you specify (optional, can be enabled by bridge admins only).
So, it's time to start your own email provider on top of Postmoogle!
A multi purpose multi platform bridge, formerly known as matrix-github
Andrew F says
matrix-hookshot 2.3.0 arrives with more features & fanciness!
Hello all. This next release brings plenty of new features & cleanups, particularly related to configuration widgets:
- JIRA connections may now be configured via widgets.
- The GitHub configuration widget has been redesigned to group repositories by organization, to match the style of Dimension's GitHub config UI.
- Configuration widgets no longer ignore the "Command Prefix" setting when saving a connection.
- GitLab connections can now add confidential issues via the
- The output of help commands has been has been reformatted to improve readability.
As usual, feel free to join #hookshot:half-shot.uk for setup advice & feedback.
Dept of Clients 📱
Desktop client for Matrix using Qt and C++17.
Nheko is participating in the yearly hacktoberfest once more and as a result we got quite a few fixes ranging from makig colors easier to configure over crash fixes to grammar and code quality fixes. If you always had something you wanted to contribute to Nheko, now is a good time if you want someone to plant a tree for you (or if you want a T-Shirt and don't care about the environment...).
As part of the threading work if you click a thread indicator now, it will show you only that thread of conversation. And because we were already touching the timeline, you can now also search a room for messages containing your search query. Both of those things are not very fast right now and don't paginate backwards at the moment (if there are significant gaps), so take that feature with a grain of salt, but it at least exists now.
A client for matrix, the decentralized communication protocol
Tobias Fella reports
Last week, we released version 22.09 of NeoChat. You can read more about it here. While heading to Akademy, we've had the fastest ever NeoChat sprint at roughly 320km/h in a train through france and we will have a similar one tomorrow 🙂. During Akademy, we discussed several plans for NeoChat that we will hopefully implement soon. In terms of development work, noteworthy things that happened include:
- Fixing the chat bubbles to not go outside of the window on narrow windows
- Making more links clickable
- Highlighting events when moving to them, for example when clicking on a reply
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
- We’ve landed improvements around message decryption
- All of our tests in js-sdk and react-sdk have now been converted to typescript
In labs (you can enable labs features in settings on develop.element.io or on Nightly):
- We have a new session management layout in the works for the user settings
- Progress is being made on read receipts for threads
- Group calls have also gotten a bit of polish
Element iOS (website)
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
- Version 1.9.8 is almost ready for release, bringing with it another round of bug fixes:
- Voiceover: Missing labels have been added to the buttons on the All Chats screen.
- Message formatting: Code blocks show in the correct colour once again.
- Media playback: A bug where video playback would restart has been fixed.
- Work is moving along nicely on the new Device Manager and the new login with QR code flows are taking shape
- The new rich text editor is also close to making an appearance in the main app
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
- Element Android 1.5.2 is currently being released. It is already available for testers on the PlayStore and should be pushed to production on Monday. It includes the new App Layout enabled by default 🚀.
- In the meantime the team is working on polishing the new devices management screens. It will be soon available as a lab feature.
- Other features are coming: new WYSIWYG editor, voice broadcast, and more!
- On the boring technical side, the migration from Realm Java to Realm Kotlin is progressing well. Ganfra is doing an amazing job to re-write all the queries we had on the DB. Since the new Realm Kotlin SDK is not full-featured yet, this is not an easy task, and there is more work than expected.
- Element Android will also soon target Android 13, a few weeks after targeting Android 12. The Pull Request is in review.
- One last exciting news to finish: we have started to work on a new Android Matrix client, which will use the Matrix Rust SDK and Jetpack Compose. This is just a proof of concept for now, and we expect to have a running and usable application in a couple of weeks.
Dept of Non Chat Clients 🎛️
A browser-based open metaverse client
Third Room documented and released its unity -> glTF export pipeline to make it easier for asset/scene creators to build worlds. The native in-world Third Room editor will come soon, but this is a great stopgap (and is how we built the worlds for Tech Preview 1). https://github.com/matrix-org/thirdroom-unity-exporter
Dept of SDKs and Frameworks 🧰
Multiplatform Kotlin SDK for Matrix
I merged a really exciting change into Trixnity this week: The
StateFlowCache, which basically is a reactive cache on top of an arbitrary database does not need a
CoroutineScopeparameter for any read or write operation anymore. It was needed to react to the lifecycle of the consumer, so that not used data could be removed from the cache. This was really error prone, because if the consumer passed a wrong
CoroutineScopewith a too long lifecycle, the cache could grow unlimited. I figured out to solve this with Kotlin Flows, so everything is lazy and the lifecycle can be determined from the Flow consumer! Because this is a breaking change, the next released version will be 3.0.0. If you want to test this major change, you can try 3.0.0-SNAPSHOT.
simplematrixbotlib is an easy to use bot library for the Matrix ecosystem written in Python and based on matrix-nio.
Version 2.7.2 released!
This version fixes a bug that prevented custom event listeners from functioning properly
Moving to Codeberg
The FOSS, gitea-based, git hosting platform Codeberg is now the home of simplematrixbotlib's source repository . While the previous github location is still available as a mirror, please fork from the codeberg.org location instead. You can find the repository at https://codeberg.org/imbev/simplematrixbotlib
Version 3 coming soon!
simplematrixbotlib will soon be releasing its third major version. This version will include breaking changes to syntax. The changes should provide greater modularity and a more intuitive api for config, matching , and other areas. To check the progress, please visit https://codeberg.org/imbev/simplematrixbotlib/projects/1779 or visit the matrix room at https://matrix.to/#/%23simplematrixbotlib:matrix.org
A Qt5 library to write cross-platform clients for Matrix
libQuotient 0.7 beta 1
In a complete coincidence with Akademy, libQuotient 0.7 reached its beta status. It's been a very long wait since 0.6 but there's a significant reason: thanks to Tobias Fella and Carl Schwan, the library gained E2EE support! Now, calm down - this is still in beta, so things can fall apart even on their own, before any malicious actors come. It's already good enough for testing though. There's a long list of other things that happened in the library over this 1+ year but the longer read is saved for the release. Meanwhile, the brief pre-release notes gloss over most interesting things. There's no accompanying beta of Quaternion (yet) - this will take some more time to pack together. In the meantime, you can build NeoChat that already supports the newest library code (kudos, guys!) to experience the latest and greatest that the Quotient project has to offer (who said "device verification"?).
Dept of Ops 🛠
Matrix server setup using Ansible and Docker
See our Setting up the ldap-registration-proxy documentation to get started.
Dept of Services 🚀
envs.net is known to be a friend of decentralization and provides now an matrix-federation-tester.
This can be reached via the URL: https://fed.envs.net/
Happy testing ;)
Dept of Bots 🤖
A bot using the matrix-rust-sdk.
So my geek's Proust madeleine has always been writing chat bots, and oops, I did it again!
Introducing Trinity, a bot written in Rust using the fancy matrix-rust-sdk. Its peculiarity is that it uses WebAssembly modules to implement commands. For instance there's an
uuidcommand that will react to
!uuidmessages and respond with an auto-generated uuid, and that is implemented as a Rust module compiled to WebAssembly.
The bot can hot-reload the WebAssembly modules, which makes for a quite pleasant experience when developing modules, and also allows deploying via pushing modules to a remote server.
Using WebAssembly for the commands has a lot of (future) potential: giving developers the ability to write modules in any language they want (in theory, at least), being able to try the modules in a Web page hosted on a static web server (since WebAssembly can run on the Web, duh), and if in the future Matrix messages could carry a WebAssembly payload, also running the bots directly on the clients 🤯🤯
And if you want to chat about it, there's, of course, a Matrix room for that: #trinity:delire.party!
RSS Room Bot (website)
I built a Matrix-RSS Room Bot. Most RSS bots serve any feed in any channel; this bot serves every feed in a separate channel. This means it's most useful for:
- Users who prefer to have separate RSS feeds in separate Matrix rooms, and
- Users who wish to find other people with the same interests and discuss the topics of the RSS feed.
This is my first real contribution to the Matrix community so it's quite an MVP, but I have options for improvement if the project is appreciated:
- The bot may create separate but private channels if you simply prefer to have your RSS feed automatically distributed into multiple rooms.
- The bot can get (more) moderation options to deal with abusive users.
You can test the bot ( @rss:noordstar.me ) by inviting it in a (non-E2EE) room, or by joining #rss:noordstar.me where there's also room for discussion about the bot. ☺️ It is running on a relatively small computer, so please be nice to it.
Dept of Interesting Projects 🛰️
Automation with Windmill
What would be possible if automation services, like IFTTT, were open-source? No need to wonder anymore. Windmill is open-source and you can self-host it to run your flows and scripts. You can write you own scripts using TypeScript, Go or Python.
In the past months I wrote scripts to integrate with Matrix and other protocols like Mastodon, Funkwhale and Nextcloud.
Check out some of the projects I've built. Most fetch data from other services and send them to Matrix rooms for me. It allows me to monitor OpenWiFi routers and archive my music listening history. https://github.com/windmill-labs/windmill/discussions/categories/show-and-tell
Matrix in the News 📰
Tweakers.net, a Dutch tech news website, wrote an article about Matrix: ‘Matrix: a decentralized chat protocol’.
They spoke to Matthew Hodgson about what Matrix is, about what it should be and how Element and Matrix compare to other chat apps. They discussed the decentralized open source idea behind it, as well as the revenue model and the costumers who use it. Also the things in development got mentioned, like the metaverse and p2p.
Got interested? If you speak Dutch (or want to learn it), you can sign up to Tweakers.net and read it for free: https://tweakers.net/reviews/10530/matrix-decentraal-chatprotocol-onverwacht-populair-bij-bedrijven.html
Dept of Events and Talks 🗣️
SeaGL (Seattle GNU/Linux Conference) will be held online November 4–5, powered by Matrix! Our keynotes, presentations, and social activities about free / libre / open source software, hardware, and culture will be announced soon. We've been refining the virtual conference experience for three years and would gladly welcome new wings and beaks to our all-volunteer staff!
And come November, join our free—as in freedom and tea—grassroots technical summit, no registration required. This year's theme is "hang ten", in recognition of our tenth year!
Dept of Ping
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
That's all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!