Dev Communiqué for August 2021
Published on August 29, 2021 by Sam Whited
Admin

It's been another month, so let's get right to it!

There were two big additions this month: ad-hoc commands and message archive management (history sync) in Communiqué!

Communiqué


The easiest new feature to show off is ad-hoc commands, so let's start there. Ad-hoc commands allow the client to configure bots and bridges or remote control other clients using simple forms like the ones you're used to submitting on the web. For example, here's a screenshot of Communiqué being used to configure the Cheogram IRC bridge to point to the libera.chat IRC network:

We also added support for Message Archive Mangement (MAM), aka history sync.
This means that if you switch to Communiqué from another client, all your existing chat history can come with you. A small amount of context is loaded on first start, then as you scroll up more history is fetched as needed. We're pushing for clients to better document their strategies for syncing history, so we also published our strategy in the Modern XMPP docs and hope other clients will join us in doing so.

Aside from this we've also tweaked the config file to allow multiple accounts. You can still only connect to a single account at once, but this means that when switching back and forth you don't have to comment out or otherwise remove and add large chunks of config every single time. In the future, we may also provide a way to override the account selector from the command line to make launching multiple instances of Communiqué easier.

Lots of work was done on the roster and chat view to add additional functionality and shortcuts as well. Navigation was improved (you can now scroll the chat view without a mouse), chats can be opened and closed (and contacts added and removed) and you can even launch a "more info" dialog to find out more info about your contact and your subscription status.

Finally, there was the usual assortment of bug fixes and tweaks and the ability to respond to disco#info requests!

mellium.im/xmpp

For the main XMPP library the features largely follow those of Communiqué. Some of the main highlights include:

  • Support for roster versioning
  • Service discovery features were added to most packages, and support for advertising them was added to the multiplexer
  • More detailed errors are now returned when a stanza error is encountered
  • The new "history" package was created to add MAM support
  • A way to access fixed fields (with no name) on forms was added