Matrix Live 🎙
Dept of Spec 📜
The latest in appservice proposals: Synthetic events
Half-Shot told us:
Hi folks, I've been let loose on more spec things: This time I'm looking at synthetic events. The goal with this proposal is to give appservices more visibility over the innards and actions of a homeserver. When a user registers, we want an appservice to know (perhaps to send them a little greeting, or to provision some resources) or perhaps you want to clear up bridge resources when the user deactivates their account.
The hope with this proposal is that it's going to set the foundations for services to be able to hook into and provide richer functionality based upon user actions outside of rooms. It might sound a little dry right now, but eventually I'm hoping this can be extended in lots of ways and potentially do away with per-implementation modules, instead writing services that work with all homeservers.
Please give the proposal some love/feedback :)
When asked if that was a specification change he drafted because of limitations faced when trying to implement a bridge, he said:
Yeah, so it's something I've been plotting for a while, but internally we wanted the ability to "act" based upon signups to a homeserver i.e. sending a welcome. In the past this has been implemented client-side in Element, but that has obvious caveats.
The traditional response has usually been to write a Synapse module, but I wanted to do something that could be used on other homeserver implementations and also not have to have it co-located with the homeserver, so the natural home for this kind of logic was appservices.
There are other things there too like logouts / deactivations which are good for erasing data on a service too. Generally I'm hoping it can be extended further once it's stable, for other use cases too
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/unstable/proposals.
MSCs with proposed Final Comment Period:
- No MSCs entered proposed FCP state this week.
MSCs in Final Comment Period:
- No MSCs were merged this week.
MSC3401 (Native Group Voip Signalling) has been receiving positive feedback over the course of the week. The MSC spells out how one would go about implementing native, decentralised group voice and video calls over Matrix without the need for a third-party service. This is the next step forward after the full-mesh group signalling work, as demoed in previous editions of TWIM, lands. Quite exciting stuff!
Otherwise there was another Spec Core Team retro this week. Discussion focused mainly on how to handle event types that not every implementation using Matrix may need (think pinned messages and how that might not be very useful for IoT networks...). Watch this space!
Random Spec of the Week
The random spec of the week is... MSC2666: Get rooms in common with another user!
This is actually already implemented and enabled by default in Synapse, believe it or not. But no clients have support for it yet (there is an outstanding matrix-react-sdk PR...).
This is a pretty cool feature in my opinion, any client want to be the first?
MSC3401 looks like there's a lot of work going on on the native VoIP side. I can't wait to see what the future holds!
Dept of Servers 🏢
This week we released Synapse 1.43! This mainly contains internal changes, including those in preparation for Spaces leaving beta, but it's worth calling out that this version of Synapse now uses the MSC3244: room version capabilities API to ask clients to prefer room version 9 when creating restricted rooms.
Support for room version 9 was introduced in Synapse 1.42, so we'd strongly encourage administrators to upgrade.
Perhaps more notably for Synapse developers, we've spent quite a lot of time over the past few weeks improving the SyTest suite of integration tests. Several of the tests had race conditions which would cause them to occasionally fail when testing a multi-worker deployment of Synapse. These flakey tests have plagued our continuous integration pipelines, and are finally being fixed.
The long term plan is still to transition to Complement (written in Go) and away from SyTest (written in Perl), but we still need to ensure that SyTest is reliable in the meantime.
Homeserver Deployment 📥️
This week - like all weeks - brings some Helm Chart updates, with matrix-synapse being updated to 1.43.0.
The chart store has been redone to track multiple versions now too, so older versions of the charts will stick around for a while.
Ananace always answering the call on TWIMday!
etke.cc now offers hosting options (and some more stuff)
Hi there, Didn't post updates about the etke.cc service for a while. If somebody not familiar - we setup and maintain matrix servers (based on awesome spantaleev/matrix-docker-ansible-deploy)... and setup VPN... and DNS recursive resolver, and... AND!!!! Provide hosting, yes. So, starting today that's available for everyone (we offer it for some time in "well, you know, we don't provide hosting, but if you want it so hard..." way and it works good)
Even with that update (literally the most requested thing, was in every third order we got), provided hosting considered as your own server, the only difference that you don't pay hosting provider directly, but through us. So, you get root access to the server and we treat it as any other customer's infrastructure
Join #announcements:etke.cc room and say hello in #discussion:etke.cc
Dept of Bridges 🌉
Heisenbridge is a bouncer-style Matrix IRC bridge.
Release v1.2.0 🥳
Message formatting (from HTML to text) has been drastically improved
CTCP replies are now shown correctly but still ignored
Mentions/pills always honor room nick
Plumb notices don't loop around anymore
Self replies don't prefix with own nick
Single line truncation works when max lines is 1
Multiple fixes to displaynames or messages containing control characters leaking to IRC
New dependency: mautrix-python
Minimum Python version requirement has been bumped to 3.7
matrix-docker-ansible-deploy has also been updated with the new release, thanks again Slavi 🍻!
What improvements did hifi bring to the formatting you may ask? I asked, and hifi answered:
the fallbacks are inconsistent and usually are markdown which is a lie 😅 replies and mentions are completely all over the place in the fallback in addition to being markdown the unformatted html is now something in between and doesn't do code blocks at all because those ticks are just noise on irc it tries to look like more that you pasted long text rather than sending markdown
That's very considerate for IRC user, thanks hifi!
Dept of Clients 📱
FluffyChat 0.41.0 has been released
FluffyChat is the cutest cross-platform matrix client. It is available for Android, iOS, Web and Desktop.
This release features a lot of bug fixes and the new multi account feature which also include account bundles.
feat: Multiple accounts
feat: New splash screen
fix: Password reset
fix: Dark text in cupertinodialogs
fix: Voice messages on iOS
fix: Emote settings
chore: update flutter_matrix_html, Matrix Dart SDK and other libraries
chore: Update to Flutter 2.5.1
chore: Updated translations
Multiple accounts and voice messages on iOS, in a single release, no less! Fluffychat is not only cute but also powerful.
After 2+ years of development, Quaternion makes a leap from 0.0.9.4 all the way to 0.0.95. The release notes list some key improvements: reactions, Markdown, revamped timeline, user profile dialog and a lot of other things. It’s the same small and fast client that blends nicely into your desktop environment, it just got much better. Go and get it!
Congrats on the release, kitsune!
- We’re testing & polishing Spaces, releasing them out of beta in the upcoming release cycle next week!
- On iOS
- We’re anticipating some performance issues on a very small number of accounts which participate in a very large number of rooms. After trying the next release, if this affects you, please let us know as it’ll help inform whether we cut an off-cycle hotfix or prep changes for the next release.
- iOS doesn’t support pagination in the Space Summary API yet, so will only return the first 50 rooms in large Spaces when browsing. Support for this is planned for the following release.
- Released Element Web 1.8.6 RC2.
- Fixing bugs and cosmetic issues with our Threads feature, currently in Labs.
- Cross-signing bug fixes.
- This week we Ran our first community testing session on 1.8.6 with members of the community. We were very pleased with how this went and intend to continue the sessions. You can help making Element even better by participating in our fortnightly testing sessions. Join #element-community-testing:matrix.org, and learn how to make the most useful feedback
- The RC 1.6.0 with spaces is being reviewed by Apple
- Element iOS requires now iOS 12.1 minimum
- URL preview and voice message refinements
- SwiftUI templates have been merged
- The RC 1.3.0, with Spaces, will be prepared today.
- We have started to work on Presence
- We are still working to improve the overall performance of the application and the SDK
- Also we are doing lots of maintenance on the whole code base, and we are improving the CI.
A minimal Matrix chat client, focused on performance, offline functionality, and broad browser support. https://github.com/vector-im/hydrogen-web/
Bruno told us:
Dept of Ops 🛠
synadm is the Synapse admin CLI
synadmrelease went out this week. Thanks a lot to @govynnus for contributing "Registration token management", it's available as a new subcommand
regtok. Also some tiny improvements here and there were brought in to make admin experience even more convenient.
Have a look at the release notes: https://github.com/JOJ0/synadm/releases
Those are the same registration tokens GSoC intern Callum implemented and told us about in this Matrix Live episode.
Dept of Events and Talks 🗣️
Ansible Contributor Summit 2021.09
Ansible Contributor Summit 2021.09 is happening next week! It will be held over 2 days, on Tuesday September 28 and Friday October 1, from 13:00-21:00 UTC, and will be held on the Matrix platform.
The Ansible Community has recently adopted Matrix as an official chat platform and this is our first Matrix-powered conference. Feedback welcome! You will need a Matrix account to participate in the conversations. For more information, please see Communication - Real-time chat and the Ansible Community Matrix FAQ.
Join the Ansible Social Room anytime before or during the event and say hi! During the presentations, join the Main Conference Room to participate in the discussions. We will also have a session on How we are rolling out Matrix to the Ansible Community.
If you're interested, check out the details and register on Eventbrite. We look forward to seeing you on Matrix at the Ansible Contributor Summit!
there's a mix of stuff going on to try out, we have hack sessions on Tues that may use the embedded Jitsi etc, and talks on Friday that will be more presenter/spectator
It's exciting to see an organisation holding an online conference on Matrix!
Gwmngilfen also promised:
I will blog about the setup as a post mortem
We count on that, others are interested in this kind of set-up too!
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!
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.Support us