Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierMatrix.org

Call for Proposals for the Matrix Conference

Par : Thib
12 juin 2024 à 15:15

The Matrix.org Foundation is happy to launch the first Matrix Conference, this September 19th to 22nd in Berlin, Germany, at Mitosis Labs!

Building on the success of the Matrix Community Summit, the Foundation is joining forces with the Summit team to open the conference to wider audiences. This is the event that policy makers, public and private sector leaders, open source enthusiasts, and technologists attend to share knowledge and learn what’s next in the decentralised and secure communications sector.

This is THE gathering place for hackers, project managers, digital sovereignty leaders and innovators. With several tracks covering everything from sovereignty & collaboration in the public sector to digital rights and advocacy, all profiles will find content for their interest. Outside of the tracks there will be plenty of time and space to get to know others from the ecosystem and exchange ideas.

The conference will happen from September 19th to 22nd at Mitosis Labs, in Berlin.

  • Thursday 19 will be a BarCamp: an informal workshop-like day where attendees can join, pitch a topic they want to discuss, and vote for topics they have an interest in. This event, taken from and organised by the Community Summit team, is the ideal place to warm up for the conference and meet others in the ecosystem.
  • Friday 20 and Saturday 21 will be the two core conference days. With several tracks on a variety of topics like Matrix in the public sector, Trust & Safety, interoperability, data sovereignty, performance, and new use cases… Everyone will find a talk they want to attend.
  • Sunday 22 will be dedicated to sprints. Those are sessions where the various attendees can gather to start working together on ideas that emerged during the conference in a more relaxed atmosphere.

We are doing our best to make the event as inclusive as possible. The ticket price is kept as low as possible, and we will rely on an honour system to allow people who can’t afford it to get a free ticket. Regular tickets will start at €50, a €100 premium ticket will get you limited edition merch, and we plan €350 business tickets for organisations willing to support us.

Further, we are taking care to make sure the event venue is accessible, dietary requirements are satisfied, and to implement a robust Health & Safety policy alongside our Code of Conduct.

We will post more about booths, and sponsorship packages both on our blog and on socials soon. We need a little time to put the final touches on the conference website and sponsor brochure!

In the meantime, you can submit your talk, workshop and sprint proposals on cfp.matrix.org. We’re interested in short (20min + 10min Q&A) or long (45min + 10min Q&A) talks on all the topics related to Matrix. Please submit your proposals before Wednesday 26 June 2024 09:59 AM AOE, 23:59 CEST (Berlin time).

This Week in Matrix 2024-06-07

Par : MTRNord
7 juin 2024 à 21:00

Matrix Live S09E30 — The Account Migrator

The Foundation is hard at work to let you move your Matrix account around. Tadzik walks us through a pragmatic solution to several problems we have.

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

Foundation

Policy and Regulations blog series

Denise [away] says

we're starting a policy and regulation blog series over on the Foundation's blog. Over the next few months I'll be covering various pieces of legislation that are already in place, as well as incoming regulation, and what it all means for Matrix.

https://matrix.org/blog/2024/06/regulatory-update/

Dept of elections 🗳️

Josh Simmons (he/they) says

The votes have been counted! Introducing the first elected Governing Board of the Matrix.org Foundation 🎉

Thanks to everyone who ran and everyone who voted, and congratulations to those who have been elected!

This is a huge milestone for Matrix, and now we can tackle the challenges we face with greater community involvement: https://matrix.org/blog/2024/06/election-results/

Dept of Clients 📱

Kazv (website)

nannanko announces

kazv v0.3.0 has been released.

Added

Fixed

Internal changes

FluffyChat (website)

Krille-chan reports

🥳 FluffyChat v1.21.0 has been released 🥳

The new FluffyChat has several performance improvements, including a fix which should speed up the whole app if you have a lot of megolm sessions.

Also FluffyChat v1.21.0 includes a new search and gallery feature for chats. You can now search for specific messages or browse the shared photos in a conversation.

Also please note that the default network request timeout has been changed. Before FluffyChat ran into a timeout if the server needed more than 30 seconds to send the initial sync. This was probably too optimistic so the timeout has now been set to 30 minutes. This should allow much more users with very large accounts to log in. Feel free to share your feedback.

All Changes

  • feat: Enable download images on iOS, not only share images (krille-chan)
  • feat: Search feature (krille-chan)
  • build: Update record package (krille-chan)
  • build: Use correct pubspec.yaml format for hosted dependency (krille-chan)
  • build: Use matrix sdk main branch (krille-chan)
  • chore: Change default timeout to 30 min (krille-chan)
  • chore: Go back to pub.dev matrix sdk (Krille)
  • chore: Hotfix create missing objectbox (Krille)
  • chore: Increase default network request timeout (Krille)
  • chore: Make bottomnavbar labels always visible (krille-chan)
  • chore: Nicer message animation (krille-chan)
  • chore: Only load last event sender if necessary (Krille)
  • chore: Set a maxsize for textfields (Krille)
  • chore: upgrade flutter to 3.22.0 (lauren n. liberda)
  • chore: upgrade flutter to 3.22.1 (lauren n. liberda)
  • ci: run flutter gen-l10n on code_tests (lauren n. liberda)
  • design: Improve design of Voice Messages and add 1.25 as speed (Krille)
  • fastlane: i18n ru (Yurt Page)
  • fastlane: improve full_description.txt (Yurt Page)
  • fix: Broken localization with empty strings in it (krille-chan)
  • fix: FakeMatrixApi check (krille-chan)
  • fix: mxc reactions not rendered correctly (krille-chan)
  • fix: Stickers from gboard have black background (Krille)
  • fix: voip code breaking from 0.28 (td)
  • refactor: Delete database file on failed app start (krille-chan)
  • refactor: Display better command hints (Krille)
  • refactor: Improve performance of chat list (krille-chan)
  • refactor: Precache theme and directchatmatrixid to improve performance in chat list item (krille-chan)
  • refactor: Update to Matrix Dart SDK 0.29.9 (Krille)
  • Translated using Weblate (Croatian) (Milo Ivir)
  • Translated using Weblate (Czech) (Jozef Mlich)
  • Translated using Weblate (Georgian) (Nicholas Winterhalter)
  • Translated using Weblate (German) (Gian Klug)
  • Translated using Weblate (Korean) (kdh8219)
  • Translated using Weblate (Latvian) (Edgars Andersons)
  • Translated using Weblate (Norwegian Bokmål) (sunniva)
  • Translated using Weblate (Turkish) (Oğuz Ersen)

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

  • QR Code login works is completed we are just waiting for matrix server to fully support native OIDC login, before rolling out the feature
  • Message queue work is also almost completed, now messages will be automatically queued for resending when internet connection comes back, without the need of taking any manual action
  • We are also working on storing and restoring composer drafts for each room, so no need to worry about losing anything that has not been sent yet if you browse another room or close your app
  • Great news also for element call integration, we are implementing native call notifications (with ringing), and a call log for DMs. Also starting a call will also be displayed as an event in the timeline.

Element X Android (website)

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

ganfra reports

  • Release 0.4.14 is available here https://github.com/element-hq/element-x-android/releases/tag/v0.4.14. Will be on the store soon.
  • We have added a quick implementation of sharing, so you can now send text and media from other applications.
  • QR Code login works is completed we are just waiting for matrix server to fully support native OIDC login, before rolling out the feature
  • Message queue work has been started, messages will be automatically queued for resending when internet connection comes back, without the need of taking any manual action.
  • Great news also for element call integration, we are implementing native call notifications (with ringing). Also starting a call will also be displayed as an event in the timeline.

Dept of Encryption 🔐

Complement Crypto (website)

Kegan reports

