Matthew & Amandine talk with Prof. Jon Crowcroft, one of the new Matrix.org Foundation Guardians!
The big news this week is that we declared ourselves to be out of beta. You'll want the full post for all details, but here's a taste:
We are very excited to announce the first fully stable release of the Matrix protocol and specification across all APIs - as well as the Synapse 1.0 reference implementation which implements the full Matrix 1.0 API surface.
This means that after just over 5 years since the initial work on Matrix began, we are proud to have finally exited beta!! This is the conclusion of the work which we announced at FOSDEM 2019 when we cut the first stable release of the Server-Server API and began the Synapse 0.99 release series in anticipation of releasing a 1.0.
As part of the 1.0 we also announced the Matrix.org Foundation.
For the full update on the Foundation, please check out the new website content at https://matrix.org/foundation which should tell you everything you could possibly want to know about the Foundation, the Guardians, the Foundation’s legal Articles of Association, and the day-to-day Rules which define the Open Governance process.
Thanks to everyone who has stuck with us along the way to make this possible.
We released Synapse 1.0.0 this week to coincide with Matrix 1.0. As a release Synapse 1.0.0 focuses on security and stability which in turn builds a firm foundation for the performance improvements that you can expect to see over the Summer. Read all about it here.
We have not one but two working end to end demos of device cross signing! This is going to be huge and is key step towards being able to make Matrix e2ee by default.
|Cross Signing Demo||Additional Treats|
But wait there's more! Pantalaimon not only provides a way for clients and bots to participate in e2ee rooms, it now provides the ability to search. Checkout this (relgious themed) demo.
Pattle is going great guns at the moment. Here's Wilko:-
A new version of Pattle has been pushed to F-droid!
- Add ability to create group chats!
- Show chat creation events ('Wilko has created this group')!
- Show emote messages correctly!
- Handle display name changes! Display names of messages will now be as they were at time of sending.
- Don't show invite and join events in direct chats This is only happens for the two initial users in the direct chat. If someone invites someone else to the direct chat (trough another client), the invitation will show up in the timeline.
- Use the timeout parameter while syncing. This means that receiving new messages should be way quicker! (Thanks Mathieu!)
- Store messages retrieved remotely (thanks Mathieu!) This means that scrolling up in a chat will be faster now, because the messages are cached.
- Always show a date header above the oldest event
- Show replies correctly in chat overview
- Show sent state icon next to own message in chat overview
- Show newly joined rooms at the top in the chat overview
- Use a bit bolder font for chat names in overview To install this release, add the following repo in F-droid:
And install 'Pattle'.
Or download the APK from the link.
Follow development here: #app:pattle.im!
There is now also a room for the Matrix Dart SDK (which is being developed for Pattle): #sdk:pattle.im
Jimmy reports that
New versions of the ruma-api and ruma-api-macros libraries were released, and work is underway to bring ruma-events up to date with client-server spec r0.5.0
TravisR has this to say:
Both matrix-media-repo and Dimension have been updated to handle federation certificates. Please update, as you would for Synapse 1.0.0
Half-Shot reports that:
I wrote a bot to control ansible playbooks https://github.com/Half-Shot/matrix-ansible-bot. I'm informed such a thing already exists as an ansible module, but I failed to realise that and wrote a independent one in TypeScript.
tulir reports that:
For room admins wondering if they can upgrade their rooms to v5, I made a bash script that checks all the servers in a room and prints a nice summary of the number of servers and members on each version: https://gist.github.com/tulir/aa2df287a0d192b86e5b675687791d16
Atreatis reports that:
Currently grin is building a backend for matrixservers.net that will collect data and push statistics every hour to our website. Next to that I wanted to push forward that me and several others are looking into building a Code of Conduct that should help every new and existing home server. This code of conduct will be build and curated from scratch in-order to help and support the network or any general project.
Pneumaticat has this to say:-
My homeserver (potatofrom.space) is open for some public registration! Also on Atreatis's matrixservers.net.
They promise 'One nine of uptime guaranteed, or your money back' which sounds pretty like a bargain.
So that's it folks, until next week. Come and say hi at #twim:matrix.org
We are sooo close to Matrix 1.0. So close! The PR which annouces the arrival of v1.0 exists already.
Work towards 1.0 is progressing nicely - still on track for a Monday release! View our progress at https://github.com/matrix-org/matrix-doc/projects/2?fullscreen=true
Neil, who oversees the creation of Synapse:
Quiet week, not much happening, the only real progress has been shipping a Synapse 1.0 release candidate :) Joking aside we’d really appreciate your help in testing it ahead of the full release next week. Get the RC here https://github.com/matrix-org/synapse/releases/tag/v1.0.0rc1
Also friends don’t let friends operate a Synapse install without a valid certificate on the federation API. Post 1.0, servers that are not compliant will be locked out of the federation. While the copy needs updating to reflect 1.0’s imminent release, our handy FAQ (https://github.com/matrix-org/synapse/blob/master/docs/MSC1711_certificates_FAQ.md) has all the details.
Construct, a C++ homeserver has been doing testing this week:
I'd like to give special thanks to Ddanyspin97 (Danilo Spinella) for working on building construct with the musl C library so we can enjoy extremely small VM images, as well as Black Hat for building on Alpine linux also using muslc and Thomas Lewis for starting work on the FreeBSD build.
Jimmy, project lead:
the ruma homeserver is now targeting stable rust, which means the entire project is now on stable rust
[I] wrote a proof-of-concept load balancer for synchrotron workers....well, proof-of-concept because it isn't tested much, yet!
It routes users to synchrotrons based on their user ID to maximize performance, as per worker docs and, if a synchrotron catches fire it'll also automatically start shuffling workers around.
The repo can be found here, for support just poke soru wherever she is
Contributions are welcome!
Join the newly created room at #matrix-synchrotron-balancer:sorunome.de to discuss.
Just released version 1.1.0 of the Ruby SDK, which includes a few more and improved CS API endpoints, better room alias handling, lazy loading of join rules and guest access, and the forgotten - oops - handling of room avatars.
And released version 1.1.1 of the Ruby SDK too, fixing another embarassing mistake with not including the S2S API methods correctly, which lost the server version retrieval method (The only currently implemented part of the S2S API)
Are you in the know about Matrix? If not, prepare to learn about RiotX, a completely re-written Matrix client for Android. This new version has a Kotlin SDK.
Benoit, from the team:
Many things to announce this week on RiotX:
- Crypto is starting to work! We can now decrypt message and send encrypted messages. The whole feature is not implemented yet, but we will merge the PR at the beginning next week before going further. Thanks François for the great work!
- On the timeline, message composed by only emoji are now displayed bigger (as in other Riot clients)
- We can now see details and actions of each message, including state event.
- We can also see the detailed list of reactions for a particular message, and reaction display rendering has been improved. More details of what has been improved by Valere can be found in this PR description: https://github.com/vector-im/riotX-android/pull/168.
- Local echo on message edition has been improved
- The 3 main themes has been implemented (Light, Dark Black). Status theme is still there but has not been tested yet. There are still some little issues which will be fixed in the next coming days.
- The new Home is on develop, composed by a catchup tab, a direct message tab and a group room tab. The drawer is now used to display the groups hierarchy.
- A debug signature has been added to the git repository, so the APK built by buildkite can now be installed and replace a previously installed APK.
There is still lots of work to do, but we are quite confident to deliver a first alpha version of RiotX to a larger audience at the end of June.
We've heard about Famedly before, and here they are with an announcement about their new client:
After some months of work our app 'famedly talk' is now able to send and receive messages. We are now concentrating on implementing the most important functions in a stable manner.
fix some missing avatars and names of rooms. Normally continuum saves all useful data to disk when syncing, but the previous version missed some of it, the newer version will query the server for the missing pieces
This week in Fractal: Alexandre Franke noticed nightly was broken on all three of the computers he was using it on. He bisected and found out when the regression was introduced, but still needs to figure out why it broke and how to fix it.
The symptom is syncing forever on startup and never actually syncing. The commit introducing the borkage is this one.
Nothing special this week.
DID YOU SEE THE RIOTX UPDATE ABOVE?
matrix-appservice-irc got a release 0.12.0. This is a smaller release, as it's based upon 0.12.0-rc2 which was released back in March (when exams hit). In the meantime, working towards a speedy 0.13.0 release :)
Changelog for 0.12.0:
The bridge now supports upgrading rooms, and will follow room upgrades to the new room. Added support for the RoomLinkValidator, which allows admins to manually configure rules about plumbing rooms. A dockerfile is now included. Add support for "feature flags", allowing users to dynamically enable/disable bridge features for their account. Add command "!bridgeversion"
High-level plan for 0.13.0:
Fix the most serious P1 bugs like not dropping messages, handling PARTs better, dropping support for older versions of node, and generally better UX.
Atreatis provided an update to matrixservers.net:
I've open sourced the website of https://matrixservers.net and I am open to contributions towards the website through the github repository: https://github.com/Atreatis/matrixservers
Currently I have refactored matrixservers.net from Hugo to Jekyll which was totally worth it at all times
Join #matrixservers:novaim.com for more.
I launched https://www.matrix-wiki.org as a place to collect information, lists, guides and manuals related to matrix. I hope as a community we can work together on this to create a central knowledge base for the matrix protocol.
I spent so much of my week migrating matrix.org to a great new design (from Nad), and am really happy with the result. I'm also really happy with Gatsby, the SSG we've chosen. All these things have flaws but overall it works well.
See you next week, and be sure to stop by #twim:matrix.org with your updates!
Alongside Synapse’s 1.0 release, the Matrix Specification is also getting a 1.0 on June 10th. In practice this means a fresh release of the Client-Server, Server-Server, Application Service, and Identity Service specifications. The Push Specification is just so simple it hasn’t needed an update yet.
Work has been happening to get all the specs in shape for 1.0 - follow along at https://github.com/matrix-org/matrix-doc/projects/2?fullscreen=true
Main news in synapse-land this week is that we released Synapse v0.99.5.2, which fixes a big performance regression which was introduced v0.99.5. Folks who are currently on v0.99.5/v0.99.5.1 are advised to upgrade asap.
Otherwise, work has been continuing apace towards a v1.0 release on 10th June.
Construct is a homeserver implementation in C++:
- Construct has added support for Server Access Control Lists (m.room.server_acl). The exact behavior of the implementation is configurable by the server administrator, and is even more comprehensive than Synapse. In Construct, ACLs can be configured to cover incoming EDUs, outgoing events, and indirectly fetched events.
- The GraphicsMagick library has been utilized to implement the media thumbnailing feature called for by the specification. This is an optional dependency written in C and offers a rich API which as been extremely fun to work with. In the future, expect your Construct to be capable of things like annotating images with the Server Command Line which can be used to generate memes in your chatroom or write custom text on top of stickers!
- On the backend we have devoted significant effort to getting the most out of dynamic-linking to simplify the architecture of a large and modular free-software project. This effort makes adding features and contributions to Construct extremely straightforward. I will enumerate the basics for those familiar with developing C software: We are now loading all modules at runtime with the flags
RTLD_GLOBAL|RTLD_DEEPBIND|RTLD_LAZYand we build with the flag
--weak-unresolved-symbols; during execution we hook the error handling in
ld.soto throw our own C++ exception directly from the PLT slot of a missing symbol. In summary this allows features to be added to Construct by simply creating an interface in a header and definitions in a loadable module, while still enjoying optional loading and unloading of the module at runtime. This is a significant feat that remains unrealized in most existing projects around the free software ecosystem!
Just wanted to pop in and mention that 0.6.4 is out this week. It comes with a decent number of bug fixes.
Nheko 0.7.0 roadmap is out: https://github.com/Nheko-Reborn/nheko/milestone/2
Also, Nheko-Reborn has a new team member, with MonokelPinguin joining the team : https://github.com/MonokelPinguin. (goes by Nico in the #nheko-reborn room)
el0 pointed out that nheko is available on flathub: https://flathub.org/apps/details/io.github.NhekoReborn.Nheko
continuum modified the JSON parser to save a copy of the source. Now fields that are not standard or not yet supported are displayed when you right-click to view the source. For example, "age" and "transaction_id" are not used by the app, but are available when viewing the raw JSON
f0x has been working on Neo:
Neo can now finally fetch old backlog, with a fancy css loading animation
Fractal got initial support for being kicked, implemented by first time contributor Isaac Curtis.
We also joined the new call at https://stopthemingmy.app
Continued work on edits and reactions. Also ongoing work on sdk-level support for cross-signing. Released Riot 1.2.0 (and 1.2.1).
Can you believe it, tulir had a busy week working on his various bridges:
mautrix-telegram now has native Matrix edit support in both directions and basic Prometheus metrics. I'll probably start making 0.6.0 RCs after improving the metrics a bit.
mautrix-whatsapp's Matrix puppeting was finished (meaning typing notifs, read receipts and presence updates can now be bridged to WhatsApp) and unexpected disconnection handling was fixed (automatic reconnections should now usually work again). Backfilling needed some hacks to work with Matrix puppeting. The problem is that the real Matrix users have rate limits and can't send timestamp-massaged messages. I decided to just invite the default ghost user to the room while backfilling and make it leave afterwards so that private chat room names and such would stay intact. Some clients like Riot Android/iOS sometimes do weird things, such as moving the room out of "People", but that shouldn't be too bad.
matrix-docker-ansible-deploy has seen some work in becoming more flexible.
Synapse is not a requirement anymore. People can now use the playbook to install any of the other services, wiring them to a Synapse instance installed in another way. This is mostly useful for installing bridges or other auxiliary services without going "all in" on the playbook. Not having Synapse as a fixed requirement also opens the door for installing alternative homeservers, when such become available in the future.
On a similar note, to ease maintanability, all bridges have been moved to separate Ansible roles (outside of the
matrix-synapserole). There have been lots of improvements related to bridge configuration with even more likely to come soon.
Aaron (formerly known as Aaron Raimist) has been a major help to the Matrix project, and has recently launched something new:
I have started another Matrix documentation project, Matrix User Documentation. I know, there are several however none of them aim to actually be a handbook for using Riot or any other clients. I would like for this to become a place where you can find "The (unofficial) Riot Handbook" or "The (unofficial) Quaternion Handbook" as well as a place where you can find answers to more of your FAQs.
It's still very early, only a few answers are written so far and none of the handbooks have been started but I would welcome any community assistance. You can view what I have so far at: http://mud.raim.ist/en/latest/
You can contribute some documentation at: https://github.com/aaronraimist/matrix-user-documentation and join our room: #matrix-user-documentation:raim.ist
We welcomed Atreatis to Matrix recently. They are creating a new directory service:
Someone mentioned earlier that there is a need for a list of public servers on Github so people can find and add their public matrix servers. Which combines well with what I am building at the moment. Hopefully you guys don't mind helping me out on creating the list and spreading the word. The repository can be found here: https://github.com/Atreatis/matrix-servers
Matrix Shell Suite is a promising looking project which could deserve more attention.
Thank You to PyConWeb and especially to Hardy for letting richvdh and myself host TWO Matrix sessions at your event last weekend - was a great time and I hope everyone enjoyed the presentations and workshops.
See you next week, and be sure to stop by #twim:matrix.org with your updates!
This week I chatted to Wilko, creator of Pattle.
Folks, big news this week as we announce that Synapse v1.0 is scheduled for release on 10th June - read all about it here
Aside from that we shipped v0.99.5.1 which (hopefully) is the penultimate release ahead of v1.0. Please, everyone upgrade to v0.99.5.1 because it implements rooms v4 which will be the default room version in Synapse v1.0.
0.99.5.1 also contains experimental support for edits and reactions which are currently hidden behind a Riot labs flag.
Some activity has been happening this week in Dendrite-land, with Brendan adding support for Go modules to the project, and anoa adding SyTest runs to the project’s CI. These were two long-awaited maintenance works that will make working on Dendrite much easier in the future!
libQMatrixClient (that will soon become libQuotient) 0.5.2 has been released, with the sole purpose of fixing a nasty bug unmarking some direct chats when doing initial sync or a clean-cache start up. Everybody on 0.5.x branch is advised to upgrade.
The process of renaming QMatrixClient to Quotient has commenced - expect some turbulence while we're transitioning. The place for the repos is at https://github.com/quotient-im. Note that although the library repo name has changed, the old version of the library will continue releases under the old name (libQMatrixClient), and only in the master branch the library will be renamed. In most cases redirects should bring you home even if you request the old URL (thanks to GitHub); however, people with git repos are strongly advised to update their remotes to new URLs!
In other news:
For platforms that don't have a separate libQMatrixClient package (that is, Windows, macOS, Flatpak and AppImage), Quaternion 0.0.9.4 has been rebuilt with libQMatrixClient 0.5.2 - in the form of Quaternion 0.0.9.4c release.
I added guest login, possibility to disable guest login, possibility to set own message limit on startup and various error messages. Cleaned up the code to make it more consistent and faster. Everthing I wanted to have for this tiny embeddable web chat is now there so I'd consider it finished for now.
Check it out at: https://sanlox.dev/tangent/
yuforia updated their JavaJX client:
minor changes in continuum this week:
- updated controlsfx to version 11, which has better modularization support
- sync issue indicator now uses NotificationPane from controlsfx, so now it has slide-in animation when it appears https://matrix.org/_matrix/media/v1/download/matrix.org/VtPORWFqBamfnuJtPtgEXWBs
Neo now supports sending multiple images, videos and files at once. You'll get a bar with previews, and the option to remove them from the queue/add more.
There's also been a bunch of changes to how events are handled. Images and videos should be much more robust against missing keys (no thumbnail, no information, etc), and there's basic displaying of the most common state events.
I also added an experimental media repository fallback option, which is disabled by default, and only implemented for room avatars. This allows you to provide a list of alternative homeservers Neo is allowed to try when your own homeserver can't load a piece of media.
Due to the loss of lain.haus, I lost admin access in the Neo room, so keep your eyes out for a new one when my infra is back.
I'm currently not really versioning anything, but I do push significant commits to https://neo.lain.haus/neo for people to try. Once it gets to a more useable state, I'll start adopting semantic versioning.
You can now paste images from the clipboard in Spectral. It is also possible to change room name and topic in room settings. A new release is pushed to Flathub to address direct room issues. Also there've been discussions about implementing custom room themes and backgrounds.
- Continued work on reactions and edits
- New emoji font added to standardise emoji appearance and assist OS / browser combinations that don’t support emoji by default
- Continued work on reactions and edits
- Riot-iOS has a new actions menu on event
- Fix registration with an email
krombel updated their Riot(X) F-Droid repos:
I finally found some time to update my fdroid repos which provide the development builds of riot and riotx. Now the builds of buildkite are part of the repos.
There are now 4 separate repos: One for each app and flavor. You can have a look at https://fdroid.krombel.de to find out the URL for the version you want to use.
Riot-dev (F-Droid; Repo; Build-Source) https://fdroid.krombel.de/riot-dev-fdroid https://fdroid.krombel.de/riot-dev-fdroid/fdroid/repo Fingerprint: 312E07B9444D0D1B615EBBAAC55EA4E5A54E123C3BEFCCA5D18B5E12DFC95BDC Riot-dev (GPlay; Repo; Build-Source) https://fdroid.krombel.de/riot-dev-gplay https://fdroid.krombel.de/riot-dev-gplay/fdroid/repo Fingerprint: 81EDF1741A51B944B00B55E307C7AA043623CB646599182A104B895B6B319844 RiotX-dev (F-Droid; Repo; Build-Source) https://fdroid.krombel.de/riotx-dev-fdroid https://fdroid.krombel.de/riotx-dev-fdroid/fdroid/repo Fingerprint: FD146EF30FA9F8F075BDCD9F02F069D22061B1DF7CC90E90821750A7184BF53D RiotX-dev (GPlay; Repo; Build-Source) https://fdroid.krombel.de/riotx-dev-gplay https://fdroid.krombel.de/riotx-dev-gplay/fdroid/repo Fingerprint: 5564AB4D4BF9461AF7955449246F12D7E792A8D65165EBB2C0E90E65E77D5095
I've been working on mautrix-whatsapp to add history bridging and Matrix puppeting.
- New portals are populated with some history when creating them (exact count is configurable)
- All messages missed during bridge downtime are backfilled
- Creating portals is smarter now:
- When logging in initially, it'll create portals for a few recent chats (count configurable).
- It'll create portals when there are incoming messages as before, but it should no longer create portals for chats that only have old messages.
- The missed message backfilling creates portals when necessary.
Matrix puppeting isn't quite finished yet. It can already use your Matrix account to bridge messages sent from whatsapp mobile, but it doesn't use the account to bridge EDUs (typing notifs, presence, read receipts) yet.
To make the history bridging a bit nicer, I made a PR to fix timestamp massaging in synapse: https://github.com/matrix-org/synapse/pull/5233. Timestamp massaging was removed from the spec in 1.0, but it wasn't intentionally removed from synapse, it just broke due to other changes. It was probably supposed to stay there as an easter egg until there's a proper solution for bridging history.
Bubu updated synapse on Arch:
Archlinux updated to synapse 0.99.5 as well after the requests, urllib3 incomopatibility thing was sorted out.
Mathijs updated the synapse avhost docker image:
With synapse v 0.99.5.1 the avhost docker image has finally moved to python 3
New widget for Scalar: EtherCalc.
Very very new, let's take a look at QuatBot, which uses libQuotient:
QuatBot is a simple meeting-management bot for use with the Matrix. Taking turns during an online meeting -- and making sure everyone gets to have their say -- takes a bit of organizing, and this bot helps you do that. QuatBot runs as a command-line application.
uhoreg wrote a really informative article about key verification:
For those who want to know more about the security behind emoji-based key verification, I've written a blog post about it: https://www.uhoreg.ca/blog/20190514-1146
Thanks Kai for this introduction to his project:
The Reliable Bridges GSoC project is about implementing a feedback mechanism for the Matrix network in cases where bridges are not able to properly handle messages. Currently clients are unable to know if a message was successfully sent over a bridge. With the new mechanism in place they get the information about errors happening at bridges and can behave accordingly by e.g. notify the user of the failed delivery.
The implementation is foremost focused on the matrix-appservice-dicord bridge which uses the underlying matrix-appservice-bridge. A JS bridge was chosen so that as much code as possible is brought into the SDK and other bridges can profit sooner from the work done.
The first step for implementing the new feature will be the signaling of permanent errors occurring at the bridge (in contrast to temporary failures). They might occur e.g. when the sending account was banned on the bridged foreign network. These permanent errors will be implemented as a new type of PDU originating from the bridge.
After permanent errors are done, the subsequent weeks will see work on temporary failures which might include work on Synapse as well as work on Riot Web to have a client which actually uses the new events. As these events are new features being introduced there will also be a MSC draft. There everyone can check out the proposed solution and tear it apart with their criticism (if applicable 😉).
For discussions related to the GSoC project or when you have some opinions on how the MSC should look like, you are invited to join the Reliable Bridges Matrix room.
Finally Alan, friend of Matrix and creator of TADHack and TADSummit is doing an "Open Source Telecom Software Survey" - if you could add value to this research by completing it please do so here: http://alanquayle.com/2019/05/open-source-telecom-software-project-survey/
See you next week, and be sure to stop by #twim:matrix.org with your updates!
In Riot develop, hit
Labs in the Settings menu and you'll be able to try out the new Reactions and message editing features.
This week we shipped 0.99.4 - no stand out ‘oh my gosh’ headlines, just lot lot of bug fixes and perf improvements - get involved. We’ve also been working hard to getting things like reactions and edits going, as well more prep for improving perf for small server instances.
First Construct update for a few weeks:
Construct has added a server command line available in any room when starting a line with a special character (by default it's '\'). The commands are private so the room doesn't actually see it. More on this next week, or check out #test:zemos.net.
Big news from Ananace this week:
Finished getting the test coverage to a reasonable enough percentage to feel comfortable releasing the Ruby Matrix SDK as a nice and stable 1.0 (.0)
This is great! All Rubyists should check it out. Ananace notes:
I still need to set up fixtures for all the API endpoints I'm exposing so I can verify every single API call as well, but I see that as a later thing as that relates mostly to how the other side (the HS) handles my input, not to how the SDK itself handles said input
A new version of Pattle is available on F-droid!
- Implement direct chats correctly!
- Use user user avatar as chat avatar if direct
- Hide user name in direct chat
- Use names of room members if no room name is set (whether the chat is direct or not)
- Add border to left of replied-to messages to easily differentiate them
- Show redaction events!
- Use icons instead of letters if chat has no avatar
- Use different icons for direct chats than group chats (and in the future public chats)
- Use user color for direct chats if the user has no avatar
- Simplify member change messages ('Pat has joined' -> 'Pat joined', etc)
- Tweak font sizes (thanks to Mathieu Velten)!
- Change date header style (smaller and full caps)
Development happens here and development discussion happens here: #pattle:matrix.org!
To install this release, add the following repo in F-droid:
And install 'Pattle'.
This week the various Riot teams (web, iOS, Android) have been spending time implementing reactions/edits, but also:
- PR review from community: Matomo SDK will replace Piwik SDK
- Weblate is up again, a sync has been done.
- Crypto integration is still ongoing
- Reactions are coming soon!
- New home and navigation to rooms development started
did alot of changes on tangent to make it more stable and performant, only registration and guest login are left to do, git changed to https://gitlab.com/sanlox/tangent
Test the latest at: https://sanlox.dev/tangent/
- Polished the timeline UI for Spectral.
- Also added drag-and-drop support in Spectral.
Ana, first time contributor, added a bunch of cool keyboard shortcuts to ease navigation in Fractal. One can now e.g. go down to the next room with unread messages with ctrl+shift+page down.
- Load message history from server lazily when scrolling
- Loaded messages are always saved to disk, so if you aren't offline for too long, only a few messages will need to be fetched the next time you login
- The screenshot also shows the UI for handling invitations
This week was too packed IRL but I took an hour to experiment with reactions that are a rage in riot.im/develop these days. An experimental "kitsune-reactions" branch understands reaction events and allows clients to further process them. A proof-of-concept in Quaternion will land over the weekend.
via Aaron Raimist:
Update on Scylla from VaNilLa: Though I am very busy with schoolwork, I found time to fix a long-standing issue: the names of private messages showing up as
<No Name>. this is gone now, and rooms are sorted alphabetically to make it easier to navigate.
Try Scylla here: https://scylla.danilafe.com
Come join us in #scylla:riot.danilafe.com to discuss
Evening, we've just cut the first RC of matrix-appservice-discord 0.5.0. Most of the changes this time around are bugfixes to formatting, internal re-architecturing / performance boosts and shifting more things to the database. Please help test if you run an instance, so we can get a 0.5.0 out swiftly. The next release has a lot of features planned for it 😉
Also - congratulations to Half-Shot on finishing all his final-year exams! How will you fill your time now?
Think tulir's been busy this week?
Lots of small changes in my projects:
- mautrix-telegram had a bunch of bugs fixed, like multiline messages from some clients not being bridged correctly.
- mautrix-hangouts got matrix->hangouts image bridging and some bugfixes.
- mautrix-facebook also got some bugfixes.
- mautrix-whatsapp now informs the user about connection problems rather than crashing and has commands to try to reconnect. It also now bridges redactions in both directions.
for everything about Matrix on Debian, join #debian-matrix:matrix.org
the silvio/avhost synapse docker container is making progress in moving to python 3, the container is made smaller and no longer runs synapse as root
There are some important differences between this and https://github.com/matrix-org/synapse/tree/master/contrib/docker:
it puts all the configuration files, logfiles and media files in the volume, you don't really configure it with environmental variables but just by editing the homeserver.yaml file in the volume, and it also contains coturn
Half-Shot created a "reactbot":
Hot on the heels of the rapid developments of the reaction work, I've written a bot that automatically reacts when spotting certain phrases inside rooms. Honestly I have no idea what the use case is for this, but it exists and I currently use it to stick the :dog: reaction on every dog related event. https://github.com/Half-Shot/matrix-reactbot
The bot is also now used in #twim:matrix.org, whhere it performs the needed work of adding red circles to submissions.
t2bot.io has launched a new website, surpassed a milestone of 300k total bridged users (70k of those are active monthly), and launched 2 new early-beta-quality bridges. If you're looking to try out tulir's latest Hangouts or Facebook Messenger bridge then t2bot.io is an option for that, assuming you don't mind the occasional bug, missing feature, or problem. Check out https://t2bot.io/hangouts/ and https://t2bot.io/messenger/ for setup instructions.
See you next week, and be sure to stop by #twim:matrix.org with your updates!
PS Massive thanks to Aaron Raimist for doing the needful to make full articles appear in RSS!
This week Neil and Matthew are talking about recent security issues - this is a really long and detailed chat, but you can skip to around the 32 minute mark to hear about other news - including progress on reactions. Reminder that for a good "big picture" overview of the progress of Matrix, you can look at the Homeserver High Level Roadmap.
Neil, Synapse-dev wrangler:
Reactions continues at full speed, we have a draft PR and will be implementing over the coming week. The ability to blacklist IPs over federation will land imminently, as well as a nasty device management bug that led to a spate of E2E errors. Next week is all about Reactions, resuming work on the small homeserver project and finally getting back to Synapse 1.0 blockers following all the remediation drama of the past few weeks. With any luck we’ll have a new Synapse release for you next week.
- Pantalaimon received a configuration file. The configuration file adds the ability to configure multiple Homeservers and pantalaimon will run having each Homeserver exposed on a different TCP port.
- The panctl utility has received support for more commands, it now has the ability to accept SAS requests, confirm them, import/export keys, list pan users as well as list devices of users. Completions for the commands were also added.
A new version of Pattle is available on F-droid!
Lots of changes again, including:
- Render HTML formatting in messages!
- Replies are now rendered!
- Show date headers between messages of different days!
- Render usernames with a color in chat timeline
- Add loading indicators (when logging in, loading chats, etc.)
- Show error banner at the top if syncing failed
- Syncing now resumes after a failed attempt (no more restarting)
- Fix messages not being sent if connection was lost and the app restarted
To install Pattle, add the following repo in F-droid:
Although the development pace has been reduced lately, the Fractal team managed to make significant progress towards the 4.2 release. More specifically since our previous news, Chris has landed much of his adaptive view work to get Fractal in a mobile friendly state so it’s ready to run on the Librem 5 once Purism starts shipping them. But he didn’t stop there: eager to see his awesome work in the hands of many people (figuratively, the literal application will have to wait for the phone to be out 😛) as soon as possible, he tackled a few bugs that we really wanted to get sorted out before we got a new version out.
Alexandre also prepared the changelog with a bird’s-eye view of all changes that happened since 4.0.
Last but not least, we had a few external contributions for features such as network proxy support and typing notifications.
Progress on message composer for editing messages.
- 0.8.6 has been released on Tuesday
- We are working on reactions
- We have fixed some minor bugs, our efforts are now on RiotX
- New FDroid mode support for high service level, regardless of battery usage.
- Benoit has started to implement the crypto on RiotX. Basically all the legacy has been imported and a migration to the new architecture is done. Lots of plumbing and rework, but it should be the fastest way to support crypto on RiotX.
- Valere is working on the emoji picker and reactions, and has also added some actions on events (copy, share, view source, etc.)
- François has added room invitation support. It will be possible soon to see invitations, and accept or reject them.
this week in continuum
- right-click on a room in the room list to send invitations
- experimental support for receiving invitations
- membership data are now also persisted in database
Krille announced FluffyChat for Linux desktops:
FluffyChat is now also available as a Snap package for desktop Linux
It's a Matrix client written in Qml for Ubuntu Phones. Now it is working for Linux Desktop too.
He also has news to share re E2E:
Progress has been made at the end2end encryption for FluffyChat. Qml bindings for the libolm library are mostly ready and the app can now create keys and upload keys to the server. Device tracking is now implemented too.
E2E when? SOON! See the branch here: https://gitlab.com/ChristianPauly/fluffychat/tree/e2eencryption
New bridge again, this time it's Hangouts: https://github.com/tulir/mautrix-hangouts / #hangouts:maunium.net. As with the Messenger bridge, currently the main difference to matrix-puppet-hangouts is multi-user support (also no hacky JS/Python mixing).
Before making mautrix-hangouts, I put a bunch of the generic bridging parts of mautrix-facebook into mautrix-python's bridge module and used that in both bridges. After Debian 10 is released, I'll drop Python 3.5 compatibility in mautrix-telegram and move it to use mautrix-python and the bridge module too.
Next week I'm planning on adding a bunch of features to both my new bridges, such as bridging formatting and remaining media types (so no new bridges planned for now :D).
The vote on a new name for the QMatrixClient project has been going on over the past week.
We have a winner now, and the new name is "Quotient"! In the nearest weeks, expect changes in the library code (it's going to be libQuotient from the next release), room aliases (already ongoing), links to the repos etc. etc. Where possible, we're going to smoothen the migration path by providing legacy fallbacks (e.g., the new C++ namespace, Quotient, will be introduced but the old one, QMatrixClient, will stay its synonym, although deprecated).
Just in case you missed all the previous mentions of the topic - it's only related to the overall project and the library, but not the client - its name remains Quaternion.
Because the previous name has been a bit clumsy and, most importantly, the project is no more focusing just on client-side but on a wider set of applications of Matrix (no homeserver in plans though). See also the recent backlog of #qmatrixclient:matrix.org (now also #quotient:matrix.org) earlier this week for the whole discussion
Just published version 0.1.0 of the Ruby Matrix SDK, and I've gotten enough testing written now where I feel comfortable not marking this as a pre-production release. So feel free to integrate it into more than just prototypes and experiments. 😃
Relevant links; GitHub page, #ruby-matrix-sdk:kittenface.studio.
Opsdroid 0.15 has been released, with a lot of matrix focused updates. The biggest of which is support for sending and receiving images and files. There have also been a bunch of bug fixes such as clean exit of the matrix connector and correct handling of events which are not parsed. There are also a bunch of other not matrix specific changes like support for the awesome parse library for string matching. Read all about it in the release blog: https://medium.com/opsdroid/event-dispatching-simple-parsing-and-more-in-v0-15-3f721b8a6d6c
This week I've been adding PK interfaces to cjhdev's Ruby bindings for Olm, in preparation of improving my Tchap proxy. The PK interfaces can be found in my fork of ruby_olm. Building the native extensions for the gem has had a major overhaul, so no pull request yet.
We haven't shared any matrix-docker-ansible-deploy updates lately, but we've had lots of community contributions.
Most of it has been bug fixes and various internal improvements, but we've also landed a few large features. Here's what's most interesting lately:
Matrix (Synapse) jumps to second place in https://the-federation.info site, which lists servers of the federated social web. Help us map the true size of the Matrixverse by adding your server by going a
https://the-federation.info/register/yourdomain.tld. Note, SRV and well-known lookups not yet working, so registration needs to happen with the Matrix server real domain (and port if any).
See you next week, and be sure to stop by #twim:matrix.org with your updates!
PS to people who would normally be reading this in their own RSS reader - I apologise, we'll get the full-article feed back up soon.