maubot/CHANGELOG.md

5.9 KiB

v0.5.0 (unreleased)

  • Fixed main_class to default to being loaded from the last module instead of the first if a module name is not explicitly specified.
    • This was already the documented behavior, and loading from the first module doesn't make sense due to import order.
  • Added simple scheduler utility for running background tasks periodically or after a certain delay.
  • Added testing framework for plugins (thanks to @abompard in #225).
  • Changed mbc build to ignore directories declared in modules that are missing an __init__.py file.
    • Importing the modules at runtime would fail and break the plugin. To include non-code resources outside modules in the mbp archive, use extra_files instead.

v0.4.2 (2023-09-20)

  • Updated Pillow to 10.0.1.
  • Updated Docker image to Alpine 3.18.
  • Added logging for errors for /whoami errors when adding new bot accounts.
  • Added support for using appservice tokens (including appservice encryption) in standalone mode.

v0.4.1 (2023-03-15)

  • Added in_thread parameter to evt.reply() and evt.respond().
    • By default, responses will go to the thread if the command is in a thread.
    • By setting the flag to True or False, the plugin can force the response to either be or not be in a thread.
  • Fixed static files like the frontend app manifest not being served correctly.
  • Fixed self.loader.meta not being available to plugins in standalone mode.
  • Updated to mautrix-python v0.19.6.

v0.4.0 (2023-01-29)

  • Dropped support for using a custom maubot API base path.
    • The public URL can still have a path prefix, e.g. when using a reverse proxy. Both the web interface and mbc CLI tool should work fine with custom prefixes.
  • Added evt.redact() as a shortcut for self.client.redact(evt.room_id, evt.event_id).
  • Fixed mbc logs command not working on Python 3.8+.
  • Fixed saving plugin configs (broke in v0.3.0).
  • Fixed SSO login using the wrong API path (probably broke in v0.3.0).
  • Stopped using cd in the docker image's mbc wrapper to enable using path-dependent commands like mbc build by mounting a directory.
  • Updated Docker image to Alpine 3.17.

v0.3.1 (2022-03-29)

  • Added encryption dependencies to standalone dockerfile.
  • Fixed running without encryption dependencies installed.
  • Removed unnecessary imports that broke on SQLAlchemy 1.4+.
  • Removed unused alembic dependency.

v0.3.0 (2022-03-28)

  • Dropped Python 3.7 support.
  • Switched main maubot database to asyncpg/aiosqlite.
    • Using the same SQLite database for crypto is now safe again.
  • Added support for asyncpg/aiosqlite for plugin databases.
    • There are some basic docs and a simple example for the new system.
    • The old SQLAlchemy system is now deprecated, but will be preserved for backwards-compatibility until most plugins have updated.
  • Started enforcing minimum maubot version in plugins.
    • Trying to upload a plugin where the specified version is higher than the running maubot version will fail.
  • Fixed bug where uploading a plugin twice, deleting it and trying to upload again would fail.
  • Updated Docker image to Alpine 3.15.
  • Formatted all code using black and isort.

v0.2.1 (2021-11-22)

Docker-only release: added automatic moving of plugin databases from /data/plugins/*.db to /data/dbs

v0.2.0 (2021-11-20)

  • Moved plugin databases from /data/plugins to /data/dbs in the docker image.
    • v0.2.0 was missing the automatic migration of databases, it was added in v0.2.1.
    • If you were using a custom path, you'll have to mount it at /data/dbs or move the databases yourself.
  • Removed support for pickle crypto store and added support for SQLite crypto store.
    • If you were previously using the dangerous pickle store for e2ee, you'll have to re-login with the bots (which can now be done conveniently with mbc auth --update-client).
  • Added SSO support to mbc auth.
  • Added support for setting device ID for e2ee using the web interface.
  • Added e2ee fingerprint field to the web interface.
  • Added --update-client flag to store access token inside maubot instead of returning it in mbc auth.
    • This will also automatically store the device ID now.
  • Updated standalone mode.
  • Replaced _ with - when generating command name from function name.
  • Replaced unmaintained PyInquirer dependency with questionary (thanks to @TinfoilSubmarine in #139).
  • Updated Docker image to Alpine 3.14.
  • Fixed avatar URLs without the mxc:// prefix appearing like they work in the frontend, but not actually working when saved.

v0.1.2 (2021-06-12)

  • Added loader instance property for plugins to allow reading files within the plugin archive.
  • Added support for reloading webapp and database meta flags in plugins. Previously you had to restart maubot instead of just reloading the plugin when enabling the webapp or database for the first time.
  • Added warning log if a plugin uses @web decorators without enabling the webapp meta flag.
  • Updated frontend to latest React and dependency versions.
  • Updated Docker image to Alpine 3.13.
  • Fixed registering accounts with Synapse shared secret registration.
  • Fixed plugins using get_event in encrypted rooms.
  • Fixed using the @command.new decorator without specifying a name (i.e. falling back to the function name).

v0.1.1 (2021-05-02)

No changelog.

v0.1.0 (2020-10-04)

Initial tagged release.