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://matrix.org/docs/spec/proposals.
MSCs in Final Comment Period:
- No MSCs are in FCP.
Work on Spaces continues with MSC2946 (Space Summary API), specifically revolving around how to paginate the summary. This has called into question how pagination across Matrix works in general, which is a prime target for refactoring - perhaps an upcoming consistent pagination MSC? :)
Otherwise, as listed above, MSC3289 (room v8) has merged! It brings with it the ability to grant the ability to join a room based on one's membership in another room. While the was originally conceived for allowing users that are part of one Space to be allowed to join rooms, it has been built upon in other creative ways. Such as in MSC3325, where it could be used to make room upgrades more seamless!
And finally, a special thanks to Lukas Lihotzki for all of their spec PRs this week. They're been stellar!
Synapse is a popular homeserver written in Python.
Big news! Synapse 1.40 is out and it comes with support for Room Version 8! Version 8 includes "restricted rooms" which are only visible and joinable by members of a specific Space (or via direct invitation). This finally makes it useful to use Spaces as containers for private rooms, like you might with a company, guild, or open source community. Once invited to the parent Space, members can join and discover the otherwise private rooms within. No more
/invitespam every time you bring someone on board!
Also: If you've received any push notifications in Element Android or Element iOS this week, they've come via our shiny new stateless release of Sygnal! If you haven't received expected push notifications on those platforms this week... please alert us immediately. 😉
Lastly, Element is overjoyed to welcome David Robertson to the Synapse team. Welcome aboard, David!
And this week too keeps on going with the regular Kubernetes Helm Chart updates, this time bumping matrix-synapse to 1.40.0.
Eric Eastwood reported:
MSC2716 was also consolidated and updated to propose the
/batch_sendimplementation we're using in Synapse. There is also a plan for how this can be backwards compatible with existing room versions so no need for those pesky room upgrades. This will help us be able to jump in early and use this for Gitter as soon as the new event types become stable. Go jump in on MSC2716 to give feedback and read up on the details 😀
It has been almost two weeks since we have launched Cinny and here is what we have done in these days:
You can now decrypt message history by importing encryption keys.
We now support few commands along with emoji autofill and our unique go-to commands.
You can send messages with markdown. (This message is sent from Cinny)
It now supports replying messages and message deletion.
It now shows MXID on hover over display name.
You can now see who reacted on message by hovering over reaction.
Channels/rooms can be joined by alias.
Fixed login issue on servers that don't support delegation.
Fixed login issue related to non-compliant localpart. (Thanks to phildenhoff)
Fixed invalid password issue. (Thanks to Troplo)
You can find more about Cinny at https://cinny.in
Ement.el, a Matrix client for Emacs, continues to improve. Some of the changes in the past week:
Messages may now be written in Org-mode syntax (a format similar to but more powerful than Markdown). Internally, it's automatically converted to HTML and sent as the message's formatted body. This supports nearly any HTML feature that Org-mode can export to, including rich text, bulleted and numbered lists, and even tables (this message is being written directly in Org syntax; see a table of new bindings at the end of this list).
An optional pop-out compose buffer makes writing and editing long messages easier (also being used for this message).
Read/fully-read marker lines are now displayed after the last read message, and these are synced with the server and other clients. These lines can also be placed with a command, making it easy to return to a certain event later, even on other clients.
Usernames at the beginning of messages may optionally be colored to match the addressee's username. This especially helps following conversations in busy rooms.
Ement.el is confirmed to work with Pantalaimon, the E2EE-aware reverse proxy, making encrypted rooms work transparently. Once Pantalaimon is installed and configured, connecting through it with Ement.el is trivial, and this step is documented in the readme.
Per-user displayname and message colors have improved (and configurable) contrast ratio with the background color.
Reactions are sorted by the number of users who have sent each one.
Unread rooms are displayed more prominently in the room list.
New default bindings make it quick to jump to the mentions and notifications buffers.
Sync timeouts are handled more gracefully and Ement.el re-syncs automatically.
Various minor fixes and enhancements.
And here's the new-bindings table, written directly in Org syntax and sent automatically as HTML:
Binding Command S-SPC Scroll up M-SPC Move to last-read marker C-k Delete message M-g M-l Switch to room list buffer M-g M-m Switch to mentions buffer M-g M-n Switch to notifications buffer
Come join us in #ement.el:matrix.org!
Alexandre Franke announced:
Fractal updates two weeks in a row? 😱
In our fractal-next branch, Julian tweaked the style of the ugly “this is an early development version, here be dragons” warning, while GSoC intern Kai did a couple maintenance tasks: he updated some documentation and fixed clippy warnings.
With updates from the teams!
Sailtrix is a matrix client for SailfishOS.
Here's a summary of Sailtrix development this week:
Added notifications support
Changed the layout to use tabs
Added display of timestamps to messages
Display names are shown for direct messages.
Messages sent by the same user in succession are grouped
Download at OpenRepos: https://openrepos.net/content/hengyedev/sailtrix
Nheko is a desktop client using Qt and C++17. It supports E2EE and intends to be full featured and nice to look at
Nico (@deepbluev7:neko.dev) reported:
You now get notified, if someone reuses a megolm session index, because that in theory could be used by an attacker to send seemingly verified messages. We also now render decryption errors more nicely and users can now explicitly request decryption keys (in addition to the automatic key requests in the background that already existed). We also fixed an issue, that could corrupt the database when using the flatpak and if you lost your network connection, Nheko should now reconnect faster instead of potentially waiting 17 minutes for a TCP timeout. The storage for cross-signing secrets should now be more reliable, you can close image popups with the "Escape" key, close the current room by double clicking it and a few more miscellaneous bugfixes.
You can track the remaining E2EE bits, before we declare our E2EE support as stable, in this comment now: https://github.com/Nheko-Reborn/nheko/issues/23#issuecomment-894689158
I released Hebbot v2.0 (the matrix bot which generates the thisweek.gnome.org blog posts)
It has learned how to handle images / videos, and can now insert them directly into the rendered markdown. Creating new posts has been significantly simplified and now makes even less work for the author. For example, Hebbot now automatically generates a command to quickly download all images/videos at once.
Maybe other communities are interested in creating a "This Week in X" blog as well👀?
I find "read it later" services like Pocket extremely useful, but fail hard at actually keeping my read it later list at a sane level. For me it's hard to maintain the list and actually read through things as choosing which one to process feels overwhelming due to the amount of items.
Randomization to the rescue! I made a Pocket plugin for Maubot which gives me a random article from my list and allows me to easily archive it. Now I don't need to decide which article to pick, the computer does that for me!
Source code and info: https://github.com/jaywink/maubot-pocket
Ps. Maubot is truly awesome as a bot system, well documented and easy to develop on 😻
Bornhack is a 7 day outdoor tent camp where hackers, makers and people with an interest in technology or security come together to celebrate technology, socialise, learn and have fun.
This year, Asbjørn and I are hosting a couple of events related to Matrix:
If you attend Bornhack, please come by and say hi! If you are thinking about attending, don't hesitate to reach out and ask us anything 🌵⛺
Hi everyone! Did you ever feel lost in the Matrix world? The room directory is big, but it's still hard to find something you like. Or are you a room moderator, but there is not much activity in your room because it doesn't have enough users?
This is why I want to share rooms (or spaces) I find interesting.
This week's room is: #gamedev:matrix.org
If you want to suggest a room for this section, tell me in #roomoftheweek:fachschaften.org
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.
See you next week, and be sure to stop by #twim:matrix.org with your updates!