Skip to content

Releases: mautrix/go

v0.15.0

16 Mar 10:35

Choose a tag to compare

No changes since beta.3

Changes since v0.14.0
  • Bumped minimum Go version to 1.19.
  • Breaking changes
    • (all) Switched to zerolog for logging.
      • The Client and Bridge structs still include a legacy logger for backwards compatibility.
    • (client, appservice) Moved SQLStateStore from appservice module to the top-level (client) module.
    • (client, appservice) Removed unused Typing map in SQLStateStore.
    • (client) Removed unused SaveRoom and LoadRoom methods in Storer.
    • (client, appservice) Removed deprecated SendVideo and SendImage methods.
    • (client) Replaced AppServiceUserID field with SetAppServiceUserID boolean.
      The UserID field is used as the value for the query param.
    • (crypto) Renamed GobStore to MemoryStore and removed the file saving features. The data can still be persisted, but the persistence part must be implemented separately.
    • (crypto) Removed deprecated DeviceIdentity alias
      (renamed to id.Device long ago).
    • (client) Removed Stringifable interface as it's the same as fmt.Stringer.
    • (appservice) Removed Load() and AppService.Init() functions. The struct should just be created with Create() and the relevant fields should be filled manually.
    • (appservice) Removed public HomeserverURL field and replaced it with a SetHomeserverURL method.
  • (client) Renamed Storer interface to SyncStore. A type alias exists for backwards-compatibility.
  • (crypto/cryptohelper) Added package for a simplified crypto interface for clients.
  • (example) Added e2ee support to example using crypto helper.
  • (client) Changed default syncer to stop syncing on M_UNKNOWN_TOKEN errors.
  • (bridge) Added option to require room power level to run commands.
  • (event) Added structs for MSC3952: Intentional Mentions.
  • (util/variationselector) Added FullyQualify method to add necessary emoji variation selectors without adding all possible ones.
  • (appservice) Added support for unix sockets for homeserver URL and appservice HTTP server.
  • (crypto) Added message index to log after encrypting/decrypting megolm events, and when failing to decrypt due to duplicate index.
  • (sqlstatestore) Fixed warning log for rooms that don't have encryption enabled.

v0.15.0-beta.3

15 Mar 16:01

Choose a tag to compare