Way back in December I TWIM'd I was working on a new project called complement-crypto which aims to write an extenstive, exhaustive set of end-to-end E2EE tests for Matrix clients. The aim of this work is to ensure encryption in Matrix Rust SDK in particular is robust to all kinds of failure modes: from connectivity blips over federation, server restarts and corrupted data, to actively malicious homeservers. Work has progressed significantly in the intervening 6 months:

  • The test suite runs in both Rust SDK and JS SDK CI pipelines to detect regressions. This required a lot of work enabling conditional compilation (so you don't need to run JS code in rust SDK) and improving test reliability to a sufficient standard that it can be relied upon.
  • It now has full federation support, spinning up sliding sync proxies for both homeservers if needed.
  • It has a comprehensive RPC client process to test ungraceful shutdowns (e.g what happens if your client gets SIGKILL'd?)
  • When things do go wrong, you have powerful debugging tools thanks to using mitmproxy for all communications, in addition to client log files and container logs. The use of mitmproxy is not only useful for debugging, but is also used as a test synchronisation primitive to reduce flakiness (e.g do X when you see the HTTP response to Y), as an assertion tool (e.g ensure the client has uploaded one-time keys by looking for the request), and as an adversarial tool (e.g modify the response returned to the client).

The overall architecture looks like:

     Host        |       dockerd           
                 |                          +-----------+      
                 |                     .--> | ss proxy1 | <------.
 +----------+    |    +-----------+    |    +-----+-----+        V
 | Go tests | <--|--> | mitmproxy | <--+--> | hs1 |          +----------+
 +----------+    |    +-----------+    |    +-----+          | postgres |
                 |                     +--> | hs2 |          +----------+
                 |                     |    +-----+-----+        ^
                 |                     `--> | ss proxy2 | <------`
                 |                          +-----------+      
Debugging a test run in `mitmweb`

Debugging a test run in mitmweb

In terms of the impact this project has had:

There's still more work to be done, including:

  • finishing off the test hitlist,
  • supporting device verification tests,
  • adding adversarial tests (e.g malicious homeserver tests),
  • adding targets beyond rust/JS SDK (matrix-bot-sdk, mautrix, and others). A perfect client can still receive UTDs if the sending client didn't encrypt correctly, and the sender may be on a different codebase.

This has been just one part of our work reducing UTD errors. Another significant part has been aggressively analysing bug reports in the wild to identify common failure modes. To that end, please report any 'unable to decrypt' messages you see and include log files with your report. Please also try to get the sender to submit a bug report. I may reach out to you if I need additional information. These bug reports not only guide our priorities, but have also helped us identify obscure failure modes which we cannot reproduce via complement-crypto.

Dept of SDKs and Frameworks 🧰

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

Emma [it/its] announces

Some minor changes, this week's update will be mostly project/management updates!

Call for help! (Update)

It's been decided to split the event rewrite up into multiple phases/parts. The original vision of the changes turned out to be far too optimistic, and we've run into some language-related challenges trying to implement them. We'll still try to implement those changes, but this might depend on compile-time source generation or similar endeavours.

If this sounds like a fun challenge to you, or want to discuss and shape the semantics of these changes, feel free to join in!

Changes (Projects & Policies)

Some policy changes, and some new projects have been started within the LibMatrix source tree:

  • New workflow: Use of feature branches

Keeping up to date with LibMatrix is hard, because the chance of updating to a partially finished commit is too high. To address this, we're moving to a "main branch is stable" model, with partial implementations on deciated branches so developers can keep up and prepare for those changes.

  • New subproject: Writing of full documentation

We want to improve the developer experience by offering documentation of features right in your editor, without having to reference the backing source. This should enable users who are less familiar with Matrix' internal structures to still be able to implement their deepest wishes.

  • New subproject: Workspace and structural cleanup

The LibMatrix source tree became a mess as the project grew. We want to restructure it to be maintainable, and also far more friendly to those who might want to contribute. If this sounds like something you'd like to help with or would love to offer feedback on, please do feel free to reach out at #libmatrix:rory.gay!

  • Splitting up of subproject: Event handling rewrite

Due to the large amount of complexity and work, we've decided to first start rewriting the inner implementations of events. This should massively improve the end user experience, as custom event content is no longer lost if edited, as well as no longer having to worry about desyncs between actual event content and what you might see in an editor! Next to this, you will likely see performance improvements when dealing with accessing the contents of events! Longer-term changes still include static typing of event collections, especially around single content type collections such as fetching a room's member list, which should also see a large performance uplift when fetching!

Changes (Main release)

  • All dependencies have been updated. End users should not notice any differences as this is a maintenance task, but this does potentially enable some new usecases and squashes some bugs and security risks originating from outdated dependencies.

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!

Libkazv (website)

nannanko announces

libkazv v0.5.0 has been released.

Added

Internal changes

Dept of Built on Matrix 🏗️

Acter

ben announces

It's been a while since our last blog post of updates in Acter and, oh boy, a lot has happened. Just to scratch the surface here, we have:

  • Totally redesigned the Invite flows, including easier "all from spaces" and using super invites to allow external invitations
  • Upgraded the registration wizard to include a default registration token and recommendation to link an email address for better recovery options
  • A new flow for observing and managing the join rules of spaces and chats
  • we took a fresh look at the chat and cleaned up the design, including some nice new messages at the start of the chat
  • you can not only bookmark chats, but also spaces now, to keep things more organized
  • we added a few more labs: chat read markers & end-to-end-encryption-backup
  • and we are seeing the finishing line for the task lists features to leave the labs section

More details and video screens on today's blog post.

We have also expanded our team, in particular on the community growth side, and are about to open another position for a product designer ... if that's you or someone you know, stay tuned!

Matrix in the News 📰

Comments on Canonical JSON in Matrix

Matthew reports

Neilalexander has written an interesting analysis of Canonical JSON and how to improve it at https://neilalexander.dev/2024/06/05/canonical-json

Matrix Federation Stats

Slavi says

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

As of today, 9397 Matrix federateable servers have been discovered by matrixrooms.info, 2860 (30.4%) of them are publishing their rooms directory over federation. The published directories contain 160776 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
1doctoruwu.uk207.5
24d2.org208
3awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay215
4girlboss.ceo222.5
5uwu.sulian.eu258.5
6nerdhouse.io271
7aguiarvieira.pt289
8maunium.net307.5
9matrix.jayryn.de343
10productionservers.net354

#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
1conduwuit.daedric.net78
2doctoruwu.uk88
3matrix.jayryn.de91
4girlboss.ceo111
5awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay119
6nerdhouse.io140
7craftingcomrades.net170
8matrix.its-tps.fr190.5
9aguiarvieira.pt218
10spritsail.io219

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.

Policy and regulation update 2024: Matrix and the GDPR

6 juin 2024 à 09:00

If you have been following the matrix.org blog for some time, you will know that we’ve never been ones to shy away from complex topics like public policy and its impacts on Matrix. With this blog post series, our aim is to introduce a more regular cadence to our regulatory updates and to be more transparent about where we are focusing our efforts in this area.

Each blog post in the series will focus on a given theme or piece of law, as well as its relevant jurisdiction. We will start this series by taking a deep dive into EU regulation, starting with the General Data Protection Regulation (GDPR). Future blog posts in the series will cover the digital services package (DMA and DSA), the incoming CRA and the highly controversial CSAM regulation. These will be followed by a series dedicated to the UK, particularly UK applications of European law such as the GDPR and ePrivacy directive, as well as the Online Safety Act and the IPA amendment bill. Finally, we will conclude the series by looking across the pond and diving into the Cloud Act, as well as KOSA and other existing proposals.

The big one

Over the last decade the most impactful - in terms of grassroots led change, not necessarily enforcement - piece of legislation was probably the GDPR. Although its initial enforcement date (May 2018) was a couple of years before I joined Element and the Matrix.org Foundation, I know that preparing for GDPR was a huge effort that led to a lot of deep thinking about the ins and outs of Matrix.

These have been certainly years of learning, iterating and evolving our approach to this fascinating piece of law, and just like 6 years ago, we keep receiving questions and feedback about how the GDPR applies to the Matrix protocol and how server administrators can remain compliant.

We maintain the view that the GDPR was not built for a decentralised digital world, after all we are (for now!) the exception, not the rule. This does not mean, however, that we don’t make every effort possible to comply with the spirit and the letter of the law. Most organisations using the Matrix protocol will be running strictly closed federations or single servers in closed federation, which they fully control (or appoint others to support them with that control). Compliance is a lot more straightforward in this sense, so for now we will focus on those using Matrix to interact with open federation.

The most difficult part of GDPR compliance for Matrix has always been article 17, right to erasure, or ‘right to be forgotten’ as it is usually known. Our view has always been that this is a relative right, which needs to take into account available technology and other applicable laws in order to be enacted. For example, if an employee leaves a company and asks for all of their data to be erased, in practice not all of that data will actually be erased, due to constraints put in place by other legal instruments (i.e. tax and fraud prevention regulations, employment law, etc.).

Considering this relativity, we looked at what other ubiquitous product offerings already exist in the decentralised space, and how they address erasure. Using email as an analogy was a no-brainer in this regard: one understands that deleting an email account will delete everything from their inbox and sent folders, whilst also understanding that is impossible and not expectable to have the same data deleted from the recipients’ inbox (or the inboxes of those that might have had the same message forwarded to them).

Use of technology is always associated with constant give and take and risk based decisions. Whilst we make every effort to minimise risks for the people using the Matrix protocol, the reality is that one of the main purposes of the protocol is integrity of communications and decentralisation of communications data. This is directly at odds with absolute deletion of communications.

So how do we come to terms with this conflict? Following the email analogy, we address right to erasure from two different standpoints: account data and communications data. As part of the protocol, everyone is able to automatically delete their accounts and select an option to delete all of their data. First, this deletes all ‘external’ data associated with the account, such as e-mail addresses, phone numbers, IP addresses and device identifiers - effectively pseudonymising this data, aside from Matrix IDs which we will address later on. This measure follows recital 28 of the GDPR, which mentions pseudonymisation as a risk reducing measure for data subjects, which helps controllers and processors meet their data protection obligations.

Now, the thornier issue of communications data. How can we apply erasure whilst maintaining the integrity of the service for remaining users? Keeping on with the email analogy, if someone deletes their sent email from their own account, you would still expect an existing thread with multiple users to work and be visible. You just would not expect the same message to leave the original account to new individuals.

That is precisely how the issue is addressed in Matrix - upon deletion of an account, and request for deletion of messages, a flag is applied to the original messages which prevents it from ever being displayed to any new people. This, of course, requires cooperation from the other server administrators who might also have copies of the same message in their server instance. We make this decision by referring to recital 66 of the GDPR, which requires controllers take reasonable steps, taking into account available technology, to inform other controllers of the data subject’s request to have their data erased.

One issue still remains unresolved - Matrix IDs (MXIDs) are always associated with state events (data sent by a user to modify the attributes of a given room - eg its name, its members, its avatar), which means those IDs could still leak over federation. That is a particular concern when one uses their legal name as their MXID. The solution for this is to replace the MXID with a pseudonym, maintaining the integrity of communications and fully removing any last remains of identifiable information in the system.

The Synapse team has also made a lot of progress on message retention policies and media retention, both huge strides to continuously improve the privacy of Matrix users, whilst also helping server administrators comply with their legal obligations.

Things have definitely progressed in the portability space, and chat export is now implemented in multiple Matrix clients, having been first implemented on Element Web in October 2021, in version 1.9.2. We look forward to seeing what the next year brings us in terms of privacy improvements.

For the next post in this series we will continue discussing the EU policy landscape, although from a different perspective. We will be going through the digital services package (which includes the DSA and DMA) and what does it all mean for Matrix now that we have reached implementation stage.

As always, we remain open to your feedback and thoughts. If there is anything you would like to hear more about or have a suggestion for a future blog in this series please feel free to reach out to dpo@matrix.org via email, DM to @gpdr:matrix.org or chat to us in the Office of the Matrix.org Foundation room.

Introducing our first elected Governing Board

Par : Josh Simmons
3 juin 2024 à 21:00

It is an honor and a pleasure to unveil the election results and introduce the first elected Governing Board for the Matrix.org Foundation!

Congratulations to the winning candidates, we thank you for your willingness to serve the community. We’re also grateful to everyone who threw their hat in the ring, and hope that the candidates who did not get elected consider running again in the future – noting that we have an election of Gold, Silver, Individual, and Associate Members scheduled for next year.

Thanks also to all of the people who cast ballots in the election, and to everyone who asked questions along the way! We learned a lot in this first election process that we look forward to incorporating into the next one.

The level of engagement with the process was a very encouraging sign for the health of the Matrix ecosystem, and we’re proud to have had 100% voter turnout in all but one constituency.

Read on to see who is on the Governing Board, a brief discussion of next steps, and reflections on some of the work that remains to improve representation.

The Governing Board

Representing Individual Members, we have:

  • Andy Balaam (he/him)
  • Greg Sutcliffe (he/him)
  • J.B. Crawford (they/them)
  • Sumner Evans

Representing Ecosystem Members, we have:

  • Bram van den Heuvel (he/they), Elm SDK
  • Kim Brose (he/him), Matrix Community Events
  • Nicolas Werner (he/him), Nheko-Reborn

Representing Associate Members, we have

  • Cleo Menenez Jr. (he/him), GNOME Foundation
  • Tobias Fella (he/him), KDE e.V.

Representing Platinum Members, we have:

  • Neil Johnson (he/him), Element

Representing Gold Members, we have:

  • Brad Murray (he/him), Beeper
  • Kevin Boos (he/him), Futurewei Technologies

Representing Silver Members, we have:

  • Jan Kohnert (he/him), Gematik GmbH
  • Thor Arne Johansen, Verji Tech AS

Representing Guardians, we have:

  • Amandine Le Pape (she/her)
  • Matthew Hodgson (he/him)
  • Ross Schulman

Representing Spec Core Team members, we have:

  • Richard van der Hoff (he/him)
  • Travis Ralston (he/him)

And, lastly, representing Foundation staff in an ex officio capacity, we have:

  • Josh Simmons (he/they)

Next steps

All of the elected representatives will soon receive a welcome email and details about onboarding which will take place over the next two months, with our first official meeting being in August or September. That first meeting will include chartering committees, establishing initial committee assignments, and other agenda items within the Governing Board’s remit.

All Governing Board members will soon be added to a private Matrix room and mailing list. We also hope to hold informal gatherings before that first meeting, so that Governing Board members can get to know each other before we dig into business.

We will continue to use the 2024 elections page as a place to aggregate information about the current Governing Board, and our About page will soon be updated. Before next year’s election we will establish a more general landing page for the Governing Board that is not specific to any one year.

Reflecting on representation

Our mission is to bring secure, private, free and open, unencumbered communication to everyone. In order to succeed in that, we need to bring a representative cross-section of perspectives to bear on our governance and development.

And while we haven’t yet conducted formal surveys of demographics, such that we can be confident about the baseline we’re working from, it’s plain to see that our contributor communities are not yet as representative as we need them to be. This isn’t news to anyone, but the election results make it all the more obvious.

The issue of representation is something we must tackle across the whole of the Matrix ecosystem, and we intend for the Foundation to play a leading role in addressing this internally and externally. We can learn from other successful initiatives, and I myself have been successful in tackling these challenges in partnership with other communities, so I know we can get to where we need to be.

In electing our first Governing Board, we have dramatically expanded the number of perspectives and lived experiences that are directly engaged in the evolution and direction of Matrix. Coming from a place where the majority of decisions were being made by people associated with one company, this is a huge improvement. This is something we should be proud of!

But to be extremely clear: we need to drastically increase the representation of women and people outside of Europe and North America. There may be other lived experiences we are short on, but these two stand out.

I’m eager to dig into this work with everyone here around Matrix. Please stay tuned for a follow up blog post specifically on this subject.

Onwards and upwards 🚀

This Week in Matrix 2024-05-31

Par : Thib
31 mai 2024 à 21:00

Matrix Live

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

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:

MSCs in Final Comment Period:

Accepted MSCs:

  • No MSCs were accepted this week.

Closed MSCs:

  • No MSCs were closed/rejected this week.

Spec Updates

This last week's focus was primarily spent on ensuring MSCs are moving towards Final Comment Period (FCP; the step before an MSC is accepted) at a healthy pace. Below are the MSCs which were on Tuesday's pings, and their current status:

  • MSC3916: Authenticated media
    • Needs just 2 more checkmarks SCT members to enter FCP (started the week needing 6).
  • MSC4138: More methods in CORS
    • Needs 1 more checkmark from the SCT to enter FCP (started the week needing 1).
    • Currently blocked on clarified text regarding its scope.
  • MSC2781: Removing reply/edit fallbacks
    • Needs just 2 more checkmark from the SCT to enter FCP (started the week needing 2).
    • Currently blocked on some clarified behaviour and process ordering.
  • MSC2867: Marking rooms as unread
    • Needs checkmarks from 3 more SCT members to enter FCP (started the week needing 3).
    • Currently blocked on ensuring that this addition to spec doesn't make notifications more complicated.

Client and server developers are encouraged to review these MSCs in particular because they're on a path to being included in the next spec version. This doesn't have to mean implementing them, but if there's something which doesn't sound quite right in the proposal text then leave a comment on the diff to raise a concern. The SCT will take these comments into consideration as the MSC enters FCP - the 5 day countdown to ensure any last comments are considered before the proposal is accepted into the spec as stable.

Next week's focus will largely be the same as usual: we'll focus on unblocking Matrix 2.0 MSCs/features as a priority, and MSCs which require more checkboxes to enter FCP will be raised for prompt review. We're always on the lookout for MSCs ready for FCP, but can sometimes miss something - let us know in #sct-office:matrix.org if it looks like something is ready to go but hasn't caught our eye yet.

Dept of Bridges 🌉

IMAP/Mastodon MAP Bridges

jbara announces

Two new bridges are in town !!

Mastodon Bridge

For a long time, there were no Mastodon bridges, but now we have one! Currently a work-in-progress, this bridge uses masto.js to manage a Mastodon account. It offers basic functionalities like receiving tagged posts in the designated chatroom and posting with tag support. Many more features are on the way, so stay tuned!

Email Bridge

We've also developed a new email bridge that takes things a step further than postmoogle. With imap-map-bridge, you can now use your personal email, making it the first Matrix puppeting bridge that lets you bridge your email account. This bridge works as a mail client using nodemailer for sending and node-imap for receiving emails. This allows you to send and receive emails from your Matrix client in designated room(s).

Both bridges utilize the matrix-appservice-bridge library and are currently in the alpha stage. We welcome any feedback or contributions from the community!

Dept of Clients 📱

Element X Android (website)

Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose

Jorge reports

Another week, another TWIM for EX Android! This week the main changes we made were:

  • 📬️ One of the most requested feature by the community: adding a setting to change your push provider in Settings > Notifications > Advanced settings. It'll only be available if it detects both Google Play Services support and NTFY installed in the device.
  • 🚢 Reproducible builds for F-Droid: we got very close to achieving it for the last release, we hope everything will be OK for the next one and we'll finally be able to release new versions on F-Droid!
  • 🗨️ A simplified way to display notifications. We previously had to maintain a persistence layer which made the system way more complex and caused some unexpected issues. With this, your notifications should be more reliable, although if the app is killed and restarted your previous notifications won't be restored. You'll have to navigate to the room list and enable the 'unread' filter to see what you missed.
  • 🆙 To achieve the change in notification handling we had to bump the minimum supported OS version for the app to Android 7 (API 24). While we're usually not eager to bump the minimum supported version by the app, the fix above was probably worth it. We hope this change won't affect too many users.
  • 🔑 Sign in with QR code was finally merged! However, since this feature requires your homeserver to also support it, it'll take some time to get everything ready to enable it for all users.
  • 🧑‍🤝‍🧑 Better support for auto-generated names for DMs.
  • 🚀 Improvements for the animations when enabling/disabling room filters. Thanks frebib!

Dept of SDKs and Frameworks 🧰

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

Emma [it/its] reports

Woah, it's been a month since I last posted an update? Some bugs were squashed, some developer experience improvements, but most importantly of all...

Call for help!

A large rewrite of how events are handled in LibMatrix is being attempted. If you know C# and want to try a hand at implementing better handling of events in LibMatrix, feel free to join in! During this work, some naming changes are also being considered.

The goal of this work is to improve the experience of developing around, binding against and using LibMatrix, and to make it so editing events is non-destructive to existing and custom content.

Another goal is to potentially allow building LibMatrix into Ahead-of-Time compiled applications, as this should give a massive performance boost!

Additions

  • Valid membership types are now defined as constants so these are available to developers for easier reference.
  • Some logging has been added to warn if a piece of code attempts to access a mapped representation of an unknown event type, which may point to a developer having missed registration. Similarly, logging has been added if a developer tries to register a given event type multiple times.

Changes

  • [!!] LibMatrix feature development is now split up into separate branches. This aims to make LibMatrix easier to link against as the master branch should now be considered more "stable", and should allow committing changes to be more forgiving since one doesn't have to think as much about pushing unfinished code.
  • A failure during homeserver delegation lookup will no longer cause applications to hang on a second attempt.
  • All HTTP connections are now routed through a single HttpClient, which means you should now see far less connection negotiation time every time a new MatrixHttpClient is instantiated. This is caused by the fact that HttpClient keeps connections alive. This behavior can be reverted by building LibMatrix with a build flag.
  • Passing a proxy to homeserver instantiation no longer uses a method that breaks some ways a developer might do debugging.

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 me know, I'd love to hear all about it!

Matrix Rust SDK

bnjbvr says

Oh wow, it's been a while since the last update, and the Rust team has been quite busy in the meanwhile! I'll try to keep it short, but here are the biggest improvements we've made over the last month or so, approximately in chronological order:

  • Support for MSC3266 for fetching room previews. The Client::get_room_preview() will try to use the info of a known room first, then use MSC3266, then resort to using state events from that room, to get enough preview info to display for a room before joining it.
  • It's now possible to open a "detached" Timeline, that is focused on a specific event, for instance after clicking a permalink. In this case, it allows for interactive backward and forward pagination, and won't show live events as they're synced.
  • There's an optional UTD hook in place that gets called every time the Timeline sees an event that couldn't be decrypted. This is what powers statistics on UTDs at Element for the ElementX apps, and allows us to track the number of UTDs over time.
  • In crypto-land, support for secret bundles as well as logging in with QR code using OIDC has landed in the SDK. This has been awaited for years, and it was quite a large project, congratulations to all involved in turning this into reality!
  • The work on the EventCache storage is moving forwards nicely, with internal listeners to observe updates onto the internal Linked Chunks data structures.
  • Support for Matrix RTC call notifications has landed.
  • Computing a room's display name is now more often done client-side, even in the presence of a sliding sync proxy; before, it would be the proxy computing a room name, and the client plainly reused that. This will enable new use cases, like being able to translate DM room names based on the user's language.
  • And a large number of internal refactorings, bug fixes, dependency updates, code and testing improvements all over the place.

Our focus for the next weeks is going to be work on the EventCache, implementing a more robust sending queue that's available outside the Timeline API, and polishing the QR code login and other fun stuff. All hail the Holy Crab!

matrix-nio

OdoItal reports

matrix-nio 0.25.0rc2 is available as a release candidate; there've been a lot of changes since 0.24.0, including some that may reasonably be called "breaking" depending on what parts of the private API are being used.

I'm still planning on updating the changelog properly, but I figured it was at least high time that the changes themselves be made available for easy installation first.

But the two biggest changes that I'd appreciate any feedback/bug reports on:

  • Compliance with MSC2844 (using the v3 endpoints instead of r0)

  • Adding threading/aggregated event relations/threaded read receipts API support

    • Basically it's now possible to iterate through events in a thread root, or aggregated related events (such as m.react!) on a message

New methods on AsyncClient of note:

Elm SDK (website)

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

Bram says

With the new beta version 3.3.0, the SDK can finally talk to the Matrix API! It's simple for now, but this live demo WITH debugging tool shows the simplicity of sending message events to a room. This means that the Elm SDK now has the same functionality as a mature Matrix webhook! 🎉

If you have any questions, you'd like to get involved or you'd like to know more, feel free to join the conversation at #elm-sdk:matrix.org. Given that Elm compiles to JS, the Elm SDK aims to be a more rigorous alternative to the matrix-js-sdk, so any feedback on the way is welcome. 🚀

Dept of Events and Talks 🗣️

Matrix User Meetup Berlin

saces says

Next Matrix user meetup 5.6.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.

Also when the bbq is lit you may wish you brougth your favorite item :)

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 🛰️

clokep reports

I’ve updated the homeserver spec versions dashboard with supported room versions and the default room version over time for each homeserver.

I also corrected a few inaccurate pieces of data folks found with the supported spec versions data. (Thank you!)

Matrix Federation Stats

Aine reports

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

As of today, 9424 Matrix federateable servers have been discovered by matrixrooms.info, 2852 (30.3%) of them are publishing their rooms directory over federation. The published directories contain 160435 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
1doctoruwu.uk202
2awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay231.5
3girlboss.ceo239.5
4uwu.sulian.eu264
5aguiarvieira.pt285
6maunium.net302
7craftingcomrades.net325.5
8sulian.eu427
9lewd.social435.5
10plocki.org438

#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
1doctoruwu.uk83
2authenyo.xyz90
3girlboss.ceo100
4uwu.sulian.eu123
5awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay127
6nerdhouse.io164.5
7aguiarvieira.pt176
8dendrite.s3cr3t.me185.5
9sulian.eu209
10feline.support258.5

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-05-24

Par : Thib
25 mai 2024 à 02:00

Matrix Live

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

Dept of elections 🗳️

Josh Simmons (away, back May 9th) says

Voting continues in the Governing Board elections, and we're close to having 100% turnout in every constituency except Individual Members! Check your email inbox for an email from noreply@opavote.com and please cast matrix-orgyour ballot today.

Separately, we're very pleased to welcome NeoChat and Cinny as our latest Ecosystem Members!

Do you have a community that's centered around Matrix? Or an organization that is aligned with our mission? Perhaps you're part of a company that profits from the use of Matrix. Whichever describes you, become a member today. Your involvement helps us ensure we get representative feedback and the financial support we need to continue stewarding the specification.

Dept of Spec 📜

TravisR says

We on the Spec Core Team (SCT) are trying a new format for this week's spec update - let us know if there's something you think is missing or could be improved in #sct-office:matrix.org!

This last week's focus was primarily spent on ensuring MSCs are moving towards Final Comment Period (FCP; the step before an MSC is accepted) at a healthy pace. Below are the MSCs which were on Tuesday's pings, and their current status:

  • MSC3916: Authenticated media
    • Needs checkmarks from 6 more SCT members to enter FCP (started the week needing 6).
    • An outstanding thread regarding the federation download endpoint needs resolution.
  • MatrixRTC needs help determining state key overwrite behaviour - this thread and this proposal need review.
    • The SCT was asked to weigh in, and left some comments in the area.
  • MSC4115: Membership info on events
    • Needs checkmarks from 3 more SCT members to enter FCP (started the week needing 6).
    • Note: this MSC may be particularly interesting to client developers.
  • MSC4138: More methods in CORS
    • Needs 1 more checkmark from the SCT to enter FCP (started the week needing 1).
    • Currently blocked on clarified text regarding its scope.
  • MSC2781: Removing reply/edit fallbacks
    • Needs just 2 more checkmarks from the SCT to enter FCP (started the week needing 3).
    • Currently blocked on some clarified behaviour and process ordering.
  • MSC2867: Marking rooms as unread
    • Needs checkmarks from 4 more SCT members to enter FCP (started the week needing 4).

Client and server developers are encouraged to review these MSCs in particular because they're on a path to being included in the next spec version. This doesn't have to mean implementing them, but if there's something which doesn't sound quite right in the proposal text then leave a comment on the diff to raise a concern. The SCT will take these comments into consideration as the MSC enters FCP - the 5 day countdown to ensure any last comments are considered before the proposal is accepted into the spec as stable.

Next week's focus will largely be the same as usual: we'll focus on unblocking Matrix 2.0 MSCs/features as a priority, and MSCs which require more checkboxes to enter FCP will be raised for prompt review. We're always on the lookout for MSCs ready for FCP, but can sometimes miss something - let us know in #sct-office:matrix.org if it looks like something is ready to go but hasn't caught our eye yet.

Dept of Clients 📱

Nheko (website)

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

Nico reports

For something completely different for once: Encrypted media files and unencrypted media files follow a bit of a different format (one contains encryption keys and an media id for an encrypted file, while the other one only has the id for the unencrypted file). The latter can be shown by most clients if they support encryption or if they don't. Encrypted media files are usually just supported by clients, which support End-to-End-Encryption (E2EE).

Now forwarding a message, which some clients support, can either copy the event content as is and send it into a different room or do some post processing on it (and maybe even add metadata). The problem is when that is combined with E2EE. A client which supports E2EE might decrypt the content, but would leave the media encrypted. If that is forwarded to an unencrypted room, the media might not be visible to some clients (without E2EE support), while when you just send the media file normally, it would be visible to those clients.

Because of that we explicitly blocked showing such media in Nheko to make it obvious, that something isn't right. Otoh, we don't even show an error message to the user, so we kinda messed up there, but that is besides the point. When you forward an encrypted image with Nheko into an unencrypted room, Nheko instead decrypts the image and reuploads it.

So now, why am I writing all of this? To be honest, I would just like to hear your opinions on it. Reuploading the media obviously takes longer and needs more bandwidth. On the other hand it is more compatible with clients, that don't implement E2EE and possibly don't intend to. A third option could also be to completely prevent forwarding encrypted media to public rooms to make accidentally sharing media in a decryptable manner harder. I would like to hear your thoughts on this, feel free to poke your head into #nheko-offtopic:nheko.im and share your thoughts!

Element X iOS (website)

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

Ștefan reports

It's been a pretty quiet week in iFruit company fanboys meet matrix devs land, just business as usual:

  • we're putting the finishing touches on login with QR code
  • added support for showing the native incoming call screen for ElementCalls started in DMs, and for showing notifications for the rest (2862)
  • we started working on storing draft messages in between room switches and app restarts
  • plus various other tweaks and fixes

Element X Android (website)

Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose

ganfra says

  • Release 0.4.13: Now available for open testing! Experience the newest features and improvements firsthand.
  • Plain Text Editor: We've implemented a plain text editor based on markdown input for a seamless editing experience.
  • QR Code Login: We're in the final stages of completing QR code login functionality, making sign-ins easier than ever.
  • ElementCall Notifications: Work has begun on integrating notifications for ElementCall.
  • Several Fixes: Various bug fixes have been applied to enhance overall performance and stability.

Dept of VoIP 🤙

Timo K. reports

We have not written updates here in a while. There are exciting things happening so its more then due to collect the news here.

Is there finally a MatrixRTC spec?

The VoIP team at Element has started the process of writing the MatrixRTC spec. There are some fundamental problems that need to be addressed before it makes sense to actually propose the MatrixRTC protocol. Those changes are somewhat entangled and boil down to:

  • Track members with one state event per device. MatrixRTC allows each user to join with as many devices as they desire.
  • Make memberships reliable. MatrixRTC membership is tracked by room state. Since room state cannot expire, clients need to manually update their membership state when they leave. So as soon as the client crashes, loses network, or the user ctrl+w's the call instead of hanging up, the call remains.
    • Currently there is a workaround to store a expire time inside the event, periodically update the event, and check if it's valid before using the membership.
  • Spec call focus information, and expose it via the client .well-known.

There is already an implemented solution for exposing the SFU (Focus) with the Matrix server .well-known. For reliable memberships, we have a generalized solution with MSC4140 which proposes events that are sent after a timeout (that can be refreshed so there is a cheap keep alive/heartbeat mechanism) or on demand by pinging a new endpoint which allows to delegate the leave responsibility to the SFU. This further reduces traffic, really slow hearbeats are possible since the SFU can be trusted to detect a disconnect. This could solve scheduled messages, self destructing messages, and our reliable call memberships. (More details can be found in the MSC)

Finally, a draft for the MatrixRTC MSC was started. It is kept short to separate concerns, as calls are not the only possible MatrixRTC application. This means there will be a separate MSC just for Livekit and one for full mesh, a separate MSC for calls, and maybe other future MSCs for other MatrixRTC applications.

Element Call becomes easier to deploy

After the very successful BigBlueButton and ElementCall interoperability sprint at the BigBlueButton Summit (see the demo video), the community has picked up the work and is providing automatic docker build. So getting a running BigBlueButton, MatrixRTC (Element Call) setup will become easier!

Similarly a NIX package for Element Call and the required jwt-token-service is in the making!

New Tile Layout / Frontend refactor

Last but not least there is also a refactor of the element-call codebase. The frontend will use the MVVM pattern to make it much easier to write efficient and better tests. This project will at the same time tackle many long-awaited UX problems people have reported (such as the jumpiness in deciding who the active speaker is). A new Spotlight mode is introduced supporting pinning and a static "spotlight tile" where the content changes instead of shuffling the tiles around. This is the beginning of a bigger plan to present staged and listening participants. Stay tuned.

Dept of Bots 🤖

MatrixJoinLink

Dominik ⚡️ says

MatrixJoinLink is bot that allows the creation of invite links to non-public rooms in matrix. Some months have passed since I initially introduced the bot in TWIM. The bot addresses the challenge of being unable to invite individuals via a link to a non-public room or space.

In the latest release, I ensure that the users that interact with the bot always have the right permissions. Thus, if you use the bot, you should update to this version :)

