Matrix Live

No Matrix Live this week as Thib's away. Tune in next week though - maybe he'll do two!

Dept of Spec 📜

Andrew Morgan (anoa) 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

Matrix v1.7 has been given a release date of May 25th, right before the next TWIM! Expect a matrix.org blog post with all the details on the day.

Leading up to the release we've seen a number of great spec PRs appearing and being merged! Thank you to everyone for writing them (saving the SCT some time!) and to other reviewing on commenting. It's a huge help and the spec feels like it's chugging along at a blistering pace!

Random MSC of the Week

The random MSC of the week is... MSC2213: Rejoinability of private/invite-only rooms!

This MSC adds the ability for users who have previously joined a room to rejoin again. Typically this isn't desired in a public room setting, but it does specifically make sense in the case of a DM that you've left and want to return to without the other user needing to invite you. This case has specific implications for cases where there could be only ever one room between two users. Being able to rejoin it if the other user has disappeared is key!

Outside of the DM use case, this functionality can mostly already be achieved by using restricted rooms, where users of a given space/another room can always join your room. However, it would be nice to have the flexibility of allowing certain users to rejoin a room without needing another room to serve as proof of membership.

Is this something you're interested in? Do you have additional use cases? Feel free to check out the MSC and comment with your thoughts!

Dept of Clients 📱

Fractal (website)

Matrix messaging app for GNOME written in Rust.

Kévin Commaille says

Fractal 5.beta1 is out!

Fractal 5.beta1 is the first beta release since the rewrite of Fractal to take advantage of GTK 4 and the Matrix Rust SDK. It is the result of over two years of work.

New features since Fractal 5.alpha1:

  • Joining room by ID, by alias or with a Matrix URI
  • Creation of direct chats
  • Sending and displaying read receipts, read markers and typing notifications
  • Notifications on new messages
  • Highlight messages with mentions
  • Added media file history viewers in the room details, thanks to our GSoC intern Marco Melorio
  • Displaying the other user's avatar as a room avatar for direct chats

Of course, there are a also a lot of less visible changes, fixes and translations thanks to all our contributors, and our upstream projects.

As the version implies, this is still considered beta stage and might trigger crashes or other bugs but overall should be pretty stable. It is available to install via Flathub Beta, see the instructions in our README.

The GNOME 44 runtime used by the beta version Flatpak was shipped with a GTK version that has a regression which messes with room order in the sidebar: some rooms can appear twice and some rooms are missing. This is a known issue so there is no need to report it, there is nothing for us to do but wait until the fix is backported and shipped in an update of the GNOME runtime. In the meantime, the nightly version is unaffected by that.

A list of blocking issues for the release of version 5 can be found in the Fractal 5 milestone on GitLab. All contributions are welcome !

FluffyChat (website)

Krille announces

Here's a quick rundown of what's been happening in the Fluffy world over the past week:

📱 Android:

  • Updated minimum SDK version from 16 to 19. With the latest Flutter upgrade this was necessary. So FluffyChat will no longer be installable on Android 4.3 and below.

🔧 Miscellaneous:

  • Added missing blockquote style.
  • Cleaned up unused translations.
  • Various code clean-ups and maintenance tasks.

🔄 Refactoring and Updates:

  • Refactored Flutter Matrix HTML
  • Updated fonts for improved visuals.
  • Leveraged DateTime for accurate weekday localization.

🐞 Bug Fixes:

  • Fixed render overflow caused by long file names.- Improved error reporting for critical issues.

💡 Exciting New Features:

  • Mute notifications from chat groups with a simple toggle.

🔧 Maintenance and Dependency Updates:

  • Streamlined codebase by removing unnecessary dependencies.
  • Updated dependencies for enhanced performance and security.
  • Enhanced release curl calls for better error handling.
  • Updated translations (thanks to all translators)

We are working hard to make the next release possible to bring these changes to all users soon. Stay tuned <3

Ement.el (website)

Matrix client for Emacs

