❌

Reading view

There are new articles available, click to refresh the page.

This Week in Matrix 2024-12-06

By: MTRNord

πŸ”—Matrix Live - Social Login with MAS

Today's Matrix Live: https://youtube.com/watch?v=NO2iK5k4Ji4

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Welcoming Ercom as a Silver Member

Josh Simmons (m.org) says

We'd like to welcome Ercom as the newest Silver Member of the Matrix.org Foundation and are excited to announce a couple other new members before the end of the year πŸš€

The Matrix.org Foundation stewards the Matrix protocol specification, facilitates open governance, and convenes the ecosystem. While Matrix continues growing in adoption, the Foundation's funding is not keeping pace. If your organization builds on Matrix and is invested in its future, the time to become a funding member is now.

πŸ”—Matrix.org protocol is not MATRIX

Josh Simmons (m.org) announces

From the department of no-the-other-Matrix: This week saw news of Europol shutting down an encrypted messaging service called MATRIX. All indications are that this has nothing to do with the Matrix protocol, and we are grateful to the agencies and publications that have made an effort to disambiguate. We are, of course, monitoring the situation as more information becomes available.

πŸ”—Dept of Spec πŸ“œ

Andrew Morgan (anoa) {he/him} reports

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:

  • There were no new MSCs this week.

MSCs in Final Comment Period:

Accepted MSCs:

Closed MSCs:

  • No MSCs were closed/rejected this week.

πŸ”—Spec Updates

Following on from last week, the SCT continues to work towards the next spec release, expected in mid-December with Account Suspension, backwards compatibility for captions, and likely some further work towards Matrix 2.0 in the form of crypto MSCs.

Folks are encouraged to raise their MSCs for review in the SCT Office as soon as they feel it's ready for broad review. This helps ensure there are minimal process delays, and feedback can be incorporated into the feature design early. This is especially important for Matrix 2.0 MSCs, which the SCT hopes to be able to release in the new year.

πŸ”—Dept of Servers 🏒

πŸ”—Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element

Andrew Morgan (anoa) {he/him} says

Happy Friday! Synapse 1.120.2 was released this week. This releases includes fixes for several high-severity vulnerabilities. Please update as soon as possible if you have not already.

In addition, Synapse 1.121.0rc1 was released in the second half of this week. This release candidate includes new features - please test it on your non-production deployments and report bugs if you are able to! Note that this release candidate indeed includes the security fixes from 1.120.2.

New features in 1.121.0rc1 include experimental support for MSC4190: device management for Application Services and MSC4076: Add disable_badge_count to pusher configuration in addition to the stabilisation of the previously-experimental account locking feature, released in Matrix 1.12.

There's also lots of bug fixes included as well, so please do test if you can before 1.121.0's scheduled release next week.

πŸ”—Dept of Clients πŸ“±

πŸ”—FluffyChat (website)

The cutest instant messenger in the [matrix].

Krille-chan says

πŸš€ FluffyChat v1.23.0 is here!

You can now send multiple files at once. The login page got a redesign with SSO as the new default action (legacy password login still available in the context menu at the top right corner).

MAS account settings now available in the profile, making FluffyChat ready for the Matrix OIDC change! πŸ’ͺ

Lot's of new colors and style settings with much better chat wallpapers also landed in this release. 🐾

Learn more at https://ko-fi.com/post/FluffyChat-Version-1-23-0-Whats-New-O4O416SLEK

πŸ”—Element X iOS (website)

A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.

Mauro Romito announces

  • RC 1.9.9 has been sent for verification, the RC has been delayed to avoid some bugs to be shipped in production, that promptly fixed.
  • Knocking rooms has made great progress and is getting close to be completed
  • We are also working on adding more options in the room details, to allow changing alias, room visibility and other settings that are already available on Web but not on X
  • Media gallery of a room has also made great progress, and first simple implementation is going to reach Nightly very soon!
  • Share extension is back, and will be available on the coming app store release, alongside the option of adding captions to the media you are going to share!

πŸ”—Element X Android (website)

Android Matrix messenger application using the Matrix Rust SDK and Jetpack Compose.

ganfra reports

  • Version 0.7.5 has been released, including support to add/edit/remove captions, new notification actions and some various improvements.
  • We are still working on knocking rooms.
  • Media gallery is in development, and a first iteration should land soon.

πŸ”—Tammy (website)

Multiplatform messengers build on top of Trixnity Messenger

Benedict announces

A new Tammy version has been released last week with a bunch of changes and fixes:

  • Show online-status when searching for users.
  • Ability to see who reacted to a message.
  • Added download button for file preview.
  • Support private Browser Tabs.
  • Added PDF reader in web.
  • Fixed crash when opening file picker on linux distribution.
  • Fixed thumbnails not being displayed sometimes because of size limit evaluations.
  • Fixed headings not readable in dark mode.
  • Fixes a crash when opening a file.
  • Fixed crash when notification sound is unavailable.

Currently we are working on a Linux Flatpak and Snap release. So stay tuned!

πŸ”—Dept of Widgets 🧩

πŸ”—NeoBoard Widget (website)

Kim Brose (Nordeck) announces

NeoBoard Widget v2.0.0 is a major version update due to some significant tooling changes. Still, it has several new user-facing features. We picked these highlights for you:

Custom font sizes for text shapes

The font size in text shapes can now be set to a specific size. We offer a list of recommended values but you can always use the auto sizing, which adjusts the font size to the dimensions of the shape.

Inserting or importing a PDF

We extended the "Import" and "Insert here..." feature to also support PDF files, alongside the native .nwb format. Doing this will render each PDF page as an image in a new slide.

A demo of importing a matrix flyer to NeoBoard

Monitoring the user's online state

We added a snackbar to the board that provides troubleshooting information when there are issues saving your data. For example, the widget monitors your network connection status to determine if you’re online, making it clear that content changes to the board or updates from collaborators cannot sync while you’re offline. It also looks out for rate-limiting scenarios and provide context-aware information when it is possible.

Updated tooling and build process

In this release, we migrated away from Facebook's Create React App (CRA) framework in favour of the new and actively maintained Vite framework. We also swapped out our testing framework from jest to the Vite-native Vitest. This is modernizing the build process and improving security, but requiring updates to build scripts, configurations, and imports due to the switch to ECMAScript modules (ESM).

Support for IPv4-only deployments

It is now possible to deploy the widget container on hosts without IPv6 support through a configuration option. This can be toggled easily through our Helm charts. Beyond that, the container image also gained the ability to also add your own files with custom config that will be added to the nginx server block config, should you need that. Read more about both in our documentation.

We also released updates to our NeoChoice and NeoDateFix widgets to match this feature.

...and more!

As usual, we try to improve existing features and fix bugs whenever we can. Check out the changelog for a more detailed report of what has changed.

If you have any questions or feedback, please reach out to us using our public room #nordeck:nordeck.io.

PS: make sure you check out Christian's NeoBoard Advent Calendar in the Dept of Interesting Projects πŸ›°οΈ!

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—vodozemac-python (website)

A python binding to the implementation of Olm and Megolm in pure Rust.

OdoItal reports

Happy to announce that the pypi package vodozemac has gotten its first release in 2 years to 0.8.1, matching the latest (at the time of writing) published version of the official rust crate of the same name.

The published packages include binary distributions across many different platforms and architectures (everything supported by maturin), as well as a srcdist.

The previous version was published from the now-abandoned matrix-nio/vodozemac-bindings. In the light of the deprecation of libolm, it became clear that modernized python bindings to the supported matrix encryption library is an absolute must, and it's possible now!

