Matrix Live 🎙
Dept of Status of Matrix 🌡️
Taking my GNOME Foundation hat on for this news: the GNOME Foundation is adopting Matrix! Is this TWIM worthy? It probably wouldn't have been if it wasn't for all the great work of Gwmngilfen! We published a joint blog post (though in all fairness Greg did all the heavy lifting) to explain how the decision was taken, and transparently share the data we had at hand.
In practice that means after years of Matrix being around in the GNOME community and being the most popular platform, it's finally moving out of the grey zone of "everyone is using it but some older contributors really like their current set up, so it exists but it's not officially our primary platform". For now we're keeping both our Matrix instance and the bridge to GIMPnet (the IRC network GNOME people have been using for years). The major change is that IRC is now our legacy, so if tradeoffs have to be made Matrix will keep the premium experience.
Again, huge shout out to Gwmngilfen who gave meaning to the data I handed to him.
Dept of Spec 📜
Andrew Morgan (anoa) reports
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.
MSCs with Proposed Final Comment Period:
MSCs in Final Comment Period:
- No MSCs are in FCP.
- No MSCs were merged this week.
Hello again everyone! Your regularly-scheduled TWIM Spec update has returned, along with graph-based media!
Quick news to point out this week is that a new maubot plugin has been written to simply note the details of MSCs after their IDs ("msc1234") have been posted in a room. The bot supports multiple MSC IDs in a message, message edits, threads and end-to-end encrypted rooms.
A copy of the bot is currently running under
@mscbot:matrix.org, so feel free to invite it to a room if you'd find that useful!
Random MSC of the Week
The random MSC of the week is... MSC3216: Synchronized access control for Spaces!
This MSC serves as an alternative to MSC2962, and essentially allows for user permissions to be simultaneously enforced across a set of rooms in a Space. This would allow functionality to users of platforms like Discord, where a user can be a moderator in a guild, and thus in all of that guild's channels.
Dept of Servers 🏢
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
A few operational issues have taken up quite a bit of the team's time this week, but we've still found time to cut a couple of release candidates of v1.58. Highlights include:
- Locked python dependencies for our Docker images and Debian packages, thanks to David's poetry work.
- Some big performance fixes, including an optimisation to login from Erik and one to message backfill from yours truly.
We're also excited to see quite a few contributions from outside the core maintenance team: thanks to Dirk, Beeper, Famedly and everyone else in the community who has made pull requests!
Meanwhile on the core team, Sean has been continuing to lay groundwork for faster room joins, and Olivier has been doing some exciting work so that we will (finally) be able to test Synapse in worker mode under Complement.
Second generation Matrix homeserver
- Lazy-loading has been added to the
/syncendpoint, which should speed up syncs considerably
- Filtering has been added to the
- The room summary now contains "heroes" (up to 5 users in the room) for clients to display when no room name is set
- The existing lazy-loading caches will now be used by
/contextso that member events will not be sent to clients more times than necessary
- The account data stream now uses the provided filters
- The built-in NATS Server has been updated to version 2.8.0
/state_idsendpoints will now return
M_NOT_FOUNDfor rejected events
- Repeated calls to the
/redactendpoint will now be idempotent when a transaction ID is given
- Dendrite should now be able to run as a Windows service under Service Control Manager
- Fictitious presence updates will no longer be created for users which have not sent us presence updates, which should speed up complete syncs considerably
- Uploading cross-signing device signatures should now be more reliable, fixing a number of bugs with cross-signing
- All account data should now be sent properly on a complete sync, which should eliminate problems with client settings or key backups appearing to be missing
- Account data will now be limited correctly on incremental syncs, returning the stream position of the most recent update rather than the latest stream position
- Account data will not be sent for parted rooms, which should reduce the number of left/forgotten rooms reappearing in clients as empty rooms
- The TURN username hash has been fixed which should help to resolve some problems when using TURN for voice calls (contributed by fcwoknhenuxdfiyv)
- Push rules can no longer be modified using the account data endpoints
- Querying account availability should now work properly in polylith deployments
- A number of bugs with sync filters have been fixed
- A default sync filter will now be used if the request contains a filter ID that does not exist
pushkey_tsfield is now using seconds instead of milliseconds
- A race condition when gracefully shutting down has been fixed, so JetStream should no longer cause the process to exit before other Dendrite components are finished shutting down
Dept of Bridges 🌉
A Matrix-KakaoTalk puppeting bridge.
The bridge should finally be at "Good Enough" status--and to celebrate, I've bumped the version to
Features & fixes include:
- KT->Matrix file messages
- Matrix->KT room leaves
- To leave a KT channel from Matrix, issue the
!kt leavecommand in a portal room.
- Ability to name the virtual "device" for the KakaoTalk login session created by the bridge
- This makes it easier to distinguish between multiple login sessions of the bridge
- Improvements to KT->Matrix joins, kicks, and admin status
- Many significant stability & correctness improvements
- Docker support
- This is currently in the
testingbranch until I can confirm that it works properly
I've also opened a PR to showcase this bridge on https://matrix.org/bridges/ 😃
Discussion: #matrix-appservice-kakaotalk:miscworks.net Testing room: #kakaotalk-bridge-testing:miscworks.net / https://open.kakao.com/o/gjGQFuae Issue page: https://src.miscworks.net/fair/matrix-appservice-kakaotalk/issues
Dept of Clients 📱
Everything related to Element but not strictly bound to a client
The Threads Beta is live! Turn it on in Labs
- Let us know your feedback as we continue to work on this feature.
The next step for Threads is improving our notifications and push rules on threaded messages. We’ve drafted some MSCs and are excited to move them forwards.
Thank you all who joined the async community testing sessions.
Next week, we are planning to test:
- Improvements to the new search experience on web
- Video rooms!
- And the new release candidate
For more info on our next testing sessions (sync or async), you can join us at #element-community-testing:matrix.org!
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
We have increased our pool of issue triagers, so expect to meet more of our web team on GitHub
Published epic issue for our tech strategy for 2022
The way that read receipts are displayed in rooms with lots of people has improved
In labs (you can enable labs in settings on develop.element.io or on Nightly)
- Focusing on resolving last issues with threads, currently blocking on MSCs for read receipts for threads and push rules for mutually related events
- Video rooms are getting ready to enter beta!
Element iOS (website)
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
- The leaving space experience is now in line with web: you can leave all rooms, none of the rooms or only selected ones
- Our first time user experience and create account flow is being improved.
- Started prototypes for IA experiments. We’re hoping to make the app much easier to use and will test out new interactions and patterns to see what works for users.
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
- Hard at work fixing bugs - we’ve squashed one where the UI would freeze after incremental syncs and we’ve also made improvements to the read line and read markers.
- Our team is still working on the sign up flow. It’ll be ready soon and we hope that new-to-element users will find it much easier (and less scary) to create an account and get chatting.
- We’ve started designing and building prototypes for a new home experience; we’re excited to start experimenting with ways we can simplify our app.
Dept of Non Chat Clients 🎛️
A browser-based open metaverse client
lots of exciting progress happening on Third Room - an open metaverse client powered by Matrix: https://github.com/matrix-org/thirdroom/discussions/47
Matrix Wrench (website)
Matrix Wrench is a web client to tweak Matrix rooms.
- Added: A "Remember login" checkbox lets you decide whether to store an access token in localStorage.
- Added: The room lists now have external matrix.to links.
Dept of SDKs and Frameworks 🧰
A set of Rust library crates for working with the Matrix protocol. Ruma’s approach to Matrix emphasizes correctness, security, stability and performance.
Jonas Platte announces
Our last update included the words "if things go to plan", and even though that's usually calling for trouble, not so this time! We released Ruma 0.6.0 yesterday and apart from a tiny missing feature that was fixed and released as 0.6.1 today, everything went smooth 🙂
The biggest breaking changes are
- new owned identifier types – calling
&UserIdnow gives you an
- a new event enum hierarchy, where redacted events are better taken into account
Also, with this release we can now claim practically 100% coverage of Matrix v1.2, that is you can send and receive requests for all specified endpoints of the various APIs, as well as send and inspect all specified event types, all with a strongly-typed Rust API.
Dept of Ops 🛠
Matrix server setup using Ansible and Docker
See our Setting up Buscarron documentation to get started.
Web forms (HTTP POST) to matrix
the Miounne's successor is here - meet Buscarron!
There were no news about miounne for a while because we worked on a new "iteration" that can handle matrix encryption (thanks to the mautrix-go).
So, here is it - Buscarron v1.0.0 with e2e encryption and multiarch (arm32, arm64, amd64) support. It can handle any HTTP POST/HTML form and send it to a (encrypted) matrix room. Of course, Buscarron has small neat features like spam checker and rate limiter.
etke.cc is migrating to Buscarron and deprecating Miounne.
Dept of Bots 🤖
Location streams bot for MSC3489
I wrote a small, extensible bot that replays GPX recordings as a location sharing stream. This is an implementation of MSC3489: Sharing streams of location data with history and may help you debug the feature or see it with real world data. Join my Space to see this in action (with the Element Web Labs feature): #geo-trackers:iot-staging.ems.host or run the bot with your own rooms and GPX files. https://gitlab.com/jaller94/matrix-location-sharing
An open source chat-ops bot framework
Opsdroid 0.26 has been released this week. Included in this release are some improvements to the Rasa NLU parser if you want natural language training for your matrix bots as well as some small documentation improvements to the matrix connector and other bug fixes. Big thanks to Oleg for many of the changes as well as all the other contributors.
Matrix Community Manager (website)
The highly configurable message aggregation and filtering bot for matrix!
Matrix Community Manager has seen some work in the features department over the past week.
With the new Ansible playbook I think it's possible for someone with a bit of Ansible experience to get this bot up and running in under 10 minutes. I did a fresh install in 4 minutes. That is a fresh VPS and creating a new matrix account. Instructions for the Ansible deploy can be found here.
The major features are:
- An Ansible playbook that should simplify the installation process for new users.
- Edits to the message that triggered the bot will now be reflected in the bots message. This bot now has a feature Twitter doesn't have :laughing:.
- Hashtags are now called filters. Filters are more customizable allowing for custom delimiters and now show the originating room.
- The AutoJoin feature has filters to control who or from where invites will be excepted.
- Announcements can have more than one output room. Using a comma separated list of room ids.
A few bugs were fixed as well:
- Some text characters were causing messages to be classed incorrectly thus causing crashes.
- Exotic characters specifically in links were causing crashes.
Come chat on Matrix
Dept of Events and Talks 🗣️
Matrix Meetup Berlin
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!