github mautrix/go v0.12.0

latest releases: v0.21.0, v0.20.0, v0.19.0...
2 years ago
  • Breaking change: Switched Client.UserTyping to take a time.Duration instead of raw int64 milliseconds.
  • Breaking change: Removed custom reply relation type and switched to using the wire format (nesting in m.in_reply_to).
  • Added device ID to appservice OTK count map to match updated MSC3202. This is also a breaking change, but the previous incorrect behavior wasn't implemented by anything other than mautrix-syncproxy/imessage.
  • (There are probably other breaking changes too).
  • Added database utility and schema upgrade framework
    • Originally from mautrix-whatsapp, but usable for non-bridges too
    • Includes connection wrapper to log query durations and mutate queries for SQLite compatibility (replacing $x with ?x).
  • Added bridge utilities similar to mautrix-python. Currently includes:
    • Crypto helper
    • Startup flow
    • Command handling and some standard commands
    • Double puppeting things
    • Generic parts of config, basic config validation
    • Appservice SQL state store
  • Added alternative markdown spoiler parsing extension that doesn't support reasons, but works better otherwise.
  • Added Discord underline markdown parsing extension (_foo_ -> foo).
  • Added support for parsing spoilers and color tags in the HTML parser.
  • Added support for mutating plain text nodes in the HTML parser.
  • Added room version field to the create room request struct.
  • Added empty JSON object as default request body for all non-GET requests.
  • Added wrapper for /capabilities endpoint.
  • Added omitempty markers for lots of structs to make the structs easier to use on the server side too.
  • Added support for registering to-device event handlers via the default Syncer's OnEvent and OnEventType methods.
  • Fixed CreateEventContent using the wrong field name for the room version field.
  • Fixed StopSync not immediately cancelling the sync loop if it was sleeping after a failed sync.
  • Fixed GetAvatarURL always returning the current user's avatar instead of the specified user's avatar (thanks to @nightmared in #83).
  • Improved request logging and added new log when a request finishes.
  • Crypto store improvements:
    • Deleted devices are now kept in the database.
    • Made ValidateMessageIndex atomic.
  • Moved appservice.RandomString to the util package and made it use crypto/rand instead of math/rand.
  • Significantly improved cross-signing validation code.
    • There are now more options for required trust levels, e.g. you can set SendKeysMinTrust to id.TrustStateCrossSignedTOFU to trust the first cross-signing master key seen and require all devices to be signed by that key.
    • Trust state of incoming messages is automatically resolved and stored in evt.Mautrix.TrustState. This can be used to reject incoming messages from untrusted devices.

Don't miss a new go release

NewReleases is sending notifications on new releases.