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.
In terms of Spec Core Team MSC focus for this week, weāre taking off MSC2674 and MSC1544 while the author works through feedback, and instead looking at getting widgets in line.
The spec for widgets has so far lived on a collaborative document that hasnāt been updated in some time. As a result multiple, separate implementations have sprouted. Weād like to nail this down. So the focus for this week will be: MSC1960 (widget auth mechanics) and MSC1236 (general widgets).
Dept of GSoC šļø
The coding phase of Google Summer of Code is over! That said there is still a bunch of stuff to do, code is still appearing and weāre now entering the time of many forms to fill in in order for people to get paid.
A little pre-emptive, but wow itās been a good summer! SIX students, all did well!
GSoC coding is over and thereās now an async/await ported matrix-ircd! Before merging that into master, it would be nice to have it tested a bit more. To install it, you first need Cargo, Rustās package manager (Installation). With that set up, just run
For the GSoC project HTML embeddable matrix chat this week -
Added an āautoā option for the theme (read and set the theme from the device)-
Added a ācustomā highlight color (meant to be modified by users).
Restyled various components.
More news to come from this project - going to be used in a really exciting live event in the near future. Arnav has accidentally found a niche. :D
One more thing: This project needs a new name (riot-embedded I donāt like.) If you have ideas you can fling them at arnav-t or post in #twim:matrix.org.
Dept of Servers š¢
Dendrite / gomatrixserverlib
Dendrite is a next-generation homeserver written in Go
If contributing to Dendrite sounds like something you would be interested in, please take a look at these issues and join us in #dendrite-dev:matrix.org! Thereās also #dendrite:matrix.org for general Dendrite chat.
This week Erik has been working on sharding the Event Persister worker as we aim further for horizontal scalability for Synapse. Some of the complication comes from ensuring that sysadminās donāt misconfigure things where multiple event persisters persist events in the same room.
Patrick has been continuing on the async/await train and has just submitted the final PR which asyncās our runInteraction method - the one that most database calls go through. Synapse is nearly 100% async! Heās also been submitting a flurry of shadow ban PRs, which will be another powerful tool for moderation.
Brendan and Rich are continuing to work on the Notifications rewrite, with Brendan finishing up unread counts, and Rich polishing up designs for the new replacement for push rules.
Andrew (who dat? - ed.) is continuing to work on the knocking MSC and has fleshed out the CS and SS details. There are still some open questions though, so please give feedback if you notice anything off!
Finally, Olivier has been working on making sure you get your missed messages when your homeserver has been offline for a while, as well as various Sygnal fixes and matrix-synapse-ldap3.
Just pushed an update to my matrix-synapse chart, fixing the volume permission configuration - for those who want to run Synapse as non-root without using a storage class that supports setting rights based on fsGroup
and then
Just pushed the 1.19.1 tags for my K8s-optimized container image, and a new helm chart version to go with it.
Did you know that Ananace is running a Matrix server for Linkƶpings universitet?
Another True Fact: āuniversitetā appears to be Swedish for āuniversityā.
I recently published a new matrix <-> mattermost bridge - matrix-appservice-mattermost. The new bridge already supports many features and is rapidly improving, with the current focus being setting up proper integration tests.
New bridge! This is actually really fully featured considering that weāve only just heard about it! Looking forward to seeing more from dalcde and team in future.
Honestly I didnāt realise Florian was a setting in the power levels. Is this in the spec? Very good seeing Rust SDK getting such usage, we will see more from this project I hope!
A multi-account Matrix client that allows you to authorize webapps to access parts of your account, designed with collaboration in mind.
This is the webapp Iāve been talking about for a while that allows webpages limited access to your account. Currently, apps can view the name, avatar, alias, and type of a room thatās been opened with the app, and thatās just about it.
The big interesting thing about mxapps right now is the architecture. Just about all of the logic is running in a shared worker. This means that you can duplicate as many tabs as you want and it will all act as the same client. It also has multi-account support.
Features coming soon at some point will be full state event support and easy-to-follow docs on how to make an app, plus Vue plugins to make development really easy.
You can checkout the live version on mxapps.kb1rd.net, but it is a bit uselessā¦
Released 0.0.34 this week with some fixes to the room list sorting and fixing several crashes. If you clear your session, it will also sort low priority rooms at the bottom of the room list, even if unread, making it a bit more usable until we add more UX refinements to the room list.
Most of the effort this week however has gone into working on end-to-end encryption, having investigated using the rust-sdk for a couple of days, and now looking into a custom implementation based on libolm. This is well on its way with key upload working and device tracking nearing completion.
Getting e2ee will make this a very compelling client! Remember to watch Matrix Live with Bruno above. If youāve watched it, remember we have 100s of episodes of Matrix Live to catch up on!
Nheko
Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at
I just merged the new event store a few days ago. This means Nheko now doesnāt keep messages in RAM! Everything is stored on disk and mapped into memory from disk. This may reduce memory usage a tiny bit, but may increase latency while scrolling a bit. Try it out and give your feedback!
For the developers reading this, I collected some ramblings on my blog here: https://blog.neko.dev/posts/nhekos-event-store-v2.html . Yes, I designed that site when I was like 15, I know the dark theme is a bit too much⦠Just use Firefox and the alternate stylesheet for light mode! Anyway, Iām very interested to hear how other clients implement their event stores!
Element-Android v1.0.5 has been released to the PlayStore. We are now working to improve user experience with 1-1 calls. We will add support to add and remove emails to your Matrix account, and we are still fixing bugsā¦
This week, we made 2 release candidates available through TestFlight. New features are :
app access protection with PIN code, TouchID or FaceID
the come back of the incoming native call screen
A huge thanks to the community for the feedbacks. It helped us to discover issues like a crash in background due to PushKit. The coming TF (1.0.7) should fix all of them
A PR has been created for cross-signing and SSSS support! It also supports accepting in-room verification requests and will soon also support creating them, after which it should be ready for reviewing. Afterwards, with some minor changes to clients using the library, cross-signing should be available.
A Matrix bot using the library matrix-nio and Docker (specifically aiodocker) for running sandboxed code, allowing users to write their own factoid commands which can perform any task required. The bot launches a new instance of itself every time it is invited to a room, where it can then be configured for that channel by a management website. There is also a web IDE for the factoids, so you can edit and test the botās output.
Bash-like factoid and command input/output redirection
Run untrusted code for PHP, Python, JavaScript and Java in Docker containers
Manage the instance of the bot from a management server (realtime log output over websockets, schedule commands to run, manage trusted devices and more)
Web interface for factoid editing (create, save, edit and test with live output). IDE from ace from cloud9
Cool! There are so many bot creation systems for Matrix now!
There is one month left until Hacktoberfestš! Prepare your repos now!
Itās a great time to get friends and newcomers involved with open source and your projects.
During October, merged PRs to any(!) public GitHub repo will count towards a personās score. With four PRs, they get a very neat looking t-shirt from the organizer DigitalOcean. They can also ask for a tree to be planted instead.
As a maintainer,
Add a āHacktoberfestā label (color suggestion: #FF7518) on issues to point people to tasks with a clear scope.
Let people know that youāre interested in contributions and will review them.
Add the label āinvalidā on a PR thatās spam or a minor contribution that shouldnāt count (fixing typos, blindly upgrading dependencies, etc.).
Matrix benefits from Hacktoberfest, but do keep in mind that this is a commercial project from DigitalOcean.
Dept of Ping š
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank
Hostname
Median MS
1
fairydust.space
374
2
neko.dev
526
3
loves.shitposting.chat
566
4
yyyyyyy.ml
619
5
kif.rocks
669
6
maescool.be
737.5
7
matrix.vgorcum.com
754
8
autodie.be
839
9
hmlw.me
966.5
10
fick.es
1053.5
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.