This Week in Matrix 2019-03-29

2019-03-29 — This Week in Matrix — Ben Parsons

Matrix Live

Tom & Matthew talk through the newly published Riot/Web roadmap! Be sure to read Tom's blog post which gets into his thinking for the roadmap too.

Matrix.org homeserver notice

The matrix.org homeserver will be down for essential database maintenance between 12:00 and 12:30 UTC on 2019-04-01

Synapse

Neil, Synapse overseer, reports on the acceleration towards 1.0:

We have much improved sytest support for Synapse worker mode, Hawkowl landed a brand new super fast super shiny user directory implementation, Brendan fixed a bunch of niggles in the federation tester and we finally got to the bottom of our sync caching bug that obscured accepting invites (thanks richvdh for sticking with it). Erik solved our presence spamming bug and anoa fixed some LDAP auth bugs and submitted a PR for certificate checking - one of our final blockers for Synapse 1.0. For all the latest checkout out our latest release candidate 0.99.3rc1.
Next week, we'll ship 0.99.3, we'll be looking at server key validity periods, adding a 3PID unbind API and starting work on tuning low powered Synapse installations.
https://www.arewereadyyet.com/ is still rising so keep banging to everyone you know that they ensure their federation certificates are valid.

Pantalaimon

poljar gave this update on his new project Pantalaimon:

Pantalaimon is a new project that acts as a reverse proxy for clients to connect to. Once a client is connected Pantalaimon handles end to end encryption for the client transparently.
The project is only a week old but already at a working prototype phase. A demo can be found here: http://webmshare.com/play/Qn4wg

This is a huge gain! Use of this project, as you will see in the video, permits any Matrix client to support End-to-End encryption of messages, by handling encryption/decryption in a daemon rather than in the client.

Watch the video, and you'll see gomuks, which does not support encryption, chatting in an encrypted room. Also, go chat in #pantalaimon:matrix.org and get involved!

Construct

Report from the Construct team:

The matrix Construct server has made significant progress this week implementing the 1.0 specification and is very close to a 1.0 release! Special thanks to our star tester Yan Minari and expert Matrix consultants Tulir and Max and C++ developers Jason of Zemos and Mujx of nheko for all their hard work to make this happen. The Construct now fully supports IPv6 and is ready to participate in fully end-to-to-end encrypted ipv6 networks like #yggdrasil:matrix.org and #cjdns:matrix.org.
This week also saw additions for .well-known support, m.fully_read and even DNS caching inside a matrix room shared between servers (which is really cool if you ask me).

I'd like to recognize our testers for their invaluable contributions this week, only a fraction of which are documented here: https://github.com/matrix-construct/construct/issues leading to the 1.0 release.
The Construct is written in C++ for maximum performance and scalability. It is the first fully federating server after the Synapse reference implementation. Your contributions in code and participation are essential to bring Construct to its upcoming release; get involved at https://github.com/matrix-construct/construct and in #zemos-test:matrix.org.

Riot Web

From the team:
We've been upgrading and optimising our Jitsi instance so people should see more reliable video conference calls, especially if they avoid connecting from Firefox over poor connections.
We've been squashing scroll jumps (where the timeline pops out of position unexpectedly due to images loading, etc.). We've come up with a radical reimplementation of the timeline (which should be imperceptible, except it doesn't jump) - try it out on https://riot.im/develop now.
Bruno, who has been working on scroll functional for Riot deserves a call-out - scrolling in new Riot web works great, and he may now be the most qualified dev on scroll: anchor outside of Mozilla or Google…

You can now get all Riot updates from #riot-web-announcements:matrix.org, the official room of Riot web announcements! You can especially get this update, which was also featured on Twitter:

Please upgrade your Riot web instances!

Additionally, Notkea has packaged Riot desktop for NixOS.

Riot iOS

Another case of UTD (https://github.com/vector-im/riot-ios/issues/2320) has been fixed. Some logs have been added to track push notifications that disabled themselves. SAS verification implementation is still in progress.
UTD = "Unable to Decrypt", messages as seen in Riot

Riot Android

  • Rework of EventStreamService, to fix many issues (crash) reported by users. The feature is available on the develop branch.
  • Also we are trying to upgrade Jitsi library, to fix other errors reported by users.
  • SAS verification implementation is still in progress.
Also, you may have already seen the use of Android 9-style notifications, featuring "Mark as read" + "Quick reply" buttons. This addition has started to make Riot Android my client of choice for burning through notifying rooms.

RiotX (Android)

  • Phase 1 started!
  • Backporting RageShake feature, with better handshake detection.
  • We are still fighting bug on the timeline rendering.

nheko packaging

@adridg:matrix.org:
Quick note that nheko (v 0.6.3) is now packaged for FreeBSD as well. The C++ code was fine (we use Clang, that does trip up some people) but I have Opinions about the CMake code (in particular that the find code for nlohmann/json.hpp, lmdb++.h and tweeny.h could use a lot of work -- if I feel perky I may come up with a PR). Thanks for the good work!

Dart SDKs

Black Hat has been using Dart and Flutter this week, and is making progress with an SDK and reference client:
I am trying to use libaqueous(Matrix Dart SDK) to create a cross-platform matrix client for Android and iOS.
Almost nothing works except Already a significant number of client features are available: login/logout, room list, basic timeline and message posting
Flutter is quite good for rapidly building mobile apps. ? Strong-typed json serialization/deserialization in Dart is a bit difficult at first, but I managed to solve that.
the repo is here, the SDK is here, and the room for discussion is at #libaqueous:encom.eu.org

Debug build apk from Gitlab CI is here

Notes on manually upgrading rooms, from TravisR

TravisR has written a brief guide to manually upgrading rooms:

https://gist.github.com/turt2live/a99c8e794d6115d4ddfaadb72aabf063

Note that you generally won't need to do this.

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!