This Week in Matrix

332 posts tagged with "This Week in Matrix" (See all Category)

Atom Feed

This Week in Matrix 2019-07-05

05.07.2019 00:00 โ€” This Week in Matrix โ€” Ben Parsons

Matrix Live, featuring Erik and the Interns ๐ŸŽ™

Thanks Erik, Jorik and Oliver!

Note that there is a audio hiccup around 2m30 - video is ok otherwise.

Dept of Spec ๐Ÿ“œ

Highlights

Movement on Matrix URIs

Sudden interest in matrix-org/matrix.to/pull#47 means we're getting a lot closer to agreement on Matrix URIs. Kitsune even added support for them in Quaternion (see below).

Dept of Servers ๐Ÿข

Dendrite

anoa:

Dendrite continues marching forward! As more attention is turned towards our fairly lengthy PR list, contributors who have not done so already are reminded to merge Dendrite's master branch into their PRs, as converting the project to go modules caused a lot of conflicts. A tag has been added to each PR that needs forward merging, visible here.

Our GSoC student cnly has been working away on implementing profile retrieval over federation as well as updating his various other PRs and would likely have a lot more if they were getting more reviews, but worry not as things look on track for that next week.

We've also got plans now! Plans for how to properly ship this thing over the coming months so look out for that soon!

Synapse 1.1.0 released

This week we shipped v1.1.0, which provides an overhaul of docker configuration, more authentication options and improved db io. Itโ€™s worth noting that v1.1.0 is the first Synapse release to drop support for Python 2 (and Postgres 9.4), this paves the way for using Python 3 only functionality.

Weโ€™ve been working on supporting soft logout, more edits and reactions support, open tracing support not to mention a complete rewrite of the push server Sygnal. Weโ€™ll be rolling out new Sygnal gradually over the next week or two.

Finally, aided by dropping Python 2 support, weโ€™ve been putting in a bunch of work to improve Synapse in resource constrained environments. This will be a constant theme over the coming months.

Dept of SDKs and Frameworks ๐Ÿ—

python-matrixbot

Brian ร“ appeared to tell us about python-matrixbot. This is a project that has existed for some time.

A Python module meant to act as a base class for a Matrix bot.
The MatrixBot class will connect to the Matrix server, start a listener on each joined room, and listen for room invites from other users. It also includes helper methods you can use to extend the functionality. It is built on the Matrix Python SDK which can be directly accessed via MatrixBot.client

koma

yuforia:

koma got some improvements, based on what's learned developing Continuum, which is a desktop client based on it.

  • Make api calls suspendable functions (which are like Kotlin's flavor of async). This way, the caller don't need to worry about forgetting to call await or a coroutine being left unstarted.
  • Borrowing from functional programming, model the outcome of a call as a discriminated union, which can be either a success or a failure. The successful case is optimized with inline classes, an experimental feature in Kotlin 1.3, and wrapping is avoided.
  • Make MatrixError a subclass of HttpError, because the http status code can be handy

Ruby SDK

Ananace:

Just released version 1.2.1 of the Ruby SDK, fixing an error in the media download URL generation

Dept of Bridges ๐ŸŒ‰

matrix-appservice-bridge release 1.9.0

Half-Shot was seen to exist IRL this week, he also found time for a new release:

Today we have a new matrix-appservice-bridge release 1.9.0. The bigname feature this week is a new store for mapping matrix events to remote ones, so bridges can handle changes made to sent events like reactions/threading/edits/redactions :). The reason for this feature appearing suddenly will become clear very soon.. ๐Ÿ˜ˆ

mx-puppet-bridge (inc slack, tox, discord)

Another week, which means more work on the mx-puppet-bridge ecosystem! A new > bridge has been added, mx-puppet-discord. Soru finally added license files > (Apache-2-0) and some readmes.

mx-puppet-bridge

  • bugfixes
  • implement optional double-puppeting (also logging into your matrix acc)
  • relate remote event IDs to matrix event IDs
  • handle edits in both directions
  • handle redactions in both directions
  • initiating conversations from matrix! Invite a ghost for 1:1 or follow a > room alias for rooms
  • bot provisioning: list users and rooms

mx-puppet-slack

  • add linting
  • map channels and slack pills
  • handle message edits
  • handle message deletions
  • properly handle /me messages
  • handle ghost invites
  • handle room joins via alias

mx-puppet-tox

  • add linting
  • improve bootstrapping
  • improve file transfers
  • handle ghost invites

mx-puppet-discord

This is the new puppeting bridge! The idea is that, in the long run, this will > be run in conjunction with matrix-appservice-discord Half-Shot/matrix-appservice-discord), where mx-puppet-discord handles DM > puppeting and matrix-appservice-discord the remaining. For this, the message > parsing was split in a new repository, matrix-discord-parser. The idea is that, in the > future, when inviting a ghost on matrix-appservice-discord it'll initiate > conversation within mx-puppet-discord

  • basic text messages
  • handle files
  • handle edits, deletes

mx-puppet-discord does only DMs, for non-DMs please use matrix-appservice-discord

If you have any questions for any of these, please join our channel > #mx-puppet-bridge:sorunome.de. Software doesn't write itself, please consider > donating on liberapay!

matrix-appservice-slack

Cadair and Half-Shot have been doing substantial work on matrix-appservice-slack.

We've got a dedicated room for slack bridge development over at #matrix_appservice_slack:cadair.com, since it's picked up in terms of community PRs and general interest. It's not currently being used as a support room, however.

They mention,

warning may contain ranting about the codebase

But that could be any room, so it seems ok to me.

WARNING: LATE ADDITION

Hi everyone! Myself and Cadair have been working hard on a new Slack bridge release, and we are finally ready to push out a release candidate for 0.3.

The headline features are:

  • Implement message deletion.
  • Add support for edits.
  • Add support for reactions.
  • Add support for threading (using replies).
  • Support displayname and avatar lookups for Slack bots.
  • Replace channel mentions with canonical aliases for bridged rooms.
  • Support for slack attachments (Thanks @umitalp for the initial groundwork and @Cadair for the cleanup)

The new release is having very final minute checks, and will be available at https://github.com/matrix-org/matrix-appservice-slack/releases shortly.

Dept of Clients ๐Ÿ“ฑ

RiotX (Android)

After an internal release, we are working on improving the performance, especially for initial sync and for navigation between rooms.
Also we are fighting bugs.

Pattle 0.9.0 and Testflight available

Wilko:

A new version of Pattle has been pushed to F-droid and TestFlight!

Changes:

  • Fix the infamous FormatException: Not a valid url: error!
  • Room upgrades are now handled!
    • Upgraded rooms are now hidden from the overview
    • To access older messages from the previous room, simply scroll up: the timeline is seamless
  • Improve performance of loading the overview. Opening the app should be a lot quicker now!
  • Improve performance of loading a chat
  • Add ability to swipe through images in a chat (thanks to Nathan van Beelen!) See preview here!

Get Pattle from F-droid for Android by adding this repo:

https://fdroid.pattle.im/?fingerprint=E91F63CA6AE04F8E7EA53E52242EAF8779559209B8A342F152F9E7265E3EA729

APK also in assets of this release.

For iOS: join TestFlight here

Report issues to the repo, you can login via GitHub and Gitlab.com.

