Matrix Live 🎙
Dept of Spec 📜
Andrew Morgan (anoa) says
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.
- There were no new MSCs this week.
MSCs with Proposed Final Comment Period:
- MSC2832: HS -> AS authorization header
- MSC3715: Add a pagination direction parameter to
- FCP was proposed earlier, but all concerns have been cleared this week.
MSCs in Final Comment Period:
- No MSCs are in FCP.
The release date for Matrix v1.3 has been set in stone for Thursday, June 16th 2022! Expect a blog post on the day detailing all of the new additions.
The bot that posts MSC updates in #matrix-spec:matrix.org and elsewhere has been switched from @mscbot:amorgan.xyz to @mscbot:matrix.org. The backend of the bot uses https://github.com/Informo/specs-bot/.
Random MSC of the Week
The random MSC of the week is... MSC2000: Server-side password policies!
This is a proposal that adds a mechanism for homeserver administrators to define a password policy for users. This policy can decide rules such as a minimum password length, whether a digit is required, etc. This policy can be enforced by the homeserver when a user registers an account or changes their account password and is communicated to the client so that it can also be enforced locally.
Astute readers will possibly note that authentication in Matrix will eventually be replaced by OAuth2 (MSC2964). This will move operations like password policy enforcement from the homeserver to a separate authentication service, essentially removing the need to reinvent-the-wheel in a homeserver.
Registration, login and managing passwords and connected third-party IDs is often a complex part of a Matrix homeserver. Moving these out to a separate authentication service will both unlock new features (log in with Matrix!) as well as reduce the resources required to implement a Matrix homeserver.
Dept of GSoC 🎓️
Hey there, I am Rohit. I'll be participating in GSoC this summer, under the Matrix organization.
For my project, I'll be working on the desktop client, Nheko. Specifically, I aim to work on its VoIP Library and also on implementing and updating some of the features to concur to specification changes to the Matrix protocol, which include
- Improved VoIP Signalling
- VoIP Call Transfers
- Muting Calls
Looking forward to learning and interacting with the community.
Dept of Servers 🏢
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Work continues on speeding up federated room joins, improving testing, and reducing database i/o. In addition, some lovely features have been added:
Add new media_retention options to the homeserver config for routinely cleaning up non-recently accessed media.
Experimental support for MSC3772: Push rule for mutually related events.
Update to the check_event_for_spam module callback: Deprecate the current callback signature, replace it with a new signature that is both less ambiguous (replacing booleans with explicit allow/block) and more powerful (ability to return explicit error codes).
Add storage and module API methods to get monthly active users (and their corresponding appservices) within an optionally specified time range.
Support the new error code ORG.MATRIX.MSC3823.USER_ACCOUNT_SUSPENDED from MSC3823.
Add a configurable background job to delete stale devices.
Improve URL previews for pages with empty elements.
Allow updating a user's password using the admin API without logging out their devices. Contributed by @jcgruenhage.
This is in addition to quite a number of bugfixes!
Second generation Matrix homeserver
This week we released Dendrite 0.8.8, which contains the following improvements:
- The performance of state resolution has been increased significantly for larger rooms
- A number of changes have been made to rate limiting:
- Logged in users will now be rate-limited on a per-session basis rather than by remote IP
- Rate limiting no longer applies to admin or appservice users
- It is now possible to configure additional users that are exempt from rate limiting using the
exempt_user_idsoption in the
rate_limitingsection of the Dendrite config
- Setting state is now idempotent via the client API state endpoints
- Room upgrades now properly propagate tombstone events to remote servers
- Room upgrades will no longer send tombstone events if creating the upgraded room fails
- A crash has been fixed when evaluating restricted room joins
As always, please feel free to join us in #dendrite:matrix.org for more discussion.
Dept of Bridges 🌉
For all Mumble users out there, there is a new matrix bridge which works with ZeroC ICE interface to communicate with newer versions of Murmur.
Currently, the most interesting features are:
- Bridging text messages of specific channels or a whole Murmur to a Matrix room
- Bridging images posted in the Matrix room to Murmur
- Representing Murmur clients with puppets in the Matrix room
A multi purpose multi platform bridge, formerly known as matrix-github
The changes are as follows:
Dept of Clients 📱
Krille Fear says
FluffyChat 1.5.0 goes Material You
FluffyChat 1.5.0 has been released and will soon be in all stores. This release comes with a bunch of bugfixes and introduces the first iteration of a Material You based design. We also try to support Android 12 accent colors (while this does not seem to work yet). On other platforms, our own purple shape will stay the default.
I like the new Material You design while we needed to tweak it at some points. Also the dropdown menu misses some elevation but this is a known issue in the Flutter repo which will be fixed soon.
This is also the first build with Flutter 3 which should improve the performance a little bit. Unfortunately it brings some regressions. We are forced to ship a little bug with it: Sharing on iPads seems to be broken. I'm very unhappy with this situation but otherwise we would have ended up in different releases for different platforms. As there afaik are not that many iPad users out there, we decided to live with this compromise and ship a bugfix release asap.
Yeah... Flutter has a lot of pros but also a lot of cons. Every new release of this framework leads to the fear of new regressions. Shipping a new major release where basic stuff like "Sharing" is just broken, is totally stupid... but that's the decision of Google. :-P
We didn't want to wait to ship the new design and also we needed a new release to come back to F-Droid where FluffyChat wasn't available in the last weeks because of a ProGuard problem, which should be fixed now.
Everything related to Element but not strictly bound to a client
Happy Friday! 🚀
- Threads is in Beta and progressing. We’re working hard setting up the foundational work needed to improve read receipts and notifications cross-platform.
- Keep sending feedback and rageshakes as we’re also continuing to improve the UI and fix any bugs that are raised.
- We’re moving closer to getting the new search experience out of beta, thanks for all your help on testing so far.
- Next up: Big regression testing session on Android, after the removal of communities/groups (Wednesday or Thursday TBC)
- 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!
- The Web team has been hard at work and we’ve made accessibility improvements, UI updates to the composer, and updates to the pill layout for RTL (right-to-left) languages
- Also added is support for markdown and HTML in room topics, and some tweaks to the Widgets UI here and here.
- Improvements are being made to CI for automated tests in Cypress, to the setup itself and more tests have been added.
- Video rooms have been released into beta!. Thank you for your feedback so far, keep it coming.
Element iOS (website)
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
- We’re continuing our bug fixing spree and the latest release has fixed some of the more significant problems we had
- We’re working towards adopting a new notification filtering entitlement and we will soon be able to silence those pesky empty notifications
- Our “Edit Home Screen Layout” experiment is running well and we hope to be sharing the results of the diary study and prototypes soon.
- The new first time user experience is continuing to make good progress and is quickly approaching finalisation
- We are now allowing account deactivation for users that signed up through SSO
- On ElementX we have merged the new crash reporting service and we are starting to see reports come in. We’ve also successfully integrated an initial version of the DesignKit and added room filtering
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
- 1.4.19 is available and fixes some small bugs, including a fix for the regression surrounding space switching performance.
- Our prototype study is nearly at a close - we’ve received a lot of great feedback on our suggested changes to the home screen and space switching interactions.
- We’ve been working on integrating UnifiedPush for both Google Play and FDroid versions of our app.
- The team is finalising the updates to the create account flow. It will be ready for testing soon.
Dept of VoIP 🤙
Element Call (website)
Native Decentralised End-to-end Encrypted Group Calls in Matrix, as a standalone web app
Florian Heese reports
Element Call Beta 2
This week we landed Element Call beta 2 (https://call.element.io) including a bunch of nice updates. First of all, everything is now end-to-end encrypted by default: not only the WebRTC streams but also the matrix signaling (It was consciously disabled in beta 1 for debugging purposes). Moreover, we have experimental support for spatial audio rendering. Give it a try — you can find it in the settings section. It's a lot of fun to play with and really supports immersion during a video call. This release also introduces a whole new experimental way of communicating: Walkie-talkie mode. In that mode, videos are disabled, and everyone is muted by default. To speak, press the ‘push-to-talk’ (PTT) button — takes me back to my childhood 🙂
For further details follow this blog post: https://element.io/blog/element-call-beta-2-encryption-spatial-audio-walkie-talkie-mode-and-more/
Dept of SDKs and Frameworks 🧰
Matrix Dart SDK (website)
Matrix SDK written in pure Dart and maintained by Famedly.
Henri Carnot announces
This week, the team released version 0.9.12. In this version, we updated our Matrix API Lite package, in which we fixed the issue with the room hierarchy endpoint with some improper parsing and wrong type coming from the generation of the spec Open API documentation.
We also did some housekeeping and renamed some methods and getter to make them explicit. For example, the
futureSendergetter is now an asynchronous method called
fetchEventSender()to make it clear that calling this function may trigger an API call.
Possibility to override the supported Matrix spec version but we don't really recommend using it for production.
See you next time ;)
Dept of Internet of Things 💡
Here's a fun Matrix-based project for you, sponsored by yours truly and my employer FUTO.
The "Golden Tiger" senior capstone project team at Portland State University just delivered the results of two quarters's design and implementation work on a secure/private, self-hostable, end-to-end encrypted cloud security camera using Raspberry Pi's and Matrix. The idea of this prototype project was to provide similar functionality to commercial services like Ring or Nest, but without letting any nosy third party see inside (or around) your home.
The students' code is available on Github in two repos:
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!