How to use JoinLink

MatrixJoinLink simplifies the process of inviting users to non-public spaces. The easy way to use the bot:

  1. Invite the bot into your room.
  2. After the bot joined, use the command !join help to explore its features. Please note that the bot responds exclusively to users or servers configured by the bot owner.
  3. To create a Join Link, kindly type !join link Demonstration_Link, and the bot generates a join link for you. Ensure that you and the bot have the permission to invite users.

Creation of Join Links (with Developer Mode Details)

Entering a Join Link Room

Feel free to test the bot and raise any issue using GitHub :)

matrix-word-counter

jjj333_p (any pronouns) says

Heya, just shouting out a little bot ive made recently to count the frequency that words are used in a given room. Check it out here!

Dept of Events and Talks 🗣️

FrOSCon 19

HarHarLinks announces

It can't be a surprise after Oleg's many years of effort that there will be a Matrix Community Event at the 19th FrOSCon in Sankt Augustin (near Bonn) 🇩🇪 on 2024-08-17 and 18 again! We are once more planning on a Devroom and Stand, and need your help! If you want to give a talk, hold a workshop, or just generally lend a hand and be involved, then follow the Call for Participation here to get in touch!

22. Gulaschprogrammiernacht (Website)

HarHarLinks says

If you are planning on attending GPN22 #gpn:entropia.de, the 22nd Goulash Programming Night, in Karlsruhe 🇩🇪 next week (2024-05-30 to 06-02), you're in luck! Matrix Community Events will be there and offering 2 Matrix workshops and looking forward to meet you!

Dept of Interesting Projects 🛰️

matrix-web-components

unonde announces

This week in mwc was added a docker-compose setup, and the APIs refactor, to finally be able to develop and use the web components with data from a local matrix homeserver (synapse, sqlite — see docs), and any homeserver.

This was tested with the user interactive authentication flow, while registering and login users (username/password/captcha/terms&conditions) as well as for managing user devices. Follow up on this will be to integrate the tests and CI/CD with a local homeserver (looking for help here if some have interest).

