Matrix Live

Dept of Status of Matrix 🌑️

Thib (m.org) says

Don't forget that Matrix will be in full force @ FOSDEM:

  • The CfP for the Matrix Devroom closes on Sunday, December 1
  • We already have quite a few volunteers to help us with the booth, but we're always looking for more hands! People who sign up before December 15 are entitled to a limited edition t-shirt :)
  • Two organizations have already shown their commitment to the community by offering to sponsor the Fringe Event right before FOSDEM. Pizzas and drinks will be covered, but if other organizations want to sponsor too we can work on more opportunities together!

Dept of Spec πŸ“œ

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

  • No MSCs were accepted this week.

Closed MSCs:

Spec Updates

The SCT has been spending a lot of its time doing the normal review function, ensuring spec PRs and MSCs get the review they need to move forward. This is largely expected to continue for the rest of the year, with a spec release planned for early/mid-December. Watch this space for updates there :)

The SCT is also taking an administrative break for the holiday season: reviews will continue, but updates in the SCT Office may be less frequent over the next month. Specifically, the Weekly Pings are on pause for next week (December 3rd, 2024) and December 15th, 2024 until January 8th, 2025. If you have something for the SCT to review or consider in future pings, let us know in the SCT Office - we'll pick it up as part of our normal work.

Dept of Bridges πŸŒ‰

mautrix-bluesky

tulir reports

Since Bluesky is cool now, I made a Bluesky DM bridge: https://github.com/mautrix/bluesky

matrix-hookshot (website)

A multi purpose multi platform bridge, formerly known as matrix-github

Half-Shot reports

Hookshot 6.0.0!

Howdy folks! It's been a while since we announced a Hookshot release but there is finally a new one, and it's got a decent chunk of Interesting Things in it πŸ‘€.

Hookshot 6.0.0 ( / 6.0.1) is now out and breaks new ground:

  • πŸ”’οΈ Support for encrypted rooms is now considered stable πŸ₯³.
  • πŸ•οΈ You can now set an expiry time on incoming webhooks, so if you want a short lived webhook then you can easily configure that from either a bot command or widget. There are a bunch of config options for fine tweaking too. See the docs for more information.

You can read up on the details for encryption support here but we're broadly happy to say that it should work for most people. Hookshot includes some full integration tests to ensure that we do not break support for encryption in the future, so we're quite happy with how this has landed.

Finally, we're sunsetting support for Node 20 and bumping our supported versions to Node 22+. This is in line with our policy of only supporting the Active LTS.

As ever, please come chat to us in #hookshot:half-shot.uk if you encounter any issues.

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

Doug reports

  • We’ve published releases of 1.9.6 and 1.9.7 on GitHub with 1.9.6 available on TestFlight but have decided to delay the App Store release due to a few hiccups around mxc URLs. We’ve fixed these today, so expect a new 1.9.8 release to land on TestFlight next week.
  • 1.9.8 includes the new Share Extension which supports sending an image, video, file, URL or plain text directly to a room/DM. We have also enabled local echoes for media uploads which we’ve been testing for the last couple of weeks and has made a huge difference in how fast the app feels.
  • The implementation for sending/editing/removing media captions was finished this week, which will also be available in 1.9.8.
  • Knocking on a room is implemented for the external user. We’re now focussing on showing these to the relevant room members to accept/reject.
  • Exploration has begun for showing all Media/Files within a room.
  • Bonus update for Element iOS: We’ve fixed a bug when resetting cross signing, it will be available in 1.11.21 scheduled to hit TestFlight on the 10th.

Element X Android (website)

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

benoit announces

  • We are making progress on knocking rooms (AKA ask to join). The release is postponed for a few days until we fix some remaining bugs.
  • We are starting to work on the media viewer: we will have a gallery and it will be possible to swipe left and right to navigate between media items.
  • Captions are getting some new feature: new action to "Edit", "Copy" and "Delete" the caption Also they will be displayed in the media viewer.

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

Messageflag

forestix reports

Messageflag is an unread message indicator for Linux desktops, designed to be unobtrusive and relatively lightweight. I built it in response to the memory usage and disk writes generated by my Matrix and email clients even when I'm not actively using them. It displays an icon in my desktop panel when new messages are waiting, allowing me to see at a glance when I have new messages without having to keep those apps running all the time.

A few notable features:

  • Handles multiple accounts concurrently
  • Can play a sound when new messages arrive
  • Can use the Scroll Lock light like an indicator icon (X11 sessions only)
  • Supports Matrix and IMAP email accounts
  • Includes a verify-by-fingerprint tool for Matrix sessions/devices
  • Desktop agnostic
  • Relatively low memory usage
  • Minimal disk writes (good for low-power machines running on SD cards)
  • Few dependencies (all available in Debian-based Linux distros)

The project lives here: https://codeberg.org/forestix/messageflag

Dept of SDKs and Frameworks 🧰

libQuotient (website)

A Qt5 library to write cross-platform clients for Matrix

kitsune says

The first maintenance release in 0.9.x line - version 0.9.1 - is here. 0.9.0 came out somewhat rough, with a few bugs and regressions found early on, which this release fixes. Details (and the Git tag) are, as always, at https://github.com/quotient-im/libQuotient/releases/tag/0.9.1

Dept of Services πŸš€

Synapse Admin

