26 KiB
+++ date = "2024-09-13" title = "This Week in Matrix 2024-09-13" path = "/blog/2024/09/13/this-week-in-matrix-2024-09-13"
[taxonomies] author = ["Thib (m.org)"] category = ["This Week in Matrix"] +++
Matrix Live
Dept of Spec 📜
Andrew Morgan (anoa) {he/him} 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://spec.matrix.org/proposals.
MSC Status
New MSCs:
- Comparison of proposals for ignoring invites
- MSC4191: Account management deep-linking
- MSC4190: Device management for application services
MSCs in Final Comment Period:
- No MSCs are in FCP.
Accepted MSCs:
- No MSCs were accepted this week.
Closed MSCs:
Spec Updates
A further call to developers, protocol designers, and future MSC writers to attend the "Authenticated media & how to ship spec features" and MSC Process Guidance talks in LAB 4 at this year's Matrix Conference! We'll be discussing the spec process itself, as well as how large features (and breaking changes in the spec) get designed, developed, and deployed with support from the MSC process.
If you're thinking about how to get your idea for a feature out in the hands of users, these talks are for you!
Half-Shot reports
Super super early preview for the new extensible profiles MSC.
I know that a lot of you have patiently waited for years for Matrix to support custom profile keys, and I'm glad to say we're getting very close to living the dream now :). The spec for extending profiles with keys MSC4133 is progressing at pace, and we've got several implementations to back it up now.
Element Web has merged support for MSC4175, which allows you to share and display a timezone. If you are running a server with MSC4133 / extensible profiles support configured, then this will be available to you (in a later E Web version).
I am very excited that this is finally starting to gain traction as it has the potential to unblock many use cases, like biographys in profiles / pronouns or anything else we can dream up.
Special thanks to Tom Foster [he/him] and clokep for progressing it to this point, and to the EWeb team for taking time out of their busy schedules to review the work too.
Dept of Servers 🏢
Synapse (website)
Synapse is a Matrix homeserver implementation developed by Element
Devon Dmytro reports
This week we released v1.115.0rc2. Here are a few of the highlights:
- Improve cross-signing upload when using MSC3861 (Next-generation auth for Matrix) to use a custom UIA flow stage, with web fallback support. (#17509)
- Fix authenticated media responses using a wrong limit when following redirects over federation. (#17626)
- Stabilise MSC4156 (Migrate
server_name
tovia
) by removing themsc4156_enabled
config setting and defaulting it totrue
. (#17650)- A bunch of improvements for sliding sync support
...and a whole lot more. Check out the release notes for the full set of changes! Thank you to all our contributors for helping to make Synapse the best it can be. As always, feel free to stop by #synapse:matrix.org to join in on the discussion and if you encounter a bug make sure to report it here.
Dendrite (website)
Second generation Matrix homeserver
Devon Dmytro says
Hey everyone - it's been a while!
This week we released v0.13.8. Here are a few of the highlights:
- Support for authenticated media (MSC3916) has been added 🎉
- Note: You'll need a client that uses the
org.matrix.msc3916.stable
unstable feature announced in/versions
for this to work- The required Go version to build Dendrite is now 1.21
- Whitespaces in the
X-Matrix
header are now handled correctly- Purging rooms has seen a huge speed-up
...and a whole lot more. Check out the release notes for the full set of changes! Thank you to all our contributors for helping to keep Dendrite moving forward. As always, feel free to stop by #dendrite:matrix.org to join in on the discussion and if you encounter a bug make sure to report it here.
Dept of Bridges 🌉
LDA announces
I've been working for a few months on a jealous bridging project between Matrix and XMPP, Parsee, and I decided to release the first test version(0.1) for testing. It's not complete (main thing I want is being able to join a Matrix room straight from XMPP without having to plumb), and may behave weirdly, so if you see any issues with it, please feel free to open up issues(and to potentially contribute!) I am also planning on opening up a public Parsee bridge instance from donations to the project(currently freeloading off someone else's VPS and my Pi!). In the meantime, you can checkout these rooms(they're bridged!):
- Matrix
- XMPP [over at xmpp:parsee@conference.monocles.eu?join]
Dept of Clients 📱
OfficialDakari says
Һаумыһығыҙ! Здравствуйте! Hello! こんにちは!
During this week, Extera got some changes. Because it's school time, Extera isn't updated often.
But nevermind, following things happened to Extera:
- Media caching in Android app. Extera now caches Matrix Media via Service Worker.
- Faster loading Profile button.
- Wallpapers are now saved locally, not on Matrix server
Here is what will be done during this month (aka Upcoming features):
- Background media player. Ability to put media files into floating window or manage playback via notification.
- Censorship bypass mode (Android build only). We will embed V2Ray/X-Ray into Extera and use free proxies from GitHub.
- Call redesign on Android. It will look like in Telegram app.
Also, Extera.xyz got 12 registrations this month!
Cinny (website)
Cinny is a Matrix client focused on simplicity, elegance and security
Lozenge announces
Cinny v4.2.0
This release add support for Authenticated media (special thanks to @shadowrz:nixos.dev for leading the change), basic support for threads (added by @greentore:pettan.cc) and many bugs fixes. This release also laid foundations for the work on making the app support multiple languages (thanks to @aceart.de:matrix.org).
NOTE: For the media to work, please reload the app multiple times after updating to v4.2.0. Sometimes you might need to close the app or browser and reopen to make it work. As we have setup service worker to make authenticated media work, this is intended as service workers require refreshes after registering for first time.
We are going to do another release for service worker to work on cinny-desktop at 14 Sept 2024 at 13:00 UTC. For service worker to work on Tauri app we need to change custom
tauri:
protocol withhttp:
which means the existing sessions will lost and you will have to login again. If you are not using online key-backup for encryption keys, please backup your keys before upgrading.For full changelog, checkout https://github.com/cinnyapp/cinny/releases/tag/v4.2.0
Join #cinny-space:matrix.org for any feedback or help!
Dept of Widgets 🧩
Milton Moura announces
NeoBoard Widget v1.19.0
Version 1.19.0 of NeoBoard has so much new stuff it's scary! Here are some of the highlights you should know about:
- Image Uploads and Authenticated Media
- New ways to add slides
- Enhanced tools & hotkeys
- Many other optimisations and bug fixes
Checkout the details below!
Image Uploads and Authenticated Media
The possibility to add images to your slides has been under a feature flag since v1.15.0. We have now removed the feature flag and have complete support for adding PNG, JPEG, GIF and SVG files to your slides. This also includes:
- Import and export your boards with images included
- Export your slides to PDF with images included
- Drag and drop images to the board for uploading
Because NeoBoard uses the Matrix Content Repository API to upload and store images, the recent changes regarding Authenticated Media meant that we had to extend the existing Widget API to also include file downloads. As such, MSC4039 was enhanced to support this and soon after Widget API, WIdget API Toolkit and the React SDK were updated.
So this release adds support for uploading images to homeservers with Authenticated Media enabled using the latest Element Web v1.11.77 but also makes sure other users don't miss out, by providing a fallback for older client and homeserver versions.
New ways to add slides
Importing an existing external NeoBoard file replaces your full slide deck. But now we support inserting it into any position of your current presentation, with "Import Here", which makes it easier for you to build a slide template library and reuse them when designing presentations.
We also have added the option to insert a new blank slide between any existing slides, along with adding to the end of the deck.
Enhanced tools and hotkeys
We have introduced a new enhanced colour palette, where for each color you can choose between a set of 7 shades, allowing for even more creative slide designs. We have also introduced rounded shapes and one-click shape placement, for a quicker editing flow.
On that note, we have also added hotkeys for toggling text styles (CTRL+B for bold, CTRL-I for italic) and slide navigation with the left and right arrows when in presentation mode.
Optimisations and bug fixes
As usual, we try to improve existing features and fix bugs whenever we can. Check out the full changelog for a more detailed report of what else has changed.
Try it now
You can add NeoBoard as a widget to one of your rooms right now by following these instructions .
We invite you to try all of this and would love to get some feedback at #nordeck:matrix.org.
See you at the Matrix Conference next week! We will be sharing even more exciting news there!
Dept of SDKs and Frameworks 🧰
Slavi says
While working on our new AI chatbot (baibot), we found the need for a higher level wrapper around matrix-rust-sdk.
We initially considered headjack, but found it too opinionated and lacking in robustness (especially when it comes to handling encryption recovery keys, etc.)
This provoked us to write our own library (
mxlink
), licensed under LGPLv3. We've published it today and made it available on crates.io.Check the mxlink project on Github to learn more about its ✨ Features and how you can make use of it in your own projects!
Dept of Ops 🛠
matrix-docker-ansible-deploy (website)
Matrix server setup using Ansible and Docker
Slavi says
matrix-docker-ansible-deploy now supports installing baibot (pronounced bye-bot) - a Matrix bot developed by etke.cc that exposes the power of AI / Large Language Models to you. 🤖
It supports OpenAI's ChatGPT models, as well as many other ☁️ providers.
It's designed as a more private and ✨ featureful alternative to the now-unmaintained matrix-chatgpt-bot.
To get started, see our Setting up baibot documentation page.
Dept of Services 🚀
etke.cc (website)
Your matrix server on your conditions
Aine reports
Synapse Admin forked by etke.cc
Since day one, we at etke.cc have been offering Synapse-Admin as a core service. Over time, we identified several areas where small tweaks and enhancements could improve the user experience.
Little by little, we'be been making improvements or adopting and reworking existing upstream PRs, which have been stuck in review for long. We're hoping that all our changes will eventually be accepted upstream and will make our fork obsolete.
For now, it seems like the original project has lost momentum, so we'll continue maintaining our own fork, for the benefit of etke.cc's customers and all other matrix-docker-ansible-deploy users.
Here’s a list of the changes already implemented (full details here):
- Prevent admins from deleting themselves
- Fix user's default tab not being shown
- Add identifier when authorizing with password
- Add ability to toggle whether to show locked users
- Fix user's display name in header on user's page
- Fix footer overlapping content
- Switch from nginx to SWS for serving the app, reducing the size of the Docker image ~4x
- Fix redirect URL after user creation
- Display actual Synapse errors
- Fix base_url being undefined on unsuccessful login
- Put the version into manifest.json (CI only)
- Federation page improvements (using theme colors)
More updates are in the pipeline (check them here). A big thank you to the authors and contributors of the upstream project for providing such an outstanding tool!
Where to get?
We enabled this fork by default in the Matrix-Docker-Ansible-Deploy playbook, etkecc/ansible playbook, offer it via CDN on admin.etke.cc and as a core component (enabled by default) for all etke.cc customers
Dept of Bots 🤖
Slavi says
At etke.cc, we haven't been entirely happy with the state of AI / LLM integration into Matrix.
We've been offering the matrix-chatgpt-bot service to our customers, but we've found it rather limited because:
- it's complicated to install, requiring manual intervention
- it doesn't allow self-servicing (changing the configuration at runtime), which increases our support burden
- it only supports a single provider (OpenAI) and model, hardcoded in the configuration
- it only supports text-generation
- it stores all its state (including messages exchanged in encrypted rooms) in a plaintext file
This provoked us to develop a more private and much more 🌟 featureful alternative - baibot. 🤖 As with everything we do, it's released under the AGPLv3 license.
Existing etke.cc customers can request the new baibot service by contacting us, while new customers can order it directly from our order form.
To learn more about the project and how to install the software against your own Matrix server, see the baibot project on Github.
Draupnir (website)
Gnuxie 💜🐝 says
Draupnir v2.0.0-beta.6 has been released, marking the end of a an effort refactoring Mjolnir's command system that started at the beginning of 2023.
I've written a blog post about what I have been working on over the last month or so that goes into the details and history of the command system.
https://marewolf.me/posts/draupnir/2405.html
The last push was spent with a focus on unit testing and moving the command system into a library that can be used for other TypeScript bots @the-draupnir-project/interface-manager.
We're also releasing a tiny library, extracted from the much larger matrix-protection-suite called @the-draupnir-project/matrix-basic-types which provides types for event, user and room ids as well as utilities for handling references to them.
I hope to build out some example projects using them and the matrix-protection-suite soon.
Both libraries are available on npm under the
@the-draupnir-project
namespace.Finally as always you can find us in our support room at #draupnir:matrix.org.
Dept of Events and Talks 🗣️
Thib (m.org) reports
Matrix Conference & Call for Slides
We are very excited that The Matrix Conference starts next week! It will take place in person in Berlin, Germany. To make it as accessible as possible for everyone, all the talks from all 3 stages are going to be recorded and streamed live! Beyond that, Q&A will not be limited to those present but also through the chat rooms of the Conference Matrix Space: #matrix-conference-2024:matrix.org
There will be a bit of downtime on the projectors and stream between talks, and we want to fill it with your community contributions: Send us a slide about your Matrix project for a chance to have it appear on stream during a break! Slides should be 1920x1080 pixels large JPG or PNG pictures and submitted to the Matrix room #matrix-conf-screen-slides:matrix.org. The conference media team reserves the right to select or reject submissions as deemed appropriate.
Until next week, live from Berlin! Your Conference Orga Team
Dept of Interesting Projects 🛰️
clokep announces
My homeserver-spec-versions dashboard which displays information on spec version supported by different homeservers (and how long it takes homeserver implementations to support each spec version) has had a bunch of updates in the past ~6 months:
- It now includes supported spec versions, room versions & the default room version for each homeserver.
- It now defaults to showing information based on release date, not commit date, which is more useful for homeserver operators.
- You can zoom, tooltips are improved, and other odds and ends were fixed.
- A separate timeline view shows a family tree of forked homeservers.
- A bunch more homeservers were added, although most are alpha/pre-alpha stage.
If you see anything missing or incorrect feel free to reach out or file an issue.
Matrix Federation Stats
Aine announces
Matrix Federation Stats
collected by MatrixRooms.info - an MRS instance by etke.cc
As of today,
9856
Matrix federateable servers have been discovered by matrixrooms.info,3039
(30.8%
) of them are publishing their rooms directory over federation. The published directories contain21893
rooms.Stats timeline is available on MatrixRooms.info/stats
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.
#ping:maunium.net
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 | conduwu.it | 219 |
2 | awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay | 243.5 |
3 | envs.net | 304 |
4 | girlboss.ceo | 306.5 |
5 | itzzen.net | 379 |
6 | doctoruwu.uk | 380 |
7 | puppygock.gay | 383 |
8 | constellatory.net | 407 |
9 | plocki.org | 443 |
10 | sulian.eu | 464 |
#ping-no-synapse:maunium.net
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank | Hostname | Median MS |
---|---|---|
1 | conduwu.it | 99 |
2 | girlboss.ceo | 106 |
3 | constellatory.net | 144 |
4 | puppygock.gay | 172 |
5 | awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay | 188 |
6 | reallyaweso.me | 220 |
7 | doctoruwu.uk | 234.5 |
8 | inu.is | 235 |
9 | itzzen.net | 250.5 |
10 | vengeful.eu | 302 |
That's all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!