Also some breaking changes in the services/api.js files, to allow the baseUrl (homeserver's API address discovered by the .well-known file) to be setup in the constructor, and the API calls that could require it (registerUserKind).

The state of the project is still in early development, and subject to changes. For context, mwc is a learning experiment in vanilla web technologies, without any dependency, to try and layout the "components and methods" required to build a generalist matrix client. The objectives in the long run is to implement the building blocks (HTML custom elements, web-components), that any site or web-app could use for displaying and editing data in the matrix ecosystem. In this way the components are trying to be implemented following the specification as closely as possible (WIP), starting with "public unencrypted data" (a dependency will most probably be added for supporting encryption, as peer dependency, as for the HTML sanitizing features).

Notes

A few design decisions have been made, such as not using HTML/CSS classes or id, or adding default styles. The components can be imported in a site/app, and used similarely as native HTML5 elements such <img/> (here <matrix-image/>, or for example matrix-room etc.). The HTML attributes of the components should reflect their state (such as with <details open="true" />) and therefore allow styling and theming, with an API that should not change (as the version number grows, and as the project gets closer to match the spec's wording and features).

This feature is also pretty exiting for me because it could allow to start using mwc with data coming "from other sources"; such as "static JSON files", and use the matrix-spec to organize content (and maybe even allow syndication).

Feel free to join the discussion with feedback, ideas or comments #mwc.sctlib:matrix.org, see the /docs folder, the example page and client (with router) implementation (a router component will be added to mwc, using the URL Pattern API, and a temporary pollyfill dependency).

Matrix Federation Stats

Aine reports

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

As of today, 9430 Matrix federateable servers have been discovered by matrixrooms.info, 2857 (30.3%) of them are publishing their rooms directory over federation. The published directories contain 159532 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
1doctoruwu.uk197
2girlboss.ceo224
3uwu.zemos.net237.5
4maunium.net251.5
5uwu.sulian.eu319
6conduwuit.aguiarvieira.pt361.5
7pavli.cc403
8shortestpath.dev430
9remi.im438.5
10littlevortex.net442.5

#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
1conduwuit.aguiarvieira.pt75
2doctoruwu.uk87
3girlboss.ceo89
4uwu.zemos.net134
5uwu.sulian.eu145
6aguiarvieira.pt165
7m00nlit.dev184
8dendrite.s3cr3t.me197.5
9neilalexander.dev246
10puppygock.gay295

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-05-17

Par : MTRNord
17 mai 2024 à 21:00

Matrix Live

Today's Matrix Live: https://youtube.com/watch?v=E-sbHy9iA7k

Dept of elections 🗳️

Josh Simmons (away, back May 9th) announces

Voting has started for the Governing Board elections and runs till May 31 – but don't delay, vote today! 🗳 Huge thanks to all of the nominees who have thrown their hat in the ring.

All eligible voters should have received an email from the election system. All of the results will be published on the blog on June 3. Read our announcement post or visit our election center for more info.

Dept of Spec 📜

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

Spec Updates

As an early heads up, Trust & Safety at the Foundation is working on an important update to Matrix, MSC3916 - Authenticated Media. This change will mean that all clients (and servers) will need to present a valid access token in their Authentication header to access media - which is critical to ensure that URLs are only visible to the correct users, and prevents abuse of Matrix for hosting binaries. More details will be published as we work to get everything released - we wanted to get the information out there as early as possible in the meantime. Let us know if you have any questions.

Matrix.org plans to freeze unauthenticated media endpoints within a couple of months after the spec release, which is expected in the next few weeks. "Freezing" means that media uploaded or cached before the freeze will remain accessible via unauthenticated endpoints indefinitely, but any media cached or uploaded after the freeze will require authentication. The unauthenticated endpoints will be deprecated but will still serve old media on matrix.org.

To ensure a smooth transition, we encourage you to start testing against the unstable endpoints and unreleased server builds. The changes for Synapse are being developed here, and for MMR here. Both are expected to release their changes soon. Once MSC3916 passes FCP, stable endpoints will become available. While releasing unstable support to users isn't required, having patches ready will help speed up the rollout.

We know this is a quicker rollout than usual, but with your help, we can improve user safety and security across the ecosystem. Most clients should find this update straightforward, but if issues are encountered, please reach out in #matrix-client-developers:matrix.org or on the MSC discussion. The team is monitoring the room to help clients adopt the change.

Web browser clients might face the most challenges, given the need to specify an Authentication HTTP header on media requests, so reviewing this pull request and its dependencies could provide useful implementation insights.

Thank you for your support. If you have any questions, let us know. We look forward to a smooth transition with minimal user-visible impact 🙂

Dept of Servers 🏢

conduwuit (website)

strawberry🍓 (it/pup/she/they) 🏳️‍⚧️ 🦴💜🩷 reports

Release 0.3.4 and Release 0.3.3

Hi everyone! conduwuit 0.3.4 has just been released, and 0.3.3 was released last week. Both releases have been focused on security and some small maintenance things, vastly improved documentation on maintenance, moderation, usability, and admin commands, and a new moderation feature for proactively deactivating bad users on your homeserver.

conduwuit was officially added to Complement, and support for conduwuit running the Content-Disposition safety tests was added there too: https://github.com/matrix-org/complement/pull/723

Some of the new changes include:

  • Send various security-related HTTP headers for all conduwuit responses by default, most importantly a strong Content-Security-Policy
  • Perform additional sanitisation on the uploaded attachment file name for the browser Content-Disposition header
  • Return inline browser Content-Disposition based on our own detection of the file, only return inline on safe multi-media files, and fully distrust the Content-Type header with safe and secure fallbacks
  • Fix non-functional user event homeserver reports
  • Fix non-functional unbans due to incorrect upstream code
  • New moderation config option to automatically deactivate the accounts of any users who attempt to join any malicious room based on your global ACLs, banned rooms, etc
  • Fix Debian packaging
  • Don't send the target user's avatar_url or display name on ban events
  • Forget all the rooms when leaving all rooms for a user upon account deactivation
  • Fix user presence statuses showing up as empty strings (noticeable in at least FluffyChat as empty white pills on users)
  • Fix incorrect appservice namespace alias check
  • Lots and lots of documentation revamps and improvements, also link to transfem.dev's rules document, and add a contributing guide
  • Fix using conduwuit on NixOS without flakes
  • Resolve various arithmetic and type casting correctness
  • And bump all the dependencies

GitHub Releases | Docker Hub | NixOS

Liberapay | GitHub Sponsors | Ko-fi

Chat with us in #conduwuit:puppygock.gay

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the Element

Andrew Morgan (anoa) says

This week Synapse v1.107.0 was released.

Top of the list of features is declaring support for Matrix v1.10, adding support for both MSC3823: Account Suspension and MSC4115: membership metadata on events. This is alongside the usual host of bugfixes, doc updates and dependency bumps.

Dept of Clients 📱

Commet (website)

airyz announces

Hello all, today we released a minor update: v0.2.1! This update is fixing some minor bugs found with last weeks release, as well as adding a few smaller feature requests:

  • Added saving of images/videos from messages
  • Added an option to follow the system theme
  • Formatting of timestamps now follows system format
  • Added support for UI scale on mobile

Thanks to everyone who stopped by with feedback and support of last weeks release!

Join Our Room · GitHub

kazv (website)

nannanko says

kazv 0.2.0 has been released.

Added

Fixed

Internal changes

Nheko (website)

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

Nico announces

Heya, short update from the Nheko side.

checkraisefold has been pretty busy getting video calls to work on Windows. Now you probably won't be able to get to use them in the near future because we haven't solved the packaging problem. But if you build Nheko yourself and spend a bit of extra effort, you can get it to work. (Linux calls of course still work as before and macOS hasn't been touched yet.)

q234rtc is also busy pointing all my faults in the activation token logic and it should now work much better with the latest sway changes.

Bulby has fixed some emoji confusion, where some emojis had their description swapped, which while funny, isn't really that useful. They also cleaned up the code around the emoji completer code generation a lot, which is great!

A few people also pointed out that our flatpak nightly repo was broken for the last few weeks, but luckily that was easily resolved by updating a few packages. So if you are a nightly user (the unstable builds, not because you sleep during the day), you should be able to get automatic updates again for the flatpak packages!

We also put quite some work into fixing up rough corners in our explicit mentions support. Not only did we disable the normal mentions rules even on servers that don't support the new ones, we also had our logic the wrong way around... Replies also now include an explicit mention, however it isn't recursive. See MSC4142 for details!

Nep fixed the image copying on Windows. Nheko has a copy button for copying the currently opened image to your clipboard. On Windows that didn't work, because Windows has stricter requirements which thread is allowed to access the clipboard.

We also had a computer guy cleanup our flatpak builds. Over the time our app metadata files have acquired quite some cruft and various tooling started to complain. In most cases even rightfully so!

And lastly, if a message contains a spoiler, you won't get spoiled anymore by having to read the message with the spoiler revealed in the sidebar or notifications! Instead the whole message will just say it contains spoilers and you need to open the room and manually reveal the spoilers. The specification actually suggests a different behaviour where you link to a text file in the media repo, however we couldn't find a way to make that work in encrypted rooms, so we just decided to implement the other side of the stick and hide spoiler messages where possible in the client. Probably we should bring that up as a specification issue at some point.

For now though, that is all I have. Various board meetings and elections have been quite exciting the last few weeks and I hope I have something cool to share with you soon about that (not about the Matrix Foundation board before you go and speculate)! And it has been a pleasure seeing so many contributions all the time, thanks a lot to everyone involved! But until then, see ya later!

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

  • version 1.6.7 is out (but soon a new version 1.6.8 with a quick hotfix for voice message recording will be out)
  • Permalink support is completed and available!
  • mentioning now works when the rich text editor is disabled
  • the UI for room dm and members details has been completely revamped, to provide a better user experience
  • QR Code Login has made great progress and is working great, and will probably be ready for the next month!

Dept of SDKs and Frameworks 🧰

libkazv

nannanko reports

libkazv 0.4.0 has been released.

Security

Added

Fixed

Removed

Internal changes

matrix-rust-sdk (website)

Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM

dkasak says

Security release: We've released matrix-sdk-crypto 0.7.1 (the crypto crate which is part of the Matrix Rust SDK project; Github tag, crates.io release), which is a security release fixing a Moderate severity issue (CVE-2024-34353/GHSA-9ggc-845v-gcgv). See the linked advisory for details.

Dept of Interesting Projects 🛰️

Homeserver-Spec-Versions Dashboard

clokep announces

I made a dashboard to track the support for Matrix spec versions across homeserver implementations. It includes charts for how long it took homeserver implementations to support a new version after it was published, as well as historically when each version was supported.

It works by fetching the repository of each homeserver and crawling changes to particular files and checking the supported versions at each change. It notes whenever the supported versions changes and then visualizes the data.

If you see an issue or have a suggestion, please open an issue on the repo.

Matrix Federation Stats

Aine announces

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

As of today, 9459 Matrix federateable servers have been discovered by matrixrooms.info, 2841 (30.0%) of them are publishing their rooms directory over federation. The published directories contain 159566 rooms.

Stats timeline is available on MatrixRooms.info/stats

How to add your server | How to remove your server

Final Thoughts 💭

Writing a good "This Week in Matrix" entry

MTRNord announces

Hello fellow TWIM posters and yet to become TWIM posters.

There is now a guide available for rules and suggestions around writing your next TWIM entry. You can find this guide at https://matrix.org/twim-guide/

Going forward we expect people to follow the rules stated in this and hope that people also apply the mentioned recommendations on the formatting.

If you have any questions, please reach out over in the TWIM Room

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
1doctoruwu.uk218.5
2girlboss.ceo220.5
3nerdhouse.io263.5
4daedric.net278
5synapse.rntpts.de283.5
6boehm.sh366
7craftingcomrades.net379
8bunkerbu.de398
9lewd.social407
10sulian.eu457

#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
1spritsail.io68
2doctoruwu.uk83.5
3girlboss.ceo122
4synapse.rntpts.de152
5aguiarvieira.pt178
6transfem.dev192
7sulian.eu201.5
8shiftsystems.net208
9matrix.its-tps.fr234.5
10uwu.sulian.eu259

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.

Voting has begun in the Governing Board elections

Par : Josh Simmons
17 mai 2024 à 02:00

Voting has started for the Governing Board elections and runs till May 31! This is our first election and we are very excited. All of the results will be published here on the blog on June 3.

You can learn about all of the candidates on our 2024 election page. All eligible voters should have received an email from OpaVote, the election system we have chosen for this year’s elections.

If you believe you are eligible to participate but have not heard from us, first check the inbox and spam folders of the email address you have on file with us (such as through Donorbox or Patreon). Please email us if you have any questions.

All members of each constituency group are entitled to vote on the candidates within that constituency group. Generally, we will hold elections for half of the constituency groups each year. However, this year we are holding elections for all of the constituency groups:

  • Community representatives
    • 4 seats for Individual Members – these are people who currently provide financial support to the Foundation.
    • 3 seats for Ecosystem Members – these are FOSS projects and communities around Matrix.
    • 2 seats for Associate Members – these are FOSS foundations, academic institutions, and other communities that are aligned with key parts of our mission.
  • Funder representatives
    • 4 seats for Platinum Members – these organisations sponsor at the highest level.
    • 3 seats for Gold Members — these organisations sponsor at a high level.
    • 2 seats for Silver Members — these organisations sponsor at a level commensurate with the size of their organisation.
  • Foundation representatives
    • 3 seats for Guardians – these are the members of the Foundation's board of directors.
    • 2 seats for the Spec Core Team – these are the members of the Spec Core Team that looks after the spec.
    • Managing Director – this is the Foundation's head of staff, no election is run for this seat.

Next year, we'll run elections just for Gold, Silver, Individual, and Associate Members.

For more background on the Governing Board and its place in the growth and evolution of the Matrix ecosystem, read: The Governing Board, our next big step in open governance.

This Week in Matrix 2024-05-10

Par : Thib
10 mai 2024 à 02:00

Matrix Live

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

Dept of elections 🗳️

Neil announces

Hi all, I am also standing for the Matrix Governing Board as the Element representative in the Platinum Member constituency. I wrote a short blog post explaining who I am and what I hope to achieve. Others have pointed at it already, but please do check out the Governing Board nominees campaigning bonfire

Gwmngilfen announces

I'm standing for the Matrix Foundation Governing Board elections in the Individual Members category! You can find my platform statement in the list of nominees but I've also written some more words on my thoughts & priorities. I'm always happy to debate further - please join us in #governing-board-nominee-campaigning-bonfire:matrix.org where some excellent discussion has already happened, but more is very welcome 🙂

Salt says

I'm standing for the Matrix Foundation Governing Board elections in the Individual Members category. I think my campaign statement in the list of nominees covers things pretty well but happy to answer any additional questions in #gbnc-individual:matrix.org . tl;dr: I have a ton of community board experience and want to bring the human-communication-facilitation skills I've developed to set this new governing board on an effective path.

Sumner Evans says

I am running as an Individual Member for the Matrix Governing Board and I do not feel like my positions were fully expressed in the soundbite-length platform statement allowed in the form submission. I've expanded on my position in a blog post: My Matrix Governing Board Platform. It includes details of my community involvement including many footones, a better-formatted platform, and a set of specific policies which I hope to advocate for.

In addition, I would like to endorse two Ecosystem Member candidates (see my endorsements blog post).

andybalaam announces

I'm standing for the Matrix Governing Board as an Individual Member. If you'd like to hear about my priorities, check out my blog post! Thank you to all the nominees for their great platform statements and discussion in the campaigning room, which you are welcome to join.

Dept of Servers 🏢

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the Element

Matthew reports

On May 12th 2014, a bunch of developers converged in Rennes for a workshop to kick off the design of a new open source protocol for decentralised communication: Matrix. The first public release of Matrix was the public repository for Synapse, which was released on Aug 12th 2014 (prior to Matrix being announced on Sept 3rd) - but if you're curious as to what went on that summer between the original design workshop and the first public snapshot, we've released the pre-release repository synapse-ancient for archaeological interest: https://github.com/matrix-org/synapse-ancient. To avoid confusion: the whole Matrix project was originally codenamed Synapse, so most of the repository uses that name, until we settled on a final name just before the first public release.

Dept of Clients 📱

Commet

airyz says

Hello! Our first major update, v0.2 released this week featuring a bunch of new features and improvements!

Whats New?

  • Push Notifications
  • Experimental support for conversation bubbles on Android
  • URL Previews
  • Room Permissions Management
  • Single Sign-on
  • Support for Multiple Languages
  • A bunch of bug fixes
  • And a whole lot more!

Thanks to everyone who has already been using Commet and giving feedback!

Join Our Room · Github

Neochat (website)

A client for matrix, the decentralized communication protocol

Tobias Fella announces

Here's what happened in NeoChat since you last heard from us:

  • It's now possible to load encryption keys from a backup. Better integration for this is coming soon, together with Cross-Signing support.
  • We've added integration with purpose, Plasma's content sharing mechanism. This means that you can share content from apps that support it directly to a matrix room.
  • NeoChat will now show captions for images and other media messages.
  • It will now show a link preview for all links in a message, instead of just one.
  • Room list filtering has been merged into the quick switcher.
  • It's now possible to show a QR code for rooms and the local user and scan other people's QR codes from a built-in scanner.
  • New DMs are now always encrypted.
  • Our integration with itinerary data was improved, now supporting more types of data. Additionally, text documents and pdf files can now be previewed.
  • We've done some internal restructuring, which makes NeoChat a lot more stable when leaving, joining, and switching rooms, spaces, and accounts.
  • NeoChat now remembers which files have been downloaded before and shows them correctly.
  • There's now an option to keep the previous behavior where all rooms are shown in the "Home" tab, instead of just the rooms that are not in any joined space.
  • NeoChat's devtools have also seen some improvements: There's now an option to show all hidden events and it's now possible to change arbitrary room state

Element X iOS (website)

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

Ștefan announces

Following last week's big changes we switched gears and focused on smaller bugs and tweaks:

Element X Android (website)

Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose

Jorge announces

This week the Android team continued working mainly in:

  • 🔗 Permalinks: we expect to enable this feature soon for all users! In the meantime we fixed the last couple of reported bugs for this feature.
    • OIDC login broke because we unexpectedly intercepted some Matrix Authentication Service URLs.
    • Message notifications not navigating to the right screen when opened.
  • 🔑 QR code login: we've been ironing out some bugs on the clients and improving the UX, but there's still some work ahead since this is a large effort involving lots of different projects.
  • 🛠️ UX cleanup: we've improved the Settings, Room settings and User profile screens.
  • 🙏 Thanks to tonkku107 for enabling per-app language settings on Android 13+!
  • 🐞 Other bug fixes:
    • Removed mandatory session verification for existing sessions.
    • Fixed a selection issue with the text message composer on Android 14+.
    • Better log uploads for bug reporting, enqueuing newest log files first and adding more useful info for debugging the issues.

Dept of Widgets 🧩

Milton Moura reports

Wow! How time flies by! A lot of new stuff has been popping up in NeoBoard, since it's 1.0.0 release last October!

NeoBoard is a whiteboard Matrix widget for realtime visual collaboration that can be embedded in Element Web. You can use it for presenting slides or draw vector graphics with your mates, while keeping the data safely stored in Matrix rooms.

Version 1.17.0 was released a couple of weeks ago and it's amazing!

Here's a glance over the features we have developed recently:

  • New formatting options, such as bold, italic, color and alignment for text elements
  • Multi-selection of shapes, both individually and by dragging a selection area
  • Multi-selection actions, such as move, resize, copy/paste, delete, duplicate and all other formatting options
  • Set your slides to full screen for a more immersive experience
  • Slide duplication
  • A brand new Arrow tool to connect things

If you're interested in more cutting edge features, you can enable image uploads, by setting the appropriate environment variable on your deployment and pimp up your presentations!

You can add NeoBoard as a widget to one of your rooms right now by following these instructions .

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

Milton Moura announces

The Matrix Widget Toolkit was recently updated to support React 18.x and the latest Redux 9.x / Redux Toolkit 2.x releases.

This means that the following packages saw new major releases:

and the MUI Matrix Example Widget was updated to reflect this.

We also have removed the deprecated @matrix-widget-toolkit/semantic-ui package from the repo, as it was no longer maintained.

At Nordeck, we use the Matrix Widget Toolkit as the basis for developing widgets as single-page web applications that run embedded within Element Web.

Checkout NeoBoard, an end-to-end encrypted realtime collaborative whiteboard, or NeoDateFix, a calendar-focused video conference solution for teams, and see what can be built with the toolkit and Matrix.

if you have any questions or feedback, you can reach us at #nordeck:matrix.org

Dept of SDKs and Frameworks 🧰

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

It seems like we have hit the mark of 6 months without news from Ruma, so now is the time to fix that!

We just released Ruma 0.10.0 with a lot of improvements and bug fixes, including:

  • Implement new features of Matrix 1.10, like media captions or multi-stream VoIP
  • Improve the ruma-html crate to be able to navigate the HTML tree and parse supported elements
  • Add support for manually marking rooms as unread (MSC2867)
  • Fix some endpoints where the response is a redirect or a non-JSON response
  • Bump the http crate to version 1
  • Prepare the new features that should be available in Matrix 1.11

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

There is also exciting work in the pipelines, like initial support for logging in with a QR Code with OpenID Connect (MSC4108).

And maybe our next PR will be yours! If you are looking for inspiration, we have a few "help-wanted" issues to get you started.

Matrix Dart SDK (website)

Matrix SDK written in pure Dart.

td announces

meep quick update, matrix 0.29.0 released, here's a summary:

v0.29.0

Refactoring release which fixes a flickering of sent file events in the timeline. The State events in a room are no longer instances of Event but StrippedStateEvent by default, which is a base class of Event. Usually in join rooms the state events are actually Event and can be used as those after a type check if needed.

Example:

// Before:
final event = room.getState(EventTypes.RoomCreate);

// After:
final strippedStateEvent = room.getState(EventTypes.RoomCreate);
final event = strippedStateEvent is Event ? strippedStateEvent : null;

Also be aware that Event.remove() has been renamed to Event.cancelSend() to make more clear that this is only to delete events from database and cache which have not been synced yet. They no longer appear in the Client.onEventUpdate stream but on the new Client.onCancelSendEvent stream.

  • chore: more gh_release fixes (td)
  • chore: reduce isValidMemEvent log level (td)
  • ci: Add tests for database on web (Krille)
  • refactor: delete not sent events without eventupdate stream workaround (Krille)
  • refactor: Removes the behavior of deleting an event if the file is no longer cached (Krille)
  • refactor: Use strippedstatevent as base for room state and user class (Krille)

That's it, see you soon bye byee

Elm SDK (website)

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

Bram reports

Today, version 3.2.0 is out! This means that the Vault type has been defined completely.

What this means, is that this might be the last beta release that does not offer functionality with the Matrix API directly. The codebase is ready to accept alterations from the Matrix API using VaultUpdate types, which means that the first actual clients written in (beta) Elm can be expected soon! 🎉

Dept of Events and Talks 🗣️

Matrix meetup @ devconf.cz

kitsune announces

Matrix goes to Brno! Well, in one way it's already there, as devconf.cz uses it as the chat platform - but this year the conference will also include a dedicated Matrix meetup. The list of things to discuss is open - let me (@kitsune:matrix.org) know if you want to speak on it or to discuss something specific. The full conference agenda is at https://www.devconf.info/cz/, the registration is open and completely free of charge. See you there!

Matrix Federation Stats

Aine announces

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

As of today, 9467 Matrix federateable servers have been discovered by matrixrooms.info, 2839 (30.0%) of them are publishing their rooms directory over federation. The published directories contain 159320 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
1spritsail.io212
2doctoruwu.uk233
3maunium.net263
4aguiarvieira.pt283
5nerdhouse.io295
6girlboss.ceo306
7envs.net344.5
8chf.house368.5
9plocki.org379
10lewd.social392.5

#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
1doctoruwu.uk87
2spritsail.io95.5
3aguiarvieira.pt107
4matrix.its-tps.fr184.5
5girlboss.ceo187.5
6puppygock.gay254.5
7craftingcomrades.net270
8uwu.sulian.eu290
9transfem.dev303
10jpeg.city305

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-05-03

Par : MTRNord
3 mai 2024 à 02:00

Matrix Live

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

Dept of Status of Matrix 🌡️

Governing Board Elections 2024 - Voting Starts on May 18, 2024

Thomas B says

Only two weeks remain until the first Governing Board Elections.

Who are the nominees?

You can find the names of the nominees on the election page, but who are they, and what are their visions for the future? The nominees' campaigning has been underway since April 27. Members of the ecosystem are already quite active at #ecosystem.forum:matrix.org. Feel free to join and meet the nominees for the ecosystem members group.

Please, other constituencies, also find a place to meet, greet, and chat with members where people can get to know you better.

With Josh Simmons (away, back May 9th)'s permission, I opened the space #governing-board-nominee-campaigning-bonfire:matrix.org with several rooms for the different constituency groups.

Members: Come and join to meet the nominees! Nominees: Come and join to share your ideas with members!

Dept of Spec 📜

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

  • There were no new MSCs this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

  • No MSCs were accepted this week.

Closed MSCs:

Don't panic; each of those MSCs were closed in favour of new MSCs that superseded them.

Spec Updates

The Matrix.org Foundation is gearing up for elections of the Governing Board. The Governing Board will influence the future direction of Matrix, and is made up of 9 constituencies. The Spec Core Team is one of these constituencies, alongside community members, individuals from sponsors, the managing director etc. In our case, the Spec Core Team may put forward two members to be part of the Governing Board, and only members of the Spec Core Team will vote on who this will be.

So far we have received several nominations from within the team; you can view the full list of nominations for each constituency.

Of course, that still leaves 8 other constituencies, some with more than two members. Whether you're a company or an individual, learn how you can put your own name in the hat here!

On a somewhat separate topic, a reminder that the next release of the Matrix spec, v1.11, is expected this month (May). Stay tuned for more news on that front soon.

Random MSC of the Week

The random MSC of the week is... MSC4000: Forwards fill (/backfill forwards)!

This MSC defines a new Federation API endpoint, GET /_matrix/federation/v1/forwards_fill/{roomId}, which differs from /backfill in it allows you to fetch events that occurred "later" in the DAG. (It also differs in that the events provided are not also included in the response, but that's less relevant here.)

I initially wondered why this MSC is actually useful. To me, /backfill makes intuitive sense. If you receive an event that has a prev_events or auth_events field referencing an event ID you don't know about, you'd call /backfill on other homeservers asking if they had that event. But how would you know that you lack an event that's forward ("later") in the DAG?

It appears that the mechanism here would be different. You wouldn't know - so you'd eagerly ask this question, seeing whether you got anything back that you didn't know about.

A use case for this is when a client calls /context on an event, which gives you the events "around" it. Today, the homeserver gives you the surrounding events that it knows about. But what if there's a gap in the DAG? This can happen if you or another homeserver in a room is on an unreliable connection, and that other homeserver failed to inform you that they sent an event.

Typically this is resolved by receiving a later event which references one of the ones you're missing; you'd call /backfill using the later event on a homeserver that has the event you're missing.

But what if that later event hasn't been sent yet? It can be useful to have a proactive method of asking for missing events. That's the gap in functionality that /forwards_fill can fill (I'm sorry).

If you find the prospect of this endpoint useful, head over to the MSC and leave your feedback as a PR review comment.

Dept of Servers 🏢

strawberry (it/pup/she/they) 🏳️‍⚧️ 🦴💜🩷 says

conduwuit

Release 0.3.1

Hi everyone! conduwuit 0.3.1 has been released. This is a minor maintenance follow-up to last week's release which was very well received by many new users. This week was mostly cleanup, improvements, and some bug fixes. Some of the changes include:

  • Add Complement testing support to CI.
  • Optimize RocksDB compaction to further reduce database file count.
  • Improve concurrency on single-core systems.
  • Fix presence status results from /presence/{userId}/status. (/sync results unaffected).
  • Nix flake fixes and improvements; cache dependencies in binary cache and improve build performance.
  • Workaround room creation requests with non-spec compliant initial_state bodies (source was an appservice).
  • Start uploading container images to GitLab Container Registry.
  • Bump all the dependencies everywhere (maintenance)
  • General code cleanups, minor optimisations, and maintenance refactors before we transition out of feature-freeze and prepare for the next major release.

GitHub Releases | Docker Hub | NixOS

Liberapay | GitHub Sponsors | Ko-fi

Chat with us in #conduwuit:puppygock.gay

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the Element

Erik reports

We released Synapse v1.106.0 this week, which contains some small performance improvements and bug fixes. Check out the release notes for more details!

Andrew Morgan (anoa) announces

Repeating this in here as it only ended up in TWIM out of bounds:

This week Element released Synapse v1.105.1, which is a security release that fixes a denial of service attack. If you haven't upgraded already, please do!

Note that the v1.106.0rc1 release candidate also contains the security fix. Thanks!

Dept of Clients 📱

Fractal (website)

Matrix messaging app for GNOME written in Rust.

Kévin Commaille reports

Here comes the bride Fractal 7, with extended encryption support and improved accessibility. Server-side key backup and account recovery have been added, bringing greater security. Third-party verification has received some bug fixes and improvements. Amongst the many accessibility improvements, navigability has increased, especially in the room history. But that’s not all we’ve been up to in the past three months:

  • Messages that failed to send can now be retried or discarded.
  • Messages can be reported to server admins for moderation.
  • Room details are now considered complete, with the addition of room address management, permissions, and room upgrade.
  • A new member menu appears when clicking on an avatar in the room history. It offers a quick way to do many actions related to that person, including opening a direct chat with them and moderating them.
  • Pills are clickable and allow to directly go to a room or member profile.

As usual, this release includes other improvements, fixes and new translations 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.

It is available right now on Flathub.

We are already hard at work for our next release, so if you want to give us a hand you can start by looking at our Newcomer issues or just come say hello in our Matrix room.

FluffyChat v1.20.0 has been released 🥳 (website)

Krille-chan says

Design improvements and new advanced UI to manage rooms.

Full Changelog

  • build: Fix google services patch (Krille)
  • build: Update matrix dart sdk (krille-chan)
  • build: Update to Flutter 3.19.6 (krille-chan)
  • chore: Let error reporter fill out bug report (krille-chan)
  • chore: More nicer event source display (krille-chan)
  • chore: Update user has knocked localization with emoji (krille-chan)
  • design: Adjust chat settings design (krille-chan)
  • design: Adjust settings design (krille-chan)
  • design: Fix color of invite button (krille-chan)
  • design: Follow up chat settings design (krille-chan)
  • design: Follow up settings design (krille-chan)
  • design: Improve user permission settings (krille-chan)
  • design: New chat access settings (krille-chan)
  • design: Redesign permissions settings with dropdownbuttons (krille-chan)
  • design: Remake UX of selecting messages and chats (krille-chan)
  • refactor: Download on android and iOS with file_picker (krille-chan)
  • Translated using Weblate (Arabic) (Rex_sa)
  • Translated using Weblate (Basque) (xabirequejo)
  • Translated using Weblate (Chinese (Simplified)) (大王叫我来巡山)
  • Translated using Weblate (Dutch) (Anonymous)
  • Translated using Weblate (Estonian) (Priit Jõerüüt)
  • Translated using Weblate (Filipino) (searinminecraft)
  • Translated using Weblate (Finnish) (Anonymous)
  • Translated using Weblate (Galician) (josé m)
  • Translated using Weblate (German) (Christian)
  • Translated using Weblate (Hungarian) (Máté Menyhárt)
  • Translated using Weblate (Indonesian) (Linerly)
  • Translated using Weblate (Latvian) (Edgars Andersons)
  • Translated using Weblate (Portuguese (Brazil)) (lucasmz)
  • Translated using Weblate (Portuguese (Brazil)) (Rudah Ximenes Alvarenga)

Element X iOS (website)

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

Doug says

  • 🔗 Permalink support is finished and will be available in next week’s release candidate! This includes support for users, rooms and events along with navigating to replies.
  • 🪄 Logging in with a QR code works and its truly magical! We’ve now seen plenty of successful test logins using this flow and are finishing off some error handling for the feature to be complete.
  • 🔔 We’ve finally added support for mentioning users when the Rich Text Editor is disabled. This gives markdown input parity with RTE and along with the recent change to use a plain text field, makes it the most reliable text input choice.

Element X Android (website)

Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose

Jorge says

This week has been really quiet since we have been focused on continuing the development of two features:

  • Permalinks: we fixed a couple of bugs related to navigation and have been working on getting navigating to an event and external links working so opening a matrix.to or element.io link will redirect you to the right room, user or event in a room.
  • QR code login: more polishing work has been done in preparation for the feature to be completed in other platforms.
  • Besides that, we worked on fixing some annoying bugs related to internal app versioning and migrations and minor design issues, as well as some rich text editor fixes to be included soon.

Dept of Non Chat Clients 🎛️

Emma [it/its] reports

BugMine

Matrix-based issue/bug tracker, based on Rory&::LibMatrix

Just a small progress update on basics this time around :)

I've figured out the basic semantics for having a project room, and a workaround for servers missing /state/x/y?format=event! The basic addition of issues has also been implemented.

The developer CLI also got some new powers, such as summarising all project rooms with issues at the press of a button!

Oh yeah, the web UI is responsive even with thousands upon thousands of entries! Really proud of that :)

Does any of this sound super exciting? Feel free to join us in this journey at #bugmine:rory.gay!

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, anything! Perhaps, bots, custom front-ends, ...?
  • Discussion, suggestions and ideas are welcome in #bugmine:rory.gay

Dept of SDKs and Frameworks 🧰

Johannes says

For those trying to use matrix-js-sdk in React Native, https://github.com/matrix-org/matrix-rn-sdk has been dusted off. It's now written in TS and provides a crypto store that is compatible with the latest version of matrix-js-sdk (if used with the legacy ASM build of libolm).

It's important to note that this won't work anymore once the libolm crypto code has been removed from matrix-js-sdk. The new Rust crypto library is not injectable in the same way, both because this feature hasn't been added in matrix-js-sdk and because its much bigger than libolm which makes bundling the ASM infeasible.

Emma [it/its] announces

Rory&::MatrixUtils - General utility suite for Matrix

Rory&::MatrixUtils is the oldest project in the Rory&::LibMatrix suite of projects. Did you know that LibMatrix used to be called MatrixRoomUtils.Core? In case you weren't already aware of Rory&::MatrixUtils, it's a general suite of tools aimed towards more niche or specific tasks, such as debugging space relations, migrating accounts, managing room profiles, etc.

In addition, it also has some more general nice-to-haves, such as being a native MSC3784 client (policy lists are identified by room type, mainly used for the Policy Editor), tooling to migrate a room across upgrades after a room split, support for Synapse's room query API with additional filters (eg. member count). In addition it also has quite a few moderation-related utilities, such as being able to modify some Mjolnir/Draupnir account data entries such as the protected room list. All in all, it's meant to offer dedicated tools to achieve a lot of "niche" tasks, and if you feel like you need a specific manual tool, feel free to reach out!

The "first party" instance is available at https://mru.rory.gay, and is a clientside-only web app!

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

Emma [it/its] announces

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

Some new features and bug fixes this time around, including work on HomeserverEmulator.

Additions

  • Added LibMatrixException to denote internal exceptions, such as when attempting to use a feature that a given homeserver implementation doesn't support.
  • Added Room.GetStateEventIdAsync(string type, string stateKey = "", bool fallbackToSync = true) in order to get the event ID for a given state event
    • Warning: this requires a homeserver implementation that supports /state/x/y?format=event properly though falling back to sync will be attempted unless disabled (to my knowledge only Conduwuit supports this).
  • HSE: Added resolving room aliases via room directory.
  • HSE: Added event relations endpoints, at least partially.

Changes

  • _hs.GetJoinedRoomsByType(string) now optionally takes an integer to limit concurrent requests.
  • Fixed Room.JoinAsync() not correctly splitting room ID to add a default via if none are provided.
  • HSE: Fixed a bug that caused attempting to download media to freeze the server and burn CPU?
  • HSE: Optimised room ID to room mapping.
  • HSE: Fixed a race condition that may cause rooms to not be mapped by ID after creation
  • HSE: Fixed room creation not actually causing the room to be considered valid despite returning a room ID.
  • HSE: Fixed handling of user profile.
  • HSE: Fixed ASP.NET Core attempting to wrongly apply model validation (by disabling it wholesale)
  • HSE: Optimised room lookup by ID
  • HSE: Room.SetStateInternal now takes in the relevant user rather than setting sender = ""
  • HSE: Room state cache is now only rebuilt if timeline has changed.

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 me know, I'd love to hear all about it!

Dept of Services 🚀

MTRNord announces

Draupnir4All

Sorry for the late Announcement but there will be db maintenance from 21:30 CEST until 24:00 CEST where I move the DB and the bot as well as its HS to new server infra which should solve the reliability issues it had over the last 2 weeks.

In reality the downtime likely is less since its already mostly prepared :) Just giving me some time in case of issues which I didnt account for :)

Dept of Events and Talks 🗣️

Matthew announces

I'm going to be in Delft in the Netherlands on Monday (May 6th), speaking in the Fediverse track at GOSIM Europe and finding out what Futurewei are up to with their Rust Matrix client Robrix and Robius UI framework.

GOSIM are also giving away 100 tickets to the conference specifically to folks in the Matrix & Fediverse communities:

🚀 Special Offer: 100 Complimentary Tickets to GOSIM Europe (May 6, 2024, Delft, The Netherlands) – Limited Time Only! 🚀

Exciting news for developers and tech enthusiasts in the Fediverse space! We are thrilled to announce that we're offering 100 FREE TICKETS for the upcoming GOSIM Europe Event on a first-come, first-serve basis. This is your chance to dive into the latest in Fediverse and find likeminded people to collaborate with.

🎟️ How to Claim Your Free Ticket:

Register at GOSIM 2024 Conference Tickets, Mon, May 6, 2024 at 9:00 AM | Eventbrite

Use promo code: gosimfediverse2024

Hurry, as spaces are limited, and tickets are expected to go fast!

The GOSIM event promises to be an unparalleled opportunity to network with top experts, gain insights from leading tech innovators, and collaborate on exciting open source projects. Don’t miss out on this chance to be part of something truly groundbreaking.

⏰ Offer valid for the next 72 hours only!

Secure your spot today and be part of the leading edge in tech innovation!

Dept of Interesting Projects 🛰️

Florian Jacob says

Florian from the Decentralized Systems and Network Services research group of KIT university reports:

In our research, we decompose practical decentralized systems to match them to decentralized systems theory, and bring that theory back to practice. 🧪 Many practical decentralized systems share a common core of “a set of events ordered in time by predecessor hashes”, like the Matrix event graph. By unifying this core as a "hash chronicle" conflict-free replicated data type, we show that hash chronicles act as a fault-tolerant, logical clocks that order events ⏱️. Hash chronicles and derived systems can achieve monotonicity (next state is higher / bigger / greater / older than the current state), which we show to be a strong security property despite being implicit in practical system designs.

You can read all about it in our newest publication, Logical Clocks and Monotonicity for Byzantine-Tolerant Replicated Data Types, at this year's Workshop on Principles and Practice of Consistency for Distributed Data. The article is freely available as open access under CC-BY. If you are interested in discussing this or other scientific resources related to Matrix, join #science-of-matrix-reading-group:kit.edu 🧑‍🔬🔖.

Matrix in the News 📰

HarHarLinks announces

Linux Mint is going Matrix https://blog.linuxmint.com/?p=4675

tldr: Based on the feedback from the community, Mint is switching to Matrix. While previously Mint developed it's own IRC client, but now Mint 22 will start shipping Element and a small onboarding UI.

Matthew announces

We also forgot to highlight that Element and BigBlueButton are partnering together on using Matrix to add end-to-end encrypted comms to BBB - see this week's Matrix Live for the demo! https://element.io/blog/partnership-with-bigbluebutton-for-matrix-based-virtual-classrooms/

Matthew says

Forgot to mention that last week that the United Nations (UNICC) has selected Matrix (via Element) for their secure communication needs - https://element.io/blog/unicc-selects-element-for-secure-communications/ and https://www.techradar.com/pro/the-united-nations-ditches-big-tech-in-a-bid-for-security for more details.

Matrix Federation Stats

Aine says

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

As of today, 9464 Matrix federateable servers have been discovered by matrixrooms.info, 2835 (30.0%) of them are publishing their rooms directory over federation. The published directories contain 161792 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
1doctoruwu.uk226
2maunium.net299
3aguiarvieira.pt300
4spritsail.io304
5synapse.rntpts.de313
6uwu.sulian.eu315
7nerdhouse.io316
8girlboss.ceo345.5
9momou.chat375
10puppygock.gay416.5

#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
1doctoruwu.uk115
2synapse.rntpts.de150
3aguiarvieira.pt152
4girlboss.ceo171
5spritsail.io174.5
6matrix.its-tps.fr182
7syn-075-141-169-120.res.spectrum.com:8447237
8uwu.sulian.eu261
9puppygock.gay266
10jpeg.city282

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-04-26

Par : Thib
26 avril 2024 à 02:00

Matrix Live

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

Dept of Status of Matrix 🌡️

Josh Simmons says

We’re positively glowing as we see all the people who are being nominated for our first ever Governing Board elections! The nomination period closes April 26 end of day (AOE time) and we’ll be posting all the nominees on our new election information center within 24 hours after the period closes.

Further, we’re pleased to welcome our 12th Ecosystem Member this week: Fractal 🎉

Does your project or community use Matrix? Does your business benefit from Matrix? Join the Matrix.org Foundation as a member to make your voice heard and secure the future of Matrix.

Dept of Spec 📜

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

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

Closed MSCs:

  • No MSCs were closed/rejected this week.

Dept of Servers 🏢

Conduit (website)

Conduit is a simple, fast and reliable chat server powered by Matrix

Timo ⚡️ announces

We did it! Finally, Conduit version v0.7.0 released, bringing features, improvements, but also some security fixes, so it's advised you upgrade as soon as possible.

It took some time, but I find it very important to do extensive code reviews, which finds both minor and major problems more often than not.

  • BREAKING: The docker container changed. You need to explicitly set CONDUIT_CONFIG="" now to reproduce the previous behavior. You might also have to add expose: - 6167 to your docker compose config.
  • BREAKING: Require explicit database backend, you need to explicitly set it to sqlite or rocksdb now !636
  • Feature: Add support for room v11 !562
  • Feature: Bump default room version to v10 !628
  • Feature: Use _matrix-fed._tcp SRV record, fallback to _matrix._tcp !616
  • Feature: Add argument parser for the conduit executable !385
  • Docs: Add registration_token in default cfg and DEPLOY !557
  • Docs: Build docs using mdBook and copy all markdown files !604
  • Docs: Document all configuration options !635
  • Improvement: Sliding Sync Improvements !549
  • Improvement: Improvements to /sync performance and db size !590
  • Improvement: Declare matrix v1.5 support !568
  • Improvement: Use upstream reqwest instead of vendored one !527
  • Improvement: do not save typing edus in db !597
  • Improvement: Remove log config modification !553
  • Improvement: use simpler rocksdb config !602
  • Fix: Unrejectable invites !623
  • Fix: ACL error shouldn't break the whole request !542
  • Fix: Avoid panic when client is confused about rooms !588
  • Fix: Send push notification on invite to invited user and etc !559
  • Fix: Don't give guests admin !591
  • Fix: Do not allow administration of remote users !614
  • Fix: Remove join_authorized_via_users_server field on state update !619 !385
  • Fix: Do not expect that all http requests are valid reqwest requests !611

conduwuit (website)

strawberry (it/pup/she/they) 🏳️‍⚧️ 🦴💜🩷 reports

a very cool, featureful fork of Conduit

conduwuit is a well-maintained, hard-fork of Conduit with tons of new features, many bug fixes, huge performance improvements, quality of life enhancements, moderation tools, and much more! I have been working on this since January and progress has been outstanding. It's time to share my joy with all of you too. The best part: conduwuit is a full drop-in replacement for Conduit. It's fully database compatible, with no migration necessary. You can even go back if you don't like it.

Check out the full list of differences here. There is so much. I can only highlight some of the big stuff:

  • 👁️ Read-receipts federated in real-time.
  • ⌨️ Typing indicators over federation.
  • 🙋‍♀️ Complete presence support.

All of these features are fast. Your client will feel snappy. Conduwuit has been the leading server in both #ping:maunium.net and #ping-no-synapse:maunium.net for many weeks in a row.

I encourage you to give it a try and join #conduwuit:puppygock.gay 💜. The public homeserver I host running conduwuit is available for use by entering transfem.dev as the server-name in your client of choice.

I'd like to personally thank various contributors for helping me get conduwuit going: @jason:075-141-169-120.res.spectrum.com:8447 for everything, from performance and optimisation, to the core Matrix things and some features. @tom:doctoruwu.uk for the Docker CI and other Docker related work. @morguldir:sulian.eu for Docker and Nix-CI work. @charles:computer.surgery for the initial GitHub Actions CI port and help with various Nix-related things. @benjamin:computer.surgery for getting tokio-console working to optimise and test this release. @qubic:qubicfluff.pl for Complement with Nix, misc Nix work for macOS, and working on a load tester written in Rust for conduwuit. @jason:littlevortex.net for finding critical bugs inherited from upstream, providing watcherbot: the essential toolbox for homeserver development, and Complement testing suite help. @raizo:raizo.dev for integrating loole to replace tokio channels which increased federation performance.

Special thanks to the various folks helping with development testing, code spot checks, and/or current donors not listed above: @aranjedeath:explodie.org, @efscher:matrix.nyc.what.if.ua, @frebib:spritsail.io, @k900:0upti.me, and everyone else who helps out.

Chat with us in #conduwuit:puppygock.gay

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the Element

anoa says

This week Element released Synapse v1.105.1, which is a security release that fixes a denial of service attack. If you haven't upgraded already, please do!

Otherwise, a new release candidate went out yesterday! Synapse v1.106.0rc1 contains new features that are available for testing ahead of next week's full release. This release candidate contains the security fix from v1.105.1. Please test this release candidate and file bugs if you're able to. Thanks!

Dept of Clients 📱

Element X Android (website)

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

benoit reports

  • We have focused on 2 main topics this week:
    • permalink navigation: this will land very soon, thanks to new APIs provided by the SDK, which allow you to navigate to any event of a timeline. Room and user navigation is already available on the nightly version. Once this is done, we will handle navigating to a replied event, and also external link navigation, to let Element X open matrix.to links.
    • Login with QR code: while there were very positive tests on login using a QR code, the last tweaks and tests are being added and it'll need some time to be fully stable.
  • We have also improved the verification screen to help users if they need to create a new recovery key.
  • And the bug around re-verifying verified sessions has been fixed.

Dept of SDKs and Frameworks 🧰

Trixnity (website)

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

Benedict reports

Another Trixnity release this week:

features:

  • added thread_id to SetReceipt

bugfixes:

  • fix deserialzation of redacted m.room.encrypted events
  • always handle unencrypted content

Matrix Dart SDK (website)

Matrix SDK written in pure Dart.

td announces

meep quick update, matrix 0.28.0 released, here's a summary:

v0.28.0

This release introduces the new famedly calls, it brings 1:1, mesh and livekit calls support to the matrix dart sdk, read more at: voip docs

Here's the generated changelog:

  • feat: famedly calls (td)
  • chore: create_gh_release job (td)
  • feat: lcov and tag olm tests (td)
  • fix: Make room.setPower more type safe and avoid change powerlevel in RAM before sending request to server (krille-chan)
  • refactor: Use prevBatch from server for pagination in event search (krille-chan)
  • fix: canChangePowerLevel should return true for own user (krille-chan)

That's it, see you soon bye byee

Elm SDK (website)

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

Bram reports

Today, version 3.1.0 is out! It exposes a Matrix.Room module that allows users to view and manipulate Matrix rooms.

With the main functionality (rooms) being implemented, the Elm SDK is soon arriving at one of its first versions where a basic client can be built in beta. Soon, the first Elm client since Scylla and the chess client will be able to emerge. 🌱

Dept of Bots 🤖

Pok'em (website)

Patrick announces

A notification helper bot. It lets you send messages to a Matrix room using an HTTP request, website, or CLI. The name is a shortening of "Poke Them"

If you're familiar with ntfy.sh, this is similar but will work only for Matrix.

I consider this to be mostly feature complete already.

Dept of Events and Talks 🗣️

Matrix Conference 2024

Thib announces

TWIM And let me start with a small yet huge announcement. THE MATRIX CONFERENCE IS HAPPENING!!

Building on the success of the volunteer-led Matrix Community Summit of last year, the Foundation is going big this year and organising the Matrix Conference in Berlin from September 19th to 22nd!

Stay tuned on the Matrix.org blog and look out for a Call for Papers!

Matrix User Meetup Berlin

saces announces

Next Matrix user meetup 1.5.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.

Also when the bbq is lit you may wish you brougth your favorite item :)

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 🛰️

