[Ben is out this week, so this week’s TWIM has been hastily assembled without the usual love and care by Matthew instead]
TravisR joins the core team!
First off: we’re super-excited to announce that TravisR is joining the core team on July 3rd, hired to work fulltime on maintaining the Matrix spec and improving Riot/Web (including helping implement the new redesign!). Travis has been one of the most prolific independent contributors to Matrix, between his own 40 personal projects and massive bug & PR contributions to matrix-react-sdk, riot-web and the spec), and we can’t wait for him to be able to finally work on Matrix full-time. Between TravisR and uhoreg we now have two more people who can focus on improving the spec and help fix the backlog we’ve accumulated there – exciting times :D
Nheko now supports E2E Encryption!!!
In other massive news, mujx has an initial cut of functional megolm E2E encryption working on the e2ee branch of nheko! This also inclues a massive refactor of the whole app into a generic boost::asio based (and e2e-capable!) mtxclient library. There are still a lot of edge cases to sort out before the branch is merged to master, but the core tech works as you can see in the video below (which we’ve had to speed up by 3x because matrix.org is so overloaded this afternoon :|) Massive congratulations to mujx and everyone else who has worked on this – it’s incredibly exciting to see 3rd party implementations of Matrix’s E2E encryption evolving.
The elegant macOS native client entered the second week of its existence! Seaglass is now released under AGPLv3, and has lots more refinements – Markdown support, UTF8 bugfixes, Bubble UI and more!
There’s also experimentation on the horizon to use NSWebKit rather than NSAttributedString for rendering. For more info, join #seaglass:matrix.org.
Tobias Bernard tells us that Fractal 3.29.0 was released: “our first release following the GNOME versioning scheme. It includes Eisha’s redesigned room directory, and the all-new account settings by Julian. Daniel worked on adding a message queue, which makes Fractal much more usable on slow internet connections.”. And here’s a pic of the new room directory!
TravisR shared a bunch of useful gists for including in upcoming guides rework:
* https://gist.github.com/turt2live/f7e33017e72a83905f7f6acae31f4143 <– how to set a default ‘tint’ colourscheme on riot
* https://gist.github.com/turt2live/697d5b3781fb7ab7e11d704ea90e3dbe <– how to set custom tags on a room
* https://gist.github.com/Matrixcoffee/73e84990c29a2f26ece7f09e0bc39bfa <– how to configure RSS bot without a client
Vurpo says: I successfully set up our hacklab.fi Matrix server (+ invite registration links using ZerataX’s system that we saw here a while back) and demo’d it to our crowd here at Helsinki Hacklab – also got some people on the server and testing it out, and I’d say it was in general a success! https://matrix.hacklab.fi/register.html
gomuks and maubot!
Tulir says: 🌈 TWIM: It‘s pride month, so I added font tag support and a command to gomuks!
I’m also working on a plugin-based matrix bot system. It’s not very usable yet, but I did just get a hello world type bot to be loaded at runtime and respond to my ping. https://github.com/maubot/maubot
It’s plugin-based (as in load at runtime) and I’m planning to make the message formatting/ui better than what go-neb does currently
f0x announces Neo Release 0.07, with HTML and Markdown support, both sending and displaying. Usability fixes such as enter–to–send on media. Improvements with sending replies.
It looks like 90’s mIRC aesthetic colour codes are here to stay in Matrix if folks want them ;)
TravisR says: Alias Bot got a v1 release this week, whatever that means to you. More information can be found in the changelog: https://github.com/turt2live/matrix-alias-bot/releases/tag/v1.0.0
More from TravisR: https://lag.t2bot.io/ shows end-to-end message latency within Matrix as seen from different hosts. The Matrix.org HS is missing from the list currently due to concerns over the additional load that the e2e traffic could produce – for more on the load problem: people may be generally interested in watching this issue: (which, when will eventually have all the raw data available for people to play with)
Max says: mxhsd is no longer a thing within the Matrix world and will follow a fork of the protocol instead.
Lots of time spent looking at federation auth behaviour after Monday’s hijack on #matrix:matrix.org.
Security bug release for 0.31.2 in order to fail-safe rather than fail-deadly in the event of any further hijack attempts.
GDPR erasure work continues…
Lazyloading membership proposal now has full sytest coverage; just needs a solution for calculating room names serverside (MSC688)
hawkowl has been working away at improving our unit testing in order to have more confidence in ongoing python2->python3 porting work
Security work is taking priority over performance work though, so apologies that Matrix.org is going to keep being overloaded for a while longer :|
Breakthroughs on implementing the AS API!
Anoa has first traffic flowing back and forth between Dendrite and Discord!
For most of 2018 we’ve doubled down on Synapse perf & stability in order to immediately support Matrix’s growth, but Dendrite is also ticking along thanks to Anoa, APwhitehat & others! Here’s the first ever Matrix->Discord traffic bridged by Dendrite & matrix-appservice-discord!! pic.twitter.com/hMnJam8PI4
— Matrix (@matrixdotorg) June 12, 2018
…and here it is going both ways (kudos to anoa & jcgruenhage)! The reason for implementing the AS API in Dendrite is so we can offload Freenode traffic from the https://t.co/vidAnPoIo2 HS to a dedicated (faster!) HS. Watch this space! pic.twitter.com/ow87wKPYLg
— Matrix (@matrixdotorg) June 13, 2018
Meanwhile, APwhitehat is filling in gaps on the S2S API where possible (and is as anxious as all the other HS implementers out there to have a fully documented S2S API release at last!)
Implementing E2E key requests is almost finished on both iOS & Android
Lots of perf work ongoing – e.g. Realm on Android and UI thread profiling on iOS (turns out read receipt animations are way slower than they should be)
Unfortunately the GSoC project for implementing alternative push mechanisms (i.e. free alternatives to GCM/FCM/APNS) hasn’t worked out. We would love contributors to pick it up however – https://docs.google.com/document/d/1ULOMnR7YehCJD-VCYplWC3e9KRZynSgUo5wk-nwnzds is a Google Doc which lists various possible approaches. This is a really important project; please get in touch with Matthew or Dave if you want to help make it happen!
Residual GDPR erasure work ongoing and generally distracting from everything
Lots of E2E-capable antivirus work (more details coming soon)
The big PR to replace Draft with Slate for rich-text editing is reviewed and almost ready for merge
Lots of P1 bug fixing from t3chguy
matrix-search is pretty much ready to go!
uhoreg is making good progress with adding PKI APIs to libolm to support better key verification, incremental megolm backup, and encrypting keydata when doing serverside antivirus scanning of e2e attachments!
zil0 is also making good progress with adding E2E support to matrix-python-sdk in GSoC, gluing together libolm’s python bindings with matrix-python-sdk to all the intermediary key management and device management required to make megolm actually work with python!
Lots of work from TravisR on the spec, including a new proposal for managing ASes via API
Lots of new MSCs and PRs:
* MSC688 Proposal to calculate room names server-side
* MSC1301 Proposal for improving authorization for the matrix profile API
* MSC1304 Proposal to simplify the auth rules of m.room.power_level events.
* MSC1306 Proposal to filter out traffic to Appservices based on filters
* MSC1308 Proposal for speeding up review of simple spec changes
* MSC1309 Proposal for for an application service management API
Controversy over process and the fact that S2S API has stagnated.
There have been some accusations from displeased HS implementors that the lack of S2S API progress from the core team is malicious and some kind of attempt to disadvantage independent server implementations. This is categorically not true. Instead, it is a case of prioritising user-facing and client-dev facing stuff (scaling, performance, keeping matrix.org online, CS API, client features, bridging, AS API etc) on the basis that the network is nothing without users, and that we had to prioritise thanks to the core team shrinking by ~5 people during the funding crisis at the end of the last year. Matrix is an open network, and an open standard, and we want to build the world’s biggest open network for realtime communication – ideally as big as the web itself. There should be room in that network for many companies to exist and thrive, just as on the web, and we would never ever risk sabotaging the success of the wider Matrix network in order to give any single company an unfair advantage.
However, it’s certainly true that S2S API has ended up stagnating for way too long, which is why we’ve been hiring folks to help with spec bandwidth (uhoreg & TravisR), at which point we finally have bandwidth to make consistent progress again.
On that note, lots of work spec work (especially S2S API) planned next week.