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.
- There were no new MSCs this week.
MSCs in Final Comment Period:
- No MSCs were accepted this week.
- No MSCs were closed/rejected this week.
For those familiar with Travis' weekly task lists of MSCs for the Spec Core Team to review in the Office of the Matrix Spec Core Team room, a new weekly list is now being posted in the Matrix Spec & Docs Authoring room. This list is aimed at technical writers who can help by converting MSC authors' words into PRs against the spec text itself.
This is the final step for getting an MSC integrated into a new release of the Matrix spec, and anyone can try their hand at it! It would also very much help the Spec Core Team by freeing up more bandwidth for review of the MSC backlog, as well as push forward the protocol itself. Thank you!
If you have any questions, feel free to ask them in the relevant Matrix rooms.
Random MSC of the Week
The random MSC of the week is... MSC4003: Semantic table attributes!
This MSC proposes expanding the set of suggested, interpreted HTML tags in Matrix clients to include additional tags related to tables. With them, more control over table rendering is possible. The proposal itself includes one such (albeit fairly arbitrary) example
The proposal is well-written and straight-forward, so do feel free to have a look if the subject interests you!
Dept of Status of Matrix 🌡️
Very timely review of Matrix in 2023
As you know, every year I post a review of what the community has been up to in 2023. Actually, I don't even write it, this is only the second time and it was almost a month late, but if we look past that, this statement still holds!
Anyway, since FOSDEM is close, give it a read so that we can discuss everything at FOSDEM! The community has been up to a lot of stuff and I have only been able to cover a fraction of it, but it still ends up being quite long!
(This will probably go to the matrix.org blog eventually, but that might still take a bit :))
Next week we're going to roll out privacy-preserving analytics on the matrix.org website. But why, you may ask? Read about what we want to achieve, how, and the guarantees we provide: we want to track what works, not people
Dept of Servers 🏢
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Olivier 'reivilibre' says
This week in Synapse we unleashed 1.100.0rc1, a version number so ridiculous that it could not possibly be real.
There isn't exactly any large headline change here, but there is experimental support for MSC4028 (pushing all messages in encrypted rooms except unmuted). There are also a few performance optimisations and preparations for future performance optimisations
It turned out that, indeed, 1.100.0rc1 was never meant to be, because a fault in the release process meant it was never properly released and we had to come out with 1.100.0rc2 instead!
But then rumour had it that the new version would cause your Postgres to eat all the CPU, so a little hotfix later and we put out 1.100.0rc3. To the community members that test our release candidates: thanks!
Second generation Matrix homeserver
Today we released Dendrite v0.13.6. Upgrading to this version is highly recommended, as it contains several QoL improvements.
AckExplicitPolicyfor JetStream consumers, so messages don't pile up in NATS
- A rare panic when assigning a state key NID has been fixed
- A rare panic when checking powerlevels has been fixed
- Notary keys requests for all keys now work correctly
- Spec compliance:
M_INVALID_PARAMwhen querying room aliases
- Handle empty
fromparameter when requesting
- Add CORP headers on media endpoints
+in MXIDs (Contributed by RosstheRoss)
- Fixes membership transitions from
- Incremental syncs now batch querying events (Contributed by recht)
/joined_membersback to the clientAPI/roomserver, which should make bridges happier again
- Backfilling from other servers now only uses at max 100 events instead of potentially thousands
Dept of Clients 📱
A client for matrix, the decentralized communication protocol
Tobias Fella reports
Have you ever thought "man, I sure wish my Matrix client would show me more information about these train tickets and hotel reservations my friend just sent me"? Well, your wait is finally over! If you have KDE Itinerary installed on your system, NeoChat will now use its tooling to extract information from such documents and presents it, together with the ability to directly import it into your Itinerary.
In other news, thanks to Joshua, NeoChat now supports push notifications based on UnifiedPush. James has significantly reworked the room list, which now separates direct messages from group chats and has a stronger focus on Spaces. Do let us know what you think about these changes! He also improved the room timeline to more clearly show whether NeoChat is currently loading old messages or is at the end of the timeline. Last, but not least, I implemented a view showing the notifications, similar to what you might know from element. We also fixed 43.8 bugs and improved NeoChat by 23+4i%. See you next week!
Matrix client for Emacs
- Audio events are rendered as a link to the audio file. (Thanks to Arto Jantunen.)
- Customization group
ement-room-list-space-prefixis applied to space names in the room list (e.g. set to empty string for cleaner appearance).
ement-room-reaction-names-limitsets how many senders of a reaction are shown in the buffer (more than that many are shown in the tooltip).
BACKTABto move between links in room and like buffers. (#113. Thanks to Eric S. Fraga for suggesting.)
- Insertion of sender headers (when using "Elemental" message format). (Refactoring contributed by Steven Allen.)
- Some room event data was being unintentionally serialized to disk when caching the room list visibility state. (#256)
- Notifications buffer restores properly when bookmarked.
ement-room-send-reactionchecks for an event at point. (Thanks to Phil Sainty.)
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+.
- A new setting is available to stop the app from sending (public) Read Receipts.
- Unread Badges are almost ready and will hopefully land in the next TestFlight.
- The User Menu has been made visible whilst waiting for the Sliding Sync proxy to sync your account for the first time. And if you’re having issues signing in you can now send feedback and logs directly from the first screen.
- Talking about logs, if you’ve ever wanted to see what will be submitted, we’ve added a Log Viewer when reporting a bug.
- There was a bug that prevented you from joining some calls. This fix for this is in the latest version which is available on the App Store right now.
Element X Android (website)
Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose
- Release 0.4.1 is in production, here is the changelog: https://github.com/element-hq/element-x-android/releases/tag/v0.4.1.
- Next release 0.4.2 should also be published on F-Droid with push support using UnifiedPush.
- This week the team was focusing on stabilizing the app, and we are starting new epics like typing notifications, manage room member permissions (i.e. edit power levels), setting room as favorite
- It's also now possible to send private Read Receipt
- Last note, we just updated the Jetpack Compose library to the latest version and it will impact performance in a positive way. Google is claiming that scrolling will be 20% faster and starting application will be faster as well. Element X as snappy as ever 🚀!
Dept of Non Chat Clients 🎛️
E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.
New Circles builds and new servers
Circles is a secure social network app for families and friends, built on Matrix to give users privacy through end-to-end encryption and independence through the ability to run your own server. This week we have a big update for you!
We have new servers:
circles.futo.orgin the US and
eu.circles.futo.orgin the EU. Thanks to our friends over in Synapse Extreme Tuning and to Slavi from Matrix-Docker-Ansible-Deploy, the new servers are much faster than the old circu.li servers. The latest Circles builds -- 1.0.24 on Android and 0.9.2 on iOS -- can create new accounts on the new servers, so if you're using circu.li now is your chance to create a new account. We'll keep the old circu.li servers running for a while, especially for testing out the latest bleeding-edge beta builds. But the way forward for us is on circles.futo.org. You can create new free-forever accounts on the new servers until we enable in-app subscriptions later this year.
If you're using Circles with an account on your own server or matrix.org etc, then not much will change for you. You might notice a change in the app's deep links, but that's about it.
The latest builds also include the following improvements:
Circles iOS 0.9.1 and 0.9.2 (TestFlight)
- Relax password strength requirements
- Use shared web credentials and Keychain for passwords
- Save secret-storage keys in iCloud Keychain for account recovery
- Bugfix: Use new jdenticon avatar on the People tab self-view
- Bugfix: Remove TESTING section on subscription settings
- Clean up the group creation dialog
- Change default domain from circu.li to circles.futo.org
- Better handling of accounts that are in very large Matrix chat rooms
- New free subscription type for free accounts
- Make the reply composer scrollable
- Use jdenticons as profile image for users who don't upload a photo
- New default domains
- Use circles.futo.org domain for deep links
- Initial sync improvements for handling very large rooms
- Jdenticon for user's avatar placeholders
- Media usage info (only for servers that support it)
- New screens for invitations
- Ignored user section in Settings
- More categories on People tab
- Bug fixes and performance improvements
Dept of VoIP 🤙
Halooo, td has some updates about MatrixRTC today:
We had our first interoperable group call using the new livekit backend between Famedly and Element Call this week. This means the dart sdk now supports multiple backends such as
livekit. This is still a WIP (exists as a PR) but should land soonish. Once that's done Famedly has allowed td to port over the feature from Famedly to FluffyChat, so new VoIP stuff in FluffyChat soon!
We will also be giving a talk at Fosdem'24 about MatrixRTC so if you would like to know the technical details, you can find the details here: https://fosdem.org/2024/schedule/event/fosdem-2024-2876-matrixrtc-the-future-of-matrix-calls
Dept of SDKs and Frameworks 🧰
The Timeline is a very tricky data type to properly represent in immutable code, and support is very much needed! 😓 So in the meantime, I've spent some time trying to improve documentation, readability and code transparency. Hence I present the JSON docs viewer: https://noordstar.github.io/elm-matrix-sdk-beta/
The aim is to make all objects in the elm-matrix-sdk entirely translatable to and from JSON, for the following reasons:
- ✅ Easier to debug
- ✅ Improved transparency
Take a look at the website! All the Matrix API endpoints need JSON decoders so they should appear on the webpage soon as well, mostly mirroring the Matrix spec and hopefully replacing the current Matrix Events Directory in a bit longer.
Because of the two-ways encoding, every Elm type contains a JSON checkers that helps you debug how and whether your JSON is properly decoded or not - so feel free to try it out for yourself!
Dept of Ops 🛠
Matrix server setup using Ansible and Docker
Thanks to Charles Wright from FUTO, the creators of the Circles app, the matrix-docker-ansible-deploy Ansible playbook has received support for load-balancing the Synapse workload via specialized workers which are supposed to work better than our old generic workers implementation.
For now, playbook defaults remain unchanged and the
one-of-eachworkers preset continues being the default.
Dept of Events and Talks 🗣️
It is This Week in Matrix 2024-01-26, and that means it is only 1 more TWIM left before FOSDEM 2024!
That is, if you count next TWIM as "before", because for the Matrix community, FOSDEM will start on Friday (2024-02-02) afternoon leading up to FOSDEM, as the Matrix Foundation and Community will host a FOSDEM Fringe event called #fosdem2024-foundation-community-meetup:matrix.org at and with the support of Hackerspace Brussels! Join the room to get alllll the info, such as the announcement that thanks to our sponsors we will be providing drinks 🍻 and food 🍕 for everyone (meaning most pizza will be vegetarian and there will also be vegan ones).
We would like everyone to be mindful of their own and everyone else's health. Please get tested in advance and wear a mask if possible to reduce the risk of infection with both COVID and other "con flu". If you feel unwell, please do not attend. We promise there will be more events during 2024.
So, in case you haven't yet, this is your reminder to book your journey and accommodation, and meet you in Brussels!
Read Thib's blog post for all the details at https://matrix.org/blog/2024/01/matrix-presence-fosdem/.
the FOSDEM main stage schedule is published - our talk "Opening up communication silos with Matrix 2.0 and the EU Digital Markets Act" is on Sunday in Janson at 10am. Be there or be 🔳 https://fosdem.org/2024/schedule/event/fosdem-2024-3345-opening-up-communication-silos-with-matrix-2-0-and-the-eu-digital-markets-act/
Dept of Interesting Projects 🛰️
After a few weeks of the release process being broken, this release is back and available on all the app stores. It brings several improvements and feature updates since the last TWiM post back in December. Most notably: Tasks and TasksList have been overhauled as part of a holidays-special hackathon. They are still behind a default-off feature flag but the the UI has been completely renewed, you can now set the due-date and assign yourself and they will show up on your dashboard. Pretty neat. On chat you can now properly toggle reactions and have more control over media downloads and won't find HTML in message editing anymore. More in the extended blog post about this release
Quests for 2024 (Q1)
Beyond what we have released, we have also published two blog posts last week regarding our planning process and the plans we have. Long story short we define our work as main quest and side quests we want to focus on in several chunks throughout the year. Those quests for product for the next quarter and for other areas over the next months we've outlined in this post last week. On such quests I want to highlight is a new podcast series on digital activism starting in the next few weeks.
At FOSDEM If you want to chat with me in person at FOSDEM, I have to disappoint you: due to prior engagements I won't be making it to the official Matrix Dev Room on Sunday. But I will be hanging around HSXL on Friday afternoon prior for the Matrix community hangout. DM me if you want to meet :) .
Matrix Federation Stats
As of today,
8605Matrix federateable servers have been discovered by matrixrooms.info,
27.7%) of them are publishing their rooms directory over federation. The published directories contain
Dept of Ping
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
That's all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!
The Foundation needs you
The Matrix.org Foundation is a non-profit and only relies on donations to operate. Its core mission is to maintain the Matrix Specification, but it does much more than that.
It maintains the matrix.org homeserver and hosts several bridges for free. It fights for our collective rights to digital privacy and dignity.Support us