Matrix Live 🎙
This week we hosted Open Tech Will Save Us #12!
- Creating a SAFE SUPPORT CHAT on the Matrix API
- Kim Allen of PRIMAL GLOW Communications will be joined by Safe Support Chat Project Team Members, Sharon Kennedy of Nomadic Labs and Brent Edwards to talk about why and how this online crisis support tool for sexual assault centres was built on Matrix, using a custom implementation of Element and other Open Source resources.
- Open Web Docs: web documentation as critical infrastructure
- Will Bamberg is a technical writer who works on MDN Web Docs, originally for Mozilla and now for Open Web Docs. He's especially interested in ways we can make documentation more engaging and accessible. Open Web Docs is a collective of people and organizations that exists to support web documentation.
- Hydrogen Deep Dive
- Bruno from Element will do a deep dive into the architecture of Hydrogen, the upcoming next-generation Matrix web-client. What are the guiding principles, what makes it fast, what is different about it, and how could it also benefit Element Web?
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.
MSCs in Final Comment Period:
- MSC2241: Key verification in DMs (merge)
Spec Core Team
In terms of Spec Core Team MSC focus for this week, we talked a little bit about MSC2970 (path requirements for push gateways) and left some thoughts on the MSC. We also merged a few spec clarification/fixup PRs as they trickle in following the spec unfreeze last week.
Dept of Servers 🏢
Conduit is a Matrix homeserver written in Rust https://conduit.rs
A lot of progress is happening currently! Federation is becoming more and more stable and missing features are being implemented:
Feature: /make_join, /send_join and /query/directory
Feature: Incoming invites over federation
Feature: Correct and more efficient message count calculation
Improvement: Check event signatures on join
Improvement: Fetch signing keys in parallel when joining
Improvement: Relaxed verification code to allow joining partially broken rooms
Fix: Lost forward extremitites
Fix: "Malformed pushrule" errors
Fix: Mistakes in DEPLOY.md documentation
Fix: Alias parsing
Fix: Optimize /send calculations
Fix: State resolution bugs
Synapse is a popular homeserver written in Python.
In addition to Homeservers, the Matrix spec also describes Push Gateways and Identity Services, which augment our ability to send notifications or discover users via identifiers like email addresses.
On the Matrix.org Foundation side, we maintain production-grade reference implementations of these services:
Synapse, a Homeserver
Sygnal, a Push Gateway
Sydent, an Identity Service
We recently became aware of a few security and denial of service concerns in Sydent. Yesterday, we released Sydent 2.3.0 with fixes for those issues. It's extremely uncommon to self-host Sydent, but we wanted to highlight our work there all the same.
We've also finally settled on quarterly objectives for the Synapse team at Element, and the first thing we're focusing on is gaining a better understanding of how Synapse uses memory. Specifically, we'd like to drive down the peak RAM associated with joining large, complex rooms like Matrix HQ. We've already landed a small speed up to that effect, but expect more specific metrics in the future.
Synapse 1.32 is due out early next week, and we look forward to seeing you then.
Homeserver Deployment 📥️
YunoHost is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting.
Synapse integration had been updated to 1.31.0 (1.31.0 available in branch
If you had a problem durng the upgrade to 1.28.0, there is a fix here to restore the backup : https://github.com/YunoHost-Apps/synapse_ynh/issues/246 Element Web integration had been updated to 1.7.24 (1.7.25 available in branch
Dept of Bridges 🌉
So much bridge news this week!
Old Gitter bridge end of life (2021-04-21)
Eric Eastwood said:
Next week on Wednesday (2021-04-21), the old Gitter bridge (identified as
@gitterbot:matrix.org) will be shut down and any plumbed rooms (bridged connections) remaining will no longer bridge. To replace this, we've already migrated all of the portal rooms and many of the plumbed rooms in preparation so most users will not need to take any further actions. The remaining rooms with the old Gitter bridge are unfortunately not possible to migrate and for those communities a clean break will be needed. The new native Gitter bridge is here to replace this!
You can read most of the same information and details if you still need to plumb for your existing room in the blog post, https://matrix.org/blog/2021/04/15/old-gitter-bridge-end-of-life-2021-04-21-to-be-replaced-with-native-bridge
Element now has a Microsoft Teams bridge
Half-Shot told us:
Hey hey folks, something I can finally talk about in the open is that Element now has a Teams bridge! After months of being isolated on a desert island being fed nothing but rice crackers and diet pepsi, I can talk about our newest bridge. It's fairly feature packed with support for all the usual formatting options, plus Jitsi widget bridging (as links) and full puppeting including DMs. Matthew even went and nattered to The Register about it. So you heard it here first, no network is truly safe from the open federation and we hope to welcome teams users into the Matrix. The bridge is currently a closed source offering under the EMS banner for now.
You can read about it in https://element.io/blog/ems-launches-bridging-for-microsoft-teams/
David Mehren added:
Heise wrote an article about the Teams bridge: https://www.heise.de/news/Fuer-MS-Teams-Verweigerer-Element-startet-neuen-Bridging-Dienst-6017946.html
Half-Shot also added:
Incidentally, would you like
access to the teams codeto work on lots of bridges and make things happen? Please reach out!
matrix-github (new name pending?)
Also, some more news. I've started making improvements to matrix-github as it continues to serve as the primary way for me to get notifications from GitHub. The latest improvements are that you can now dynamically create and assign filters to notifications coming to the bridge. This means you can name filters and turn them on and off as required (i.e. don't bug me about matrix-org on weekends please). The v0.1.0 release is out.
Have questions/ideas/mad-experiments, come chat to us in Matrix Github Bridge.
I've been using this for months now, and can confirm it works great!
Matrix PSTN Bridge
It's a simple puppetting bridge to the public telephone network via providers like Twilio. It's designed to be modular and support several different providers (though it only supports Twilio ATM). Once more providers are added, it will be possible to seamlessly migrate your phone number between multiple providers and save conversation history. Chats are created by starting a DM with the control bot (currently hardcoded at
@_pstn_:myserver.org) and running the
dialcommand. Multiple users can join a room with the control bot and are all given access to puppet the bridge.
Connect to Twilio & get current account balance
Send SMS texts to phone numbers and receive texts back
Intelligent dialing looks up phone numbers based on the one you're using
Give SMS users "pet names" via the
Allow multiple users to puppet a bridge & allow the bridging of bots
Some planned features could include: (I'm not committing to any of these ;D)
Displaying bridge info in Element settings
Sending MMS (pictures, video, voice, etc.)
Getting extended information about users. Services like Twilio offer carrier lookups and that sort of thing. Could be useful to help weed out spam.
Phone calls -- This is very hard
- Answering machine
Faxing. Why not, I guess?
Pay-as-you-go managed phone number service
Start a chat with the bridge bot and buy a phone number via Matrix
Payment security is an issue here ;)
Puppetting WhatsApp business or Facebook Messenger. Companies like Twilio offer connections to proprietary messengers like these.
It's not ready for production use, though. It's still stuck on a SQLite DB and has a few usability issues.
Dept of Clients 📱
Updates from the teams:
- On Spaces, we’ve been doing first implementations of MSC3083 (Restricting room membership based on space membership) on Android & Synapse.
- Meanwhile, we’re continuing effort on iOS on adding SDK support for Spaces, and also refactoring room navigation to soon implement the Spaces UI.
- Lots of design in progress for improving group calls, and work ongoing to implement those designs on iOS.
Element Web 1.7.25 released
- Added reset button in settings to assist with search index issues
- Added optional warning before exiting desktop app
- Improved VoIP call media error handling
- Enabled sharing room keys on invite
- Added persistence of unsent messages across app reloads
- Fixed replies for IRC layout
Element-iOS 1.3.0 contained several issues we wanted to fix before publishing it. 1.3.3 will fix all (https://github.com/vector-im/element-ios/milestone/52?closed=1) plus:
- An update of self-verification to follow recent Element-Web changes
- A fix to correctly display sender display name in notifications
- Element Android has been released 3 times this week, first version was 1.1.4, then 2 corrective releases, 1.1.5 and 1.1.6 to fix crashes… The main changelog is https://github.com/vector-im/element-android/releases/tag/v1.1.4 . F-Droid store will only get version 1.1.6, please be patient.
- We are currently working on the account creation and registration flows and made some experiments on it.
Dept of SDKs and Frameworks 🧰
Ruma is a set of Rust library crates around Matrix
It's been almost two months since we shared an update 😱
Lots of things have happened in that time:
@timokoesters fixed a few issues that affected Conduit:
@Frinksy added multiple endpoints to
- You can view it on https://docs.ruma.io/
@abhikjain360 also added multiple endpoints to
and meanwhile, I've been refactoring lots and lots of things but the details would probably be meaningless to non-contributors and I haven't posted PRs for most of these changes so it's hard to collect into a list anyways
some small contributions are not in this list, since it is already huge
In addition to all the PRs, we are taking part in GSoC this year again! Proposals have been written, reviewed, updated, finalized, submitted and now there's some quiet time until the student projects are announced on May 17th.
Dept of Interesting Projects 🛰️
Search Peertube via Matrix
I wrote a new tool for fediverse: search Peertube via Matrix. It uses Sepia Search API to search on all participating public Peertube instances. You can also select any single instance. It's implemented as a module for Hemppa the bot - see docs here: https://github.com/vranki/hemppa#peertube-search #peertube #matrix
See the announcement: https://fosstodon.org/web/statuses/106048573207784409
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!