Chaz (website)

Patrick says

It's an AI model frontend in Matrix, that connects to many different backends. There is a blog post introducing it as well.

Chaz is a Matrix bot that uses your AIChat config to connect to ChatGPT, local ollama instance, Claude, or other LLM APIs and provide a chat experience from within Matrix. If you're familiar with things like "Open WebUI", "SillyTavern", etc, this is similar but more limited.

There is a demo instance, but right now this is something that you'll need to run yourself so that you can use your own API keys to access the backends.

Fractal Networks HomeServer

Mo announces

TWIM: Fractal Networks announces Fractal HomeServer, a Matrix powered self-hosting platform and reference implementation of the Fractal Network architecture: https://www.reddit.com/r/selfhosted/comments/1catzwg/introducing_fractal_homeserver/

Matrix Federation Stats

Aine says

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

As of today, 9514 Matrix federateable servers have been discovered by matrixrooms.info, 2853 (30.0%) of them are publishing their rooms directory over federation. The published directories contain 161741 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
1doctoruwu.uk229
2uwu.sulian.eu296
3nerdhouse.io304
4synapse.rntpts.de327
5spritsail.io338.5
6girlboss.ceo394
7aguiarvieira.pt444
8lewd.social449
9craftingcomrades.net454
10littlevortex.net537.5

#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
1doctoruwu.uk93
2uwu.sulian.eu110
3spritsail.io149
4girlboss.ceo215.5
5aguiarvieira.pt231
6frai.se259
7feline.support264
8matrix.its-tps.fr274.5
9puppygock.gay288.5
10craftingcomrades.net306

That's all I know

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

Post-mortem of the Matrix.org Outage

25 avril 2024 à 18:20

The Matrix.org homeserver suffered from an outage on Monday 22 April, between 08:00 UTC and 10:00 UTC, followed by slowness for the next 2 hours.

The outage occurred during scheduled maintenance with no expected downtime. It included upgrading the base OS of the machines running Matrix.org’s deployment.

Technical cause

The Matrix.org homeserver is large. To operate at this scale and distribute the load on several machines, it relies on Synapse workers.

The first machines upgraded only ran stateless workers and were trivial to upgrade. Upgrading the machines with stateful workers was more difficult. To avoid downtime, the stateful workers had to be moved to other machines from the same deployment, and be restarted.

The machines that received the additional workers ended up being resource-starved. In the meantime, it took significant time to upgrade the free machine and bring its network back online before we could move the workers back to it to better share the load.

Organizational cause

Matrix.org is a historical and complex deployment that is difficult and costly to replicate entirely in a staging environment at this scale. It is also the largest deployment in the federation and has unique performance requirements.

Through this upgrade process, gaps in the deployment documentation were identified and these gaps contributed to the upgrade taking longer than expected. The deployment specificity has now been properly documented, and we are confident that the next machines’ upgrade will be significantly faster.

Lessons learned

To perform an upgrade without downtime, the Foundation would need to add another server in the deployment of the Matrix.org homeserver, as a consequence of steadily increasing traffic. An extra server introduces a recurring cost and requires additional work that the Foundation cannot afford right now.

The next upgrade will have about an hour of planned downtime and will be announced shortly. In the meantime, the Foundation is investigating the most cost-effective way to improve redundancy on matrix.org.

This Week in Matrix 2024-04-19

Par : Thib
19 avril 2024 à 21:30

Matrix Live

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

Dept of Status of Matrix 🌡️

Josh Simmons announces

WOW! What a week. Today I am thrilled to introduce not one or two, but eight new organisational members. We are extremely grateful to Futurewei Technologies for joining as our newest Gold Member – more on that soon – and to Verji Tech AS for joining as our newest Silver Member. Their support represents a big step toward financial sustainability for the Matrix.org Foundation.

Further, today we welcome Community Moderation Effort, Matrix Elm SDK, FluffyChat, Matrix Community Events, Polychat, and Rory&::LibMatrix as Ecosystem Members! If you couldn’t tell, there’s a lot going on in the Matrix ecosystem!

Does your community use Matrix? Does your project speak Matrix? Or does your business incorporate Matrix into your work? Show your support and become a member today.

Topping off this week’s excitement, our Governing Board nomination period is just about to start! Learn more about the elections, as well as who can nominate and how in our recent blog post.

Dept of Spec 📜

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

MSCs in Final Comment Period:

Accepted MSCs:

Closed MSCs:

  • No MSCs were closed/rejected this week.

Spec Updates

A quick call-out for a particular MSC. MSC4098: Use the SCIM protocol for provisioning is actively looking for feedback from the community. The proposal aims to work SCIM's standard endpoints into the Matrix spec. Doing so would allow industry standard tooling to be able to create/delete/modify/etc. Matrix users on a homeserver without needing to, for example, implement code specifically for Synapse's Admin API.

The impact would allow for greater interoperability between various existing services and Matrix homeservers - which seems like a no-brainer if you're aiming for wide adoption of a protocol!

If folks are interested, please leave your thoughts on the MSC linked above.

Dept of Servers 🏢

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the Element

Olivier 'reivilibre' says

Hello! This week, we released Synapse 1.105.0, which has:

  • support for the stabilised MSC4010, which clarifies the interaction of push rules and account data;
  • support for the stabilised MSC3981 (/relations recursion);
  • the ability for operators of workerised Synapses to now move /pushrules off of the main process (though this will mostly be of interest to large deployments);
  • fixes for various long-standing bugs returning incorrect state in /sync; and
  • a good handful of other minor fixes and performance improvements.

Dept of Bridges 🌉

matrix-hookshot (website)

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

Half-Shot reports

Hookshot 5.3.0 becomes bigger and bolder

Hello! It's been a while since we've written an update post but I felt like this release (5.3.0) deserves one.

For those that don't know, Hookshot is the premier solution to bridging third party services like GitHub, RSS, Webhooks into Matrix. We place particular emphasis on scalability (it powers most of the Element Integrations Store apps), and in this release there is even a performance bump.

So what's in the new release? Well!

  • We've added ChallengeHound support. Challenge Hound is a paid service to collectively exercise towards a goal, and will keep track of your teams progress. Hookshot now allows you to bridge in these events. Effectively this obsoletes my old project, https://github.com/Half-Shot/matrix-challenger/.
  • The Rust porting continues. In this release we've moved encrypted storage handling into Rust. In the future we plan to phase out RSA keys with something stronger, and more suitable for our needs.
  • The documentation has been tidied up with more information on the permissions systems. We've also clearly separated the caching and queue systems in the config (previously muddled under the "Redis" banner), to hopefully make things clear.

As always, please let us know what you think in #hookshot:half-shot.uk. We've got an active support channel all feedback is good :)

Happy weekending!

Dept of Clients 📱

Fractal (website)

Matrix messaging app for GNOME written in Rust.

Kévin Commaille announces

📣 👀 Fractal 7.rc 🆕 🎉

  • Account recovery, introduced during this cycle, could lead to an unclear situation where it was still incomplete even after successfully going through the process. We added some explanations on how to solve this. Thanks to anyone who tried it in the beta and provided us with feedback!
  • After fixing a focus issue upstream in GtkListView, we got rid of more focus issues in our widgets. That should make the room history completely accessible with keyboard navigation.
  • Third party verification, that happens in a direct chat, was partly broken as the banner about an ongoing verification was not showing up anymore. The culprit was found and we took that opportunity to improve the security instructions. Along with this bugfix, a coat of polish has been applied.

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

It is available to install via Flathub Beta, see the instructions in our README.

As the version implies, it should be mostly stable and we expect to only include minor improvements until the release of Fractal 7.

We always welcome any help we can get, come ask for guidance in our Matrix room.

Ement.el (website)

Matrix client for Emacs

alphapapa announces

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

