29 KiB
+++ date = "2024-03-01T19:30:00Z" title = "This Week in Matrix 2024-03-01" path = "/blog/2024/03/01/this-week-in-matrix-2024-03-01"
[taxonomies] author = ["Thib"] category = ["This Week in Matrix"] +++
Matrix Live
{{ youtube_player(video_id="n_M_ktX2sjQ ") }}
Dept of Status of Matrix 🌡️
Josh Simmons announces
This week Thib published the second installment in our roadmap blog post series: Opening up the Foundation. This post dives into the work we’re doing this year to increase community participation and open governance, looking even beyond the Governing Board to things like office hours, working groups, and fiscal sponsorship.
If you missed the first post in the series, check it out: A roadmap and appeal for help from The Matrix.org Foundation.
We’re grateful for the level of support we’ve received as we share more about the Foundation’s financial needs and the work we are doing in service of the ecosystem. Many dozens of individuals have donated and joined as Individual Members, and we’ve more than doubled the number of organizational members! Huge thanks to Beeper, Fairkom, Famedly, Fractal Networks, Gematik, IndieHosters, and XWiki.
We still have a long way to go, and critically we need larger organizations to step up to the plate, but the early results are encouraging. Onwards and upwards! 🚀
Matthew reports
There's a huge number of Matrix projects active in the German public sector, and the team at Element has had a go at mapping them out and providing a guide to what's going on, how they relate to each other, and to generally try to explain why Germany is the leading country for digital sovereignty - including self-sovereign secure communication with Matrix: https://element.io/matrix-in-germany
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:
- MSC4115: membership information on events
- MSC4114: Matrix as a password manager
- MSC4113: Image hashes in Policy Lists
MSCs in Final Comment Period:
- No MSCs are in FCP.
Accepted MSCs:
Closed MSCs:
- No MSCs were closed/rejected this week.
Spec Update
Once again, a general call for help for folks to write up some spec PRs - aka turning our current list of accepted MSCs into actual PR against the spec itself.
Huge thanks to @zecakeh for writing several of these over the past week. The number left is dropping rapidly! Likewise to others that have been sending general fixes and updates to the spec as well.
If that sounds like something you'd like to help out with, even if you've never touched the spec before, please consider writing one up! You can see examples of Spec PRs here, and can join #matrix-docs:matrix.org for help 🙂
Random MSC of the Week
The random MSC of the week is... MSC2872: Move the widget title to the top level of the definition!
This is a very simple maintenance MSC which moves the "title" property from within the "data" property to the top-level of a widget definition (a
m.widget
state event). The reasoning is simply that the "name" property is also top-level in the widget definition, and it makes sense to put those by each other.
Dept of Servers 🏢
MTRNord says
ejabberd seems to now support Matrix federation https://www.process-one.net/blog/ejabberd-24-02/
Synapse (website)
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Andrew Morgan (anoa) announces
The final release of Synapse v1.102.0 was delayed this week while the team had limited bandwidth, sorry! Expect a release next week at the usual time.
Dept of Clients 📱
nannanko says
kazv v0.1.0 has been released.
kazv v0.1.0 adds a lot of features, fixes some bugs. We believe kazv has all the basic features that a matrix client and instant messaging app should have.
Full Changelog
Added
- Use fluent for translations. https://lily.kazv.moe/kazv/kazv/-/tree/tusooa/3-fluent
- Support read and save client state. https://lily.kazv.moe/kazv/kazv/-/merge_requests/2
- Support common event types. https://lily.kazv.moe/kazv/kazv/-/merge_requests/3
- Add send message shortcut. https://lily.kazv.moe/kazv/kazv/-/merge_requests/7
- Support auto-discovery and provide better login error messages. https://lily.kazv.moe/kazv/kazv/-/merge_requests/9
- Add translations for Hindi(hi) https://lily-is.land/kazv/kazv/-/merge_requests/11
- Use room heroes when there is no explicit room name. https://lily-is.land/kazv/kazv/-/merge_requests/15
- Add media file menu for download. https://lily-is.land/kazv/kazv/-/merge_requests/14
- Add a shortcut editor. https://lily-is.land/kazv/kazv/-/merge_requests/17
- Add UI for sending media files, controlling pause and cancel, and display the progress in real time. https://lily-is.land/kazv/kazv/-/merge_requests/18
- Use QtNetwork for job handling instead of libkazvjob. https://lily-is.land/kazv/kazv/-/merge_requests/21
- Implement creating and joining rooms. https://lily-is.land/kazv/kazv/-/merge_requests/19
- Add the ability to see users' devices and manage trust level. https://lily-is.land/kazv/kazv/-/merge_requests/23
- Support local echo. https://lily-is.land/kazv/kazv/-/merge_requests/25
- Support redaction. https://lily-is.land/kazv/kazv/-/merge_requests/28
- Implement profile settings. https://lily-is.land/kazv/kazv/-/merge_requests/30
- Support viewing event source. https://lily-is.land/kazv/kazv/-/merge_requests/32
- Display hero avatar if it is a two-person room. https://lily-is.land/kazv/kazv/-/merge_requests/34
- Support typing status. https://lily-is.land/kazv/kazv/-/merge_requests/33
- Support room tagging. https://lily-is.land/kazv/kazv/-/merge_requests/35
- Allow paginate back in the timeline. https://lily-is.land/kazv/kazv/-/merge_requests/38
- Handle incoming invites. https://lily-is.land/kazv/kazv/-/merge_requests/39
- Support displaying notifications for incoming messages. https://lily-is.land/kazv/kazv/-/merge_requests/40
- Support leaving room. https://lily-is.land/kazv/kazv/-/merge_requests/41
- Support sending and receiving encrypted media files. https://lily-is.land/kazv/kazv/-/merge_requests/20
- Allow selecting message content. https://lily-is.land/kazv/kazv/-/merge_requests/44
- Implement room member list view. https://lily-is.land/kazv/kazv/-/merge_requests/45
- Handle message replies. https://lily-is.land/kazv/kazv/-/merge_requests/48
- Implement reactions. https://lily-is.land/kazv/kazv/-/merge_requests/50
- Use libkazv push rules to determine whether to notify for an event. https://lily-is.land/kazv/kazv/-/merge_requests/51
- Implement displaying and changing users' power levels. https://lily-is.land/kazv/kazv/-/merge_requests/52
- Add the ability to ban and unban user. https://lily-is.land/kazv/kazv/-/merge_requests/54
- Sort rooms by descending order of latest event timestamp. https://lily-is.land/kazv/kazv/-/merge_requests/57
- Implement kicking user. https://lily-is.land/kazv/kazv/-/merge_requests/58
- Improve event view layout. https://lily-is.land/kazv/kazv/-/merge_requests/62
- Install kazv logo to icon directory. https://lily-is.land/kazv/kazv/-/merge_requests/63
- Implement inviting user. https://lily-is.land/kazv/kazv/-/merge_requests/65
- Support inviting users when creating a room. https://lily-is.land/kazv/kazv/-/merge_requests/66
Fixed
- Fix scroll-to-top when receiving new events. https://lily-is.land/kazv/kazv/-/merge_requests/26
- Fix timeline efficiency. https://lily-is.land/kazv/kazv/-/merge_requests/37
- Use proper style and l10n for event fallback. https://lily-is.land/kazv/kazv/-/merge_requests/55
- Use debounce when setting local draft. https://lily-is.land/kazv/kazv/-/merge_requests/56
- Fix AppImage build due to missing KNotification qml modules. https://lily-is.land/kazv/kazv/-/merge_requests/59
- Put primary event loop back to separate thread. https://lily-is.land/kazv/kazv/-/merge_requests/60
- Fix crash when timeline of a room is empty. https://lily-is.land/kazv/kazv/-/merge_requests/61
Removed
- Remove useless use of tabs on main page. https://lily-is.land/kazv/kazv/-/merge_requests/34
Neochat (website)
A client for matrix, the decentralized communication protocol
Tobias Fella reports
NeoChat 24.02 was released
This week, we have released version 24.02 of NeoChat. On a technical side, the most notable change is the migration from Qt5 to Qt6, though as an end user, you shouldn't notice a significant difference here. On the feature side, this release brings massively improved support for spaces and in-app account registration and deactivation. It also brings support for showing reactions based on custom emojis, for receiving push notifications using KUnifiedPush (not enabled by default, for now), and for forwarding messages to other rooms. You can now also quickly share contacts with other users by showing a QR code linking people's matrix ID. We have fixed
my favoritethe most annoying bug NeoChat has, where NeoChat would load forever if it fails to connect to your account, and finally, we have implemented the most requested feature: being able to switch to a dark mode when running on Android. But that's not all! There's also a ton of other improvements, fixes, and features - far too many to list here.The release will be out very soon on Flathub. If your distro doesn't have it yet, it probably will, some time soon.
If it doesn't, go bother them about it :). The windows store should also receive the update in the near future.What's next?
Since the release, we haven't been idle, of course. Notable features merged since the last update include:
- The possibility to sort the room list alphabetically (Implemented by James)
- Improvements to message rendering, most notably with amazing syntax highlighting for code blocks (also implemented by James)
- Improvements to the developer tools, like showing account data and a nicer list for state events (implemented by me, Tobias)
- Fixed sharing with Plasma's Purpose system (implemented by me)
- Audio and Video messages now stopping when a different message starts playing (implemented by me)
Still under review are support for sharing messages to other applications using Purpose and a built-in QR code scanner for scanning contact info, room links, etc. Finally, as a sneak peak into the future: We might also currently be experimenting with LiveKit based video calls 🤫
FluffyChat (website)
Krille-chan reports
FluffyChat v1.18.0 has been released 🥳
FluffyChat v1.18.0 adds some new features, fixes a lot of bugs and improves the notifications on Android by showing them in a conversations style. Voice messages got the ability to change the play speed and the status header is now optional.
Full Changelog
- feat: Add speed button for audioplayer (krille-chan)
- feat: enhanced send video functionality by adding toggle send original (Mubeen Rizvi)
- feat: add dialog to hide presence list with long-press (Marcus Hoffmann)
- feat: Add notification shortcuts to android (krille-chan)
- feat: make showing user presence info optional (Marcus Hoffmann)
- feat: Open chat on shortcut click on android (krille-chan)
- fix: BuildContext crash when joining room (krille-chan)
- fix: Export session (krille-chan)
- fix: Notifications open sometimes automatically on android (krille-chan)
- fix: Open room after join (krille-chan)
- fix: Open room by notification happened multiple times (krille-chan)
- fix: Open room links with event id (krille-chan)
- fix: properly initialize hideUnimportantStateEvents setting (Marcus Hoffmann)
- fix: Remove status msg not changeable from old cache (krille-chan)
- fix: use correct icons for chat pin/unpin (Marcus Hoffmann)
- fix: use correct icons for mark read/unread action (Marcus Hoffmann)
- build: Update Linux build files (krille-chan)
- build: Update to Flutter 3.19.1 (Krille)
- chore: Add more information to Person object in android notifications (krille-chan)
- chore: Thumbnail follow up for notifications (Krille)
- refactor: Better download UX with file picker for android and iOS (krille-chan)
- refactor: Use hashcode instead of string to id workaround for notifications (Krille)
- Added translation using Weblate (Belarusian) (kopatych)
- Added translation using Weblate (Interlingua) (Software In Interlingua)
- Translated using Weblate (Arabic) (Rex_sa)
- Translated using Weblate (Basque) (xabirequejo)
- Translated using Weblate (Chinese (Simplified)) (Poesty Li)
- Translated using Weblate (Chinese (Simplified)) (大王叫我来巡山)
- Translated using Weblate (Estonian) (Priit Jõerüüt)
- Translated using Weblate (Galician) (josé m)
- Translated using Weblate (German) (Benjamin Wagner)
- Translated using Weblate (Greek) (Benjamin Wagner)
- Translated using Weblate (Russian) (Benjamin Wagner)
- Translated using Weblate (Russian) (v1s7)
- Translated using Weblate (Ukrainian) (Ihor Hordiichuk)
- Translated using Weblate (Ukrainian) (Сергій)
Element X iOS (website)
A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.
Ștefan announces
Happy Mărțișor day, everybody! 💐
Element X
1.5.10
has been submitted to AppStore review and improves how your homeserver identifies the latest iPhones and Mac and makes errors more helpful when first configuring a homeserver. Plus tapping on your avatar in the Home Screen will go straight to the settings screen.See the full release notes here: https://github.com/element-hq/element-x-ios/releases/tag/1.5.9
We're also making good progress on new features:
Element X Android (website)
Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose
benoit announces
The version 0.4.5 has been published on the testing track. Changelog: https://github.com/element-hq/element-x-android/releases/tag/v0.4.5. Among new things: mark rooms as favorite, add some moderation tool to rooms (still not 100% implemented), add a gesture to swipe to dismiss the media viewer.
Now the team is working on moderation actions like banning members, blocking / unblocking people. We are also improving the overall quality of the translations. And we have started to work on login using QR code, for a very fast way to log in a device using an existing session, which will also take care of accessing the message history without any other user actions.
We are also iterating on the room list filtering, which will be soon available on production.
Dept of VoIP 🤙
MatrixRTC calls
Timo K. says
Hello from the VoIP team, with matrixRTC recently reaching the point where there are multiple clients supporting it. There is lots of momentum and motivation to make it well integrated and joyful to use.
Embedding
Lot of work happened on improving and finalizing the embedding of element call into element web. We want it to be seamless and stable. Some of the more visible changes of the last weeks are:
- EC will now use the same theme as EW and thanks to compound we already have a decent looking light theme for Element Call.
- There is a new hidden feature to skip the lobby by pressing the shift key while clicking on any of the call buttons.
- In embedded mode element call is now using the same compound themed lobby that is also used in the stand alone app.
We are getting closer and closer to make matrixRTC calls the new standard.
External conference links
Besides the integration work we are building a way to invite external non-matrix users into a call. In the future it should be possible to start a call in Element Web, create a link to that call and share that link. This url will bring non matrix users to an instance of the Element Call single page application where they get a temporal matrix account and seamlessly join the conference. (This is already working in an mvp fashion, Feel invited to watch the demo in this weeks matrix live)
Another small addition which might be hard to find, hence is worth mentioning, is that one can now change if a video is rendered as "Fit to Frame" (cropped) or without cropping which is very useful if someone is using a portrait video feed. (see the light themed screenshot)
For anyone eager to try calls over matrixRTC themselves, it is currently supported on EX and develop.element.io (If "new group call experience" is activated in the labs settings)
Dept of SDKs and Frameworks 🧰
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 says
We're back to a regular schedule! This week, we've had the following improvements:
- numerous additions and enhancements to the FFI layer,
- work is ongoing on the Event Cache, including notably a novel data structure to efficiently hold events in memory and on disk ("linked chunks"),
- a new debug TUI tool using the UI crate features has been introduced,
multiverse
, to help with debugging client issues.- work on new APIs to search the room directory has started!
Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)
Emma [it/its] announces
Not too much to report on, mainly some work on HomeserverEmulator
Additions
- Added some E2EE/key storage related models
- HSE: Added initial sync and /initialSync support
- HSE: Partially implemented key uploads
- HSE: Report supporting all documented login flows (implementation pending)
- HSE: Implemented basic room creation
- HSE: Split up some controllers (eg. User/Room ones)
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!
nannanko reports
libkazv v0.3.0 has been released.
libkazv v0.3.0 adds a lot of features, fixes many bugs.
Full Changelog
Added
- Error handling for async functions. https://lily-is.land/kazv/libkazv/-/merge_requests/21
- Add device management functions to Client. https://lily-is.land/kazv/libkazv/-/merge_requests/29
- Allow Sdk::createSecondaryRoot() to have its initial value. https://lily-is.land/kazv/libkazv/-/merge_requests/31
- Add local echo support. https://lily-is.land/kazv/libkazv/-/merge_requests/33
- Recalculate which megolm sessions need to be rotated after changing trust level settings. https://lily-is.land/kazv/libkazv/-/merge_requests/34
- Implement redactions. https://lily-is.land/kazv/libkazv/-/merge_requests/36
- Update to csapi v1.3. https://lily-is.land/kazv/libkazv/-/merge_requests/40
- Add room tagging functionality. https://lily-is.land/kazv/libkazv/-/merge_requests/41
- Implement getting member events of typing users in a room. https://lily-is.land/kazv/libkazv/-/merge_requests/42
- Implement getting and setting account data. https://lily-is.land/kazv/libkazv/-/merge_requests/44
- Handle invite state. https://lily-is.land/kazv/libkazv/-/merge_requests/46
- Add getter for individual room message. https://lily-is.land/kazv/libkazv/-/merge_requests/47
- Add libkazvtestfixtures library. https://lily-is.land/kazv/libkazv/-/merge_requests/51
- Add cursor for joined member events. https://lily-is.land/kazv/libkazv/-/merge_requests/54
- Track event relationships. https://lily-is.land/kazv/libkazv/-/merge_requests/55
- Implement a minimum set of push rules. https://lily-is.land/kazv/libkazv/-/merge_requests/58
- Implement power levels handling. https://lily-is.land/kazv/libkazv/-/merge_requests/59
- Add functions about get member ids and events by membership. https://lily-is.land/kazv/libkazv/-/merge_requests/62
- Make Client::stopSyncing() return a Promise. https://lily-is.land/kazv/libkazv/-/merge_requests/64
- Add preset param to Client::createRoom(). https://lily-is.land/kazv/libkazv/-/merge_requests/66
Fixed
- Make compile under gcc12. https://lily-is.land/kazv/libkazv/-/merge_requests/23
- Will now compile with Catch2-3. https://lily-is.land/kazv/libkazv/-/merge_requests/24
- Fix Room::encrypted not implemented. https://lily-is.land/kazv/libkazv/-/merge_requests/25
- Fix joining room with room alias. https://lily-is.land/kazv/libkazv/-/merge_requests/28
- Do not run tests that require Internet in pipeline. https://lily-is.land/kazv/libkazv/-/merge_requests/35
- Get the correct room avatar when set. https://lily-is.land/kazv/libkazv/-/merge_requests/43
- Fix pagination. https://lily-is.land/kazv/libkazv/-/merge_requests/45
- Make work with cpr-1.10. https://lily-is.land/kazv/libkazv/-/merge_requests/48
- Fix log spamming and session key revealing. https://lily-is.land/kazv/libkazv/-/merge_requests/50
- Fix store test with ASAN. https://lily-is.land/kazv/libkazv/-/merge_requests/52
- Fix AES256CTRDesc use-after-free error. https://lily-is.land/kazv/libkazv/-/merge_requests/53
- Avoid creation of multiple room cursors. https://lily-is.land/kazv/libkazv/-/merge_requests/57
- Minimize the copying of Crypto to improve performance. https://lily-is.land/kazv/libkazv/-/merge_requests/61
- Include
<random>
properly in random-generator.hpp. https://lily-is.land/kazv/libkazv/-/merge_requests/63- Improve reducer performance by using immer::diff to compare device lists. https://lily-is.land/kazv/libkazv/-/merge_requests/65
Dept of Events and Talks 🗣️
Matrix User Meetup Berlin
saces says
Next Matrix user meetup 6.3.2024, 8 pm @ c-base
Meet other matrix users, chat about Matrix, the rest, and everything else, discuss your Matrix ideas, sign each other in persona, and maybe spice the evening with a good mate or beer.
Every first Wednesday of the month in the c-base at 8pm ('til the next pandemic).
Matrix room: #mumb:c-base.org
Dept of Interesting Projects 🛰️
Acter
ben reports
Acter 1.24.2229 brings 💪 Actionable Updates 📣
Yesterday's release of Acter, v1.24.2229 (available on the Apple Store and Google Play store) brings a cleaner Events UI and several fixes on various parts of the App, but most notably 💪 Actionable Updates 📣 with push notifications in a new editor—allowing space leaders to include calls-to-actions, formatted texts with links and even videos in the updates boosted to all members. More details including demo videos in the release blog post.
What's New & AMA next week
Or you join us for the "What's New & AMA" session I will be hosting next week (Wednesday March 6th, 16h UTC) on Zoom (Meeting-ID 946 107 8631), where I will be showing the latest features and other updates we have worked and answer any questions in regards to Acter. There will be a recording made available after, so if you have a question but can't make it make sure to DM me the questions prior so we can get it answered.
Dept of Guides 🧭
Draupnir4All
MTRNord announces
Small update on the project today: We updated https://docs.draupnir.midnightthoughts.space to a more readable design and hopefully also better working for mobile than before. If you have any issues please report them at https://github.com/the-draupnir-project/draupnir4all_docs :)
Also while I was at it I added S/MIME and PGP keys to my Zammad instance that's used for the email. You can find the public keys/certs at https://docs.draupnir.midnightthoughts.space/getting-started.html#pgp-and-smime as well as the fingerprints of each file. Sending both just signed or encrypted files should be possible with both. Encrypted Replies are only confirmed working with PGP at this time. This is somewhat complicated by the Zammad integration for now. However, all messages will be signed by either GPG or SMIME.
Matrix Federation Stats
Aine reports
collected by MatrixRooms.info - an MRS instance by etke.cc
As of today,
9512
Matrix federateable servers have been discovered by matrixrooms.info,2776
(29.2%
) of them are publishing their rooms directory over federation. The published directories contain20157
rooms.Stats timeline is available on MatrixRooms.info/stats
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.
Rank | Hostname | Median MS |
---|---|---|
1 | maunium.net | 242 |
2 | nerdhouse.io | 268 |
3 | ari.lt | 271 |
4 | rom4nik.pl | 273 |
5 | fostered.uk | 310 |
6 | plocki.org | 339 |
7 | aguiarvieira.pt | 420.5 |
8 | envs.net | 436.5 |
9 | littlevortex.net | 503 |
10 | nhnn.dev | 649 |
#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.
Rank | Hostname | Median MS |
---|---|---|
1 | nerdhouse.io | 146.5 |
2 | ari.lt | 149 |
3 | aguiarvieira.pt | 151 |
4 | fostered.uk | 179 |
5 | spritsail.io | 211 |
6 | matrix.its-tps.fr | 236 |
7 | jpeg.city | 248 |
8 | shiftsystems.net | 259 |
9 | littlevortex.net | 325.5 |
10 | inu.is | 452.5 |
That's all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!