v0.15.0-beta.3 Pre-release
Pre-release
  • Breaking change (appservice) Removed Load() and AppService.Init() functions. The struct should just be created with Create() and the relevant fields should be filled manually.
  • Breaking change (appservice) Removed public HomeserverURL field and replaced it with a SetHomeserverURL method.
  • (appservice) Added support for unix sockets for homeserver URL and appservice HTTP server.
  • (client) Changed request logging to log durations as floats instead of strings (using zerolog's Dur(), so the exact output can be configured).
  • (bridge) Changed zerolog to use nanosecond precision timestamps.
  • (crypto) Added message index to log after encrypting/decrypting megolm events, and when failing to decrypt due to duplicate index.
  • (sqlstatestore) Fixed warning log for rooms that don't have encryption enabled.

v0.15.0-beta.2

02 Mar 11:57

Choose a tag to compare

v0.15.0-beta.2 Pre-release
Pre-release
  • (bridge) Fixed building with nocrypto tag.
  • (bridge) Fixed legacy logging config migration not disabling file writer when file_name_format was empty.
  • (bridge) Added option to require room power level to run commands.
  • (event) Added structs for MSC3952: Intentional Mentions.
  • (util/variationselector) Added FullyQualify method to add necessary emoji variation selectors without adding all possible ones.

v0.15.0-beta.1

24 Feb 20:37

Choose a tag to compare

v0.15.0-beta.1 Pre-release
Pre-release
  • Bumped minimum Go version to 1.19.
  • Breaking changes
    • (all) Switched to zerolog for logging.
      • The Client and Bridge structs still include a legacy logger for backwards compatibility.
    • (client, appservice) Moved SQLStateStore from appservice module to the top-level (client) module.
    • (client, appservice) Removed unused Typing map in SQLStateStore.
    • (client) Removed unused SaveRoom and LoadRoom methods in Storer.
    • (client, appservice) Removed deprecated SendVideo and SendImage methods.
    • (client) Replaced AppServiceUserID field with SetAppServiceUserID boolean. The UserID field is used as the value for the query param.
    • (crypto) Renamed GobStore to MemoryStore and removed the file saving features. The data can still be persisted, but the persistence part must be implemented separately.
    • (crypto) Removed deprecated DeviceIdentity alias (renamed to id.Device long ago).
  • (client) Renamed Storer interface to SyncStore. A type alias exists for backwards-compatibility.
  • (crypto/cryptohelper) Added package for a simplified crypto interface for clients.
  • (example) Added e2ee support to example using crypto helper.
  • (client) Changed default syncer to stop syncing on M_UNKNOWN_TOKEN errors.

v0.14.0

16 Feb 10:47

Choose a tag to compare

  • Breaking change (format) Refactored the HTML parser Context to have more data.
  • (id) Fixed escaping path components when forming matrix.to URLs or matrix: URIs.
  • (bridge) Bumped default timeouts for decrypting incoming messages.
  • (bridge) Added RawArgs to commands to allow accessing non-split input.
  • (bridge) Added ReplyAdvanced to commands to allow setting markdown settings.
  • (event) Added notifications key to PowerLevelEventContent.
  • (event) Changed SetEdit to cut off edit fallback if the message is long.
  • (util) Added SyncMap as a simple generic wrapper for a map with a mutex.
  • (util) Added ReturnableOnce as a wrapper for sync.Once with a return value.

v0.13.0

16 Jan 12:05

Choose a tag to compare

  • Breaking change: Removed IsTyping and SetTyping in appservice.StateStore and removed the TypingStateStore struct implementing those methods.
  • Breaking change: Removed legacy fields in Beeper MSS events.
  • Added knocked rooms to sync response structs.
  • Added wrapper for /timestamp_to_event endpoint added in Matrix v1.6.
  • Fixed MSC3870 uploads not failing properly after using up the max retry count.
  • Fixed parsing non-positive ordered list start positions in HTML parser.

v0.11.1

15 Jan 13:49

Choose a tag to compare

  • Fixed parsing non-positive ordered list start positions in HTML parser (backport of the same fix in v0.13.0).

v0.12.4

16 Dec 15:18

Choose a tag to compare

  • Added SendReceipt to support private read receipts and thread receipts in the same function. MarkReadWithContent is now deprecated.
  • Changed media download methods to return errors if the server returns a non-2xx status code.
  • Removed legacy sql_store_upgrade.Upgrade method. Using store.DB.Upgrade() after NewSQLCryptoStore(...) is recommended instead (the bridge module does this automatically).
  • Added missing suggested field to m.space.child content struct.
  • Added device_unused_fallback_key_types to /sync response and appservice transaction structs.
  • Changed ReqSetReadMarkers to omit empty fields.
  • Changed bridge configs to force sqlite3-fk-wal instead of sqlite3.
  • Updated bridge helper to close database connection when stopping.
  • Fixed read receipt and account data endpoints sending null instead of an empty object as the body when content isn't provided.

v0.12.3

15 Nov 22:08

Choose a tag to compare

  • Breaking change: Added logging for row iteration in the dbutil package. This changes the return type of Query methods from *sql.Rows to a new dbutil.Rows interface.
  • Added flag to disable wrapping database upgrades in a transaction (e.g. to allow setting PRAGMAs for advanced table mutations on SQLite).
  • Deprecated MessageEventContent.GetReplyTo in favor of directly using RelatesTo.GetReplyTo. RelatesTo methods are nil-safe, so checking if RelatesTo is nil is not necessary for using those methods.
  • Added wrapper for space hierarchyendpoint (thanks to @mgcm in #100).
  • Added bridge config option to handle transactions asynchronously.
  • Added separate channels for to-device events in appservice transaction handler to avoid blocking to-device events behind normal events.
  • Added RelatesTo.GetNonFallbackReplyTo utility method to get the reply event ID, unless the reply is a thread fallback.
  • Added event.TextToHTML as an utility method to HTML-escape a string and replace newlines with <br/>.
  • Added check to bridge encryption helper to make sure the e2ee keys are still on the server. Synapse is known to sometimes lose keys randomly.
  • Changed bridge crypto syncer to crash on M_UNKNOWN_TOKEN errors instead of retrying forever pointlessly.
  • Fixed verifying signatures of fallback one-time keys.

v0.12.2

16 Oct 14:15

Choose a tag to compare

  • Added utility method to redact bridge commands.
  • Added thread ID field to read receipts to match Matrix v1.4 changes.
  • Added automatic fetching of media repo config at bridge startup to make it easier for bridges to check homeserver media size limits.
  • Added wrapper for the /register/available endpoint.
  • Added custom user agent to all requests mautrix-go makes. The value can be customized by changing the DefaultUserAgent variable.
  • Implemented MSC3664, MSC3862 and MSC3873 in the push rule evaluator.
  • Added workaround for potential race conditions in OTK uploads when using appservice encryption (MSC3202).
  • Fixed generating registrations to use .+ instead of [0-9]+ in the username regex.
  • Fixed panic in megolm session listing methods if the store contains withheld key entries.
  • Fixed missing header in bridge command help messages.