Matrix Live 🎙
Dept of Spec 📜
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.
- MSC3720: Account status
- MSC3713: Alleviating ACL exhaustion with ACL Slots
- [WIP] MSC3710: User groups
MSCs in Final Comment Period:
- No MSCs are in FCP.
MSCs with newly proposed Final Comment Period:
- MSC3440: Threading via m.thread relation
- MSC3613: Combinatorial join rules
- MSC3667: Enforce integer power levels
MSC3440 (threading) continues to move forward with a proposed final comment period this week. As a really useful feature in Matrix, it's great to see it getting closer to landing in the spec.
In a similar vein, MSC3613 (combinatorial join rules) had a proposed final comment period. The intention of this is to be a simple mechanism for resolving the "it's not possible to have both a restricted and knock room" situation - as both introduced mutually exclusive join rules. This MSC will likely serve as the basis of a new room version whenever it lands.
Random MSC of the Week
The random MSC of the week is... MSC3144: Allow Widgets By Default in Private Rooms!
This MSC makes the case for allowing widgets to be created in private rooms by default. The actual spec for it is blocked behind having widgets in the spec (see this tracking PR if you're interested).
As noted in the PR though, this MSC could build on the existing
im.vector.modular.widgetsunstable prefix for widgets in order to create an implementation for this feature. It does not appear to have happened yet though.
Dept of Servers 🏢
Synapse is the reference homeserver for Matrix
Hello, TWIM! This week we released Synapse 1.52, which includes new Admin APIs for monitoring federation status and immediately retrying failed connections, as well as for reporting on rooms shared between two homeservers. We've also fixed / improved media previews for sites like Reddit. Plus lots more fixes / refactors / improvements under the hood.
This is a smaller release as it's coming off of our FOSDEM sprint, but we look forward to getting back to more regularly-sized and featureful Synapses this month.
Notably, we've been experimenting with Poetry to better manage Python dependencies in our applications (Synapse, Sygnal, and Sydent). We just switched Sydent over this week and are working out the kinks in our CI and build pipelines. We're looking forward to bringing this consistency to Synapse next month!
See you next week!
Second generation Matrix homeserver
Yesterday we released Dendrite 0.6.3 which is a primarily bug fix release. It contains the following changes:
- Initial support for
- A number of regressions from earlier v0.6.x versions should now be corrected
- Missing state is now correctly retrieved in cases where a gap in the timeline was closed but some of those events were missing state snapshots, which should help to unstick slow or broken rooms
- Fixed a transaction issue where inserting events into the database could deadlock, which should stop rooms from getting stuck
- Fixed a problem where rejected events could result in rolled back database transactions
- Avoided a potential race condition on fetching latest events by using the room updater instead
- Processing events from
/get_missing_eventswill no longer result in potential recursion
- Federation events are now correctly generated for updated self-signing keys and signed devices
- Rejected events can now be un-rejected if they are reprocessed and all of the correct conditions are met
- Fetching missing auth events will no longer error as long as all needed events for auth were satisfied
- Users can now correctly forget rooms if they were not a member of the room
As always, please feel free to join us in #dendrite:matrix.org for more Dendrite-related discussions!
Conduit is a simple, fast and reliable chat server powered by Matrix
Timo ⚡️ says
Conduit v0.3.0 released last week and over 50 servers already upgraded! This week we looked into some bugs that still happen with this version:
- Element Android doesn't show notifications: A bug where we send 'null' instead of leaving out a field https://github.com/matrix-org/sygnal/issues/295
- Missing profiles when scrolling up: Bug in multiple clients: https://gitlab.com/famedly/conduit/-/issues/233
These bugs will be fixed in the coming days.
Thanks to everyone who supports me on Liberapay or Bitcoin!
Homeserver Deployment 📥️
Helm Chart (website)
Matrix Kubernetes applications packaged into helm charts
This week saw more updates to my Helm Charts as usual; matrix-synapse is now at 1.52.0
Dendrite Helm Chart (website)
Helm Chart to deploy Dendrite on Kubernetes
I am pleased to share that both v2 and v3 of the Dendrite Helm Chart have now been released.
Dendrite Helm Chart v2
Version 2 included a bump in app version up to v0.6.0 and the necessary switch from Kafka to NATS.
Dendrite Helm Chart v3
Version 3 includes the addition of polylith support as well as some general improvements and fixes.
You can find the latest version of the chart and documentation on GitHub
Thanks to @anthr76:mozilla.org and @s7evink:matrix.org for their support throughout the development of polylith mode.
Dept of Clients 📱
A client for matrix, the decentralized communication protocol
Carl Schwan announces
NeoChat 22.02 is out with the possibility of sharing files directly from NeoChat to other apps and services (Nextcloud, Imgur, email, ...). We also added support for minimizing the application to the system tray on startup and you can now label accounts to better organize them if you are using the multi-account feature. Aside from that, we spend some time fixing many small bugs and paper cuts reducing the total amount of open bug reports by 20%.
Hydrogen is a lightweight matrix client with legacy and mobile browser support
We've release 0.2.26. You can now create rooms and direct messages with Hydrogen. There's also a bug fix in this release for replies not loading in e2ee rooms under certain conditions.
Everything related to Element but not strictly bound to a client
Welcome to another week of TWIM at Element! Here’s our updates:
Polls and Location Sharing
- Polls is now out of labs, and available in the composer for all users with the latest app versions.
- Location sharing is available on the mobile apps. For now you will need to enable it in settings in order to see the composer icon and send your location. As of next week’s releases it will be enabled by default on all platforms.
- Threads aims to reduce cross-talk on the timeline by moving side-convo’s to the right panel. If you want to try it out, it's available in Labs on Web today and in Labs on Mobile from next week!
- We’ve been working on improving the stability and speed of threads across platforms.
- Join#element-community-testing:matrix.org to join us for future testing sessions!
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
- Metaspaces have landed! Giving users a new way to display favourites, DMs and rooms outside of other spaces. Switch these on in Quick Settings at the bottom left of your app.
- New and improved Search! We’re pleased to move the new search experience into Beta. Head to Settings > Labs to access it.
- Those of you using Nightly or Develop will see the new experience by default.
- Provide feedback on your experience directly from the Search window.
- On Web we’ve also been chasing away some bugs, specifically desynced memberlist and stale display names.
In Labs (Enable labs features in settings on develop.element.io or Nightly)
- Threads: The MSC is available here MSC3440
J. Ryan Stinnett announces
Thanks to everyone who tested the maximised widgets feature which was recently added to Element Web. It received a sudden burst of attention as part of the FOSDEM conference. 😄 This week we've been fine tuning the feature to ensure it works for more workflows, and we've also cleaned up various associated widget bugs. In particular, in the develop version of Element Web, the pin and maximise actions are more consistent accessible, so you can toggle between pinned and maximised if e.g. you're in a conference room and temporarily want the stream widget to be larger while still having access to the chat timeline.
Next week we'll be focusing more on our Matrix-native collaborative document plans.
Element iOS (website)
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
- The next update of iOS (1.8.0) will have improved emoji reactions and location sharing will be on by default!
- We will also be releasing fixes to the incorrect scrolling on the timeline and home screen sorting.
- Work on a Rust prototype is also underway. We’re excited to learn about the opportunities and advantages of this approach as we start to learn and experiment.
- From next week Threads will be available in Labs on Mobile. Switch it on and try it out!
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
- This version of the Android app (1.4.0) includes message bubbles and location sharing!
- Also, notifications are back online! Some of our users were experiencing intermittent notifications when connected to wifi, but ‘tis no more.
- We’ve also squashed a bunch of other bugs, our favourites include:
- Welcoming back some font weights that had disappeared
- Fixing statuses in the timeline for missed or rejected calls
- Closing the “Invited to Space” dialog after you invited someone to the Space…
- Threads have landed in Labs. Switch it on and try it out!
All you chats in one app.
Brad Murray says
Beeper is a universal chat app built on top of Matrix. We've created 12+ open source Matrix bridges and integrated them into an easy to use all-in-one service which does not require setting up your own homeserver.
We’re excited to announce that as of today we are now out of Beta! We have been hard at work and we’re now ready to be sharing Beeper with a lot more people, starting first with the people we’ve built up on our waitlist.
For more details and demos on the current state of Beeper, including our recently rebuilt and relaunched iOS app, check out the update on our blog: https://blog.beeper.com/p/beeper-update-4-out-of-beta or watch the video below.
Dept of Non Chat Clients 🎛️
Matrix Wrench (website)
Matrix Wrench is a web client to tweak Matrix rooms.
The new version contains two new features around the Synapse Admin API, making someone a room admin and listing all unencrypted media URLs.
I've had some good ideas on how to make Matrix Wrench cover more use cases while staying simple for both users and me as a developer. New components allow me to add new API endpoints in as little as 7 lines. So far this only applies to simple endpoints without parameters, like joining and leaving a room, but it can be expanded to more endpoints because of how similar all Matrix endpoints are. Props to the Spec! 🙌
Stay tuned for an editable UI coming soon™️.
Dept of SDKs and Frameworks 🧰
Multiplatform Kotlin SDK for Matrix
Features and improvements:
- support presence
- support read receipts
- support push notifications API
- basic support for
Halcyon is an easy to use matrix library inspired by discord.py
Version 1.1.1 released This was a quick bugfix release for a finding by jeffcasavant, in which joining a room with a predecessor, the bot could crash. Thanks Jeff!
If you missed it last week, I published a template / demo stock reporting bot you can find here: https://github.com/WesR/Halcyon-stock-bot . Short and sweet, this little bot should be a great starting point if your looking into making a bot. Make sure to also checkout the library itself for more examples, and usage information https://github.com/WesR/Halcyon.
I'm always looking for more feedback, and love to see what people are working on. Come hangout with us in the Halcyon room: https://matrix.to/#/#halcyon:blackline.xyz
Dept of Interesting Projects 🛰️
Pretix Matrix Plugin
We have been using Matrix as a chat solution for the attendees of our biannual conference (KIF) and for new students during the introduction week, as well as Pretix to register attendants. Up until now the process to invite attendees to the corresponding Matrix Rooms and Spaces involved some
jqmagic as well as manual intervention to connect both.
We have now replaced said manual process with a Pretix plugin that invites registered attendees to a configurable Matrix Room or Space. This plugin is now available on the Pretix marketplace or directly from its repository.
Jake C announces
I'm excited to share a side-project I've been working on for the last ~3 months: Gatho (http://gatho.party) - a web app for hosting small gatherings.
Gatho is perfect as a replacement for Facebook Events for small social gatherings. I'm a 24 year old Australian who recently deleted Facebook - I've used Gatho for a few parties now and the guests have loved it!
Gatho includes a Matrix bot which, when added to a room, can synchronise RSVP emoji reactions to a linked Gatho event! See gatho.party/getting-started to hear how the Matrix synchronization works.
You can also create one-click RSVP links to send to your friends - no matter which chat/social app they use!
It's fully GDPR compliant and multi-region with an EU server and database, and uses NextAuth.js for passwordless authentication.
The Gatho website and bot is open source (AGPL-3.0) on Github, PRs and Github issues are very welcome! It's built using Next.js in Typescript.
I'd love to hear your feedback! Join the Matrix room at #gatho-events:matrix.gatho.party
Dept of Ping 🏓
The ping room has been upgraded to room v9. During the 452 days the previous (v6) ping room was alive, it received a total of 735997
org.matrix.dummy_events and 604459
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!