Follow development in #app:pattle.im!

To support Wilko: you can now do so via Liberapay and Patreon.

I've invested a lot of money in making Pattle happen on iOS: MacBook, Apple Developer Program, and an iPhone. Pretty costly, so any donations will be greatly appreciated!

What to expect in the next release:

  • Fix timeline jump issues
  • Remove redundant state messages when a room is upgraded
  • Start work on chat details screen (members, change name, etc.)

Quaternion now with Matrix URI support

kitsune:

to push things forward on Matrix URIs front, Quaternion master branch now supports matrix:user/userid, matrix:room/roomalias and matrix:roomid/roomid URIs. For example, Quotient/Quaternion room can be opened by a link matrix:room/quotient:matrix.org.

This will be so much easier to use! Also:

Quaternion has got a new contributor, Roland Pallai (https://github.com/rpallai), who added colouring of messages sent by the local user and support of drag-n-drop of text and images on Quaternion, along with general improvements on the timeline. Many thanks!

Windows builds of Quaternion (CI and future releases) come with Qt Keychain enabled, storing your access tokens in Windows secure storage.

Spectral news

Black Hat:

A lot of improvements have been added to Spectral last week.

  1. Spectral uses QtKeychain now. Access tokens are stored in system keychain instead of in plain text.
  2. Room list's filter has a better UX(aka TabBar). Switching between rooms and DMs is now as easy as switching between, well, tabs.
  3. Notification count in system tray icon, implementation modified from nheko.
  4. Display initial sync progress. Some people have been complaining about not knowing the progress of initial sync so I added an indicator.
  5. A better room setting page. Specifically displaying aliases and changing room avatar are working.
  6. Big emojis.
  7. Typing indicator UI is tweaked and looks better.

Riot iOS

  • Reactions in e2e rooms
  • โ€œShow allโ€ button when there are too many reactions
  • Support edition of emotes and replies
  • Edits history (even in e2e rooms)
  • Fix joining new upgraded room through federation
  • Use via parameters to join a new room (useful in case of federation)

Riot Web

  • Allow resending edits, reactions and redactions through context menu, also better visualization of send errors.
  • Allow redacting and viewing source of edits in edit history dialog

Dept of Ops ๐Ÿ› 

K8s

Ananace:

Bumped the K8s optimized Docker image to 1.1.0, with the same dropping of Python 2 and Postgres 9.4 support as the official image.
NB: The upstream docker configuration changes do not affect the K8s-optimized image, no configuration change is necessary to upgrade from 1.0.0 to 1.1.0

avhost/docker-matrix image

Mathijs:

As announced last week, with the release of synapse 1.1.0 the avhost/docker-matrix image switched to running synapse with jemalloc by default

Dept of Services ๐Ÿš€

modular.im starting to make Small instances available

modular.im are making the much-asked-for SMALL instances available. This service is rolling out starting with people who have previously enquired about availability, which I gather is a lot of people. Go sign up if you're interested!

The wait is almost over ... We're now rolling out our trial of Small Hosted Homeservers for Matrix. Have you got your golden ticket yet? ๐Ÿ˜€๐ŸŽŸ๏ธ pic.twitter.com/iUkAIHW9MY

— Modular (@ModularIM) July 3, 2019

we've been working on a v1 admin dashboard for managing your Synapse instances through Modular. This is now live on the site and provides a basic suite of functionality including:

  • Viewing users of your synapse homeserver(s)
  • Creating users
  • Deleting users
  • Resetting user passwords
  • Viewing user profile and server access / activity
  • Sending messages to all system users as the system alerts user
  • Information about the synapse instance versions

Final thoughts ๐Ÿ’ญ

Ananace is "continuing the rewrite of the release tracker project. Working towards getting it to only store state in Matrix so it can be run in a read-only environment like a K8s deployment."

lino "wrote a script to update riot. It also works so far, but still needs some improvements"

Black Hat has been working "to add .well-known support for libQuotient" - presumably this will come back to be used in Spectral when it's ready.

Somehow I had a tab open with a maubot for Urban Dictionary.

That's all I know ๐Ÿ

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

This Week in Matrix 2019-06-28

28.06.2019 00:00 โ€” This Week in Matrix โ€” Ben Parsons

Matrix Live ๐ŸŽ™

Matthew & Amandine talk to Ross Schulman; new Matrix.org Foundation Guardian!

Dept of Status of Matrix ๐ŸŒก

Hottest GovTech Startup in Europe at The Europas tech awards

New Vector won Hottest GovTech Startup in Europe at The Europas tech awards last night for work on rolling out Matrix for France and elsewhere!

It was mainly judge-based, but public votes were used to filter.

We're super proud to have won the hottest Gov/Reg/Civic Tech startup at @TheEuropas for creating self-sovereign secure communications on top of @matrixdotorg for the Public Sector - particularly with @_DINSIC and @tchap_dinsic! (So proud we created a twitter account at last :D) pic.twitter.com/PGqoHx007T

— New Vector (@NewVectorHQ) June 27, 2019

Rust Embedded community is moving to Matrix

They held a public vote, and Matrix won very convincingly.

Dept of Spec ๐Ÿ“œ

  • MSC2134 Identity Hash Lookups is making steady progress
    • Readers who like crypto/hashing are encouraged to join in the fun
  • MSC2140 Terms of Service for ISes and IMs is nearing a conclusion
  • MSC2108 Sync over Server Sent Events hopes to add an alternative sync method to long-polling
    • Finally servers pushing events!
  • MSC2010 Adding client-side spoilers is a small feature but requires a lot of thought to integrate it seamlessly
    • Sorunome thought this would be easy
  • Lots of small fixes across the board.

Dept of Servers ๐Ÿข

Synapse

Here's Neil:

With 1.0 shipped we are now starting to take a closer look at Synapse performance more generally and this will be a theme for us over the coming months. We want to improve not only large scale deployments such as Matrix.org but also optimise for smaller instances.

You may have seen a few trial servers run by core team members in matrix.org community rooms popping up and this is a precursor for a broader effort to make synapse more manageable on less powerful infrastructure. My own instance has been sat at a pretty steady 256MB of RAM.

Other than that, based on 1.0 feedback, we have been working on improving the Synapse upgrade path and expect to put out a new release next week containing the tweaks. Specifically this means improving configuration for Docker installs, and configuration management for sending emails.

Weโ€™re also implementing open tracing into Synapse, initially to help with e2ee debugging, but it will make tracking down strange behaviour easier more generally.

Finally weโ€™re bringing our push server Sygnal kicking and screaming into 2019 and will upgrade to Python 3, drop gevent for twisted and update our vendor specific libraries, not mention improving the monitoring and alerting. Weโ€™ll also add in open tracing which will help hunt down push failures.

Finally finally, look out for a DAG visualisation tool written by GSOCer Eisha referenced elsewhere in TWIM - we consider this to be seriously cool, and canโ€™t wait to start using it in anger.

Note: 1.0 is the last release to support python 2 and postgres 9.4, the next Synapse release will drop support for both, see https://matrix.org/blog/2019/04/08/synapse-deprecating-postgres-9-4-and-python-2-x for more.

Dendrite

Dendrite received a few updates this week. Notably:

  • Cnly has been implementing typing notifications support in #718
  • anoa has been fixing up the flaky sytests in #631. The team is considering moving from CircleCI to BuildKite for tests in the future.
  • Cnly has added a few issues for odd bits and bobs theyโ€™ve found around the codebase. This is much appreciated!

Construct

  • We now support building with Clang, and also GCC-9
  • Work on version 3/4/5 rooms has been underway.

Ruma

This Week in Ruma: https://ruma.dev/news/this-week-in-ruma-2019-06-23/

This week was spent working on a big revamp of ruma-events, the library that defines Rust types for the "events" used in Matrix. After some discussion in #ruma:matrix.org, I decided to make a move towards treating ruma-events as a higher-level library. Previously, ruma-events has more or less offered Rust types that are exact representations of the JSON structures used by Matrix. However, by representing events this way, it would be possible for users to easily create values that, while valid JSON, would be invalid events according to the specification. The way we're approaching this problem is by separating serialization/deserialization of JSON from validation of events.

Jeon/JeonServer

ma1uta:

Jeon 0.9.0 release. It is a release candidate for Jeon 1.0.0 which complies with the Matrix stable release 1.0. Not a lot changes, just added missing endpoints and events. Also I started to work on JeonServer, a Matrix server written on java.

Jeon is a set of Java interfaces to Matrix APIs, JeonServer is a proposed homeserver.

matrix-media-repo

TravisR:

matrix-media-repo has received some speed improvements and is generally nicer to memory when using the s3 datastore. Give it a try and leave feedback in #media-repo:t2bot.io.

GSOC project: Matrix Visualisations ๐ŸŽ“

Eisha appeared with this terrific GSOC update:

The GSoC project โ€œMatrix Visualisationsโ€ has made good progress during this first period:

  • The implementation of the CS API backend has been completed to properly retrieve events from a room in real time.
  • Many features have been added to the UI, here are some of them:
    • The DAG is displayed vertically, every node of the same โ€œdepthโ€ are on the same level in the graph and each node has outgoing arcs for each of its previous events (if they have already been retrieved).
    • The node at the top of the DAG allows to fetch earlier events by selecting it.
    • Each node can have two different colors whether its โ€œoriginโ€ is the HS the application is currently talking to or not.
    • The full JSON body of an event can be displayed by double clicking on its node.
    • It is possible to select which fields of the events will be directly included in the labels of the nodes.
  • A (server-side) backend has been implemented so that the application can directly talk to the PostgreSQL database of Synapse. You can find it on this repo.

Note that the support of the Federation API has been postponed so I could work on this Synapse database backend. The UI of the application isnโ€™t very beautiful or well-organised yet, as the effort is focused on the backends and core functionalities for now, but improvements will be made once these functionalities will be completed.

Remember you can check TWIM from last week to get a reference on the other three GSOC projects.

Matrix Visualisations

Dept of SDKs and Frameworks ๐Ÿ—

matrix-bot-sdk

TravisR:

matrix-bot-sdk v0.4.0-beta.1 has been published with a bunch of improvements for appservices. There's still more planned before the final v0.4.0 release, however live testing is always better than unit tests. If you use the library, try npm install [email protected] and report any issues to #matrix-bot-sdk:t2bot.io.

libQuotient, now with EncryptionManager

libQuotient introduces EncryptionManager, check out the PR for more info, and also review aa13q's GSOC update from last week.

Ruby SDK

Ananace:

Just cut a 1.2.0 release of the Ruby SDK, including fixes for timeout handling, some general code cleanup and documentation work, and a collection of getters and setters for most of the specced room state types

Dept of Bridges ๐ŸŒ‰

freenode IRC bridge restarted

The freenode IRC bridge was restarted with the following fixes:

  • Some characters in IRC usernames (such as โ€œ|โ€) would cause IRC userโ€™s messages to not appear on the Matrix side.
  • Room upgrades are now handled a bit more cleanly

mx-puppet-bridge platform

Sorunome has been working on her all-new bridge platform, mx-puppet-bridge:

This week soru has been working more on mx-puppet-bridge, together with mx-puppet-slack and the now-new mx-puppet-tox.

mx-puppet-bridge

This is work on the underlying bridge, protocol implementations still have to do their thing

  • room name, icon and topic (was already implemented but untested)
  • ghost name and icon (was already implemented, but untested)
  • file sending in both directions (image, audio, video, file, autodetect) (was already implemented, but untested)
  • have own ghosts create rooms --> appservice bot is not needed, more invisible bridging (especially nice for 1:1 rooms!)
  • implemented 1:1 room bridging
  • implemented provisioning interface via appservice bot
  • remote -> matrix presence handling
  • remote -> matrix typing notifications
  • matrix -> remote puppet name tracking
  • matrix -> remote puppet avatar tracking
  • mx-puppet-bridge uses caching for better performance
  • Added linting

mx-puppet-slack

Lots of work here, smoothening things out

  • room name, icon and topic bridging
  • ghost name and icon bridging
  • file sending in both directions
  • presence and typing notifs

mx-puppet-tox

This is a new one! It bridges tox over to matrix...or, well, more acts like a client (as tox doesn't have multidevice). Basic chatting was already functioning with only around 300 lines of code! The node toxcore bindings seem to only include support for 1:1 chats (and not the new group chats), so only that is implemented.

  • ghost name and icon bridging
  • file senidng in both directions
  • presence and typing notifs
  • matrix -> tox name and avatar syncing

There is already substantial documentation available, and a Matrix room at #mx-puppet-bridge:sorunome.de.

Dept of Clients ๐Ÿ“ฑ

RiotX (Android)

  • We are finalizing the MVP of RiotX. Many new features, along with many bug fixes this week:
    • Notifications for version with or without Firebase Cloud Messaging
    • Reply in e2e rooms
    • Change of DI tool (We are now using dagger2)
    • New settings, split into categories
    • New set of Emojis for quick reactions
    • New application icon
    • And many other little features
    • New disclaimer screen, displayed at first startup
    • New suggestion screen (based on bug report screen)
    • Min SDK version has been set to API 19 (Kitkat), mainly for security reasons, but also because we are using MotionLayout which is available only on API 18+.
  • Remaining work to do before we can release the first beta version on the PlayStore:
    • Encrypt/Decrypt attachment in e2e rooms
    • Last event display in the room list
    • Test, test, test, and fix, fix, fix :)

Integration of Matrix into Delphus

Pneumaticat:

Our company, Scintillating, has integrated Riot as an end-to-end encrypted chat, video, and voice call provider for our decentralized scientific study management system Delphus. We have created a method of linking Matrix IDs with Ethereum addresses to allow scientific researchers to look up participants and create chat rooms to talk with individuals in a privacy-preserving manner.

Spectral

We didn't get a Spectral update for a few weeks! Black Hat reported:

Quite a few changes in Spectral in the past few weeks. The room list filter is improved, and it only shows rooms with unread notifications by default. User can optionally hide join/leave events. Empty avatar in direct chats is fixed. Each user now has a unique message bubble background color in the timeline.

Pattle: version 0.8.0

Wilko, chief Pattler:

A new version of Pattle has been pushed to F-droid!

Although this isn't the biggest release, it's still a big step: the first release of iOS will be available! The build is currently still in review by Apple.

You can download the iOS app via TestFlight soon, join #app:pattle.im to get the link immediately when it's available!

Other changes

  • Add .well-known support!
  • Automatically update homeserver property in 'Advanced' while typing username
  • Fix messages being wrongly grouped by sender
  • Fix direct chats staying marked as direct when someone else joins

Install this release

F-Droid:

  1. Add the following repo in F-droid: https://fdroid.pattle.im/?fingerprint=E91F63CA6AE04F8E7EA53E52242EAF8779559209B8A342F152F9E7265E3EA729
  2. Install 'Pattle'

APK: Download from the assets of this release

Issues

If you stumble upon any issues, please report them! You can login via GitHub and Gitlab.com, so it's really easy to do!

Follow Pattle

Follow development in #app:pattle.im!

Support me

If you would like to support me, you can now do so via Liberapay and Patreon.

I've invested a lot of money in making Pattle happen on iOS: MacBook, Apple Developer Program, and an iPhone. Pretty costly, so any donations will be greatly appreciated!

continuum updates placeholder avatars

yuforia:

continuum tweaked the appearance of placeholder avatars. To make most users appear visually distinct, continuum has always used colors based on checksums and usernames to generate placeholders if any user doesn't have an image as avatar. In previous versions, it always used two characters of the name. In the new version, if the username contains ideographic (usually east-asian) characters, a single character would be used. The reason is that the number of ideographic characters is vast and duplicates are less common, and most of them are close to a square or circle in shape so a single one would fit the GUI component better.

FluffyChat edges closer to E2E

Krille:

Last weekend hummlbach (from the UBports community) visited me and we worked 18 hours on implementing end2end encryption. We are now able to send encrypted messages. Key sharing and decrypting will follow.

Not available in the released version yet, but join #fluffychat:matrix.org for more info. Also: 18 hours! Woah.

Quaternion

Quaternion received several updates recently, check out #quaternion:matrix.org for more info.

Fractal released 4.1 dev version

Alexandre Franke:

Fractal released a 4.1 development version, which was added to the beta channel of flathub. danigm is eager to get 4.2 out soon and is trying to fix the last few bugs we want to see gone before then. He already opened a few merge requests.

riot-web

  • Updated the reactions UX with a new tooltip-style interaction
  • Added edit history dialogue and other small editing tweaks
  • Riot Desktop config options (such as default HS, theme, etc.) can now be overridden for easy customisation

riot-iOS

  • New reactions in the event contextual menu
  • Edits in e2e rooms
  • Still refining reactions and edits

matrix-enact, read-only client which performs the contents of rooms with Web Audio API

Some time ago I made a toy: https://play.matrix.org/matrix-enact/

This is a read-only Matrix client, which takes the contents of a public room and "enacts" it, that is, it performs it using the Web Audio API in your browser

The original intention was to be a demonstration of what can be done with /context endpoint, but the project scope expanded a little. Hopefully people find it fun!

Get the source code here: https://github.com/benparsons/matrix-enact

Dept of Ops ๐Ÿ› 

matrix-docker-ansible-deploy

Slavi and his many helpers have been working on matrix-docker-ansible-deploy:

matrix-docker-ansible-deploy has seen a lot of work on bridging lately. All currently existing bridges (Discord, Facebook, IRC, Telegram, Whatsapp) have been redone in a way that makes their configuration completely playbook-managed, as well as extensible. Besides this, with Synapse v1.0 already out, we've taken the opportunity to simplify the installation instructions a bit. If you haven't upgraded recently, now would be a great time. As always, be sure to take a look at the CHANGELOG before doing so.

Update from the Matrix on Debian team

https://matrix-team.pages.debian.net/blogue/2019/06/26/june-2019-matrix-on-debian-update/

This is an update on the state of Matrix-related software in Debian

Dept of Identity ๐Ÿ›‚

mxisd forked

Following the announcement that mxisd would not longer be worked on, ma1uta has stepped up to provide support:

I forked mxisd (https://github.com/ma1uta/mxisd) and will provide support this project. You can ask about help in a new room #ma1sd:ru-matrix.org A new temporary name will be ma1sd (thanks Dandellion ). Due to changing maintainers I start to prepare the new 2.0.0 release and should audit code and dependencies. Also I forked matrix-synapse-rest-password-provider (https://github.com/ma1uta/matrix-synapse-rest-password-provider) because it often uses with mxisd. Docker image, ansible support, debian, nixos and archlinux packages are temporary unavailable due to code auditing and changing maintainers.

Cos created an article detailing how to link existing unix accounts with accounts on a Synapse homeserver.

Dept of Bots ๐Ÿค–

poll-bot

Brendan:

I made a Matrix bot that uses reactions to do polls! The code is available at https://github.com/babolivier/matrix-poll-bot (with a screenshot of how it works) and you can invite @poll-bot:abolivier.bzh in your room if you want to try it out ๐Ÿ™‚

Bot works by taking a list of emoji + responses from a user, then makes a new message event with those emojis each voted for once. In this way, you can quickly make a reaction-based poll.

reactbot, a maubot

tulir, never enough maubots:

The reactbot I announced last week has been updated to support arbitrary response content instead of just reactions. As examples, the repo now has a stallman interjection bot (ported from this and a replacement for jesaribot. Reactions as responses are still supported and the repo still has the TWIM cookie bot example too.

Final thoughts ๐Ÿ’ญ

Ananace has been looking again at a release tracker they'd previously been working on.

kernel.org have set up an ActivityPub instance (see https://people.kernel.org/about.) Not strictly Matrix but interesting that they decided to move to a federated platform.

First GSOC evaluation submissions were due this week, all four Matrix projects are proceeding well. See Eisha's update above, and the other three last week.

red_sky, nheko maintainer, was seen to say: "I know there hasn't been much activity from me lately. I was on vacation last week. I'll be getting back to work on 0.7.0 today"

The Europas awards ceremony was held at a venue next to my old flat. Small world! Small flat too.

That's all I know ๐Ÿ

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

This Week in Matrix 2019-06-21

21.06.2019 00:00 โ€” This Week in Matrix โ€” Ben Parsons

Matrix Live ๐ŸŽ™

Matthew and Amandine talk about what we're hoping to ship in June

Dept of Servers ๐Ÿข

Dendrite

We have a whole lot of Dendrite news this week! First, from anoa, on the Matrix team:

Progress has been picking up this week with some of Cnlyโ€™s many PRs finally getting merged! Cnly is our resident Google Summer of Code student this Summer and has been making strides ever since. We also finally fully migrated to BuildKite for Continuous Integration (which is much quicker than TravisCI) and have implemented golangci-lint as the projectโ€™s opinionated linter (catching some bugs in the process).

As part of CI, weโ€™ve set up Sytest for Dendrite, which grants us a loose method of keeping track of progress as we go along. Currently the only way to do so is to take a look at the testfile which holds all the tests we know Dendrite to be passing, and cross-referencing that with the list of all sytests (which isnโ€™t actually available anywhere). Weโ€™re hoping to make some nice way of visualizing progress over time with this data (and possibly break it down into Federation/Client/Application Service categories), but this will take some time.

Weโ€™d also like to thank some new contributors that have shown up since Matrix 1.0โ€™s release. serra-allgood contributed a fix for querying aliases when using at least one application service, while DrGlitchMX sent a PR in for some database fixes. SUMUKHA-PKโ€™s PR to add room tags is still around and should see some love very shortly.

As far as the current goals of the project, weโ€™re looking to primarily make Dendrite federate with Synapse, which will allow it to actually be usable for testing/basic day-to-day usage. We intend to have it done so in the next few months, so stay tuned!

Next, from Cnly, who is doing GSOC๐ŸŽ“ on Dendrite:

For Dendrite, the first phase of GSoC has primarily seen improvements for the existing code including bug fixes, refinements for testing, and some refactoring that prepares Dendrite for later feature implementation. Among the changes, two important ones will be the initial support for EDUs in /sync responses as well as a federation destination cache that allows for more effective federation.

In the next phase, more focus will be put into feature completion, mainly for the Client/Server API component. Since this part of work covers various still-under-construction areas in Dendrite, it is foreseeable that more progress will actually be made than proposed.

Ruma

This Week in Ruma: https://ruma.dev/news/this-week-in-ruma-2019-06-16/

Work is underway to bring Ruma up to date with version r0.5.0 of the Matrix specification. Starting with the most foundational libraries and working up towards the higher-level ruma-client, this work should be done in the next week or two. The bulk of the work since the last update has been on ruma-events, adding all of the events that were previously missing, and doing a full pass through existing events to make sure our definitions match the specification.

I can't wait to see more updates out of Ruma!

Dept of Bridges ๐ŸŒ‰

matrix-appservice-discord 0.5.1

This announcement is nearly a week old from Half-Shot, coming in right after the previous TWIM was published:

We've released v0.5.1 of the discord bridge today. It's mostly comprised of small bugfixes and features, but contains metrics support for tracking performance on the bridge. https://github.com/Half-Shot/matrix-appservice-discord/releases/tag/0.5.1

mautrix-telegram

tulir:

mautrix-telegram got some bugs fixed and minor features:

  • Updated to Telethon 1.8
  • Option to limit maximum document size when bridging so it wouldn't download 1.5gb files and run out of ram
  • Made the state cache get updated when sending state events. Not doing this was causing some problems on t2bot.io, which has disabled echoing state events (probably for performance reasons)

Reliable Bridges GSOC ๐ŸŽ“

Kai is working on bridging in Matrix, mentored by Half-Shot:

The first phase of GSoC is nearing its end and progress has been made on the Reliable Bridges project.
The main focus of the work was on delivering a running implementation for the signaling of permanent errors. Work has been done on matrix-appservice-bridge together with matrix-appservice-discord. An internal version of the Discord bridge with the new feature is already running and the related PR for the bridge SDK is in the state of being completed.
The next phase of GSOC comes with new goals. First, the preparation of a MSC for the signaling of bridge errors, so that the feature can be discussed in the community and can become a part of The Spec. The second goal will be the modification of Riot Web, so that the user is notified when an error condition occurred.
There also has been a slight change of plan: The work on notifying clients when parts of the system are temporarily unavailable needs reconsideration as not even the core Matrix network itself has this capability. The way forward here should probably be a unified solution.

New TypeScript puppeting lib: mx-puppet-bridge

Soru, who you probably know from her work on matrix-appservice-discord, has started a new library:

Soru started working on a new puppeting library, for a lack of a better name it is currently called mx-puppet-bridge.
Unlike the existing puppet bridge, the focus of this one is to handle multiple users at once, all dynamically without needing to edit the configuration file over and over. Additionally the new codebase results in quite a few things smoothened out for easier protocol implementations.
Furthermore mx-puppet-bridge is written in typescript and based on travis' matrix-bot-sdk.
As protocol implementation for testing, soru also wrote mx-puppet-slack (again, for the lack of a better name). Basic message sending in both directions is already fully functional.

Exciting stuff! And all the more so for the third-person announcement style!

Dept of Clients ๐Ÿ“ฑ

gomuks

tulir:

Gomuks had a bunch of changes:

  • Added support for rendering redactions and edits (rendering reactions coming up next)
  • Added commands to create rooms, start private chats and edit room tags
  • Rendered images now don't take up the whole width
  • Improved memory usage slightly
  • Broke everyones existing caches (rm -rf ~/.cache/gomuks should help if it panics at startup)

The command for creating rooms and the image resolution limit were added by a new contributor, J. R., who is currently working on adding .well-known discovery support.

I've been having a good play with this and like it at lot!

gomuks

continuum, JavaFX client

yuforia:

Improved support for more types of events in continuum this week:

  • invitation events are supported
  • support for events that typically appear when a room is being set up is in progress
  • events that are not yet supported are displayed with a fallback view. Blank rows in previous versions are now fixed. You could always right-click on any event to view the source, of course

continuum

Pattle, Dart client

Wilko came in with this thorough update, Pattle development is MOTORING:

A new version of Pattle has been pushed to F-droid!

This release is mostly focused on bug fixing and bug reporting! This is why I urge all users who have been having problems before to try Pattle again! Chances are that your problem has been fixed, and if not, it will be reported with more information so I can fix it!

When an error is reported, this data is sent:

  • Operating system version
  • Device model, brand, manufacturer and whether it's a simulator
  • A unique ID based on your device

In some errors the homeserver domain is logged, I will try to prevent this in the future.

This release also includes preparation for an iOS release next week!

Fixes and other changes:

  • Handle rooms that the user has left (a notice is shown that you can't send any messages)
  • Show a date header above the chat creation event (not the first known event in the list as before)
  • When an error occurs during sync, show a message, including the Exception name
  • Fix replies causing an error if the formattedBody does not adhere to the spec (thanks to Mathieu!)
  • Fix errors not showing when logging in
  • Fix loading spinner showing when checking username or logging in even if loading took less than 3 seconds
  • Fix direct chats not detected when adder after the initial sync
  • Some general syncing issues have been fixed (causing the dreaded infinite loading spinner).

To install this release, add the following repo in F-droid:

https://fdroid.pattle.im/?fingerprint=E91F63CA6AE04F8E7EA53E52242EAF8779559209B8A342F152F9E7265E3EA729

And install 'Pattle'.

Or download the APK.

If you stumble upon any issues, please report them!
You can login via GitHub and Gitlab.com, so it's really easy to do! (Logging in via GitHub did not seem to work previously, but it will now!)

Follow development here: #app:pattle.im!

If you would like to support me, you can now do so via Liberapay and Patreon. I actually need money for the Apple Developer program, which costs 100 euros per year to release Pattle on the App Store and Testflight.

Dept of Encryption ๐Ÿ”

Quotient (former QMatrixClient)

aa13q is a GSOC ๐ŸŽ“ student, working on E2EE and mentored by Kitsune:

I'm working on my E2EE GSoC task: https://matrix.org/blog/2019/05/07/welcome-to-the-2019-g-so-c-participants One-time keys uploading part is implementing currently. Draft device keys uploading is also here. The implementation follows E2EE guide: https://matrix.org/docs/guides/end-to-end-encryption-implementation-guide
My contribution and reports are currently here: https://github.com/a-andreyev/libQuotient/wiki/GSoC-2019-reports. Also, feel free to reach me via Quotient group https://matrix.to/#/#quotient:matrix.org.
I'm trying to reuse Black Hat's qtolm project: https://gitlab.com/b0/libqtolm -- added CMake files to include to libQuotient project, special thanks to Black Hat for his work.
Thanks to my GSoC mentors and Matrix and Quotient communities for support and solid groundwork. Long term goal is to provide modern Qt-based library to support full-featured matrix clients like Quaternion, Spectral or even to revive Telepathy IM connection manager https://github.com/TelepathyIM/telepathy-tank! %)

P.S.: Maybe somebody reading this is brave enough to play with Qt-based server implementation too? :)

Riot Web

  • Updating reactions UX to match new designs
  • Continued refinements to editing *Tweaked SAS verification dialogs to behave more nicely

Also: Riot Desktop was updated on the Snap Store.

Riot iOS

On the aggregation side, we have started to work on the phase:2 sprint (https://vector-im.github.io/feature-dashboard/#/summary?repo=vector-im/riot-web&repo=vector-im/riotX-android&repo=vector-im/riot-ios&label=feature:aggregations&label=phase:2):

  • Updating reactions UX to match new designs
  • Support edition of event being sent

Riot Android

  • Sync with Weblate
  • PlayStore assets has been translated to Spanish

RiotX (Android)

  • Implementation of notifications is progressing well
  • Migration from Koin to Dagger2 is nearly finished
  • Many other tasks have been done to try to close ambitious phase 1:
    • encrypt/decrypt attachments in e2e rooms
    • Display redacted events properly in e2e rooms
    • Permalink navigation
    • Display version of app and Matrix sdk in settings
    • Disambiguation of display names
    • Many other bug fixes...

Dept of Ops ๐Ÿ› 

avhost/docker-matrix

Mathijs:

My PR to the avhost/docker-matrix image (formerly the silviof) adding jemalloc support has just been merged. The image will now run synapse using jemalloc by default, which has been shown to reduce memory usage.
The first image is tagged as avhost/docker-matrix:jemalloc if all goes well the next synapse release will include jemalloc by default

Dept of Services ๐Ÿš€

New (web) forum from Federated Networks Association

jaywink:

Feneas (short for Federated Networks Association) just launched a new discussion forum aimed at creating a collaboration space for the federated web folk. Of course there is a category for Matrix as well. Have a peek! More info here: https://feneas.org/federated-networks-forum/

Diaspora mirror of this blog (meta)

jaywink:

Should you want to follow the Matrix.org blog using your Diaspora protocol compatible account, there is an unofficial mirror of the blog at [email protected]. (disclaimer: I'm not affiliated with the account, just found it and reporting)

Final thoughts ๐Ÿ’ญ

๐Ÿค” A company named "Slack" had an IPO, in which the share price closed up 50%. Slack are involved in "Instant Messaging" software and their product is known for the ability to connect to other services.

โฐ It's the first GSOC assessment NEXT WEEK. We'll get updates from all four projects, but notice that three of the projects have already provided updates above.

๐Ÿค– tulir created TWO new maubot plugins, one for translating things: https://github.com/maubot/translate. Check out the bot user. The other is a "react bot", https://github.com/maubot/reactbot, "that reacts to messages that match predefined rules".

โ‰๏ธ Black Hat (from Spectral and more) is "experimenting with ruma-client-api and plans to create something awesome with it", Alexandre Franke (from Fractal) got a new laptop. Fox "just did [their] last java uni exercise ever and am now free from this curse, will have time to work on Neo".

๐Ÿ”จ This website has had a lot of polish over the last couple of weeks. We'll be focusing on the incremental improvements still needed, and also on adding new documentation. Let us know what you think we should do next.

That's all I know ๐Ÿ

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

This Week in Matrix 2019-06-14

14.06.2019 00:00 โ€” This Week in Matrix โ€” Neil Johnson

Matrix Live - Prof. Jon Crowcroft, Foundation Guardian ๐ŸŽ™

Matthew & Amandine talk with Prof. Jon Crowcroft, one of the new Matrix.org Foundation Guardians!

Matrix 1.0

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.

Synapse

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.

Crypto

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 (religious themed) demo.

Pattle

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:

https://fdroid.pattle.im/?fingerprint=E91F63CA6AE04F8E7EA53E52242EAF8779559209B8A342F152F9E7265E3EA729

And install 'Pattle'.

Or download the APK from the link.

If you stumble upon any issues, please report them! You can now login via GitHub and Gitlab.com , so it's really easy to do!

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

If you would like to support me, you can now do so via Liberapay and Patreon.

PattlePattle

RiotX (Android)

  • Crypto has been merged to develop \o/. We are still working on the feature, for the remaining actions: delete device, export and import keys, keys backup / SAS UI polishing, cleanup keys when signing out, and also fixing bugsโ€ฆ
  • A new screen has been added to create Rooms.
  • Animation of the Floating Action Button on the catchup screen has been improved.
  • Valere has started to work on notifications.
  • Franรงois is working on migration to Dagger2 (instead of Koin). It should improve performance and will allow us to implement multi-account support(!)
  • Copyright, Term and conditions, privacy policy and third party license screens are coming soon.
  • Progress indicator on Home for initial/catchup sync is coming soon as well.

Riot Android

  • Fix issue on SAS, to allow cross-signing.

Riot iOS

  • Work continues on edits and reactions - we'll have something for you very soon ...

Riot Web

  • Editing now supports editing unsent messages(!!), editing emotes, and lots of polish
  • Reactions now instantly cancel when you redact them
  • Redactions now instantly redact when you send them
  • Released v1.2.2-rc1 (up for testing at https://riot.im/staging/) - this release includes room breadcrumbs being out of labs, some fixes for inviting by email, fixes uploads in chrome canary / firefox nightly, config file validation, some fixes for the new emoji font and lots of other bug fixes.

Ruma

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

Media

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

Fractal

Alexandre Franke has fixed the regression he found last week. The team also did a bit of housekeeping with a few dependency updates.

Misc

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:

I made a simple reminder maubot: https://github.com/maubot/reminder It's available at https://matrix.to/#/@reminder:maunium.net

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

This Week in Matrix 2019-06-07

07.06.2019 00:00 โ€” This Week in Matrix โ€” Ben Parsons

Dept of Spec ๐Ÿ“œ

We are sooo close to Matrix 1.0. So close! The PR which announces the arrival of v1.0 exists already.

TravisR said:

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

Dept of Servers ๐Ÿข

Synapse

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

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.

Ruma

Ruma, a homeserver written in Rust, has a new surge of activity following the Rust language syntax developments last week. This Week in Ruma received it's first edition in ~6 months!

Jimmy, project lead:

the ruma homeserver is now targeting stable rust, which means the entire project is now on stable rust

New project: load balancer for synchrotron workers

Soru:

[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.

Dept of SDKs and Frameworks ๐Ÿงฐ

Ruby SDK

Ananace:

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 embarrassing 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)

Dept of Clients ๐Ÿ“ฑ

RiotX

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.

famedly talk

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.

famedly talk screenshot

continuum

yuforia:

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

Fractal

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.

Riot Web

  • Working on polish for reactions and edits
  • Improving configuration of the default homeserver
  • Added Albanian and West Flemish languages thanks to translation contributors

Riot iOS

  • Working on reaction local echo.
  • Working on message edition.
  • Restrict reactions to room messages.

Riot Android

Nothing special this week.

DID YOU SEE THE RIOTX UPDATE ABOVE?

Dept of Bridges ๐ŸŒ‰

matrix-appservice-irc 0.12.0 released

Half-Shot:

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.

Dept of Services ๐Ÿš€

matrixservers.net

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.

www.matrix-wiki.org

sanlox:

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.

Final thoughts ๐Ÿ’ญ

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.

That's all I know ๐Ÿ

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

This Week in Matrix 2019-05-31

31.05.2019 00:00 โ€” This Week in Matrix โ€” Ben Parsons

Matrix Live - Half-Shot and Sorunome discuss the Discord-Matrix Bridge ๐ŸŽ™

Dept of Spec ๐Ÿ“œ

TravisR:

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

Dept of Servers ๐Ÿข

Synapse

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

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_LAZY and we build with the flag --weak-unresolved-symbols; during execution we hook the error handling in ld.so to 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!

Dept of SDKs and Frameworks ๐Ÿงฐ

Dept of Clients ๐Ÿ“ฑ

nheko 0.6.4 and 0.7.0 roadmap

red_sky updated us on nheko:

Just wanted to pop in and mention that 0.6.4 is out this week. It comes with a decent number of bug fixes.

And then:

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, JavaFX client

yuforia:

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

continuum screenshot

Neo

f0x has been working on Neo:

Neo can now finally fetch old backlog, with a fancy css loading animation

The Neo room has moved to #neo:pixie.town, and the site+deployment are being moved to https://neo.pixie.town

Fractal ๐Ÿฆถ

Alexandre Franke:

Fractal got initial support for being kicked, implemented by first time contributor Isaac Curtis.

We also joined the new call at https://stopthemingmy.app

Riot Web

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).

Dept of Bridges ๐ŸŒ‰

mautrix-telegram, mautrix-facebook, mautrix-hangouts, mautrix-whatsapp

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-facebook and mautrix-hangouts got some bugfixes and options to configure the displaynames of the ghost users on Matrix (like adding (FB) or (Hangouts) suffixes).

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.

Dept of Ops ๐Ÿ› 

matrix-docker-ansible-deploy makes Synapse optional

Slavi:

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 maintainability, all bridges have been moved to separate Ansible roles (outside of the matrix-synapse role). There have been lots of improvements related to bridge configuration with even more likely to come soon.

0.99.5.2 kubernetes-optimized images

Ananace had 0.99.5.2 kubernetes-optimized images ready to go very quickly.

Dept of Services ๐Ÿš€

Matrix User Documentation launches ๐ŸŽ‰

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

matrixservers.net

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

Final thoughts ๐Ÿ’ญ

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.

That's all I know ๐Ÿ

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

This Week in Matrix 2019-05-24

24.05.2019 00:00 โ€” This Week in Matrix โ€” Ben Parsons

Matrix Live - Wilko, creator of Pattle ๐ŸŽ™

This week I chatted to Wilko, creator of Pattle.

Dept of Servers ๐Ÿข

Synapse

Neil:

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.

Dendrite

Brendan:

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!

Dept of SDKs and Frameworks ๐Ÿงฐ

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.

Dept of Clients ๐Ÿ“ฑ

QMatrixClient to Quotient

kitsune:

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.

tangent

tangent is an embeddable HTML client from sanlox:

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. Everything 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/

continuum

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 has image, video and general file sending

Fox:

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.

Spectral update

Black Hat:

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.

Riot Web

  • 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

Riot Mobile

  • Continued work on reactions and edits
  • Riot-iOS has a new actions menu on event
  • Fix registration with an email

Riot and RiotX available from F-Droid

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

Dept of Bridges ๐ŸŒ‰

Major WhatsApp bridging update

tulir made great strides on mautrix-whatsapp this week:

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.

Dept of Ops ๐Ÿ› 

Ananace pushed updated K8s images for Synapse 0.99.5

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

Dept of Services ๐Ÿš€

Modular

New widget for Scalar: EtherCalc.

Dept of Bots ๐Ÿค–

QuatBot

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.

Dept of Articles ๐Ÿ“

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

Dept of GSOC ๐ŸŽ“

GSoC 2019 โ€“ Reliable Bridges

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.

That's all I know ๐Ÿ

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!

This Week in Matrix 2019-05-17

17.05.2019 00:00 โ€” This Week in Matrix โ€” Ben Parsons

Matrix Live - Reactions and Edits coming to Matrix

If Since you've been chatting on Matrix this week, you'll have noticed some new features rolling out.

In Riot develop, hit Labs in the Settings menu and you'll be able to try out the new Reactions and message editing features.

Dept of Servers

Synapse

Neil said:

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.

Construct

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.

Dept of SDKs and Frameworks

Ruby SDK now 1.0!

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

Dept of Clients

Pattle

Wilko:

A new version of Pattle is available on F-droid!

Changes include:

  • 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:

https://fdroid.pattle.im/?fingerprint=E91F63CA6AE04F8E7EA53E52242EAF8779559209B8A342F152F9E7265E3EA729

And install 'Pattle'.

Riot (various)

This week the various Riot teams (web, iOS, Android) have been spending time implementing reactions/edits, but also:

Riot Android

  • PR review from community: Matomo SDK will replace Piwik SDK
  • Weblate is up again, a sync has been done.

RiotX (Android)

  • Crypto integration is still ongoing
  • Reactions are coming soon!
  • New home and navigation to rooms development started

tangent

tangent is an exciting young project designed to create a very lightweight browser-based new client. sanlox:

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/

Spectral timeline UI and more

Black Hat:

  • Polished the timeline UI for Spectral.
  • Added m.video support.
  • Also added drag-and-drop support in Spectral.

Fractal now with keyboard shortcuts

Alexandre Franke:

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.

continuum updates

yuforia:

  • 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

early-day reactions support in Quaternion

kitsune:

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.

Scylla

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

Dept of Bridges

matrix-appservice-discord 0.5.0

Half-Shot:

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?

mautrix-telegram/mautrix-hangouts/mautrix-facebook/mautrix-whatsapp

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.

Dept of Ops

kubernetes from Ananace

Ananace updated their k8s packaging for Synapse to 0.99.4: https://github.com/ananace/matrix-synapse

Debian Packages

andrewsh announced the Debian Matrix Packagers Team has its own dedicated blog

for everything about Matrix on Debian, join #debian-matrix:matrix.org

silvio/avhost synapse docker container

Mathijs:

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

Dept of Bots

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.

tulir's karma maubot now also supports reactions and redactions, and the maubot sed plugin now underlines changes in messages.

Dept of Status of Matrix

t2bot.io has launched a new website

TravisR:

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.

That's all I know

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 in Matrix 2019-05-10

10.05.2019 00:00 โ€” This Week in Matrix โ€” Ben Parsons

Matrix Live

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.

Dept of Servers

Synapse

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.

Dept of Encryption

Pantalaimon

Says poljar:

  • 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.

Dept of Clients

Pattle - big update!

Wilko announced:

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:

https://fdroid.pattle.im/?fingerprint=E91F63CA6AE04F8E7EA53E52242EAF8779559209B8A342F152F9E7265E3EA729

Follow development here and in #pattle:matrix.org!

Fractal

Alexandre Franke:

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.

Riot Web

Progress on message composer for editing messages.

Riot iOS

  • 0.8.6 has been released on Tuesday
  • We are working on reactions

Riot Android

  • We have fixed some minor bugs, our efforts are now on RiotX
  • New FDroid mode support for high service level, regardless of battery usage.

RiotX (Android)

  • 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.

continuum

yuforia has news on continuum, a JavaFX-based client.

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

FluffyChat available as a Snap package, plus E2EE progress

Krille announced FluffyChat for Linux desktops:

FluffyChat is now also available as a Snap package for desktop Linux
https://snapcraft.io/fluffychat :D
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

Dept of Bridges

New Hangouts bridge from tulir / mautrix

tulir has been using his mautrix-python lib, which was recently used to enable his mautrix-facebook bridge, to bring a new method for Matrix-Hangouts bridging:

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).

Dept of SDKs and Frameworks

QMatrixClient is now "Quotient"

kitsune:

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.

Why rename?

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

Ruby Matrix SDK hits v0.1.0

Ananace:

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 big updates, with focus on Matrix

Cadair:

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

PK interfaces for ruby_olm

Willem:

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.

Dept of Ops

matrix-docker-ansible-deploy update

It's been a few weeks since we heard from Slavi about matrix-docker-ansible-deploy, but he's been working away on it:

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:

Dept of Status of Matrix

jaywink, maintainer of https://the-federation.info, told us what we all know to be true: Matrix is great and is getting more popular:

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).

That's all I know

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.

This Week in Matrix 2019-05-03

03.05.2019 00:00 โ€” This Week in Matrix โ€” Ben Parsons

New matrix.org Security Disclosure Policy and moderation pages

Check out the Matrix Official Security Disclosure Policy, which also features a "Hall of Fame": https://matrix.org/security-disclosure-policy/

We also have an official moderation guide now at https://matrix.org/docs/guides/moderation

Servers

Synapse

Last week

Work progresses on reactions support, expect a more formal MSC rsn, but for check out https://github.com/matrix-org/matrix-doc/blob/matthew/msc1849/proposals/1849-aggregations.md for more details. Aside from that we now have an API to send server notices, support is coming for blacklisting IP ranges for federation traffic and finally we published a security disclosure policy and hall of fame https://matrix.org/security-disclosure-policy/. Weโ€™ve also been tracking down some device management bugs that prevent e2e message decryption as well as fixing some security bugs.

Next week

More reactions work, device management bug hunting and server key validity support.

Crypto

  • Olm 3.1.2 bugfix release.
  • Pantalaimon: Initial SAS support through panctl http://webmshare.com/play/QeBY1
  • Pantalaimon: Support for sending out key requests.

Clients

There are some BIG (capital and bold!) client releases this week, let's take a look

Quaternion 0.0.9.4

Big release for Quaternion this week, following lots of work on libQMatrixClient. kitsune reports that:

Quaternion is now officially at version 0.0.9.4! Optional native scrollbar for the timeline, files uploading, initial support of matrix.to links (the foundation for future Matrix URIs), first complete translations, and much much more - the long list is here: https://github.com/QMatrixClient/Quaternion/releases/tag/0.0.9.4. Packagers are advised to take a look at the building and packaging section of the release notes: there are a few updates for you there.

Spectral

Continuing the QT-client theme, Black Hat has released a new version of Spectral to FlatHub, join #spectral:matrix.org for more:

A new version of Spectral is released on Flathub this week! The last release is half a year ago, and there are a lot of changes since then, including a better UI, bug fixes and performance improvements.

Changelog:

Increase minimum Qt version to 5.12.
Redesigned UI.
Emoji and username auto completion in text input.
Respect server-side notification settings.
Emoji picker.
Fix font size in HiDPI.
Improved reply UI/UX and rich reply UI.
Sending/receiving typing notifications.
Switch to hoedown for parsing markdown.
Display notification count.
Responsive UI.
Fix #2(Room/People separator issue).
Infer device name from system information.
Image caching.

And of course various performance improvements. For my account Spectral takes ~35MB RAM initially, compared to 45~50MB before.

Pattle new release

pattle screenshots

Wilko came to announce a new Pattle release, that's the Flutter client:

A new release of Pattle has been pushed to F-droid! Lots of different changes this release, including:

  • Viewing images!
  • Actual local echo (message is immediately placed in the timeline)
  • Sent state indicators are now shown next to the message time (clock for still being sent and a checkmark for sent)
  • Show member change events! (x has joined, left, invited, etc)
  • Thumbnails are now used for chat avatars, which should improve performance a bit
  • Other small fixes :)

Check out a video demo at here.

continuum

yuforia reports that:

This week in continuum:

  • Remove support for embedded webview and open external browsers when necessary instead. Many users actually prefer it this way. And dependency on a fairly large native module is gone.
  • Improvements on the emoji input. Removed some style classes and tweaked some sizes to make the appearance more compact and flat. https://matrix.org/_matrix/media/v1/download/matrix.org/PvFFPAvoDhiHghsyeJnWVyAK

Riot Web

Initial UI work on reactions and editing, nothing useable yet though.

Riot iOS

  • Release of 0.8.5 :
    • Grouped notifications
    • Interactive device verification (by emoji)
    • WebRTC and Jitsi libs updates
    • min iOS version is now 10 (Jitsi constraints)
  • Initial UI work on reactions, nothing useable yet though.

Riot Android

Benoit from the Riot team:

  • CI has been configured on Buildkite for the Android matrix sdk, riot and riotx.
  • The Android sdk can now be integrate as a grate dependency via Jitpack.
  • Riot 0.9.1 has been released with sas feature included! Device verification is easier with riot web and riot Android users, soon with riot ios users. Will be on production channel on Monday.
  • We have finally pushed the security fix on GH.
  • Also working on the crypto modularization to integrate it on RiotX.
  • We will concentrate our effort on RiotX now

RiotX (Android)

  • Working on reactions

Bridges

matrix-appservice-discord searching for a new maintainer

Sorunome reports that:

We (matrix-appservice-discord) are looking for a new maintainer!

What are we looking for in a maintainer?
You wouldn't have to be super active, however a few minutes per day would be greatly appreciated. You'd be responsible of reviewing PRs! Because of this not being afraid of Typescript and not being afraid of Discord is required - no need to be at pro-level!

So we are basically looking for someone who can help us look over PRs and maybe do some themself. If you think you are interested, please message us in our matrix room!

Bridging Facebook Messenger

tulir:

I made a new Facebook Messenger bridge: https://github.com/tulir/mautrix-facebook / #facebook:maunium.net. Currently the main difference to matrix-puppet-facebook is multi-user support like my WhatsApp and Telegram bridges. The bridge is Python and the code structure is similar to mautrix-telegram, so I'll probably eventually create a generic bridge library out of the common parts.

SDKs and Frameworks

Ruby SDK

Ananace reports that:

Working on the Ruby SDK again, planning to try and get it to the point where I feel comfortable calling it a provisionary 1.0 release. I want to propose additions to various software using it after all, and that tends to look better if it's 1.0 - or close. ๐Ÿ˜ƒ

That's all I know

That's all for this week folks, come chat in #twim:matrix.org for more, or to share what you've been working on.

PS this interesting-looking project is not ready for public eyes on it yet, so please refrain from checking out the code and discussing with the author in #tangent:matrix.org