Matrix Live 🎙
Dept of Status of Matrix 🌡️
Open Tech Will Save Us 4
The next Open Tech Will Save Us event will take place on Wednesday, that's 2020-07-08! Line-up is confirmed as:
- Jay Graber (@arcalinea, @arcalinea:matrix.org), creator of Happening and all-around decentralisation fan will summarize an overview of the decentralized social media ecosystem that they're working on.
- Ania M. Piotrowska (@aniampiotrowska), known for her work on Nym, Loopix, and at UCL will present "Building private future for the internet with the Nym mixnet".
- Burak Nehbit (@nehbit, @burak:tomesh.net) will give a deep dive into his work on Aether P2P.
Dept of Spec 📜
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.
Finished Final Comment Period:
MSCs in Final Comment Period:
- No MSCs are in FCP.
Spec Core Team
In terms of Spec Core Team MSC focus for this week, as last week we are sticking with "implementation" for now. We'll be back soon :)
Dept of GSoC 🎓️
This week was the first evaluations, we'll have results to share next week.
futures0.1 dependency & move all modules to
Update all tests to use async / await
Begin merging updated
- e2ee merged and some bugs fixed (pr #324)! You should be able to use neb normally in an encrypted room now, if that's not the case please let us know!
- Added integration tests for both encrypted and unencrypted rooms to neb in order to catch things that might break some core functionality in a subtle way (issue #326)
- Similarly, created a PR for mautrix-go for testing the Olm and Megolm session establishment and message encryption / decryption (pr #12)
- Next up, working on a service for neb for testing the crypto functionality of other clients: neb will send messages to a room, rotate keys etc. and your client is supposed to respond!
Dept of Servers 🏢
Dendrite / gomatrixserverlib
Dendrite is a next-generation homeserver written in Go
Neil Alexander said:
This week has seen some new architectural changes and a number of bugs fixed:
A new Current State Server component has been added, which tracks room state
The Public Rooms API has been deprecated in favour of the Current State Server
Event size limits are now honoured with the correct return code
Invites have seen some refactoring and retiring invites should work better now
The federation sender now persists unsent PDUs to the database and will automatically retry when Dendrite is restarted, making resend behaviour much more reliable (particularly in the P2P demos)
Some room checks in
/state_idshave been fixed
Some additional restrictions have been added to
/sendand we now return the correct error codes
A bug where current state was incorrectly used when getting missing/backfill events has been fixed
A bug where you couldn't rejoin a room that you created after wiping your database has been fixed
Client-Server APIs: 45%
Server-Server APIs: 50%
Conduit is a Matrix homeserver written in Rust https://conduit.rs
This week I didn't have much time to work on Conduit, but together with @the0 we could implement both password changing and account deactivation!
With last week's key backup and cross-signing PR landing in master, here's a list of all major features still missing from Conduit:
All of Federation
Thanks to everyone who supports me on Liberapay or Bitcoin!
Synapse 1.15.2 shipped this week with some important security fixes - if you haven't already upgraded, please do asap! Meanwhile, we're also preparing a 1.16 release with the normal round of bugfixes and incremental improvements.
The big focus in the Synapse team continues to be on performance for larger Synapse instances, which is reflected in the support in 1.16 for running multiple media worker processes. We're working on giving other worker processes the same treatment, so expect more of the same in the weeks to come!
Synapse Deployment 📥️
Just pushed the 1.15.2 tags for the K8s-optimized Synapse image.
The avhost image including coturn, jemalloc, and mjolnir for synapse 1.15.2 was released at avhost/docker-matrix:v1.15.2, while the RCs images were released on my personal repo; mvgorcum/docker-matrix:v1.16.0rc1 and mvgorcum/docker-matrix:v1.16.0rc2
Dept of Bridges 🌉
Twilio & Maubot based SMS bridge
Jeff Casavant offered:
I wrote a very simple Twilio & Maubot based SMS bridge recently which I've been running for long enough with no delivery errors that I'd consider it stable. It's oriented towards bridging many individuals to single rooms via SMS. You'll need to have a Maubot instance in order to run it.
Dept of Clients 📱
Syphon - new client announcement
Hey TWIM ,
Tuesday, I did a soft announcement of open alpha for Syphon - a privacy centric matrix client
no proprietary third party services
- iOS will have APNS opt-in, but will be made clear to the user
all data is AES-256 encrypted at rest
E2EE for direct chats using Olm/Megolm
- group chats will be supported in the coming weeks
all indicators of presence are opt-in only (typing indicators, read receipts, etc)
customize themes and colors throughout the app
Please note there's still a lot of work to do and a lot of features missing that other clients have. It's not ready for everyday use.
Please let me know if you have any questions or would like to contribute!
Ryan told us:
This week we released 1.6.8, and the highlights include:
Upgraded to Electron 9 for desktop builds, which should fix various Linux tray icon issues
Jump to first unread message improved to handle reactions and other non-message events
Desktop now shows a file saved message when downloading a file
Cross-signing setup flows reworked to simplify choosing a security phrase or key
Alexandre Franke announced:
The previous Fractal update was quite a while ago but we’ve kept busy.
There has been a lot of under the hood work that users won’t notice and which we won’t delve into. In addition to them, we have a few nice things:
Matrix API tokens are redacted in logs for better privacy when submitting bug reports.
A send button was added next the message entry. This is especially relevant for touch screens.
We are less noisy with typing notifications that we send out.
We support SOCKS proxies.
Notifications for non text messages have been tweaked.
We gained support for edited message display. They are replaced with the newer content and a little icon is shown next to them. Editing messages is not supported yet though.
NovaChat July 3 update:
eric told us:
Added icons for each chat network to room list
Got Twitter DM bridge working again
Improved search bar UI
On-boarded 30 new users!
Launched (accidentally) on Hacker News
Fixed a ton of reliability bugs in the 7 bridges we support (changelog)
We are hiring (full-time or part-time) remote React developers to work on our (source available, still TBD on final license) Riot fork Send me a DM if interested.
RiotX published in the beta channel of the Riot-Android app
RiotX is now published in the beta channel of the Riot-Android app: https://play.google.com/store/apps/details?id=im.vector.app. You can get the last beta version by becoming a tester if you want to. There will be no more update of RiotX on the PlayStore. Current RiotX users should signout from RiotX and signin again on Riot-Android. Riot-Android users do not have to do that. The changelog can be read here https://github.com/vector-im/riotX-android/releases/tag/v0.91.3-beta. And this week we are working on implementing what's remain on our list, and we are fixing as many bugs as we can before the great release.
This week, we made some improvements for the cross-signing UX.
We started to work on the rebranding. And we also made some small improvements in the display of some events in the timeline.
Dept of Ops 🛠
ma1sd release 2.4.0
ma1sd release 2.4.0.
Enabled v2 API by default.
Added experimental support of the database connection pooling for postgresql
Added option to bind ma1sd to specified address.
Added error logging for LDAP authorization.
Added full request and response logs for debug.
Avoid including bridged user in directory lookups (https://github.com/ma1uta/ma1sd/pull/45)
Add experimental multi-platform buillds for amd64 and arm64 platforms.
remove warning about matrix-synapse-ldap3 (https://github.com/ma1uta/ma1sd/pull/50)
docker pull ma1uta/ma1sd:latest
docker pull ma1uta/ma1sd:2.4.0-arm64 (image for arm64)
This Ansible playbook is meant to easily let you run your own Matrix homeserver.
it appears to be puppet week in matrix-docker-ansible-deploy-land!
Thanks to various contributors (Johanna Dorothea Reichmann, Tulir Asokan and Hugues Morisset), the playbook has gained support for 4 new bridges: mx-puppet-instagram (see our docs), mx-puppet-twitter (see our docs), mx-puppet-discord (see our docs) and mx-puppet-steam (see our docs).
This brings the total number of bridges supported by the playbook to 15!
Dept of Bots 🤖
The release, v0.1.0, of matrix-reminder-bot is out! 🎉
I've eliminated most of the bad bugs that were present, so will be doing some feature development for a bit. As of now, the features of the bot are:
Have a reminder ping yourself or the whole room
Alarms which continue ringing until silenced
Support for end-to-end encrypted rooms
Postgres and SQLite support
Find it here: https://github.com/anoadragon453/matrix-reminder-bot/ and join the discussion at #matrix-reminder-bot:matrix.org!
Did you ever have the issue that a media event sent from someone is too large for your HS and you don't want to fiddle with the link?
IPFS Bot might be a solution. Invite @ipfs:nordgedanken.dev or Check out https://github.com/MTRNord/matrix-ipfs-bot/ to use the bot.
If you reply to any media event with
!ipfsthe bot will send you a link to the media stored on ipfs.
Known issues are:
E2EE not yet working (It joins but can't yet decrypt the related event)
Error handling is basically not existent. Therefore crashes might happen until I sort this out.
It currently does very verbose logging. This will be removed when the bot is more stable
Images sent from RiotX sometimes seem to not play nice with ruma
We could include this video here, but it seems me appropriate to link to an actual IPFS location.
cody, REPL for your Matrix chat rooms
Hello, I am announcing my first matrix bot - cody - that will evaluate code snippets in your Matrix rooms and return the result. Here is an example interaction:
user> !py "Hello world!" cody> 'Hello world!' user> !py list(range(10)) cody> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
You can chat with him @cody:bordum.dk and view the source code at https://gitlab.com/carlbordum/matrix-cody
This initial release only supports Python, but the plan is to add support for more languages in the next few weeks. The repo might also be of interest to some of you as it has CI, CD to DockerHub, complete dev environment with cody, pantalaimon, synapse and riot using docker-compose, simple metrics and Grafana-dashboards-as-code.
Dept of Interesting Projects 🛰️
Matrix Notepad Version
KB1RD told us:
A real-time collaborative text editor using the Matrix protocol.
Nope, it's not dead.
New version of
logootish-jswith a completely new algorithm
- In particular, I should note that this new algorithm is tested extensively, so I think the bugs should be out
Corresponding updates to internal event structure
Fixed UI & CSS bugs
Improved UX for room title editor
Currently, conflicting text will be displayed, but conflicts will not be indicated in any way
I almost forgot to mention: The room list is now filtered using the typed rooms MSC (event ID
org.matrix.msc1840). #test-document0:kb1rd.net is a room with that state event set.
I also made a flame graph of the internal algorithm and I'm surprised by some of the results. The good thing is that I think there's quite a few ways to speed up the algorithm. Here it is:
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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.