The new repo itself is https://github.com/matrix-nio/vodozemac-python It's very much a WIP, with documentation and certain usability QoL items still left to implement, but it's expected to be usable as-is.

Not finalized yet, but I'm roughly planning to institute a versioning scheme that strictly follows that of the rust crate vodozemac, with a subversion to account for any changes that don't relate to the actual underlying library.

PRs are extremely welcome, especially for helping getting to replace pyolm with vodozemac in matrix-nio!

πŸ”—Dept of Services πŸš€

πŸ”—etke.cc (website)

Your matrix server on your conditions

Aine [don't DM] announces

πŸ”—Synapse Admin Updates

A while back, we at etke.cc announced our Synapse-Admin fork. This week, we're excited to share a roundup of new features and quality-of-life (QoL) improvements we've introduced!

Prefill Any Login Form Fields with GET Parameters

Previously, you could prefill the username and server fields in the login form using GET parameters for convenience. With this update, the password (for credentials-based auth) and accessToken (for access token-based auth) fields can also be prefilled.
⚠️ Due to security considerations, this feature is restricted to local environments only.

Documentation Index Added

We're slowly documenting all the enhancements we've made to Synapse Admin. To make navigation easier, we've introduced a structured index page that organizes the documentation by sections.

(exclusive to etke.cc customers) Server Status Page & App Bar Indicator

A new status page and app bar indicator are now available! Using our monitoring service, you can view your server's status via Matrix, email, or the web UI.

Unified List View: Show 50 Items by Default

Lists for all resources - users, rooms, media, reports, tokens, and more - now display 50 items by default. This change offers a more consistent experience across devices, especially on larger-than-phone screens. Previously, lists showed either just 10 items (leaving the page mostly empty) or an overwhelming 500 items.

Source code, admin.etke.cc (CDN version).
Don't forget to drop by #synapse-admin:etke.cc to share your feedback and say hi!

πŸ”—Dept of Bots πŸ€–

πŸ”—@unomed/react-native-matrix-sdk

Johannes says

We've recently released react-native-matrix-sdk which wraps the entire FFI bindings of matrix-rust-sdk in a React Native Turbo Module by way of uniffi-bindgen-react-native. We have successfully used this library to prototype a cross-platform app including room list and timeline but it is a fairly young project and will most definitely still have a few sharp edges.

If anyone would like to try this out in their own projects, we'd be happy to receive feedback and contributions via GitHub. We also hang out in https://matrix.to/#/#rn-matrix-rust-sdk:matrix.org and https://matrix.to/#/#uniffi-bindgen-js:matrix.org if you want to chat.

Thanks a ton to Unomed for sponsoring my work on this and to James Hugman and his sponsors, Mozilla and Filament, for creating and maintaining uniffi-bindgen-react-native. You can find further details about this project in Mozilla's announcement or the accompanying reddit post.

πŸ”—Dept of Interesting Projects πŸ›°οΈ

πŸ”—Christian's NeoBoard Advent Calendar

Christian Paul (jaller94) says

Christmas is coming up and to shorten the wait, you can open a door of my bilingual advent calendar every day. It has templates and coding examples for NeoBoard whiteboards.

Check out some doors from the past days:

Do you also wonder what will be behind today's door? 😏

NeoBoard is a whiteboard widget for Element, allowing you and your team to collaborate during meetings, presentations and group projects. You can export and import whiteboard files to reuse them as templates or migrate between rooms.

The Neoboard Advent Calendar

The Neoboard Advent Calendar

πŸ”—Using Mastodon RSS feeds in Matrix

cos announces as an amendment to last week's Matrix Live episode

Mastodon can also be accessed using rss feeds by attaching .rss to the end of a user's profile URL or hashtag URL.

For example:

https://mastodon.matrix.org/@matrix.rss
https://mastodon.matrix.org/tags/matrix.rss

πŸ”—Matrix Federation Stats

Aine [don't DM] announces

collected by MatrixRooms.info - an MRS instance by etke.cc

As of today, 10444 Matrix federateable servers have been discovered by matrixrooms.info, 3169 (30.3%) of them are publishing their rooms directory over federation. The published directories contain 21309 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
1bi-vibes.com229
2envs.net234
3codestorm.net255.5
4foster.boutique258
5tomfos.tr275
6girlboss.ceo290
7constellatory.net295
8nerdhouse.io301
9beeper.com306.5
10bark.arf.wf343

πŸ”—That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

To learn more about how to prepare an entry for TWIM check out the TWIM guide.

This Week in Matrix 2024-11-15

By: MTRNord

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Sunsetting the Sliding Sync Proxy: Moving to Native Support

Will L announces

Work on Sliding Sync – which provides a significantly faster and more scalable sync experience in Matrix clients – has moved to focus on native support, and away from the proxy.

The Sliding Sync Proxy on the Matrix.org homeserver will be decommissioned on November 21st, and client support in Element X will be removed on January 17th.

More details for users as well as server and client developers in Matrix.org's latest blog post

πŸ”—First Official Governing Board Meeting

HarHarLinks says

It is Friday TWIMday the 15th of November, and the Governing Board just came out of their first official meeting after the informal one at the Matrix Conference back in September. The focus of this meeting was to define the structure of the Governing Board, so we expect the results will not have an immediate tangible effect outside the Governing Board, but it gives the Governing Board the basic process to enable taking more perceptible decisions.

This includes discussion about how we want to communicate with each other, but we also defined how we vote on actual decisions and some other basic rules for the Governing Board. As a part of that we elected a chair and vice chair for the Governing Board, who are going to help the Governing Board with facilitation tasks. Greg "Gwmngilfen" (chair) and Kim "HarHarLinks" (vice) were elected and are happy to share this post as one of our first actions in this role today. 😁 We also started some subcommittees of the Governing Board, to enable us to work efficiently in smaller groups focussed on specific topics. The rough topics for the initial four committees are Governance, Trust & Safety, Community, and Finances. What their exact scopes are going to be is left as a first task to the respective committees to define along with other bootstrapping, such as electing committee chairs and vice chairs. The set of initial committees is intentionally kept small to remain flexible and open the door for refining them later when we have more experience with how our day to day operations look like. We also discussed defining initial working groups, which would be structured as groups below the committees to fulfil more specific roles and would be the primary way for the Governing Board to include the community. However, we decided to defer that to the committees for now. We got through all the big parts on our agenda but ran out of time before having a formal vote on what communication tools we want to use. We have a great proposal which we are going to vote on asynchronously.

In general we had quite a productive meeting and reached agreements on many topics with clear next steps in other areas. The Governing Board might not have tackled yet the topics you would have prioritised, but it now has an asynchronous voting process and should be able to progress in other areas using the committees.

See you soon with more news from the Governing Board!

πŸ”—Dept of Spec πŸ“œ

Andrew Morgan (anoa) {he/him} [back Nov 5] announces

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:

  • No MSCs were closed/rejected this week.

πŸ”—Spec Update

Once again there has been a flurry of activity on the spec repo itself, with KΓ©vin Commaille continuing to fix up various aspects of the spec and the technical underpinnings of the website itself. They are also writing up spec PRs for recently accepted MSCs, such as MSC2781: Remove the reply fallbacks from the specification and MSC4138: Update allowed HTTP methods in CORS responses.

Many kudos for their continued efforts on advancing the spec!

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Element Docker Demo

Matthew says

Last week I teased https://github.com/element-hq/element-docker-demo on Matrix Live - a two-liner for standing up a Matrix 2.0 stack for experimentation: ./setup.sh; docker compose up.

This week I published a proper walkthrough showing how you can use it for both a local setup with mkcert as well as a federated server setup with letsencrypt, complete with QR login and federated MatrixRTC calling with Element Call. The point is to show just how simple it can be to play with Matrix 2.0 and let folks experiment with the implementations (and help ensure any issues are flushed out before it gets baked into the spec for good!)

Today's Matrix Live: https://youtube.com/watch?v=6iMi5BiQcoI

πŸ”—Dept of Clients πŸ“±

πŸ”—Element X iOS (website)

A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.

Mauro Romito reports

  • Knocking work is still going on, some other UIs have been implemented.
  • Local echoes for media work has made good progress and will be enable in Nightly and development builds
  • Share extension work is now also available in Nightly! Be sure to try it out!
  • Finnish has been added to the available languages
  • The app is now fully supporting XCode 16.1

πŸ”—Dept of VoIP πŸ€™

πŸ”—Element Call (website)

Native Decentralised End-to-end Encrypted Group Calls in Matrix, as a standalone web app

spaetz announces

Given the installation of an element call is still tricky (although there is a demo docker image now, rectifying this), here are my notes on how I installed element call (or rather its backend) on a Debian box using a mix of local services and a docker image: https://sspaeth.de/2024/11/sfu/

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Trixnity (website)

Multiplatform Kotlin SDK for developing Clients, Bots, Appservices and Servers

Benedict announces

I released a new version of Trixnity. It now supports Ktor 3 including an up to 90% performance boost for IO operations.

πŸ”—Dept of Services πŸš€

πŸ”—etke.cc (website)

Your matrix server on your conditions

Aine [don't DM] reports

πŸ”—Synapse Admin Updates

A while back, we at etke.cc announced our Synapse-Admin fork, and this week we're excited to share more new features and QoL changes!

Prevent accidental user overwrites

The Synapse Admin API endpoint for creating new users and updating existing ones is actually a single Create or modify endpoint, that means you could accidentally overwrite an existing user when you don't mean to. This change adds a username availability check to the user create/edit form that will warn you if you're trying to "create" a user with a username that's already taken. If you accidentally ignore this inline warning message, you will see a modal window upon saving which will ask if you really intend to overwrite the existing user or not.

Why not just disable overwriting completely and only allow editing via the proper "edit user" UI? Because overwriting an existing user is the only user-friendly way to reclaim an erased user / MXID, so completely removing this feature is not a good idea!

Allow providing login form details via GET params

This is a small QoL change - now you could bookmark Synapse Admin URL with prefilled username and homeserver, e.g. https://admin.etke.cc/?username=matrixadmin&homeserver=matrix.example.com. Not a big deal, but nice to have.

Automatically check for updates

The Synapse Admin will do the same thing as Element Web by asking for static files in the background (every hour). If the index page is changed, it will show a notification with a button to reload the page - yep, another small quality-of-life improvement

Source code, admin.etke.cc (CDN version), say hi in the #synapse-admin:etke.cc

πŸ”—Dept of Events and Talks πŸ—£οΈ

πŸ”—Fedora launch with Matrix Automation

Adrian says

This week, (basically right now) Fedora is running a Virtual event to commemorate the release of Fedora 41.

This year we're continuing to use Matrix as the chat platform for the event and my Pretix invite bot (https://github.com/fedora-infra/maubot-pretix-invite) has been slowly gaining improvements and has been fairly useful in bulk inviting people from this registration form to the Matrix rooms.

If you're able to sign up before noon Eastern, U.S. time, here is the link: https://rsvp.fedoraproject.org/releases/f41-latam-na/

If not, you can join the live stream on Fedora's YouTube channel or wait for the recordings to come out after the event.

Happy F41!

πŸ”—Matrix in a Podcast

@mcnesium:matrix.org says

Last week a friend and I were invited to join this podcast show to talk about Matrix and what makes it different from XMPP. The show is a rather casual chat and in German, but HarHarLinks suggested to announce it here anyway.

πŸ”—FOSDEM Fringe

HarHarLinks announces

Last TWIM we announced the Matrix Devroom at FOSDEM 2025. Two years ago, the Matrix community started a FOSDEM fringe event: The Matrix Foundation and Community Meetup and BarCamp (what a mouthful!). We are happy to announce to be continuing this series!

Like the last times, the fringe event will take place at the local hackerspace HSBXL hackerspace - but if you were there last time, ⚠️ be aware that they moved to a new location! ⚠️ You can find everything about it at https://hsbxl.be/enter/.

The event will start around noon and run until the evening. The last two times we were incredibly happy to find amazing sponsors that enabled us to provide free drinks and pizza for attendees, and we would like to stick to that tradition! If you are interested in sponsoring the fringe event, be it for pizza, drinks or another idea you have, please approach us on Matrix through the Community Events room, the Foundation Office room or by email at mailto:events-wg@foundation.matrix.org.

Beyond that, watch this space for more FOSDEM news to be announced!

πŸ”—Dept of Interesting Projects πŸ›°οΈ

πŸ”—TARDIS - Time Agnostic Room DAG Inspection Service

Kegan reports

tl;dr - there's a new room DAG visualiser called TARDIS that can do real state resolution.

I've always struggled to properly understand how the state resolution algorithm works. I find it hard to understand the specification, and various blog posts didn't really make things click for me.

With that in mind, I recently spent some time working on a visualisation tool based on a project Matthew first wrote back in 2020 called TARDIS - Time Agnostic Room DAG Inspection Service. The backronym is surprisingly accurate. With this tool, you can step through "debugger-style" events in a room, seeing the shape of the DAG change. Originally this was all it could do, but I knew it could be so much more, so I set about prototyping the improvements I would make to it.

The main thing I wanted to add was the ability to actually perform state resolution on the DAG as it appeared at that point in time. Being able to do this would unlock a number of possibilities:

  • Teaching: example DAGs could be loaded to explain how state resolution really works.
  • Debugging: developers can load existing rooms into TARDIS to debug incorrect room state calculations.
  • Testing: drop the UI and DAGs could be automatically loaded, resolved and asserted that the state at each event is correct, effectively making a server agnostic state resolution test suite.
  • Performance: complex graphs can be repeatedly resolved, and the architecture would allow us to calculate and visualise how the algorithm is walking the DAG to see how efficient it is.
  • Experimentation: any state resolution or DAG changes to the protocol could be visualised.

I wasn't given a lot of time to work on this, but I did manage to achieve the teaching/debugging aims. I didn't manage to add all of the teaching scenarios, so for now there's only ones explaining the various sort orders used in the state res algorithm.

What's more, this is all hosted so you can try it out without needing to install anything.

πŸ”—How it works

TARDIS gets its data from JSON5 files. These files are intended to be hand-crafted, which is why they aren't pure JSON files. It includes a set of preloaded files to explain parts of state resolution. Each file contains a single "Scenario" which includes:

  • The events in the room, already sorted in processing order.
  • Annotations for when TARDIS steps into a given event, if any.
  • Precalculated state at a given event, if any.

The scenario is then processed and rendered using d3-dag, just like Matthew's original prototype. To perform state resolution at the current event, TARDIS extracts the state sets for the event and makes a WebSockets connection to a "shim server". It is the shim server's job to perform state resolution. TARDIS comes with a Synapse shim, which imports the internal packages required to do state resolution, so it is using the same code paths as a real Synapse server. You can independently run a shim server locally, either in a virtualenv or as a docker container.

The magic happens when you press the "Resolve State" button which:

  • Makes a WS connection to the shim server,
  • Sends the state sets for the currently selected event,
  • The shim server asks TARDIS for the event JSON for certain event IDs (this is why it uses WebSockets and not HTTP),
  • The resolved state is returned to TARDIS,
  • The resolved state is shown as green nodes on the graph.

State resolution relies heavily on event IDs, and event IDs are calculated fields. The JSON5 file format allows placeholder fake event IDs e.g $JOIN which are preprocessed into real event IDs. Rather than reimplementing canonical JSON, redaction algorithms, and room version handling in TARDIS, it uses gomatrixserverlib as a WASM package to handle this.

πŸ”—What's next?

Unlocking the ability to automatically test state resolution would be a huge milestone, and complement (pun intended) other server-agnostic test suites I have developed in the past (Complement and Complement-Crypto). The test suite would read a JSON5 file to pull out the test DAG, which would have an additional key which has the assertions for that DAG, automatically talk the WS protocol to the shim server to get the resolved state for each event, and check it matches the assertions in the file. This would make it significantly easier for people to reimplement the state resolution algorithm correctly in non-Synapse homeservers.

Performance wise, the shim server is asking TARDIS for event JSON mid-algorithm. This provides a unique insight into the workings of the algorithm. Whilst the original drawings had the idea of "flashing" the nodes as they are requested, a more useful goal would be to just tally up how many times the shim server asks TARDIS for an event. This would allow TARDIS to visualise algorithmic complexity. We could then have a representative set of "realistic" DAGs and test changes to the algorithm for speed e.g given a DAG of n events, Algorithm 1 requests n and Algorithm 2 requests 2n therefore Algorithm 1 is faster.

πŸ”—Matrix Federation Stats

Aine [don't DM] reports

collected by MatrixRooms.info - an MRS instance by etke.cc

As of today, 10361 Matrix federateable servers have been discovered by matrixrooms.info, 3181 (30.7%) of them are publishing their rooms directory over federation. The published directories contain 21664 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
1girlboss.ceo210
2puppygock.gay234
3bark.arf.wf251
4awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay254
5transgender.ing261
6ncat.cafe324
7nexy7574.uk345.5
8constellatory.net383
9pissing.dev563
10nexy7574.co.uk633

This Week in Matrix 2024-11-01

By: MTRNord

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Matrix 2.0

Matthew reports

Today's Matrix Live: https://youtube.com/watch?v=ZiRYdqkzjDU

We've also announced Matrix 2.0 as now being usable by mainstream users, to complement the keynote from The Matrix Conference - giving an update on all the APIs that will form Matrix 2.0! https://matrix.org/blog/2024/10/29/matrix-2.0-is-here/

πŸ”—The wait is over, videos from The Matrix Conference 2024 are here

Matthew reports

The Matrix Conference talk videos have been published - check them out at https://2024.matrix.org/watch/ and see Josh's round-up of the conference at https://matrix.org/blog/2024/10/29/matrixconf/

πŸ”—Dept of Spec πŸ“œ

uhoreg 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:

Accepted MSCs:

Closed MSCs:

  • No MSCs were closed/rejected this week.

πŸ”—Dept of Servers 🏒

πŸ”—Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element

Till announces

This week we released Synapse v1.118.0. The major thing to be aware of is that Python 3.8 is now end-of-life. As per our Deprecation Policy for Platform Dependencies, Synapse will be dropping support for Python 3.8 in the next release; Synapse 1.119.0.

Otherwise, Synapse 1.118.0 is the first release to support Python 3.13! PostgreSQL 17 is also supported as of this release.

Other highlights in this release include an experimental implementation of MSC4210: Remove legacy mentions, and the ability to set one's display name upon registering via JWT. In addition, there's the usual round of bugfixes and internal changes. See the release changelog for the full details!

πŸ”—Dept of Clients πŸ“±

πŸ”—πŸŽ‰ Exciting News: Introducing Tammy!

Benedict says

We're thrilled to announce the first official release of Tammy! Built from the ground up in Kotlin Multiplatform, Tammy is a new, innovative Matrix Messenger designed for Desktop (Windows, Mac, Linux), Mobile (currently Android, with iOS coming soon), and Web (in Beta). It is built on the robusts Trixnity and Trixnity Messenger SDKs and is Open Source too. Technically it's just a whitelabel Matrix messenger, that can be deeply customized by developers.

πŸ”—Why Choose Tammy?

  • Simple: Enjoy an intuitive UI with a sleek and unobtrusive look.
  • Fast: Experience a smooth and responsive experience.
  • Customizable: Developers can start with a ready-to-use messenger and customize it extensively to meet their specific needs. Just one line of code can reshape Tammy entirely through different configurations!

So give it a try and leave your feedback at #tammy:imbitbu.de - we're very excited to hear what you think!

πŸ”—Commet v0.3

airyz reports

Hello! it's been a while since the last major release, but we have finally released v0.3 of Commet! There is a ton of new features and improvements, so we'll just give the highlights:

  • Threads are now fully supported
  • Drastically improved the performance of the chat timeline
  • Initial support for sub-spaces
  • Encrypted room search

There's a whole bunch more to find, so check out the release on GitHub! That's all for now!

πŸ”—Fractal (website)

Matrix messaging app for GNOME written in Rust.

KΓ©vin Commaille says

😱 What’s that behind you⁉️ Oh, that’s the new Fractal 9 release❣️ 😁 πŸŽƒ

  • We switched to the glycin library (the same one used by GNOME Image Viewer) to load images, allowing us to fix several issues, like supporting more animated formats and SVGs and respecting EXIF orientation.
  • The annoying bug where some rooms would stay as unread even after opening them is now a distant memory.
  • The media cache uses its own database that you can delete if you want to free some space on your system. It will also soon be able to clean up unused media files to prevent it from growing indefinitely.
  • Sometimes the day separators would show up with the wrong date, not anymore!
  • We migrated to the new GTK 4.16 and libadwaita 1.6 APIs, including CSS variables, AdwButtonRow and AdwSpinner.
  • We used to only rely on the secrets provider to tell us which Matrix accounts are logged-in, which caused issues for people sharing their secrets between devices. Now we also make sure that there is a data folder for a given session before trying to restore it.
  • Our notifications are categorized as coming from an instant messenger, so graphical shells that support it, such as Phosh, can play a sound for them.
  • Some room settings are hidden for direct chats, because it does not make sense to change them in this type of room.
  • The size of the headerbar would change depending on whether the room has a topic or not. This will not happen anymore.

As usual, this release includes other improvements and fixes thanks to all our contributors, and our upstream projects.

We want to address special thanks to the translators who worked on this version. We know this is a huge undertaking and have a deep appreciation for what you’ve done. If you want to help with this effort, head over to Damned Lies.

This version is available right now on Flathub.

We have a lot of improvements in mind for our next release, but if you want a particular feature to make it, the surest way is to implement it yourself! Start by looking at our issues or just come say hello in our Matrix room.

πŸ”—Element X iOS (website)

A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.

Doug announces

This week we’ve finished two features that will land in next week’s release candidate:

  • There’s a new advanced setting for Optimised Media Uploads that is enabled by default. This will resize your images and videos for faster uploads and reduced data usage.
  • The app now responds to verification requests when you sign into your account on a different device. Finally!

Additionally we’ve continued to refine the flows for managing your Recovery Key and Key Storage, making them more consistent and easier to understand.

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Trixnity (website)

Multiplatform Kotlin SDK for developing Clients, Bots, Appservices and Servers

Benedict announces

I released Trixnity 3.9 with Matrix 1.12 support and some minor improvements and bugfixes.

πŸ”—Ruma (website)

A set of Rust library crates for working with the Matrix protocol. Ruma’s approach to Matrix emphasizes correctness, security, stability and performance.

KΓ©vin Commaille reports

Ruma 0.11.0 is fresh off the (key)press and includes a lot of work:

  • Implement all changes and new features of Matrix 1.11 and 1.12, like authenticated media and unread markers.
  • A new type was created to facilitate the use of the Content-Disposition HTTP header in the media endpoints.
  • We used to rely on DeviceKeyId in a lot of places where we expected an algorithm:key_name string. Not only was it confusing because the name was wrong in most cases, it also had poor semantic value. To fix that, we created a lot of new types that, used with KeyId, try to validate properly the parts of the string according to their expected types.
  • Unstable support for the simplified sliding sync API (MSC4186) and cancellable delayed events (MSC4140).

The full set of changes can be viewed in the corresponding crates' changelogs (or GitHub releases).

Thanks to all our contributors! If you want to join them to help Ruma grow, the first step is as easy as joining us in #ruma:matrix.org!

πŸ”—Rory&::LibMatrix (website)

.NET 8 matrix bot/client library/SDK

Emma [it/its] reports

Recently, we've held a poll in #libmatrix:rory.gay around source code availability. Due to community interest, we're now hosting read-only mirrors of all Rory&::LibMatrix repositories on Github! You can find the repositories under the Rory-LibMatrix organisation there. We don't provide any guarantees of monitoring those repositories (issues, pulls, ...), but it does open up a new way to contribute: Pull Requests! If you choose to make a pull request via Github, please remember to let us know about them in #libmatrix:rory.gay, or the subproject's own Matrix room, or they might get missed!

Maybe in the future we will set up mirrors on Codeberg aswell, if this proves to be maintainable.

And, as always:

  • The code is available at cgit.rory.gay!
    • All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?
  • Discussion, suggestions and ideas are welcome in #libmatrix:rory.gay (Space: #mru-space:rory.gay)
  • Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let us know, we'd love to hear all about it!

πŸ”—Dept of Services πŸš€

πŸ”—etke.cc (website)

Your matrix server on your conditions

Aine [don't DM] reports

πŸ”—Synapse-Admin Updates

A while back, we at etke.cc announced our Synapse-Admin fork, and this week we're excited to share more QoL changes!

  • Logo and Icon - Synapse Admin got its own icons instead of a "generic" [m]
  • Community room has been created - welcome to #synapse-admin:etke.cc ! not a code change per se, but a QoL improvement for the community nonetheless!
  • Sanitize CSV on import - previously when you tried to use bulk registration feature you had to keep CSV file exactly how it should be, including case, spaces, etc. With this change, even headers like Id or DisplayName will work
  • Extended manifest.json with proper version and whatnot on build - previously manifest.json with version info was generated on CI only, so if you tried to build Synapse Admin yourself, you lost that info. With this update the manifest.json generation moved to the build phase, and the manifest itself was extended for your convenience. Example: https://admin.etke.cc/manifest.json

Do you remember the Visual Customization from the previous announcement? ProTip! you can drag/move the customization window

Source code, admin.etke.cc (CDN version), say hi in the #synapse-admin:etke.cc

πŸ”—Dept of Events and Talks πŸ—£οΈ

saces announces

πŸ”—Matrix User Meetup Berlin

Next Matrix user meetup 6.11.2024, 8 pm @ c-base

Meet other matrix users, chat about Matrix, the rest, and everything else, discuss your Matrix ideas, sign each other in persona, and maybe spice the evening with a good mate or beer.

Every first Wednesday of the month in the c-base at 8pm ('til the next pandemic).

Matrix room: #mumb:c-base.org

πŸ”—Dept of Built on Matrix πŸ—οΈ

πŸ”—Acter (website)

Your social organizing app build on matrix: A secure space to gather, engage and grow your community!

ben reports

It has been while since we send an update to TWIM--because we have been busy onboarding Activists, NGOs and working closely with them to figure out what else is needed. Of course we have also been busy working on the revamp of the App, including the design,but also many features. You can learn more about that in my summary blog post Acter Dragonfly Edition. tl;dr: Completely new UX with cool features, more organizational tools and customization - everything looks cooler and works a lot smoother.

We have also overhauled our website, moved all the different things (news, podcast, documentation) to a single entry point under acter.global. I am particularly happy about the new help center with a global search, the new starting guide and the new extended App features page, which we intend to grow with additional sub-pages going more into detail.

Lastly, with our growing user bases, so grows the workload on the operation. Thus we have opened another jobs position: We are looking for a Matrix App Infrastructure and Support Engineer helping us run the Synapse instance, surrounding services and troubleshoot with users when they face problems. If that sounds interesting to you, apply soon, we will close it when we've found a suitable candidate and quite a few have already applied.

πŸ”—Matrix Federation Stats

Aine [don't DM] reports

collected by MatrixRooms.info - an MRS instance by etke.cc

As of today, 10402 Matrix federateable servers have been discovered by matrixrooms.info, 3173 (30.5%) of them are publishing their rooms directory over federation. The published directories contain 22282 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.it184
2nexy7574.uk186.5
3awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay195
4itzzen.net211
5transgender.ing216
6girlboss.ceo223
7constellatory.net251.5
8puppygock.gay252
9tomfos.tr257
10ipv6.girlcock.systems262

πŸ”—That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2024-10-11

By: MTRNord

Matrix Live

Today's Matrix Live: https://youtube.com/watch?v=b1jJlT2ENT8

Dept of Clients πŸ“±

Extera

OfficialDakari reports

Hello, everyone!

During this week, a few things happened in Extera. Here is what changed:

  • Animations. Now, Extera has some animations in it. Member drawer opening/closing animation or navigating animation.
  • More material design. We made emoji&sticker pack settings use Material Design too.
  • A lot better threads! Threads are now really nearly usable. They now have different routes too.
  • Message menu in material design. Deleting and reporting messages form has Material Design too.

Our server got some changes too:

  • Federation is now happening through Cloudflare WARP.
  • We've got Git instance!

Also, we've started actively working on Extera Music (name is subject to change) - our alternative front-end for YouTube with playlists and a lot of cool things.

Nheko (website)

Desktop client for Matrix using Qt and C++17.

Nico announces

Nothing much interesting to say currently, but one thing might be interesting to Nheko users:

We noticed that http/3 increases the CPU usage of Nheko a lot (by 10-20x!) and makes the connection in general unstable. We use libcurl in the backend and depending on your distribution http/3 might get enabled by default. In my case this meant even when idle Nheko was using 10% or more CPU. The next release will disable http/3 by default for this reason. In my case this brings down CPU usage to 0.5% again, which is a noticeable improvement to battery life.

Why the CPU usage increases this much with http/3 has a multitude of reasons (and isn't libcurl's fault, but more related to how http/3 works as well as some crypto library shenanigans). I won't go into the details there, but feel free to discuss this in #nheko:nheko.im. Specifically we were hoping for http/3 to improve the reconnection logic and make roaming between IPs a better experience. So far the opposite seems to be the case, but if you have any suggestions on what we could improve, they are very welcome!

Dept of Widgets 🧩

NeoBoard Widget v1.20.0 (website)

milton announces

Version 1.20.0 of NeoBoard is a small incremental update following 1.19.1 after a short month with a presentation at The Matrix Conference. This version brings the following updates:

Disable Grid During Presentation

We made the Presentation Mode easier to use by disabling the grid automatically when starting to present, and restoring it after presenting. Of course if you need it, you can still toggle it back on during presentation.

Small Screen Improvements

We also tweaked the bottom toolbars a bit: Some of the less important buttons are now hidden automatically so NeoBoard remains usable even when the available screen space is narrow. Enlarge the window, and they will reappear. πŸͺ„

While we were at it, we also fixed an alignment issue in Safari, so we have the same experience on all platforms.

You can get the full release notes here and here's a reminder that you can always try it now: just add NeoBoard as a widget to one of your rooms by following these instructions.

We invite you to try all of this and would love to get some feedback at #nordeck:matrix.org.

Dept of SDKs and Frameworks 🧰

Elm SDK (website)

A more consistent alternative to the matrix-js-sdk, written in Elm.

Bram announces

Zoooom! 🏎️ The Elm SDK now supports all spec versions, including the new version 1.12!

With this patch update, support now includes version 1.12 - but don't worry, old (even deprecated!) spec versions remain supported. The Elm SDK adapts its communication to whatever your homeserver supports, so you can safely update your Elm library without needing to wait for your homeserver to update. This design makes the SDK nearly trivial to update to the latest spec version - and hence very fast. Zoooom!

Dept of Ops πŸ› 

etke.cc (website)

Your matrix server on your conditions

Aine [don't DM] says

Synapse-Admin: Bugfixes & Improvements

A while ago, we at etke.cc announced our Synapse-Admin fork, and this week we are here with the fork news again.

No significant changes were made this week (however, MAS users will like the-next-big-thing, even tho it's a workaround), this is more maintenance release with small QoL improvements:

Source code

Dept of Bots πŸ€–

communitybot plugin for maubot (website)

wreck announces

quick reminder for the uninitiated: the communitybot plugin is a maubot plugin to aid administrators of communities on matrix! it supports community management controls to make it easy to add new rooms to your Space, track inactive users, redact files or offensive messages in some or all of your rooms, and keep out the ne'er-do-wells.

with the latest update for the communitybot plugin for maubot, you can now have your bot subscribe to public ban lists by having your bot join their room (like the CME banlist, included in the config by default!). when subscribed, the bot will automatically ban malicious/spam accounts when they join any of your rooms. this is read-only functionality, so if you're interested in publishing or defining your own policy lists, you will still be better served by a project like Draupnir.

which begs the question: who should use this? the answer, as well as suggested community structure, are now in the readme. feel free to join #dev:mssj.me to discuss further or get help!

Matrix Federation Stats

collected by MatrixRooms.info - an MRS instance by etke.cc

Aine [don't DM] reports

As of today, 10152 Matrix federateable servers have been discovered by matrixrooms.info, 3118 (30.7%) of them are publishing their rooms directory over federation. The published directories contain 22188 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
1bark.arf.wf174
2conduwu.it218
3tomfos.tr225
4saneke.eu269
5constellatory.net301
6maunium.net307.5
7ncat.cafe307.5
8uwu.zemos.net315
9bi-vibes.com319
10transgender.ing428

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2024-10-04

By: MTRNord

Matrix Live

Today's Matrix Live: https://youtube.com/watch?v=VZTvpGuo9aA

Dept of Spec πŸ“œ

The weekly spec update

Andrew Morgan (anoa) {he/him} announces

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:

Accepted MSCs:

Closed MSCs:

  • No MSCs were closed/rejected this week.

Spec Update

Lots of interesting MSCs came in this week! Note that last week's are also listed as the spec update was skipped.

A swath are looking to improve moderation in Matrix, while others aiming to improve the story around notifications and end-to-end encrypted bridges. There's also been lots of discussion on the hot MSC4133: Extending User Profile API with Key:Value pairs, which can be built upon with spec'd profile fields such as m.timezone (MSC4175).

MSC4208 is the result of splitting out the custom fields portion of that MSC, as it was determined that that portion of MSC4133 needed further discussion before merging.

Finally, MSC4189: Allowing guests to access uploaded media being merged closes one of the final gaps with the authenticated media epic.

Dept of Servers 🏒

Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element

Andrew Morgan (anoa) {he/him} says

This week we released v1.116.0. The highlights haven't changed since our announcement of v1.116.0rc2 last week. See the changelog for the full details.

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 on our issue tracker.

Dept of Clients πŸ“±

Element-Web

tulir announces

My PR for rendering media captions was just merged into element web :3 https://github.com/element-hq/matrix-react-sdk/pull/43

This allows for a caption to be shown next to the media filename by adding support for the changes from MSC2530

Extera Material Design

OfficialDakari says

Last 5 days I was working on Material UI redesign as usual. Here is what changed:

  • Speed dial button
  • Profile edit window
  • Room and space settings
  • floating buttons in room timeline

Also I've brought back sound effects and Project Sekai related auth background. They are now stored locally (P.S.: Hardcoding Matrix Media URLs was the worst idea)

Element X iOS (website)

A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.

Doug announces

This week have have been working on "Identity Pinning Violation Notifications" (TOFU via the Rust SDK), the ability to hide images in the timeline for Trust & Safety purposes and we’ve started exploring what Knocking could look like in the app.

Dept of SDKs and Frameworks 🧰

Rory&::MatrixUtils - General utility suite for Matrix

Emma [it/its] reports

Tiny updates this week :)

A short list of major changes:

  • You can now add sessions with an access token, this opens up usage of RMU to users of homeservers without password login. No more messing with localstorage!
  • Fixed a bug with the policy list editor, that caused state keys to be double URL-encoded. You can now successfully edit and remove policies again!

The "first party" instance is available at https://mru.rory.gay, and is a clientside-only web app! If RMU has provided value in your daily routines or as a one time thing, please do consider donating over at Liberapay!

And, as with all of the other projects:

  • The code is available at cgit.rory.gay!
    • All contributions are more than welcome, be it documentation, code, layout/UI/UX improvements, anything!
  • Discussion, suggestions and ideas are welcome in #mru:rory.gay

Rory&::LibMatrix (website)

.NET 8 matrix bot/client library/SDK

Emma [it/its] says

A few bugfixes and bodges left and right :)

Changes

  • Bots can now load their access tokens from a file! You're welcome, systemd users! πŸ”’
  • Fixed and improved interoperation with tools like Draupnir. (Breaking: don't URL encode your state keys anymore!)
  • Minor work towards packaging & potentially publishing to NuGet! Maybe LibMatrix in your local package repo soon? 🦊 πŸ‘‰πŸ‘ˆ
  • Breaking: Room predecessor support has been removed. Thanks, #foundation-office:matrix.org!
  • Rooms where a name had been set before but subsequently removed, should now correctly pick an alternative name to display. No more "< small void where text is supposed to be >".
  • Made it easier to use custom types when reading events.
  • You can finally add mentions and newlines to messages.

If you want to help out on these topics, please feel free to reach out at #libmatrix:rory.gay! (N.B. Sorry, matrix.org users, the room is currently inaccessible. We hope to have this resolved soon!)

And, as always:

  • The code is available at cgit.rory.gay!
    • All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?
  • Discussion, suggestions and ideas are welcome in #libmatrix:rory.gay (Space: #mru-space:rory.gay)
  • Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let us know, we'd love to hear all about it!

Dept of Services πŸš€

etke.cc (website)

Your matrix server on your conditions

Synapse-Admin Updates

Aine [don't DM] reports

A while back, we at etke.cc announced our Synapse-Admin fork, and this week we're excited to share two major updates (yep, again):

  • Authenticated Media support
  • Options to remove media and redact events on user removal

The former one brings Matrix 1.11 Authenticated Media support to Synapse-Admin

The latter one adds 2 toggles to the user erasure confirmation dialog:

Apart from major changes, a bunch of small changes were made as well:

  • Unify media icons in the sidebar and on user's view page
  • Add proper previews for uploaded images and a download button for non-image uploads
  • Do not block rooms from joining on delete by default (to avoid accidental blocks)

Source code

Dept of Bots πŸ€–

Draupnir (website)

Gnuxie πŸ’œπŸ reports

Draupnir v2.0.0-beta.7 has been released. Ever been told to open /devtools to fix your bot's corrupted or invalid account data? In this release, we are gathering feedback for a new feature called "Safe Mode". If Draupnir fails to start from a recoverable error, Draupnir will start with limited capabilities and prompt you to select a recovery option. You can then use a command to restart the bot.

We'll be iterating "Safe Mode" over the next two weeks and focussing on assisting system admins with diagnosing setup issues. So don't forget to join us in our support room #draupnir:matrix.org and tell us what you think.

baibot (website)

Slavi reports

Since the official announcement of baibot, we've had a few releases (see the changelog) that bring important improvements like:

Rory&::MatrixContentFilter - An extensible, proactive moderation bot

Emma [it/its] announces

Here's a new project we've been working on for a bit now :)

Primary features:

  • Granular access controls
    • Per room configuration
    • Bot-wide or per-room user ignore lists, including per filter configuration
  • Ability to interface with the bot externally (assuming you have an access token for the bot user) - Configuration is hot-reloadable over account data
  • Planned filters:
    • Disallow uploading images (mostly implemented, missing configuration handling)
    • Disallow uploading videos (missing)
    • Disallow posting links (missing)
    • Limit user mentions (missing)
    • Limit message rate (missing)
    • Anything else you may be able to think of! (missing)

As always, to ensure we can keep developing and maintaining these tools, consider donating over at Liberapay!

And, as with all of the other projects:

  • The code is available at cgit.rory.gay!
    • All contributions are more than welcome, be it documentation, code, UX improvements, anything!
  • Discussion, suggestions and ideas are welcome in #mcf:rory.gay (Space: #mcf-space:rory.gay)

Dept of Non Chat Clients πŸŽ›οΈ

Matrix Rooms Search News (website)

Aine [don't DM] reports

It's been a while since we posted MRS updates, so let's start with...

What is MRS?

Matrix Rooms Search (MRS) is a standalone search engine and Matrix Directory server that indexes Matrix servers with enabled federation and published room directory (over federation), after that you can search rooms across whole Matrix Federation either directly from your matrix client app (details), or by using simple REST API of the MRS itself.

What's new?

Authenticated Media is here - now when you browse MRS using REST API (e.g. by using the demo server on matrixrooms.info), room avatars will be fetched by the new Matrix v1.11 Authenticated Media endpoints (old unauthenticated media endpoint is still used as well, so there is a fallback).

And another update - MRS now by default uses both exact match and fuzzy queries, so that should help will searching!

Source code, MatrixRooms.info, and don't forget to say hi in #mrs:etke.cc

Matrix Federation Stats

collected by MatrixRooms.info - an MRS instance by etke.cc

Aine [don't DM] announces

As of today, 10116 Matrix federateable servers have been discovered by matrixrooms.info, 3104 (30.7%) of them are publishing their rooms directory over federation. The published directories contain 21185 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.it222.5
2itzzen.net241
3tomfos.tr246
4ipv6.girlcock.systems270
5awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay277.5
6bark.arf.wf282
7saneke.eu295
8maunium.net296
9puppygock.gay305
10transgender.ing307

#ping-no-synapse

tulir reports

The no-synapse ping room which only allowed echo bots on non-synapse servers has been shut down. It often confused people because pings were still allowed from synapses, only the pongs were non-synapse. The general #ping:maunium.net room remains active.

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2024-09-22

By: MTRNord

Dept of Status of Matrix 🌑️

Josh Simmons (m.org) announces

We had our first Governing Board gathering today at the Matrix Conference in Berlin, with 17 of the 20 members present (4 of which joined remotely)! We got to know each other a little better and discussed many things including Trust & Safety and how we communicate with each other and with the community.

Since this wasn't an official meeting, no votes were taken. The first official meeting of the Governing Board will be taking place soon!

The Governing Board

The Governing Board

Matrix Conference 2024

The Matrix Conference 2024 is over, the videos are being cooked and the slides are being uploaded. We'll be sharing the recordings with you as soon as they're ready.

In the meantime, a big thanks to everyone who attended, spoke, and helped make it happen. We hope you had a great time and learned a lot about Matrix and the community. We hope to see as many or more of you next year!

The Matrix Conference 2024

The Matrix Conference 2024

Thank you to everyone!

Thank you to everyone!

Dept of Spec πŸ“œ

MSC3861: Next-gen auth for Matrix, base on OAuth 2.0/OpenID Connect

Quentin Gliech announces

During the conference I hacked together an interactive client implementation guide for MSC3861: Next-gen auth for Matrix, base on OAuth 2.0/OpenID Connect

https://areweoidcyet.com/client-implementation-guide/

This MSC has been greatly improved over the last few weeks, so I highly recommend checking it out!

The weekly spec update

Andrew Morgan (anoa) {he/him} announces

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:

  • No MSCs were closed/rejected this week.

Spec Updates

Hello from the Matrix Conference 2024! richvdh, matthew, tulir, travisr, kitsune and I (anoa) are around - come find us at the conference if you want to talk spec!

And a final 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!

Editors Note: It already was Matrix Conference! The talks about "Authenticated media & how to ship spec features" and "MSC Process Guidance" already happened and you can find the MSC written during the conference as MSC4197. Thanks to Matthew there even has been an implementation.

An MSC being written live at the Matrix Conference 2024

An MSC being written live at the Matrix Conference 2024

Dept of Bridges πŸŒ‰

Parsee - the jealous XMPP-Matrix bridge (website)

LDA reports

Haven't worked that much compared to the last three months(kinda am at a somewhat important year with school), but I've fixed up some issues and started adding PEP avatars this week, with VCard-based ones coming right up later, and got up static CI builds with some experimental MbedTLS to replace the previous OpenSSL/LibreSSL in that regard(bringing in binaries in the ~2MBs compared to the previous 5(!)). Will probably be working on more important user concerns, mostly involving the syntax for bridged users/MUCs and actual documentation for regular users, though except slightly less time allocated to the project, as I said, I got school, and a slightly more interesting project I have to contribute to that has already gone pretty far!

Megabridge

tulir announces

This month's mautrix releases include the first megabridge releases of the Meta and Google Messages bridges, as well as a new Google Voice bridge. On the non-bridge side, I started a new project for some reason: Meowlnir. Read the full post at https://mau.fi/blog/2024-09-mautrix-release/.

Dept of Clients πŸ“±

Element X iOS (website)

A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.

Mauro Romito says

  • has now officially launched with 1.8.3
  • we finally have a registration flow for matrix.org, and a way to deactivate your account
  • Simplified Sliding Sync is now fully supported, and we allow users to migrate to it if their homeserver supports it.
  • Message pinning is not released yet, but will be soon, since its now in its testing state!
  • Check out more about EL-X at the matrix conference: https://cfp.matrix.org/matrixconf2024/talk/H3MCSB/

Dept of Non Chat Clients πŸŽ›οΈ

WorkAdventure is now a Matrix client

David NΓ©grier says

We are thrilled to announce that WorkAdventure β€” the open, decentralized platform for building 2D virtual offices and events β€” is now also a Matrix client! Every WorkAdventure user will now have a Matrix account automatically created.

Today's Matrix Live: https://youtube.com/watch?v=UGHK63mQTz8

This is a huge win for WorkAdventure users. Even when someone is not connected to WorkAdventure, they can still be contacted through a Matrix client like Element X on a mobile phone, directly from WorkAdventure.

We believe this will also be a significant benefit for the Matrix community, as it opens a new use case for Matrix that makes it stand out from other messaging apps.

Technical details

From a technical point of view:

  • The client is developed in Svelte JS.
  • Provides an OIDC-aware connection to the Matrix server.
  • Supports end-to-end encryption.

I will present the new client β€”including insights on how we developed itβ€” at Matrix Conf 2024 on Saturday, September 21st.

Read our blog article for the release.
Test it yourself!
Source code on GitHub

Matrix Wrench v0.14.3 (website)

Matrix Wrench is a web client to tweak Matrix rooms.

Christian Paul (jaller94) reports

Tweak your Matrix rooms in style. You can now choose your own UI colors in Matrix Wrench.

If you're working with Live Location Sharing (MSC3488, MSC3672), you may want to debug it using Matrix Wrench. It supports a static string, the browser's Geolocation API, and GPX files as input. When selecting a GPX file, it replays the recorded track in real time."

Matrix Wrench's changelog

The new interface for locations in Matrix Wrench

The new interface for locations in Matrix Wrench

Dept of SDKs and Frameworks 🧰

Trixnity (website)

Multiplatform Kotlin SDK for developing Clients, Bots, Appservices and Servers

Benedict says

I'm thrilled to announce the release of Trixnity 4.7. It basically adds support for Matrix 1.11, ensuring that Trixnity stays up-to-date with the latest protocol standards. Additionally, users now have the ability to cancel message sending while the media of a message is being sent. There are several internal improvements and some bugs have been fixed in this release as well.

Matrix Dart SDK (website)

Matrix SDK written in pure Dart.

td reports

meep moop!, breaking change update! We released v0.33.0 and here's a quick rundown from 0.32.0:

  • v1.11 matrix spec has now landed via out autogen!
  • authenticated media support
  • cache well known for better offline support
  • database, race conditions and other fixes!

If you are at the matrix conf do join the matrix dart sdk talk for more technical details about the sdk.

That's it for now, until next time! bye byee πŸ‘‹

Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)

Emma [it/its] reports

It's been a few weeks since I've last posted an update, hasn't it?

Changes

  • Support for authenticated media has been implemented. You should be able to load images again!
  • Single HTTP client implementation has been merged, network connections should now be more responsive!
  • Unit tests have been fixed, this should help catch bugs more reliably to ensure stability
  • JSON canonicalisation code has been merged, which passes all tests from spec. If you find an incorrect case, please do submit patches to add them to the unit tests!
  • Fixed a bug where joining a room that allows viewing history without joining would fail.
  • Fixed a bug with sending state events that contain special characters in state keys (eg. /). Bots & clients no longer need to work around this.
  • Added a function to the base Policy content class to calculate a Draupnir-compatible state key, this allows moderation bot authors to easily be in line with Draupnir's state keys :)
Pending changes
  • Add some more utility functions to make developer UX more friendly.
  • Reduced log output so you can follow what's actually going on.
  • Fixed a bug that causes sync to break completely due to trusting event schemas too much.
Changes on ModerationClient's LibMatrix branch
  • Support for storing sync data offline, allowing users to not do an initial sync every time the app is reloaded
  • Fixed some bugs with how sync changes are processed. Messages should no longer disappear
  • Optimised sync processing, didn't benchmark but it's noticeably faster for most users. Maybe by a factor of 20x?
  • Added support for a whole load of Synapse admin API's. Client authors can now include support for deactivating users, managing the media repository, and so much more!
  • Partial support for Custom profile properties (MSC4133), though this will land in main branch independently!

Project interests

  • Licensing: Have you been put off by our choice of AGPL v3? We'd love to hear about it! Is there a better license we could use? Do you have suggestions on how we could maybe implement exemptions?
  • Packaging & testing: We would like to get a CI pipeline and packaging going. Are you experienced with Git? We'd love to have you on board to ensure that our packages are as easy to install & use as possible!
  • Public code browsing accessibility: Would it help to set up read-only GitHub/GitLab/Codeberg/Forgejo mirrors? Would you be interested in contributing if these existed?
  • E2EE: Do you have experience with Matrix' E2EE? We'd love to hear from you in terms of implementing it in LibMatrix!

If you want to help out on these topics, please feel free to reach out at #libmatrix:rory.gay! (N.B. Sorry, matrix.org users, the room is currently inaccessible. We hope to have this resolved soon!)

RE: RE: Funding

Liberapay has been fixed! Donations help me pay my bills, and help me justify working on LibMatrix!

And, as always:

  • The code is available at cgit.rory.gay!
    • All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?
  • Discussion, suggestions and ideas are welcome in #libmatrix:rory.gay (Space: #mru-space:rory.gay)
  • Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let us know, we'd love to hear all about it!

Dept of Ops πŸ› 

Rory&::MatrixUtils - General utility suite for Matrix

Emma [it/its] reports

Lots of tools have been added, updated or reworked since the original post back in May!

A short list of major changes:

  • A general tool list has been added, as well as a Labs section! Visit your nearest RMU instance to learn all about them!
  • Policy list editor can create new policies (even in bulk!, though beware, bulk addition is still very much in beta, "works but no guarantees")
  • Bulk writing of bans via Policy List Editor has deprecated the "Mass CME Ban" tool, which had been written to cover a very specific use case. This opens up the tooling for a lot more users, especially when dealing with spam waves!
  • Partial support for the concept of authenticated media, though I'd like to raise a severe epilepsy warning!
  • Lots of stability and improvements due to upstream Rory&::LibMatrix changes and improvements
  • Some tools have seen a 60%+ performance improvement! (Policy List Editor mainly)
  • Membership history viewer is now more informative about what actually changed, enabling more uses for the tool
  • Joining a space's children is now recursive

The "first party" instance is available at https://mru.rory.gay, and is a clientside-only web app! If RMU has provided value in your daily routines or as a one time thing, please do consider donating over at Liberapay!

And, as with all of the other projects:

  • The code is available at cgit.rory.gay!
    • All contributions are more than welcome, be it documentation, code, layout/UI/UX improvements, anything!
  • Discussion, suggestions and ideas are welcome in #mru:rory.gay

A demo of the new policy editor features

Dept of Events and Talks πŸ—£οΈ

Talk about Cryptographic Key Infrastructure in Matrix

Sumner Evans says

I gave a talk about Cryptographic Key Infrastructure in Matrix at the Matrix Conference on Saturday.

I wrote a companion article, which you can read on my blog.

Matrix Federation Stats

Aine [don't DM] announces

collected by MatrixRooms.info - an MRS instance by etke.cc

As of today, 9926 Matrix federateable servers have been discovered by matrixrooms.info, 3064 (30.9%) of them are publishing their rooms directory over federation. The published directories contain 22153 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
1fost.re170
2conduwu.it235
3nerdhouse.io268
4saneke.eu296
5bi-vibes.com311
6catboyindustries.co337
7puppygock.gay379
8rory.gay401.5
9doctoruwu.uk403
10codestorm.net409

#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
1fost.re86
2conduwu.it92
3transgender.ing164
4bi-vibes.com164.5
5saneke.eu178.5
6nerdhouse.io181
7uwu.sulian.eu216.5
8codestorm.net223.5
9inu.is254
10vengeful.eu258.5

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

❌