alphapapa says

Ement.el, a Matrix client for the GNU Emacs Lisp machine and text editor, has been released at version 0.9. Changes since the last release include:

Additions

  • Option ement-room-timestamp-header-align controls how timestamp headers are aligned in room buffers.
  • Option ement-room-view-hook runs functions when ement-room-view is called. (By default, it refreshes the room list buffer.)
  • In the room list, middle-clicking a room which has a buffer closes its buffer.
  • Basic support for video events. (Thanks to Arto Jantunen.)

Changes

  • Using new option ement-room-timestamp-header-align, timestamp headers default to right-aligned. (With default settings, this keeps them near message timestamps and makes for a cleaner appearance.)

Fixes

  • Recognition of certain MXID or displayname forms in outgoing messages when linkifying (aka "pilling") them.
  • Unreadable room avatar images no longer cause errors. (Fixes #147. Thanks to @jgarte for reporting.)
  • Don't error in ~ement-room-list~ when no rooms are joined. (Fixes #123. Thanks to @Kabouik and Omar Antolín Camarena for reporting.)
  • Enable member/room completion in compose buffers. (Fixes #115. Thanks to Thanks to Justus Piater and Caleb Chase for reporting.)

Feel free to join us in the chat room: #ement.el:matrix.org.

Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

kittykat reports

  • Element Android 1.6.0 has been released in the beta channel, it is now using the Crypto Rust SDK. It will be rolled out slowly (currently 5%). We are monitoring the deployment and gathering feedback. The production release will only happen after the rollout and might contain any needed fixes
  • We’ve also had some improvements to the Rich Text Editor, especially to mention slash commands.

Element X Android (website)

The next generation of Element on Android! Come talk with us in #element-android:matrix.org!

kittykat reports

  • The team is working on:
    • Adding invite users to room
    • Roomlist context menu (which will include settings and leaving the room)

Element X iOS

Ștefan says

This has been a very exciting week for Element X iOS with our second ever public release seeing the light of day. The change log is huge and the app is better than ever so do please join our public testflight if you haven't already. We now have room and member details, media uploading, animated gif support, user blocking, system notifications, room leaving and many many more. Feel free to also join our public room

Otherwise this week we have been focusing on:

  • custom rendering for different reply room message types in the timeline
  • background app refresh support
  • read receipts
  • inviting people to rooms
  • creating new rooms
  • and last but not least: bug fixes, general stack cleanup and architectural improvements

Dept of SDKs and Frameworks 🧰

Elm SDK (website)

Bram reports

Sometimes, development isn't about writing code, it's about looking ahead and planning! In the past three weeks, I've tried to figure out how filters work combined with endpoints like /sync, /messages and /context - and it turns out I couldn't find any straight answers!

So I wrote a whitepaper in the Elm SDK repository on the inconsistencies and where the spec is unclear (to me, at least). I hope you're willing to look into it as I might open up an MSC soon where I request to be more specific about filters and the endpoints.

Read the whitepaper here, and please give me your feedback and/or corrections!

matrix-scala (website)

cheb reports

I've developed a rudimentary Matrix-Library for Scala for akka, for distributed async systems. The underlying code is actually automatically generated from the specification, with strong typing, automatic JSON (de-) serializiation and a rudimentary client provided. It features the entirety of the client-server API. This is achieved via a custom code-generator. This library provides just enough stuff to easily build a fully fletched client. A more high-level client is in development right now. Encryption will be hard, but will hopefully be implemented via JNI in the foreseeable future.

This is part of Germany's effort to move hospitals messaging systems to the Matrix protocol.

In case you want to check it out: A prebuilt is also provided https://github.com/UMEssen/matrix-scala/tree/main

Trixnity (website)

Multiplatform Kotlin SDK for Matrix

Benedict announces

Trixnity got its first big external contribution in version v3.6.2!

features:

  • added support for Android room database. Thanks to Jon Poulton!

bugfixes:

  • allow parallel use of Okio media store

Dept of Bots 🤖

Trinity (website)

bnjbvr reports

Matrix bots in Rust and WebAssembly. If you're interested to follow the project, feel free to join #trinity:delire.party or get the code on Github.

Since last time, we've upgraded to the latest version of wasmtime, wit-bindgen and cargo-component, and even found a bug in the toolchain! Thanks to the Bytecode Alliance folks for helping with a workaround.

We've also converted all the bot commands so they make use of the simpler libcommand API, and thanks to that, we could add support for emoji reactions easily. Now the bot will report success by adding 👌 annotation to the (human) request.

The bot will also report its presence as disconnected as soon as the program exits (and automatically mark itself connected when it gets back, but that part is thanks to the Rust SDK 💜).

Dept of Events and Talks 🗣️

Matrix Community Summit 2023 (website)

Christian Paul (jaller94) reports

To follow up on the overwhelmingly successful conference last year, we're planning a second Matrix Community Summit in Berlin. We expect this to have 3 days of activities.

  • Thu, 21st Sep: BarCamp day (attendees pitch topics and vote for which to discuss)
  • Fri, 22nd Sep: Conference day
  • Sat, 23rd Sep: Conference day

The website and Call for Presentations is being worked on. Expect both to be announced here in the following weeks.

This event will take place in Berlin, with the most likely location being the one from last year: The famous hacker space c-base. If you know any place more suited for a conference, please contact us. https://matrix.to/#/#matrix-community-summit:c-base.org

Your Matrix Salon Berlin

Dept of Interesting Projects 🛰️

Beepberry (website)

Eric Migicovsky announces

I announced a little side project yesterday: Beepberry - a portable e-paper computer for hackers, designed for chatting on Beeper (universal messaging app built on top of Matrix). My day job is running Beeper, but I will always have a soft spot for building hardware (I was the founder of Pebble).

I wanted to create a ‘weekend’ device that would let me stay in touch with friends and family, without the distractions of a full smartphone. I imagined a tiny, hackable e-paper screen with a physical keyboard, powered by a Raspberry Pi, that I could use to chat around my home…and do pretty much nothing else.

Before Matrix, the idea probably would not have gone anywhere. Most chat apps do not have an API, making it practically impossible to hack something like this together.

I partnered with sqmfi and they’re starting to take pre-orders at https://beepberry.sqfmi.com for the first batch. It’s $79 (or $99 including a Pi Zero). Specs: Sharp Memory LCD (same display tech as in Pebble!), Pi Zero (BT/WIFI), physical keyboard, 2000mAh lipo.

On top of being an amazing chat device, it’s basically an e-paper Cyberdeck that fits in your pocket. It’s a ton of fun to hack on. Keep in mind - THIS IS NOT A REAL FINISHED PRODUCT. It’s basically a devkit.

More info in the blog post: https://blog.beeper.com/p/beeper-x-sqmfi-beepberry, or join #beeper-general:beeper.com

Here's what it looks like running a slightly customized version of gomuks: https://www.youtube.com/watch?v=fIgzybDcvYk

If you are a hacker and want to apply to get one early, fill in this form after ordering.

NeoBoard (website)

Dominik Henneke reports

We are pleased to announce the NeoBoard — an open-source collaborative whiteboard widget for Matrix! The NeoBoard is an ideal tool for creating and sharing content, conducting presentations, and collaborating with colleagues or friends. All data is stored as Matrix events within the Matrix room, leveraging Matrix's native end-to-end encryption, decentralization, and data privacy features.

The widget uses CRDT documents (conflict-free replicated data type) and WebRTC to provide a seamless and fast editing experience. It is used in the German public sector and is now available to anyone looking for a powerful and secure way to collaborate.

The NeoBoard is the latest widget from Nordeck, which we have been developing behind the scenes in the past months, and we're excited to finally share it with the Matrix community. If you have any questions, reach out to us at #nordeck:matrix.org.

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