Skip to content

Releases: mautrix/go

v0.22.1

16 Dec 14:04
Compare
Choose a tag to compare
  • (crypto) Added automatic cleanup when there are too many olm sessions with a single device.
  • (crypto) Added helper for getting cached device list with cross-signing status.
  • (crypto/verificationhelper) Added interface for persisting the state of in-progress verifications.
  • (client) Added GetMutualRooms wrapper for MSC2666.
  • (client) Switched JoinRoom to use the via query param instead of server_name as per MSC4156.
  • (bridgev2/commands) Fixed pm command not actually starting the chat.
  • (bridgev2/interface) Added separate network API interface for starting chats with a Matrix ghost user. This allows treating internal user IDs differently than arbitrary user-input strings.
  • (bridgev2/crypto) Added support for MSC4190 (thanks to @onestacked in #288).

v0.22.0

16 Nov 14:06
Compare
Choose a tag to compare
  • (hicli) Moved package into gomuks repo.
  • (bridgev2/commands) Fixed cookie unescaping in login commands.
  • (bridgev2/portal) Added special DefaultChatName constant to explicitly reset portal names to the default (based on members).
  • (bridgev2/config) Added options to disable room tag bridging.
  • (bridgev2/database) Fixed reaction queries not including portal receiver.
  • (appservice) Updated MSC2409 stable registration field name from push_ephemeral to receive_ephemeral. Homeserver admins must update existing registrations manually.
  • (format) Added support for img tags.
  • (format/mdext) Added goldmark extensions for Matrix math and custom emojis.
  • (event/reply) Removed support for generating reply fallbacks (MSC2781).
  • (pushrules) Added support for sender_notification_permission condition kind (used for @room mentions).
  • (crypto) Added support for json.RawMessage in EncryptMegolmEvent.
  • (mediaproxy) Added GetMediaResponseCallback and GetMediaResponseFile to write proxied data directly to http response or temp file instead of having to use an io.Reader.
  • (mediaproxy) Dropped support for legacy media download endpoints.
  • (mediaproxy,bridgev2) Made interface pass through query parameters.

v0.21.1

16 Oct 07:34
Compare
Choose a tag to compare
  • (bridgev2) Added more features and fixed bugs.
  • (hicli) Added more features and fixed bugs.
  • (appservice) Removed TLS support. A reverse proxy should be used if TLS is needed.
  • (format/mdext) Added goldmark extension to fix indented paragraphs when disabling indented code block parser.
  • (event) Added Has method for Mentions.
  • (event) Added basic support for the unstable version of polls.

v0.21.0

16 Sep 10:56
Compare
Choose a tag to compare
  • Breaking change (client) Dropped support for unauthenticated media. Matrix v1.11 support is now required from the homeserver, although it's not enforced using /versions as some servers don't advertise it.
  • (bridgev2) Added more features and fixed bugs.
  • (appservice,crypto) Added support for using MSC3202 for appservice encryption.
  • (crypto/olm) Made everything into an interface to allow side-by-side testing of libolm and goolm, as well as potentially support vodozemac in the future.
  • (client) Fixed requests being retried even after context is canceled.
  • (client) Added option to move /sync request logs to trace level.
  • (error) Added Write and WithMessage helpers to RespError to make it easier to use on servers.
  • (event) Fixed org.matrix.msc1767.audio field allowing omitting the duration and waveform.
  • (id) Changed MatrixURI methods to not panic if the receiver is nil.
  • (federation) Added limit to response size when fetching .well-known files.

v0.20.0

16 Aug 08:59
Compare
Choose a tag to compare
  • Bumped minimum Go version to 1.22.
  • (bridgev2) Added more features and fixed bugs.
  • (event) Added types for MSC4144: Per-message profiles.
  • (federation) Added implementation of server name resolution and a basic client for making federation requests.
  • (crypto/ssss) Changed recovery key/passphrase verify functions to take the key ID as a parameter to ensure it's correctly set even if the key metadata wasn't fetched via GetKeyData.
  • (format/mdext) Added goldmark extensions for single-character bold, italic and strikethrough parsing (as in *foo* -> foo, _foo_ -> foo and ~foo~ -> foo)
  • (format) Changed RenderMarkdown et al to always include m.mentions in returned content. The mention list is filled with matrix.to URLs from the input by default.

v0.19.0

16 Jul 08:16
Compare
Choose a tag to compare

Also note the v0.19.0-beta.1 changelog, there were some slightly breaking changes.

  • Renamed master branch to main.
  • (bridgev2) Added more features.
  • (crypto) Fixed bug with copying m.relates_to from wire content to decrypted content.
  • (mediaproxy) Added module for implementing simple media repos that proxy requests elsewhere.
  • (client) Changed Members() to automatically parse event content for all returned events.
  • (bridge) Added /register call if /versions fails with M_FORBIDDEN.
  • (crypto) Fixed DecryptMegolmEvent sometimes calling database without transaction by using the non-context version of ResolveTrust.
  • (crypto/attachment) Implemented io.Seeker in EncryptStream to allow using it in retriable HTTP requests.
  • (event) Added helper method to add user ID to a Mentions object.
  • (event) Fixed default power level for invites (thanks to @rudis in #250).
  • (client) Fixed incorrect warning log in State() when state store returns no error (thanks to @rudis in #249).
  • (crypto/verificationhelper) Fixed deadlock when ignoring unknown cancellation events (thanks to @rudis in #247).

v0.19.0-beta.1

16 Jun 20:40
Compare
Choose a tag to compare
v0.19.0-beta.1 Pre-release
Pre-release
  • (bridgev2) Added experimental high-level bridge framework.
  • (hicli) Added experimental high-level client framework.
  • Slightly breaking changes
    • (crypto) Added room ID and first known index parameters to SessionReceived callback.
    • (crypto) Changed ImportRoomKeyFromBackup to return the imported session.
    • (client) Added error parameter to ResponseHook.
    • (client) Changed Download to return entire response instead of just an io.Reader.
  • (crypto) Changed initial olm device sharing to save keys before sharing to ensure keys aren't accidentally regenerated in case the request fails.
  • (crypto) Changed EncryptMegolmEvent and ShareGroupSession to return more errors instead of only logging and ignoring them.
  • (crypto) Added option to completely disable megolm ratchet tracking.
    • The tracking is meant for bots and bridges which may want to delete old keys, but for normal clients it's just unnecessary overhead.
  • (crypto) Changed Megolm session storage methods in Store to not take sender key as parameter.
    • This causes a breaking change to the layout of the MemoryStore struct. Using MemoryStore in production is not recommended.
  • (crypto) Changed DecryptMegolmEvent to copy m.relates_to in the raw content too instead of only in the parsed struct.
  • (crypto) Exported function to parse megolm message index from raw ciphertext bytes.
  • (crypto/sqlstore) Fixed schema of crypto_secrets table to include account ID.
  • (crypto/verificationhelper) Fixed more bugs.
  • (client) Added UpdateRequestOnRetry hook which is called immediately before retrying a normal HTTP request.
  • (client) Added support for MSC3916 media download endpoint.
    • Support is automatically detected from spec versions. The SpecVersions property can either be filled manually, or Versions can be called to automatically populate the field with the response.
  • (event) Added constants for known room versions.

v0.18.1

16 Apr 11:00
Compare
Choose a tag to compare
  • (format) Added a context.Context field to HTMLParser's Context struct.
  • (bridge) Added support for handling join rules, knocks, invites and bans (thanks to @maltee1 in #193 and #204).
  • (crypto) Changed forwarded room key handling to only accept keys with a lower first known index than the existing session if there is one.
  • (crypto) Changed key backup restore to assume own device list is up to date to avoid re-requesting device list for every deleted device that has signed key backup.
  • (crypto) Fixed memory cache not being invalidated when storing own cross-signing keys

v0.18.0

16 Mar 10:59
Compare
Choose a tag to compare
  • Breaking change (client, bridge, appservice) Dropped support for maulogger. Only zerolog loggers are now provided by default.
  • (bridge) Fixed upload size limit not having a default if the server returned no value.
  • (synapseadmin) Added wrappers for some room and user admin APIs. (thanks to @grvn-ht in #181).
  • (crypto/verificationhelper) Fixed bugs.
  • (crypto) Fixed key backup uploading doing too much base64.
  • (crypto) Changed EncryptMegolmEvent to return an error if persisting the megolm session fails. This ensures that database errors won't cause messages to be sent with duplicate indexes.
  • (crypto) Changed GetOrRequestSecret to use a callback instead of returning the value directly. This allows validating the value in order to ignore invalid secrets.
  • (id) Added ParseCommonIdentifier function to parse any Matrix identifier in the Common Identifier Format.
  • (federation) Added simple key server that passes the federation tester.

v0.18.0-beta.1

16 Feb 15:13
Compare
Choose a tag to compare
v0.18.0-beta.1 Pre-release
Pre-release
  • Bumped minimum Go version to 1.21.
  • (bridge) Bumped minimum Matrix spec version to v1.4.
  • Breaking change (crypto) Deleted old half-broken interactive verification code and replaced it with a new verificationhelper.
    • The new verification helper is still experimental.
    • Both QR and emoji verification are supported (in theory).
  • (crypto) Added support for server-side key backup.
  • (crypto) Added support for receiving and sending secrets like cross-signing private keys via secret sharing.
  • (crypto) Added support for tracking which devices megolm sessions were initially shared to, and allowing re-sharing the keys to those sessions.
  • (client) Changed cross-signing key upload method to accept a callback for user-interactive auth instead of only hardcoding password support.
  • (appservice) Dropped support for legacy non-prefixed appservice paths (e.g. /transactions instead of /_matrix/app/v1/transactions).
  • (appservice) Dropped support for legacy access_token authorization in appservice endpoints.
  • (bridge) Fixed RawArgs field in command events of command state callbacks.
  • (appservice) Added CreateFull helper function for creating an AppService instance with all the mandatory fields set.