Aine [don't DM] announces

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

User Badges

Previously we've introduced the concept of appservice-managed (or system-managed) users, plus Synapse had user types for a while now, so we decided it's time for... emojis! Basically, on user avatars, you may notice a small badge with an icon and tooltip that shows you what's this specific user's role is. πŸ§™β€ You (Admin) can see something like πŸ›‘οΈ System-managed (Bot) or πŸ‘€ Regular User. Documentation

Room Avatars

Rooms have avatars, yes. Synapse Admin now aware about that 😁

Everything else

This release is big, and apart from new features described above, plenty of other changes were added as well:

  • Migrate config away from localStorage
  • Fix localization in tables' customization menu (Visual Customization / Inspector mode)
  • Fix German translation (thanks Sky !)
  • Add the missing "Generate password" button to the new user form
  • Fix password's helper text (correctly handle all 3 cases: system-managed user, update password, create a new password)
  • Add missing translations for the "Generate password" button and password's helper texts
  • Use the first letter of the displayname / name / id as a default avatar (when there is no image)
  • Refactoring

Additionally, Synapse Admin has been added to AlternativeTo

Source code, admin.etke.cc (CDN version), and don't forget to say hi in the Synapse Admin

Dept of Bots πŸ€–

NioBot

nex (she/it) reports

Hello all! About time I got around to writing a post for TWIM. For those of you writing bots for Matrix, especially using python, and you haven't heard of us, this might interest you: NioBot v1.2.0 has been released! Regarding this release in particular, you really should read the changelog - so much has changed since the previous versions that including them all in this twim would likely make you fall asleep before you could finish reading it.

If you haven't heard about NioBot before, NioBot is a bot-focused library built on top of matrix-nio. The project was started as I felt the need to have a reusable library to cutdown on boilerplate across my bots, but I decided that it'd be a better idea to just have a generalised bot framework that anyone could use for any sort of bot. NioBot comes feature packed with all of the things you need to make a functional bot, without you needing to do any of the repetitive and sensitive behind the scenes. NioBot takes care of all of the parsing, internal functionality, utility, and stateful management, so you can focus on writing high quality commands, rather than worrying about the rest. If the below code sample tickles your fancy, feel free to check it out with some of the links below!

import niobot

client = niobot.NioBot(homeserver="https://matrix-client.matrix.org", user_id="@example:matrix.org", command_prefix="!", owner_id="@human:matrix.org")

@client.command()
async def hello(ctx: niobot.Context, *, user: str):
    """Says hello to the given user (or other string)"""
    await ctx.respond(f"{ctx.message.sender} says hello to {user!r}!")

client.run(access_token="foobar")

Contact us here: #niobot:nexy7574.co.uk | GitHub: https://github.com/nexy7574/nio-bot | Documentation: https://docs.nio-bot.dev/v1.2.0/

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

Matrix User Meetup Berlin

saces says

Next Matrix user meetup 4.12.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 Interesting Projects πŸ›°οΈ

Matthew announces

TARDIS got a bunch more layout refinements, and now does basic balancing of two-way forks to make them prettier and easier to read

Matthew announces

While we're talking about bluesky - there have been lots of discussions recently about why Bluesky should use Matrix for its DMs (perhaps using Pseudo IDs to support DIDs, layering Matrix over atproto, or expressing the Matrix CS or even SS API as an atproto lexicon, etc).

In an ideal world, Matrix (or a vendor like Element) would have the $ to work on this fulltime as next-gen R&D, much as we implemented Cerulean back in 2020 as our proposal to Twitter for building bluesky on top of Matrix. Right now, though, this will only happen unless someone in the community steps up to have a go at it (or explicitly puts down money to fund it).

So: consider this a formal call to arms to anyone in the Matrix community who's excited by bluesky's mainstream decentralisation success to figure out and contribute a proposal & demo for using Matrix to power E2EE DMs in atproto! I've spoken to the bluesky team about it, and they've made it clear that they don't have much/any bandwidth to support from their side right now (unsurprisingly, given the rate at which they're scaling). However, they also haven't decided how to do E2EE DMs yet, so there's no harm in showing some code and making a proposal!

There's a huge range of different possible architectures here, which could include one or more of:

  • Taking rnmatrix.com (or similar) and chucking a RN matrix client into https://github.com/bluesky-social/social-app
  • Supporting did:plc's in Matrix as identifiers (3PIDs or a MSC4014 Pseudo ID mapping of some kind), and then running a homeserver alongside ATproto
  • Using linearised matrix to shim data in ATproto to Matrix CS API (if ATproto supported private data)
  • Deeplinking from bsky to a matrix client for E2EE DMs (pretty sure this wouldn't be acceptable UX for bsky tho)
  • E2EE-capable bridging between Matrix and ATproto of some kind
  • Doing any of the above using MLS-matrix from arewemlsyet.com rather than Olm/Megolm
  • Doing server-to-server bridging to expose an ATproto PDS as Matrix S2S API
  • Expressing (some of) Matrix's CS API as an ATproto lexicon, and focus on surfacing existing public unencrypted data on ATproto as public Matrix chatrooms? (and then add E2EE later)?
  • Same, but using Matrix's SS API instead?
  • etc. etc. etc.

Matrix Federation Stats

Aine [don't DM] announces

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

As of today, 10519 Matrix federateable servers have been discovered by matrixrooms.info, 3187 (30.3%) of them are publishing their rooms directory over federation. The published directories contain 21096 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
1awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay178
2foster.boutique188
3conduwu.it211.5
4isekai.rocks215
5tomfos.tr217.5
6girlboss.ceo237.5
7codestorm.net287
8uwu.zemos.net296
9transgender.ing367.5
10uwu.zemos.net:8446396

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.

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