Additions

  • Configurable emoji picker for sending reactions. (#199, #201. Thanks to Omar Antolín Camarena.):

    • Option ement-room-reaction-picker sets the default picker. Within that, the user may press C-g to choose a different one with a key bound in ement-room-reaction-map.
  • A variety of enhancements for using compose buffers. (#140. Thanks to Phil Sainty.): Chiefly, messages can now be composed in small windows below room windows, rather than in the minibuffer or a full-sized window. A variety of options and commands are available related to these features. See compose buffer enhancements.

  • Global minor mode ement-room-self-insert-mode enables "just typing" to start a message. (Thanks to Phil Sainty.): See ement-room-self-insert-mode section.

  • Options affecting how images are displayed in room buffers.: See image display section.

Changes

  • Improve prompt used when viewing a room that is not joined. (#241. Thanks to Phil Sainty.)
  • Format "was kicked and rejoined" membership event pairs.
  • Enclose reasons for membership events in quotes for clarity.
  • Improve default room list grouping.
  • When editing or replying to a message in a compose buffer, the related room event is highlighted persistently until the compose buffer is killed. (Thanks to Phil Sainty.)
  • In compose buffers dabbrev will prioritise firstly the associated room, and secondly all other rooms, before looking to other buffers for completions. (Thanks to Phil Sainty.)
  • Aborted messages are now added to ement-room-message-history rather than the kill-ring. (Thanks to Phil Sainty.)
  • Prefix bindings in ement-room-mode-map now have named labels in which-key and similar. (Thanks to Phil Sainty.)
  • Option: ement-room-use-variable-pitch (previously named ement-room-shr-use-fonts) enables variable-pitch fonts for all message types. (This option previously supported formatted messages, but now works for plain text messages as well.) Note: users who have customized the ement-room-message-text face to be variable-pitch should revert that change, as it causes problems for formatted messages, and is no longer necessary. (#174. Thanks to Phil Sainty.)

Fixes

  • Edits to previous edit events are correctly sent to the server as edits to the original message event. (#230. Thanks to Phil Sainty.)
  • Completion at point works more reliably in compose buffers. (Thanks to Phil Sainty.)
  • Toggling images to fill the window body no longer triggers unintended scrolling. (Thanks to Phil Sainty.)
  • Recognition of mentions after a newline. (#267. Thanks to Phil Sainty.)
  • Newlines in ement-room-message-format-spec are considered when calculating the wrap-prefix. (Thanks to Phil Sainty.)
  • Weight of face ement-room-list-direct (now correctly bold in room list heading).

Compose buffer enhancements

  • Option ement-room-compose-buffer-display-action declares how and where a new compose buffer window should be displayed. (By default, in a new window below the associated room buffer.)
  • Option ement-room-compose-buffer-window-dedicated determines whether compose buffers will have dedicated windows.
  • Option ement-room-compose-buffer-window-auto-height causes dynamic scaling of the compose buffer window height so that the full message is visible at all times.
  • Option ement-room-compose-buffer-window-auto-height-min specifies the minimum window height when ement-room-compose-buffer-window-auto-height is enabled.
  • Option ement-room-compose-buffer-window-auto-height-max specifies the maximum window height when ement-room-compose-buffer-window-auto-height is enabled.
  • Option ement-room-compose-method chooses between minibuffer-centric or compose-buffer-centric behaviour.
  • Command ement-room-dispatch-new-message starts writing a new message using your chosen ement-room-compose-method. (Bound to RET in room buffers.)
  • Command ement-room-dispatch-new-message-alt starts writing a new message using the alternative method. (Bound to M-RET in room buffers.)
  • Command ement-room-dispatch-edit-message edits a message using your chosen ement-room-compose-method. (Bound to <insert> in room buffers.)
  • Command ement-room-dispatch-reply-to-message replies to a message using your chosen ement-room-compose-method. (Bound to S-<return> in room buffers.)
  • Command ement-room-compose-edit edits a message using a compose buffer.
  • Command ement-room-compose-reply replies to a message using a compose buffer.
  • Command ement-room-compose-send-direct sends a message directly from a compose buffer (without the minibuffer). (Bound to C-x C-s in compose buffers.)
  • Command ement-room-compose-abort kills the compose buffer and delete its window. (Bound to C-c C-k in compose buffers.)
  • Command ement-room-compose-abort-no-history does the same without adding to ement-room-message-history. (Equivalent to C-u C-c C-k.)
  • Command ement-room-compose-history-prev-message cycles backwards through ement-room-message-history. (Bound to M-p in compose buffers.)
  • Command ement-room-compose-history-next-message cycles forwards through ement-room-message-history. (Bound to M-n in compose buffers.)
  • Command ement-room-compose-history-isearch-backward initiates an isearch through ement-room-message-history. (Bound to M-r in compose buffers; continue searching with C-r or C-s.)
  • Command ement-room-compose-history-isearch-backward-regexp initiates a regexp isearch through ement-room-message-history. (Bound to C-M-r in compose buffers; continue searching with C-r or C-s.)

ement-room-self-insert-mode

  • Option ement-room-self-insert-commands determines which commands will start a new message when ement-room-self-insert-mode is enabled (defaulting to self-insert-command and yank).
  • Option ement-room-self-insert-chars determines which typed characters will start a new message when ement-room-self-insert-mode is enabled (regardless of whether they are bound to self-insert-command).
  • Option ement-room-mode-map-prefix-key defines a prefix key for accessing the full ement-room-mode-map when ement-room-self-insert-mode is enabled. (By default this key is DEL.)

Image display

  • Option ement-room-image-margin is the number of pixels of margin around image thumbnails.
  • Option ement-room-image-relief is the number of pixels of shadow rectangle around image thumbnails.
  • Option ement-room-image-thumbnail-height is the window body height multiple to use when toggling full-sized images to thumbnails (by default, 0.2).
  • Option ement-room-image-thumbnail-height-min is the minimum pixel height for thumbnail images (by default, 30 pixels).

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

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 have a shiny new Join Room Screen to handle links to rooms that you’re not part of.
  • 🔗 Navigating to Messages from links and replies is coming along nicely (with much assistance from Rust!).
  • 🔒 Some Rust-side fixes for Encryption have landed fixing a bad race condition between the App and Notifications.
  • 🤳 Work on implementing Login with QR Code continues to progress nicely (we’re so close to seeing this work for the first time).
  • ✏️ We have re-introduced a plain text field for the message composer when the Rich Text Editor is disabled. This will provide a fix for many annoying typing bugs with various languages, input methods etc.
Today's Matrix Live: https://youtube.com/watch?v=cxJPdr8JEaM

Element X Android (website)

Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose

benoit reports

  • Element X Android 0.4.10 has been released and will be available in production next week.
  • We have a shiny new Join Room Screen to handle links to rooms that you’re not part of.
  • Navigating to Messages from links and replies is coming along nicely (with much assistance from Rust!).
  • Navigating to user permalink is also available on nightiles, for room member and any user
  • The invited room are now displayed in the room list with a new filter

Dept of SDKs and Frameworks 🧰

Matrix Rust SDK

bnjbvr reports

Two weeks of updates for the price of one, that's your lucky rusty day!

  • In the world of crypto-land, an important bugfix for multiple processes setups (as is the case for iOS applications handling notifications in a separate extension, wink wink ElementX iOS) has landed, which should result in fewer unable-to-decrypt (UTD) messages there.
  • It's now possible to get the preview of a room, using Client::get_room_preview(room_id). This uses the room state events at this point, but will soon support using the Room summary endpoint introduced in MSC3266 for this purpose. This is useful when displaying a screen for a room one hasn't joined, for instance.
  • A new Paginator API has been introduced as preliminary work to support deep links to events (aka "permalinks"), starting from a given event using a /context API request (for which support has been improved, by decrypting events, if needs be), followed by back-paginations and forward-paginations using the /messages API. Work is moving forward on having the UI Timeline natively support this too, introducing the new concept of a "detached" timeline mode that's centered around a single event.
  • The QR code login feature is moving along nicely, fully working end-to-end across two SDK toy programs.
  • And as usual, many new methods have been exposed to the FFI layer, bugs have been squashed (notably a few around sliding sync, notably one that caused missing chunks of messages in the ElementX apps), CI has been improved, and crabs have been revered.

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

Emma [it/its] ⚡️ reports

Not much to report on, been busy on BugMine :)

Additions

  • Starting steps of UIA
  • Ability to send HTTP requests without error handling (required for UIA)
  • Optional parameter useGeneric to HomeserverPRoviderService#GetAuthenticatedWithToken(homeserver, token, proxy? impersonatedMxid?, useGeneric?). This defaults to false.
  • Room#GetRelatedEventsAsync(eventid), returns all events that have a relation to another event

Changes

  • Room#GetEventAsync(eventid) no longer uses generic type, and returns StateEventResponse now.

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 me know, I'd love to hear all about it!

Trixnity (website)

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

Benedict reports

Trixnity got a small bugfix release this week. It mainly fixes lazy key tracking, which is finally working and makes sync processing blazing fast again.

Matrix Dart SDK (website)

Matrix SDK written in pure Dart.

td reports

meep quick update, v0.26.0 and v0.27.0 released since the last post, here's a summary:

v0.27.0

  • Reworked how last event (used by clients for showing latest room events) is stored in the sdk. This will need a migration but should be handled automatically.
  • Switched suggested database to the new MatrixSdkDatabase.
  • Our auto generated matrix spec code (matrix_api_lite previously) now lives in the matrix dart sdk monorepo.

v0.26.0

This release adds a new state to the LoginState named softLoggedOut. Learn more about it here: https://spec.matrix.org/v1.9/client-server-api/#soft-logout

When a client is in a soft logout state, it is not yet cleared, but sync has stopped and it expects to perform a token refresh or a new login while providing the old device ID.

That's it, small note expect another breaking change soon our calls code will be merged in the near future :3 bye byee

libQuotient (website)

A Qt5 library to write cross-platform clients for Matrix

kitsune announces

Version 0.8.2 is out - the last significant 0.8.x update. Version 0.9 is already in the works, with a lot of material for it already in the pipeline, so expect the first alpha to come rather soon. From now on, Qt 5 will only be supported in 0.8.x branch - 0.9 will be Qt 6 only, and also require modern toolchains - with full-blown ranges support, elements of C++23 and all such.

Dept of Bots 🤖

Draupnir

Gnuxie 💜🐝 says

Draupnir dubiously released v2.0.0-beta.1 (proceed with caution).

Draupnir is a Matrix moderation bot and protection platform, with backwards compatibility with Mjolnir. If you are unfamiliar, you should checkout the latest stable release first.

The main change is a rewrite of the core to use MPS (the matrix-protection-suite, still pre-alpha). MPS's architectural differences should provide a noticeable improvement to Draupnir's responsiveness. A room state backing store has also been added to improve startup time for instances that run against slow servers or a large set of protected rooms, details are below.

What's Changed

  • Draupnir now uses MPS (matrix-protection-suite) to provide its core functionality.
  • Draupnir no longer requests components of room state when applying various actions, which should lead to a huge noticeable difference to Draupnir's responsiveness.
  • An optional RoomStateBackingStore has been added to improve startup time for instances that run against slow servers (e.g. matrix.org). Checkout the config description for it here.
  • New protections MemberBanSynchronisationProtection, ServerBanSynchronisationProtection, RedactionSynchronisationProtection, and PolicyChangeNotification.
    • These replace the core functionality for applying policies related to users, servers and redactions.
    • They will be enabled by default when you upgrade.
  • config.disableServerACL will disable the ServerBanSynchronisationProtection.
  • The joins, since, default, sync, protections status commands have all been removed for now.
  • The DetectFederationLag protection has been removed.
  • We have new contributing documentation.

Upgrade steps

There are no manual upgrade steps, the new protections are automatically enabled. The only thing you should note is that if you notice that Draupnir is slow to startup, then you should enable the room state backing store

⚠️ Some configuration options may no longer be functioning (alternatives are pending)

  • config.noop will do nothing.
  • config.protectedRooms will also do nothing, and protected rooms need to be configured using !draupnir rooms add/remove.

You can read the full set of changes here, and of course, you can find us in our support room #draupnir:matrix.org.

Dept of Interesting Projects 🛰️

BugMine

Emma [it/its] ⚡️ announces

Matrix-based issue/bug tracker, based on Rory&::LibMatrix

Existing issue trackers are closed-source, only work in combination with their own platform, or are complicated to set up. Let's fix all of those!

BugMine is a simple(ish) solution to that problem, by offering a simple to deploy solution that requires nothing but a matrix server (bring your own account), and a web server that can handle URI fallbacks for the web app (native clients are planned long-term). A CLI client is also planned long term, so you can do a similar level of integration to Github's CLI. There's also support planned for posting patches (commonly known as Pull Requests or Merge Requests). All functionality is provided in an easy to use SDK as well!

Keep in mind the project is still in a very early stage: we're still sketching out how we plan to handle issues/tickets! (And how to support any homeserver implementation besides Conduwuit...)

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, anything! Perhaps, bots, custom front-ends, ...?
  • Discussion, suggestions and ideas are welcome in #bugmine:rory.gay

Matrix in the News 📰

HarHarLinks says

Fedora published a nice article about Matrix

https://fedoramagazine.org/fedora-chat-your-gateway-to-matrix/

Matrix Federation Stats

Aine announces

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

As of today, 9491 Matrix federateable servers have been discovered by matrixrooms.info, 2857 (30.1%) of them are publishing their rooms directory over federation. The published directories contain 160078 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
1doctoruwu.uk262
2spritsail.io262
3maunium.net287
4nerdhouse.io300
5girlboss.ceo309
6uwu.sulian.eu318
7catvibers.me319
8aguiarvieira.pt424
9rom4nik.pl463
10puppygock.gay482

#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
1uwu.sulian.eu117
2doctoruwu.uk119
3girlboss.ceo139.5
4spritsail.io163
5aguiarvieira.pt166
6puppygock.gay184.5
7furry.lol191
8jpeg.city207
9nerdhouse.io208.5
10matrix.its-tps.fr239

That's all I know ?~_~O~A

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

Announcing the 2024 Governing Board elections

Par : Josh Simmons
12 avril 2024 à 16:00

Update: the terms of the board have been updated with the follow changes:

  • Allow for filling vacancies by appointment or by-election at the discretion of the Managing Director and the Guardians, in consultation with a Governance Committee. (2.7.1)
  • Allow for the Governing Board to adopt voting mechanisms other than simple majority on a case-by-case basis. (5.5)
  • Disallow nominees from running for election in more than one constituency at a time. (2.4.1)
  • Change UTC to AOE in timeline. (2.3)

Welcome to the first ever Governing Board election season for the Matrix.org Foundation! We start with a one week nomination period that opens on Saturday, April 20th and closes on Friday, April 26th AOE time.

We’ll be doing our best to reach out to every constituent group to let them know they are eligible to nominate candidates for the election. That said, this is our first election and we don’t yet have contact information for everybody who is eligible, so we want your help getting the word out.

If you are interested in nominating someone – or yourself – to be a candidate in this election, read this post in its entirety.

To learn about what the Governing Board is, what it does, and the context it operates in, read this blog post from last December. You are also welcome to read the Governing Board’s current bylaws.

Go here for instructions on submitting a nomination!

Election schedule

Here is the timeline for this election season, which will happen in the second quarter of every year:

A visual election timeline for this year: Announcements on April 15, Nominations begin April 20, Campaigning begins April 27, Voting begins May 18, and Results announced on June 3.

To minimize confusion, and maximize inclusion given our international community, we will be using “Anywhere on Earth” (AOE) time. If you’re not familiar with AOE time, here’s what it means using our nomination period as an example: so long as it’s still Friday, April 26th in any timezone on the planet (from UTC+12 to UTC-12), the nomination period is open.

How our elections work

Our Governing Board is made up of 9 different constituency groups across 3 categories: nonprofit and community representatives, funder representatives, and foundation representatives. Each group has been allocated seats on the board, gets to nominate its own slate of candidates, and gets to vote within that slate of candidates.

For example, Individual Members get to nominate themselves, and vote on the Individual Members who are qualified candidates. The only exception is with the Managing Director (hi, that’s me) who automatically gets a seat on the Governing Board, but that’s just one seat of many.

Here is the composition of seats on the Governing Board:

Community representativesFunder representativesFoundation representatives
4 Individual Members4 Platinum Members3 Guardians
3 Ecosystem Members3 Gold Members2 Spec Core Team Members
2 Associate Members2 Silver MembersManaging Director

Learn how to become a member and see a list of our current organizational members.

We will be seating candidates for all constituency groups in our first election. Starting in 2025, we’ll run elections for half of the constituency groups. This is so that we maintain some level of continuity and institutional knowledge across each election. Consequently, while the first elected representatives from the Guardians, Spec Core Team, Platinum, and Ecosystem Members will serve 2-year terms, the first elected representatives from Gold, Silver, Individual, and Associate Members will serve a 1-year term. We anticipate that many people in those constituencies who are elected this year will run for re-election in 2025.

A visual election timeline for the next few years: in 2024 we elect all constituencies, in 2025 we elect Gold, Silver, Individual, and Associate Members, in 2026 we elect Platinum, Ecosystem, Guardians, and Spec Core Team Members, in 2027 we elect Gold, Silver, Individual, and Associate Members, and so on.

There are currently no term limits, but term limits are a best practice in open governance so we intend to introduce them as we find our collective footing.

For greater detail, please read this blog post from last December.

Who can nominate

You must be a member of one of the constituency groups in order to nominate yourself or someone else to be a candidate in the election. By far our largest constituency group are Individual Members, who number in the 100’s. If you have donated at least $60 USD to the Foundation since April 20, 2023, on any of Donorbox, Patreon, or Liberapay, then you are eligible to nominate and vote.

All nominees must have consented to nomination before being nominated and must be a community member in good standing. That means they must have a clean track record with respect to our Code of Conduct. We want our Governing Board to be a clearing house for a variety of priorities and perspectives, and to be able to hold space for each other even when there are disagreements.

Who can vote

All members of each constituency group are entitled to vote on the candidates within that constituency group. We will be reaching out to everyone we have contact information for, to ensure we have our voter rolls together before voting begins in May.

We will hold an election for every constituency even if a given constituency has fewer candidates than there are seats allocated for them on the Governing Board. This is, effectively, as a vote of confidence.

If you believe you are eligible to participate but have not heard from us or OpaVote – the election system we have chosen for this year’s elections – by May 10th, please email us promptly. We build our voter rolls on May 17th and can't change them after that!

All of the candidates will be listed on an elections page here on our website which we’ll publish on April 29th.

How to prepare yourself

If you want to be a candidate in the election, there are a few things you should know:

  • All candidates will be listed on our website, grouped by the constituency group.
  • We do not require people to use their “legal name.”
  • Candidates who are nominated by an organizational member will have their affiliation listed.
  • We expect candidates to provide a short bio and a short statement, collectively covering qualifications and priorities.
  • You are encouraged to make yourself available for conversation with members of your constituency group.
  • The period for campaigning runs from April 27th to May 17th. Please note our community Code of Conduct while campaigning.

What to expect if you win

Congratulations! All of the winners will be announced on June 3rd, but since the elections conclude on May 31st, you may get an email with the results of the election you participated in before June 3rd.

All elected representatives will be added to a private mailing list and Matrix room so that they can introduce themselves and communicate in between meetings. I will be reaching out to every elected representative to meet one-on-one, get acquainted, and answer questions before we convene for our first Governing Board meeting. Given the size of the board and the international nature of our ecosystem, those one-on-one meetings will likely happen over the course of a couple months.

The Governing Board will meet as a full board twice a year, for at least 90 minutes each time, and our first 1-2 meetings will have a professional facilitator to help us collectively put our best foot forward. Expect one meeting before the end of the year, and another before the next election.

You are likely to receive a packet of materials before each meeting which you will be expected to have reviewed. Most meetings will be held online, though we may convene meetings in-person, such as at the (soon to be announced) annual Matrix Conference. We will make every effort to make in-person meetings accessible to remote participants, and no official business will ever happen without appropriate notice, quorum, and minutes.

While the Governing Board is an advisory board, members are encouraged to play a role in helping to carry out the activities that support the staff in delivering on the Foundation’s collective remit, such as coalescing priorities to share with the Spec Core Team and connecting with contributors and funders to implement proposals.

We intend to charter committees – such as for finance, which would review our annual budget in detail – who will meet in between Governing Board meetings and present their assessments and recommendations to the Governing Board. These committees are where the bulk of the activity will take place since the board, which may have up to 24 members, is quite large.

How to nominate

Please use this Cryptpad form to nominate for the Governing Board elections. If you are unable to use the form, please refer to this nomination document and email your responses to elections@foundation.matrix.org.

All nominations are subject to review in accordance with our bylaws. We will email you to confirm receipt within 2 business days, and we will publish our elections landing page with all of the nominees, and other details, by April 27th.

Thank you for your ongoing support, and good luck to all the candidates in the upcoming elections!

Ad astra per aspera 🚀

This Week in Matrix 2024-04-12

Par : Thib
12 avril 2024 à 02:00

Matrix Live

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

Dept of Status of Matrix 🌡️

Josh Simmons says

Important deadline: next week, the week of April 15th, is the last week to become a member before the Governing Board nomination period! You must be a member, or have your application in and approved, by the end of day on April 19th (AOE time) in order to be eligible to nominate. Stay tuned for a blog post all about that on Monday ✨

This week we’re proud to welcome GNOME and KDE e.V. as our second and third Associate Members, and there are more applications in the pipeline that we’re reviewing!

Dept of Spec 📜

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

MSCs in Final Comment Period:

Accepted MSCs:

  • No MSCs were accepted this week.

Closed MSCs:

Spec Updates

A few MSCs working their way through the process this week, alongside a few more in FCP! As mentioned previously, Trust & Safety is a big focus for the MSC process this week, as we invest some time in keeping Matrix a nice place to be.

Outside of that though, I'm particularly excited to see support for formatting of math landing in the spec (MSC2919). That's been a long-time coming, and will be very helpful to math or math-adjacent communities using matrix (machine learning, anyone?).

Dept of Servers 🏢

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

Andrew Morgan (anoa) says

This week Element released Synapse v1.105.0rc1, a release candidate for the next version of Synapse. Of note are stabilisation for a few previous-unstable features such as /relations recursion, as well as moving /pushrules endpoints off workers for better scalability.

There was a small round of bugfixing as well that went into this pre-release, but there are likely more lurking! If you're able to, please test this release candidate. The full release of Synapse v1.105 is expected early next week. Thanks!

Dendrite (website)

Second generation Matrix homeserver

Till reports

Just going to copy and paste this from #dendrite-alerts:matrix.org :

Dendrite 0.13.7 has been released!

Fixes

  • Fixed an issue where the displayname/avatar of an invited user was replaced with the inviter's details

  • Improved server startup performance by avoiding unnecessary room ACL queries

    • This change reduces memory footprint as it caches ACL regex patterns once instead of for each room
    • Unnecessary Relay related queries have been removed. Note: To use relays, you now need to explicitly enable them using the federation_api.enable_relays config
  • Fixed space summaries over federation

  • Improved usage of external NATS JetStream by reusing existing connections instead of opening new ones unnecessarily

Features

  • Modernized Appservices (contributed by tulir)
  • Added event reporting with Synapse Admin endpoints for querying them
  • Updated dependencies

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

Ștefan reports

Happy friday, folks! It's been a super busy week in Element X land:

  • version 1.6.2 made it to the store, bringing with it a bunch of bug fixes and the groundwork for new and exciting features (release notes)
  • moderation options are now finished and enabled by default 1, 2
  • we will (soon™) start showing invites directly in the room list
  • we're making great progress on Login with QR Code 1, 2, 3 and 4
  • and the same on supporting Permalinks and in-app navigation 1, 2, 3, 4 and 5

'till next week! 👋

Element X Android (website)

Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose

benoit announces

  • Element X Android 0.4.8 is available on the PlayStore, for testers. “Room moderation” feature has been enabled. Moderators and administrators now have more moderation actions available in their rooms. This release will be pushed to production on Monday.
  • The team is actively working on 2 big features: permalink navigation and login using QR code.
  • We will also iterate on the room invite list, we will move the invites to the room list, with a new Filter to display only invites.

Dept of SDKs and Frameworks 🧰

Elm SDK beta 3.0.0

Bram says

After having written a few short pieces, multiple discussions in #matrix-spec:matrix.org and reaching out to various members of the community, the Elm SDK has finally a new update. And it's a major one!

  1. There is finally a functional Timeline type that is an immutable representation of the Matrix timeline. This took months to complete.
  2. A new Matrix.User module has been exposed.
  3. The sender field in Event type now returns a User instead of a String.

Surprisingly, it is the last change that makes the update major, as that's the one that breaks backwards compatibility. I spent months working on something that would not have been more than a patch update on its own. 😓

Nevertheless, it's out now on the public Elm registry! If you're not an Elm programmer, please give me feedback on the new User documentation page as I aim for it to be simple to understand for starting Elm programmers who know nothing about Matrix. Your feedback would be very welcome in the #elm-sdk:matrix.org room. ❤️ Thanks!

Dept of Interesting Projects 🛰️

Acter

ben reports

This week's update has several updates and fixes since the last time we posted about it here. Among other things, we have revamped the UI flow for Calendar Events, making it a much smoother experience, added participants icons to it, as well as Attachments and Comments. On the Chat side you can now bookmark and filter by DMs and bookmarks, and with the new App User Drawer you can directly switch to an existing or create a new DM, block, kick and kick-ban the user from the room. Next to several fixes we've also re-introduced localization and language switching support with a tight integration into weblate for easy web-based community-driven translations.

Of course this release again comes with a "What's new & AMA" Zoom sessions next week, Tuesday 15th 9:30GMT anyone is invited to join. Zoom Link here, iCal of the Event here

Matrix Dart SDK (website)

Matrix SDK written in pure Dart.

td reports

weekend project: came by https://blog.cloudflare.com/cloudflare-calls-anycast-webrtc yesterday and thought it would be cool if we MatrixRTC calls could use the Cloudflare SFU as an alternative to the current Livekit SFU.

and mwhahah- there's a implementation now, this also gave td some fancy ideas on how to handle different SFUs easily in the spec and not have clients break stuff because of different client library implementations. Apart from that, just having a huge global infrastructure like Cloudflare providing you a SFU just sounds cool! It even does stuff like cascading and choosing the closest SFU based on BGP internally so users are not limited to just one SFU and have the lowest latency. (see blog post linked above for the technical details)

The Cloudflare SFU unfortunately is neither open source nor free afaik and the blog mentions:

To kick off its open beta phase, Calls is available at no cost for a limited time. Starting May 15, 2024, customers will receive the first terabyte each month for free, with any usage beyond that charged at $0.05 per real-time gigabyte. Beta customers will be provided at least 30 days to upgrade from the free beta to a paid subscription. Additionally, there are no charges for in-bound traffic to Cloudflare.

so don't see any clients using this anytime soon, but was fun and just proves how easy and modular the new MatrixRTC structure is :D

Implementations:

td announces

the very adhoc state event looks like this:

Matrix Federation Stats

Aine says

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

As of today, 9522 Matrix federateable servers have been discovered by matrixrooms.info, 2868 (30.1%) of them are publishing their rooms directory over federation. The published directories contain 160013 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
1doctoruwu.uk241
2maunium.net284.5
3uwu.sulian.eu316.5
4nerdhouse.io317.5
5aguiarvieira.pt354
6craftingcomrades.net464
7herkinf.de503
8pain.agency516
9matrix.its-tps.fr518
10synapse.rntpts.de545

#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
1doctoruwu.uk88.5
2uwu.sulian.eu116
3spritsail.io136
4dendrite.s3cr3t.me172
5matrix.its-tps.fr174.5
6shiftsystems.net227
7girlboss.ceo293
8craftingcomrades.net300
9matrix.org360
10littlevortex.net392

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-04-05

Par : Thib
5 avril 2024 à 02:00

Matrix Live

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

Dept of Status of Matrix 🌡️

Matthew reports

I wrote some thoughts on why governments should explicitly route taxpayer money into funding maintenance of open source infrastructure such as Matrix (rather than only funding feature dev, or not funding at all): https://matrix.org/blog/2024/04/open-source-publicly-funded-service/

Josh Simmons says

This week we're thrilled to welcome the Eclipse Foundation as our first Associate Member! We couldn't be happier with the response to our expanded membership program and are delighted that we will have greater community representation when we elect our first ever Governing Board in the coming months.

Dept of Social Good 🙆

elgatto says

I'm working on my cyber security bachelor's thesis and am reaching out to gather insights from users who use decentralized messaging applications.

I would be incredibly thankful if you could find the 2 to 4 minutes to fill out the form. Your experience in the matter is incredibly valuable.

You'll find the survey at https://questionnaire.ink/412758

Your responses are confidential and will be used solely for supporting my thesis. No personally identifiable information is collected.

Thanks! :)

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:

  • There were no new MSCs this week.

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

While not much has happened to make the stats go up this week, the Spec Core Team (SCT) has been reviewing MSCs to bring them closer to Final Comment Period (FCP) and ensure their implementations are heading in a healthy direction. More review from beyond the SCT is always appreciated - feel free to join in on the SCT's weekly focus from the #sct-office:matrix.org room on Matrix.

Next week's focus is expected to be almost entirely Trust & Safety (T&S) related proposals, such as account suspension and media authentication. Stay tuned for updates!

Dept of Clients 📱

Ma's Trix

LDA [working...] says

Just started making a (simple) client in C recently for fun, Ma's Trix. It's really bare-bones and crashes sometimes, but overall been quite fun to write everything out myself!

You can try it out (and look at the terrible code) on your fx-CG50 graphing calculator at https://www.mastrix.org/ if you want(though you'll have to fiddle with random SDKs and may have to compile some things yourself, and some utilities used really only work on Linux).

(Funnily enough, I think it is the only actual C Matrix client around.)

FluffyChat (website)

Krille-chan reports

FluffyChat v1.19.0 has been released 🥳

FluffyChat v1.19.0 features an improved design for message bubbles and a lot of fixes under the hood.

  • build: Update matrix dart sdk (Krille)
  • build: Update to flutter 3.19.5 (krille-chan)
  • chore: Add missing command hints (krille-chan)
  • chore: Add pagekey to custom page builder (Krille)
  • chore: Adjust design of typing indicator (Krille)
  • chore: Adjust ticker of notifications for Android (Krille)
  • chore: Calc blurhash in other thread (Krille)
  • chore: Mark muted unread rooms with bold text (krille-chan)
  • chore: More minimal matrix pill (Krille)
  • chore: Try out CupertinoPage instead of custom transition in router (krille-chan)
  • ci: add a license compliance check (lauren n. liberda)
  • design: Connect bubbles from same sender (krille-chan)
  • design: Display images in correct ratio in timeline (krille-chan)
  • design: Make appbar in material you design for mobile mode (krille-chan)
  • design: New sticker picker next to emoji picker (krille-chan)
  • design: Nicer QR Code design (krille-chan)
  • design: Nicer reactions design with size animations (Krille)
  • feat: Add insert content via gboard (krille-chan)
  • feat: Reply with one button in desktop (krille-chan)
  • fix: Do not sync in background mode (krille-chan)
  • fix: FluffyChat should assume m.change_password capability is supported if not present per spec (krille-chan)
  • fix: never use root navigator for bottom sheets (The one with the braid)
  • fix: Remove pantalaimon message with normal error message (krille-chan)
  • fix: Search in spaces view (krille-chan)
  • fix: Set read marker on web (Krille)
  • fix: Point to correct path for auth.html so completing sso login flow no longer 404s (Gavin Mogan)
  • refactor: Better logic for removing outdated notifications (Krille)
  • refactor: Enhance logic when to mark room as read (krille-chan)
  • refactor: Remove old aliases workaround (Krille)
  • refactor: Sticker widget code (Krille)
  • refactor: Use dart blurhash (Krille)
  • Translated using Weblate (Basque) (xabirequejo)
  • Translated using Weblate (Interlingua) (Software In Interlingua)

Krille-chan reports

I found out that the flutter package sqflite_sqlcipher silently never encrypted the app database on iOS. This has now been fixed by using a new way to encrypt the sqlite file in an Flutter app, thanks to The One With The Braid. Also this version now supports database encryption on Linux and the desktop platform in general.

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

  • El-X-iOS version 1.6.1 has been released to the app store
  • Room Permalinks work has started both on the SDK and the iOS side
  • QR Code login work has started too, this will allow to login through your web Element client on El-X without the need of entering your password or using the OIDC flow directly.
  • Some bug fixes and improvements were made on the RTE

Dept of SDKs and Frameworks 🧰

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

Emma [it/its] announces

Finally pushed last week's changes, also took the opportunity to rewrite how homeservers are initialised.

Changes

  • Homeserver initialisation now makes less HTTP calls for well knowns, as this info is fetched once now, and passed down
    • Future plan: implement DNS server delegation resolution using DNS-over-HTTPS (DoH).
  • Homeserver implementation details (eg. synapse admin api client) have been moved to a separate directory rather than nested classes (also housing their request/response models)
  • Homeserver resolver service now takes a logger as a required parameter (simplifies code)
    • If you manually instantiate this class, pass a NullLogger, though this will print a console warning. If there is interest in silencing this, feel free to let us know in #libmatrix:rory.gay!
  • Some internal semaphored caches were abstracted to a new class in ArcaneLibs (SemaphoreCache<T>), this simplifies code greatly.
    • Still need to locate if we have any more of those.

Not sure if there's any more notable changes this week, they got drowned out by last week's changes

  • You can view the diff of the last 2 weeks of changes over at cgit.rory.gay!

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 me know, I'd love to hear all about it!

Matrix Rust SDK

bnjbvr announces

  • There's a new API to manipulate room breadcrumbs, aka a list of recently visited rooms. Rooms may be added manually to the breadcrumbs, and reloaded later. The information is stored in local storage (in the state store), so it can be reloaded across restarts.
  • Work on QR code login is still making progress in the shadows, with first runs fully working in example CLI programs 🥳
  • The FFI layer has been improved: more methods are async now, and methods to create permalinks with matrix.to have been exposed.
  • All the local echoes are now pinning at the bottom (end) of the timeline, including echoes for messages that failed to be sent.
  • And your usual load of smaller bugfixes and refactorings.

Trixnity (website)

Multiplatform Kotlin SDK for Matrix

Benedict announces

After a more feature-rich release with Matrix 1.10 support last week, this week just a small bugfix release 4.3.1 for Trixnity:

features/improvements:

  • add more Mention-Regex types

bugfixes:

  • fix username collision calculation
  • fix NotificationService typo
  • fix retry on any HTTP-request exception

Dept of Ops 🛠

synadm (website)

Command line admin tool for Synapse (Matrix reference homeserver)

jacksonchen666 says

synadm 0.46 has been released with these changes and stuff:

Dept of Interesting Projects 🛰️

LDA [working...] reports

Whelp, to finally push off the week, I've finally ported my C proxy over to JS with WebUSB for Chrom(ium)

Mo says

Fractal Networks has developed a Matrix powered database replication extension for the Python based Django web framework called Fractal Database. Fractal Database leverages several interesting Matrix based “primitives” such as a distributed mutex (locking) mechanism in addition to a distributed task queue (think celery) based on the async Taskiq framework. Check out our hot off the press video overview of FractalDatabase at https://www.loom.com/share/7f4578d8ddef41a4838152f752b1b052?sid=47ff04be-1400-4dd7-a218-a2e6f80564af. Check out the code: https://github.com/fractalnetworksco/fractal-database

Matrix in the News 📰

First certified TI-Messenger

Nico reports

Famedly recently was certified by the Gematik as one of the first providers for the TI-Messenger service in Germany. TI-Messenger is a Matrix based messaging solution for the German healthcare service. Other providers are also expected to be certified soon.

With that certification first deployments can happen now, before a wider roll-out can happen later. This will ensure a secure and encrypted communication between doctors and other healthcare providers. Later on the messenger is expected to be extended to insurances, but also eventually to patients and other recipients of healthcare services.

Sadly the official announcement doesn't seem to mention Matrix directly, but Heise does: https://www.heise.de/news/TIM-Erster-Messenger-fuers-Gesundheitswesen-erhaelt-Zulassung-9676340.html (German article)

Official announcement from Gematik (in German as well): https://www.gematik.de/newsroom/news-detail/pressemitteilung-erster-ti-messenger-anbieter-zugelassen

Matrix Federation Stats

Aine says

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

As of today, 9494 Matrix federateable servers have been discovered by matrixrooms.info, 2861 (30.1%) of them are publishing their rooms directory over federation. The published directories contain 159968 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
1doctoruwu.uk218
2uwu.sulian.eu241
3conduwuit.aguiarvieira.pt277
4aguiarvieira.pt279
5nerdhouse.io327
6matrix.org336.5
7rom4nik.pl411
8herkinf.de434
9littlevortex.net492
10pain.agency523.5

#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
1doctoruwu.uk102
2conduwuit.aguiarvieira.pt138.5
3uwu.sulian.eu154.5
4spritsail.io169
5aguiarvieira.pt199
6matrix.its-tps.fr217
7girlboss.ceo250
8transfem.dev252
9inu.is325.5
10littlevortex.net453

That's all I know

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

Open Source Infrastructure must be a publicly funded service.

4 avril 2024 à 18:30

Hi folks,

The events of the last week have been utterly terrifying as we’ve seen a highly sophisticated targeted attack on open source infrastructure play out in public, in the form of the liblzma backdoor. Matrix is not impacted by the attack (none of our code or infrastructure is using liblzma or xz 5.6), but it has been a massive wakeup call in terms of understanding the risks posed by overstretched open source maintainership.

The attack particularly resonates as Matrix’s maintainership is distinctly overstretched currently - despite Matrix ending up at the heart of huge amounts of critical infrastructure, ranging from the Ukrainian MOD to NATO and at least 15 other countries and major international organisations that we know of.

Historically, Matrix development has been largely been funded by Element, the company set up by the team who created Matrix in order to fund their work on it. As unpopular as VC funding is in some circles, the Matrix community owes a huge debt of thanks to Element’s investors (Status, Notion, firstminute, Dawn, Automattic, Protocol Labs and Metaplanet) and Amdocs for funding over $50M of work on both Matrix and Element since 2017. Having a large professional team paid as their day job to maintain Matrix has helped enormously against xz-style attacks.

However, this model is simply not sustainable: these days, Element is focused on being able to pay its own costs rather than being dependent on further VC investment. This leaves a massive hole in funding for Matrix, and we’ve already seen the impact of this with projects like Dendrite, Low Bandwidth Matrix, Account Portability, P2P Matrix and Third Room no longer able to be funded by Element (for now). Meanwhile, the remaining core team is stretched.

This feels particularly unfortunate given the number of governments and public sector organisations who rely on Matrix, but in practice it turns out that finding a way for them to fund open source maintenance can be surprisingly challenging - despite the potential impact of Matrix not being able to invest in security (or cryptography, or trust & safety, or performance improvements) being catastrophic, especially as Matrix becomes more and more of a high value target for large scale adversaries.

There seems to be two types of problems: firstly, those who don’t understand why it might be beneficial for a government to pay for open source at all. A particularly amazing real-life example of this came from a certain Ministry of Defence last week, whose procurement department (on being asked to help fund core Matrix development, given their operational dependency on Matrix) said: “You have to understand, we’re responsible for taxpayer money here. We can’t just make a donation to your open source project.” Apparently if we had built the same tech as a proprietary product, paying for it would apparently have been an infinitely better use of taxpayer money. Now, thankfully, organisations like FSFE and EDRi and OSBA have made major strides in educating governments to understand that funnelling taxpayer money into proprietary software licences does not benefit the public in the way that using open source software does - but old views die hard.

Then, perversely, the second problem emerges: FSFE’s well-intentioned “Public Money, Public Code” campaign is often given to us as a reason to insist on funding features rather than maintenance. This seems to be because procurement departments want to have something concrete to procure as a one-off, rather than making an ongoing commitment to keep the project secure, existing and healthy - and so focus on funding new features (or hiring their own staff to build their features) and ignore maintenance. If you ever wondered why Element has so many weird and wonderful features (which are not always maintained as well as they might), this is part of the problem. The problem is captured beautifully in Tobie Langel’s excellent (and highly topical) talk from this year’s State of Open Con:

However: we think there might (just might!) be a long-term solution in sight.

Particularly in the wake of the xz/liblzma attack, it seems that governments may be more aware that they and their societies depend enormously on FOSS infrastructure to operate. Free and open source software has literally become shared digital public infrastructure. And much like shared physical public infrastructure - bridges, roads, sea defences, etc - FOSS maintenance should be funded by governments on behalf of the taxpayer.

This funding should NOT be tied to specific feature development, but simply funding the core maintenance of the infrastructure - paying for the maintainers (and/or letting them or their umbrella org hire trusted ones!) to ensure the core project remains healthy and secure. Otherwise, the pressure just rises on the core project to chase feature development at the expense of maintenance (making maintenance harder) - or, worse, to be pushed away from open source into building proprietary solutions or crippling the open source by moving valuable features into side proprietary products.

Now, the good news is that some organisations are already trying to solve this problem:

However, most of these are not yet operating at the scale of a project like Matrix, and the irony is that the bigger projects need even more financial support than smaller projects to keep alive and sustainable. High level funding does exist in the form of the EU’s Horizon programme for R&D and Innovation (which provides the upstream for NLnet and NGI), with a total budget of €95.5B. However, it’s currently set up to only fund consortiums rather than independent projects - and the last thing a typical open source project needs is to orchestrate and administer an international consortium of vendors and universities in order to get itself funded.

The perfect solution in the EU would probably be a NLnet-style organisation with the remit to route funds in the range of low-millions a year to larger projects like Matrix which have become widespread critical infrastructure - to allow them to thrive in their mission without trying to coerce typical public sector procurement into picking up the bill. Or maybe a tax should be instantiated to force large scale open source projects users to route recurring funding to the project maintainers. So, Governments: please route taxpayer money to support the maintenance (not just features!) of open source projects that your country depends upon, before it’s too late. This also means educating procurement to the topic and updating procurement frameworks to be able to support this.

Meanwhile, we are in the middle of running a fundraising drive to help address the funding gap, which is currently making cautiously positive progress towards its £900K target, having raised £415K since last year, entirely thanks to Individual, Silver and Gold members joining. Our new membership model is working - giving the wider Matrix community a way to join the Foundation in order to participate in the upcoming Governing Board, and help steer the direction of the project, while contributing funding! So while we hope that governments will read this blog post and point out ways to sustainably fund more of the maintenance they depend on - today, you can help too by persuading your organisation (or yourself!) to become a member today and help keep Matrix funded and pointed in the right direction.

thanks,

Matthew

This Week in Matrix 2024-03-29

Par : Thib
29 mars 2024 à 20:30

Matrix Live

No Matrix Live as your usual host Thib has been unavailable most of the week!

Dept of Status of Matrix 🌡️

Josh Simmons says

Our first ever Governing Board elections are approaching, with the nomination period set to begin in late April. If you want your organization or community to be able to nominate a candidate, or to vote in the election, the time to join as a member is now – same for individuals who want to participate!

This week we’re thrilled to announce three new members: two Ecosystem Members, Trixnity and Nheko-Reborn, and our first Platinum Member, Element!

Dept of Spec 📜

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

  • No new MSCs were created this week.

MSCs in Final Comment Period:

Accepted MSCs:

  • No MSCs were accepted this week.

Closed MSCs:

  • No MSCs were closed/rejected this week.

Spec Updates

A reminder to teams working on Matrix 2.0 features to update their MSCs and send them for review in #sct-office:matrix.org soon to help bring them closer to release in the next couple of quarters.

Thank you to Kévin, Johennes and Rich for their PRs to the spec text this week!

Random MSC of the Week

The random MSC of the week is... MSC4018: Reliable call membership!

This proposal makes the case for putting the onus on homeservers for tracking whether a user is in a Matrix voice/video call, rather than relying on clients. Currently, clients must update the user's m.call.member state event in the room when they join/leave a call. This can be problematic if a user closes their client without giving it a chance to do so however (such as when a browser is force-quit). This can lead to other clients thinking the client is still in the call, when it left minutes ago!

A homeserver typically continuously remains online. If it were in charge of tracking call membership, then it could notice that a user's device has disconnected from all call streams, and could then update the m.call.member state event in the room itself for that user.

The MSC also proposes two new Client-Server API endpoints which instruct the homeserver to either add or remove a device from the user's m.call.member state event. This would prevent two clients attempting to update the state event at the same time, potentially resulting in the modification of one of the clients being lost.

The intention is that this would lead to more reliable Matrix voice/video calls! If any of that sounds interesting to you, please have a look and leave your thoughts on the MSC.

Dept of Servers 🏢

Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element

Andrew Morgan (anoa) [UTC-5] announces

This week the team released Synapse v1.104.0rc1, in preparation for the full release of v1.104.0. It contains improvements to OIDC support, as well as a few fixes for various bugs and to the Synapse Docker image.

Please test the release candidate if you're able to!

Dept of Clients 📱

iamb (website)

A Matrix client for Vim addicts

ulyssa reports

I've released and published iamb v0.0.9! 🎉 Since its last version, the client has gained support for:

  • Image previews through several different terminal image protocols
  • Threads, unread indicators, and notifications via terminal bell or desktop environment
  • Customizing keybindings, sorting for room and member lists, and other parts of the UI
  • Commands for importing and exporting room keys
  • Updated to use v0.7.x of the matrix-rust-sdk
  • SSO login, TOML configuration, fixes for Windows Terminal, improved manual pages, and many other fixes and improvements!

The online documentation has been updated to account for new configuration options and commands, and you can read the GitHub releases page for a full list of changes. I've also added a PACKAGING.md file to the repository to provide a place for notes useful to package maintainers.

Many thanks to all of those who have contributed to this release! :pray:

SchildiChat (website)

SchildiChat is a fork of Element that focuses on UI changes such as message bubbles and a unified chat list for both direct messages and groups, which is a more familiar approach to users of other popular instant messengers.

SpiritCroc reports

SchildiChat Next, our fork of Element X for Android, received some new experimental settings for managing your chat overview. You can now:

  • Sort favorite chats on top
  • Sort low priority chats on bottom
  • Filter by DMS/groups, unread chats, favorites, and rooms not added to any space, via dedicated pages from our bottom space navigation

Furthermore, you can now send freeform reactions again, if you want to react to messages with arbitrary text or just want to use your keyboard's emoji picker instead of the app's inbuilt picker.

Fractal (website)

Matrix messaging app for GNOME written in Rust.

Kévin Commaille reports

Spring is here in Fractal land. Birds chirping, flowers blooming, and a new beta for you to try!

Staff’s picks for Fractal 7.beta:

  • Encryption support has been extended, with server-side key backup and account recovery.
  • Messages that failed to send can now be retried or discarded.
  • Messages can be reported to server admins for moderation.
  • Room details are now considered complete, with the addition of room address management, permissions, and version upgrade.
  • A new member menu appears when clicking on an avatar in the room history. It offers a quick way to do many actions related to that person, including opening a direct chat with them and moderating them.
  • Pills are clickable and allow to directly go to a room or member profile.
  • Many more improvements on the accessibility front, for better navigability with a screen reader.

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

It is available to install via Flathub Beta, see the instructions in our README.

As the version implies, there might be a slight risk of regressions, but it should be mostly stable. If all goes well the next step is the release candidate!

As always, you can try to fix one of our issues. Any help is greatly appreciated!

Element X Android (website)

Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose

benoit announces

  • Element X Android 0.4.7 is available on the PlayStore, for the tester. 2 features have been enabled "Room List filters" which let the user filter the rooms and "Mark as unread”. More details in https://github.com/element-hq/element-x-android/releases/tag/v0.4.7
  • This week we’ve done some preparatory work to support permalink navigation. In the meantime, the Rust team is actively working on exposing new API to support this feature.
  • Also working on a troubleshoot notification screen, as per what was done on Element Android. We will also work on adding a way to switch between available PushProviders in the coming week..
  • Last note: it will be more obvious that a poll is closed in the timeline, thanks to an enlightenment of the winning answer.

Dept of Non Chat Clients 🎛️

Circles (website)

E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.

cvwright announces

Circles is a secure social network app for families and friends, where every post is protected with Matrix's E2E encryption. We have recent releases of Circles on both Android and iOS.

On Android, v1.0.27 is now available on F-Droid.org and in beta on the Play Store. New features in this release include:

  • Improved email address management
  • Re-designed People tab to help you connect with friends of friends
  • Support for recovering your account when you forgot your password
  • UI for configuring the default power level in each room

On iOS, v1.0.1 is now available in the App Store, featuring:

  • New support for push notifications
  • Cross-signing for an account's 2nd/3rd/etc devices
  • Several bug fixes

Source code is available from the FUTO Gitlab (Android | iOS) and from our Github mirrors (Android | iOS).

If you're interested in trying the app, stop by and say "Hi" in #circles:futo.org.

Dept of SDKs and Frameworks 🧰

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

Emma [it/its] announces

Some rough changes that haven't been published yet, I'll have to work out the kinks first ^^

Changes

  • Rewrote client and server well known resolvers (currently broken if passing a full URI)
  • Added JsonSerialiserOptions to StateEvent.RawContent in order to remove nulls (oops ^^')
  • HSE: Small rewrite to reading of auth data, to deduplicate a lot of code
  • HSE: improved logic for detecting if a sync response is empty
  • HSE: now reports supporting all room versions over /capabilities (Element still won't shut up :c)

Additions

  • HSE: logging out has been implemented
  • HSE: Importing of external matrix accounts using nheko's config file format
  • HSE: Importing of external matrix rooms over client-server API (see previous)
  • HSE: fetching media from other homeservers
  • HSE: incremental sync! (at least for joined rooms)
  • HSE: /messages endpoint
  • HSE: /event/:id endpoint
  • HSE: estimation of position in time based off of pagination/sync tokens, and event IDs
  • HSE: chat commands for utility interaction (!hse x y z)
  • HSE: shorthand for calculating final state from a section of timeline (not state res!)
  • HSE: Support for read markers (top level only)
  • HSE: Added shorthand to get all rooms by member mxid, with membership

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 me know, I'd love to hear all about it!

Matrix Rust SDK 🦀

bnjbvr announces

It's been a quiet week, with the team merging the LinkedChunk data structure for efficiently storing events in the EventCache, a few bugfixes here and there, as well as a full investigation and fixing issues in integration tests.

The team keeps on working on the event cache (including matching known events against new events received from servers, and prepping for caching on disk) as well as the QR code login feature.

Trixnity (website)

Multiplatform Kotlin SDK for Matrix

Benedict reports

I added support for Matrix 1.10 in Trixnity 4.3.0 this week. Changes since last TWIM:

features:

  • Matrix 1.10
  • move all room list calculation logic into RoomListHandler making it a lot faster due to less database operations
  • BREAKING: naming of files saved by client-media-okio has been changed. This means, that files may need to be redownloaded

bugixes:

  • fix, that sending keys to new members of an encrypted room may not have been triggered
  • handle redacted event in RoomEventEncryptionService

Dept of Ops 🛠

matrix-docker-ansible-deploy (website)

Matrix server setup using Ansible and Docker

Slavi says

Thanks to Aine of etke.cc, matrix-docker-ansible-deploy now uses KeyDB (a drop-in Redis alternative), instead of Redis.

The playbook used to install Redis (and now installs KeyDB in its place) if services have a need for it (enabling worker support for Synapse, enabling Hookshot encryption, etc.) or if you explicitly enabled the service (redis_enabled: true or keydb_enabled: true).

This change is provoked by the fact that Redis is now "source available". According to the Limitations of the new license (as best as we understand them, given that we're not lawyers), using Redis in the playbook (even in a commercial FOSS service like etke.cc) does not violate the new Redis license. That said, we'd rather neither risk it, nor endorse shady licenses and products that pretend to be free-software. Another high-quality alternative to Redis seems to be Dragonfly, but the Dragonfly license is no better than Redis's.

To learn more, refer to our changelog entry.

Slavi announces

Thanks to Julian Foad, matrix-docker-ansible-deploy can now install the Pantalaimon E2EE aware proxy daemon for you. It's already possible to integrate it with Draupnir to allow it to work in E2EE rooms - see our Draupnir docs for details.

See our Setting up Pantalaimon documentation to get started.

Dept of Bots 🤖

Gnuxie 💜🐝 announces

Draupnir v1.87.0 was released, and this will be the final release before we merge our 6month in the making rework of the Draupnir core. We are advising anyone running against gnuxie/draupnir:develop to instead pin to gnuxie/draupnir:v1.87.0 as there is going to a significant drop in user experience as we integrate and gather more feedback on the rework. Those running against gnuxie/draupnir:latest will be unaffected, but we will advise you to read the v2.0.0 release notes as there will be dramatic changes in behaviour. If you're a confident system admin and you're happy with manually intervening then by all means continue to use develop and come talk to us in #draupnir:matrix.org.

Dept of Events and Talks 🗣️

Matrix User Meetup Berlin

saces announces

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

Have you seen the weather forecast? Finally we can stop pretending to be interested in matrix and meet up for BBQ again :)

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.

And don't forget to wish you brougth your favorite item :)

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 🛰️

Octoprint plugin

Cadair reports

I have for the first time in years pushed a release of my octoprint plugin which sends matrix notifications about the status of your prints with images. Thanks primarily to @Links2004 we now properly handle image transformations, upload images in a background thread and don't send markdown in the plain text body of the matrix message. If you run into any issues please open an issue on the github repo.

Moderator Tools for PubHubs

JulianF announces

This week I have put up a web site documenting my work on Moderator Tools for PubHubs.

PubHubs is a Dutch research project to enable citizen-facing organisations to provide online group communications, value-aligned with their real-world presence. It uses matrix protocol, combined with an interesting and different user identity model involving pseudonyms and selective cryptographic disclosure of identity attributes such as "is over 18" or "is a member of organisation X". Each hub is built around a non-federating Synapse server, with their own identity plugins and custom client. (All public-interest, open-source.)

I have been working on three aspects of introducing initial moderation tooling. Some of it crosses over with general matrix (this week's Pantalaimon role is a side product of the Draupnir part), while some is different (Attribute Disclosure), and the third part is general (research and planning for Civilised Discourse).

My funded stint is coming to an end and I am looking for ways to continue in any related area of work -- please matrix me @julian:foad.me.uk !

Dept of Guides 🧭

Matrix Codebrowser

Loren says

Some of you may be familiar with https://codebrowser.dev already. For those of you who aren't, it's a tool that parses compiled code in C++, Rust, or Dart and displays it as a webpage with full syntax highlighting, clickable links to symbols, searchable symbols, and a wealth of other features. It's very useful for browsing a library's source code to see what individual functions do (for example, here's QObject::connect() from Qt 6). The codebrowser software was originally built by Woboq, but as the maintainers have moved on to work on things like Slint, they have passed it on to KDAB.

I have spun up an instance of codebrowser at https://matrix.codebrowser.lorendb.dev, serving sources for mtxclient, libQuotient, and olm so far. If you want to see more projects added, please let me know and I'll add them if possible. I'm focusing on libraries for now, as they are the most useful for developers, but I'm not opposed to adding other Matrix projects either.

Please note that I currently can't support Rust or Dart code yet; while KDAB has implemented support for those languages, they haven't yet open-sourced their changes (though I can confirm that is tentatively in the pipeline). Once they open-source their changes, I'll be upgrading my installation to use that version and adding project like matrix-rust-sdk and vodozemac.

If you have any questions or feedback, come say hi in #matrix-codebrowser:nheko.im!

Matrix Federation Stats

Aine announces

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

As of today, 9531 Matrix federateable servers have been discovered by matrixrooms.info, 2844 (29.8%) of them are publishing their rooms directory over federation. The published directories contain 161695 rooms (gitter.im rooms are back)

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
1fostered.uk229.5
2aguiarvieira.pt239
3maunium.net272
4075-141-169-120.res.spectrum.com:8447275.5
5nerdhouse.io299
6herkinf.de374
7transfem.dev391
8fx3.eu507.5
9pain.agency533
10littlevortex.net551.5

#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
1aguiarvieira.pt156
2075-141-169-120.res.spectrum.com:8447162.5
3nerdhouse.io164
4fostered.uk185.5
5spritsail.io192.5
6transfem.dev200
7herkinf.de244
8doctoruwu.uk247
9daedric.net274.5
10craftingcomrades.net302

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-03-22

Par : Thib
22 mars 2024 à 20:30

Matrix Live

Today's Matrix Live: https://youtube.com/watch?v=yA5-AZnUAdY

Dept of Spec 📜

Half-Shot announces

Great news everyone! As of Matrix 1.10, you can now specify more contact information about your homeserver via the new /.well-known/matrix/support endpoint.

This is useful because it allows other citizens of the federation to know who to contact if there is a problem, and it only requires you to fill in a few details to get going. This change has been on the go since 2019, so on a personal note I am thrilled to see this finally land. You can see an example on the foundation's very own server at https://matrix.org/.well-known/matrix/support

TravisR 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

We released version 1.10 of the spec today! Read the blog post for the full details. Many thanks to Kévin Comaille for writing many of the spec PRs that landed in today's release!

With the release of Matrix 1.10, we on the Spec Core Team are looking forward to Matrix 1.11 and Matrix 2.0. We are asking the teams working on Matrix 2.0 features to update their MSCs and send them for review in #sct-office:matrix.org soon to help bring them closer to release in the next couple of quarters.

Dept of Servers 🏢

Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element

Olivier 'reivilibre' says

This week we released Synapse 1.103.0, which includes a bug fix to lock-ups when joining some very large rooms, a bug fix to joining remote rooms when certain types of modules are installed as well as support for the Retry-After header (MSC4041) and a small handful of other things.

Other than that, we have been gradually working through the backlog of pull requests — thanks for sending those in and sorry for the delay! See you next week.

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

Ștefan reports

Element X iOS version 1.5.12 is now available on the AppStore:

  • It's now possible to favourite a room so that you can keep track of the groups and the people you like to chat with the most.
  • If you read a room but you would like to come back to it later, you can now mark it as unread, making it similar to any room with unread notifications.
  • At the same time, if you feel a room's recent activity isn't interesting and you don't want the green badge on it, just mark it as read.

However these three amazing features are now also supported by another amazing quality of life feature, which is... drum roll ..filters! Is now possible to filter the room list by DMs (People), groups (Rooms), favourites, and unread, and any combination of these, allowing you full customisation over the content of the room list.

Meanwhile, on the normal development track, we've completely revamped our user onboarding flow and session verification is now mandatory either by entering the recovery key or by running the interactive emoji flow against an existing session. The new moderation options are close to making an appearance and we've improved overall error tracking and analytics.

Element X Android (website)

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

ganfra reports

Element X Android version 0.4.6 is now available on the PlayStore:

If you read a room but you would like to come back to it later, you can now mark it as unread, making it similar to any room with unread notifications. At the same time, if you feel a room's recent activity isn't interesting and you don't want the green badge on it, just mark it as read.

Room list filters and mark room as favourite are also finished, and will probably be enabled in the next release.

It'll be possible to filter the room list by DMs (People), groups (Rooms), favourites, and unread, and any combination of these, allowing you full customisation over the content of the room list.

We are also making progress on the room admin features.

Dept of SDKs and Frameworks 🧰

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

Emma [it/its] announces

Mainly homeserver emulator updates, with some bot SDK changes aswell :)

Changes

  • Made StateKey optional in events (given they may be null for non-state events)
  • Removed Event parameter from EventIdResponse constructor
  • HSE: work on partial sync, removed StatePosition because it doesn't make sense
  • HSE: Room internals: Abstract call to rebuild room state to dedicated function (so it can be called on load)
  • HSE: Room internals: Try to fix state rebuilding
  • Bot SDK: Use table for help command
  • Bot SDK: Cleaned up command parser

Additions

  • Added width and height to FileInfo in messages
  • Added UploadFile with byte arrays rather than streams to AuthenticatedHomeserver
  • HSE: Add sending events in, and leaving rooms
  • HSE: Add GET .../devices
  • HSE: Room internals: Add JoinedMembers accessor
  • Added table support to MessageBuilder

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 me know, I'd love to hear all about it!

matrix-rust-sdk (website)

Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM

bnjbvr announces

  • It's now possible to send media with captions using the SDK, thanks to @surakin!
  • Support for searching in the Room directory has landed in the SDK 🥳
  • The UI Timeline now uses a different algorithm to insert day dividers, which ought to be super robust and well-tested; this should prevent double day dividers in embedders of the SDK like the ElementX apps.
  • More work is being done on the Linked Chunks data structure, used to represent series of room events in the Event Cache. Actual integration in the Event Cache is looming.
  • As we investigate more unable-to-decrypt (UTD) events, more logs have been added in multiple places, the crypto crate tests got improved, and a few bugs related to key backups have been already fixed.
  • Work on login via QR code for OIDC sessions is ongoing 👀
  • We now have a CI check for the minimum supported Rust version that's used for the SDK. The new MSRV for the project is Rust 1.76.
  • And your usual load of small changes/refactorings/bugfixes: Ruma has been updated to the latest version to support time on wasm; new functions have been exposed to the FFI layer for use in other languages; dependencies have been updated, and so on…

Matrix Federation Stats

Aine says

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

As of today, 9546 Matrix federateable servers have been discovered by matrixrooms.info, 2855 (29.9%) of them are publishing their rooms directory over federation. The published directories contain 22719 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
18447280
2nerdhouse.io263
3075-141-169-120.res.spectrum.com:8447269
4herkinf.de272
5aguiarvieira.pt291
6matrix.its-tps.fr404
7transfem.dev430
8shema.lv578.5
9pain.agency597.5
10computerlie.be607

#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
18447218
2matrix.its-tps.fr116
3aguiarvieira.pt144
4nerdhouse.io154
5075-141-169-120.res.spectrum.com:8447154.5
6dendrite.s3cr3t.me191.5
7herkinf.de205
8transfem.dev210
9spritsail.io229
10inu.is230

That's all I know

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

❌
❌