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:

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 to via) by removing the msc4156_enabled config setting and defaulting it to true. (#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!):

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 with http: 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):

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/anislbe 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 contain 21893 rooms.

Stats timeline is available on MatrixRooms.info/stats

How to add your server | How to remove your server

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.

RankHostnameMedian MS
1conduwu.it219
2awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay243.5
3envs.net304
4girlboss.ceo306.5
5itzzen.net379
6doctoruwu.uk380
7puppygock.gay383
8constellatory.net407
9plocki.org443
10sulian.eu464

#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.

RankHostnameMedian MS
1conduwu.it99
2girlboss.ceo106
3constellatory.net144
4puppygock.gay172
5awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay188
6reallyaweso.me220
7doctoruwu.uk234.5
8inu.is235
9itzzen.net250.5
10vengeful.eu302

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.

Support us