Skip to content

Releases: mautrix/signal

v0.6.1

16 May 13:46
Compare
Choose a tag to compare
  • Added support for bridging location messages from Matrix to Signal (thanks to @maltee1 in #504).
    • Note that Signal doesn't support real location messages, so they're just bridged as links. The link template is configurable.
  • Fixed bridging long text messages from Signal (thanks to @maltee1 in #506).
  • Improved handling of ping timeouts in Signal websocket.

v0.6.0

16 Apr 11:30
Compare
Choose a tag to compare
  • Updated to libsignal v0.44.0.
  • Refactored bridge to support Signal's new phone number identifier (PNI) system in order to fix starting new chats and receiving messages from new users.
    • When starting a chat with a user you haven't talked to before, the portal room will not have a ghost user for the recipient until they accept the message request.
  • Added support for syncing existing groups on login instead of having to wait for new messages.
  • Added notices if decrypting incoming message from Signal fails.
  • Added bridging of group metadata from Matrix to Signal (thanks to @maltee1 in #461).
  • Added command to create new Signal group for Matrix room (thanks to @maltee1 in #461 and #491).
  • Added commands for inviting users to Signal groups by phone number (thanks to @maltee1 in #495).
  • Improved handling of missed Signal group metadata changes (thanks to @maltee1 in #488).

v0.5.1

16 Mar 12:03
Compare
Choose a tag to compare
  • Updated to libsignal v0.41.0.
  • Fixed sending messages to groups.
  • Fixed some cases of ghost user info changing repeatedly on multi-user instances.
  • Fixed migrating SQLite databases from Python version.

v0.5.0

16 Feb 16:26
Compare
Choose a tag to compare
  • Rewrote bridge in Go.
    • To migrate the bridge, simply upgrade in-place. The database and config will be migrated automatically, although some parts of the config aren't migrated (e.g. log config). If you prevented the bridge from writing to the config file, you'll have to temporarily allow it or update it yourself.
    • The bridge doesn't use signald anymore, all users will have to re-link the bridge. signald can be deleted after upgrading.
    • Primary device mode is no longer supported, signal-cli is recommended if you don't want to use the official Signal mobile apps.
    • Some old features are not yet supported (e.g. group management features).
  • Renamed main branch from master to main.
  • Added support for edits and message formatting.

v0.4.3

17 May 13:57
Compare
Choose a tag to compare

Target signald version: v0.23.2

  • Added option to not set name/avatar for DM rooms even if the room is encrypted.
  • Added options to automatically ratchet/delete megolm sessions to minimize access to old messages.
  • Added command to request group/contact sync from primary device.
  • Added error notices if incoming attachments are dropped.
  • Fixed bugs with creating groups.
  • Fixed handling changes to disappearing message timer in groups.

Changes by @maltee1

  • Added bridging of group join requests on Signal to knocks on Matrix (#275).
  • Added bridging of banned users from Signal to Matrix (#275).
  • Added admin command to force logout other Matrix users from the bridge (#359).
  • Added submit-challenge command to submit captcha codes when encountering ratelimits on sending messages (#320).
  • Added invite command for inviting Signal users to a group by phone number (#285).
  • Added support for bridging Matrix invites to Signal via relay user (#285).
  • Added automatic group creation when inviting multiple Signal ghosts to a non-DM room (#294).
  • Fixed ghost user getting kicked from Matrix room when trying to invite a user who's already in the group on Signal (#345).
  • Fixed bridging power levels from Signal for users who are logged into the bridge, but don't have double puppeting enabled (#333).

v0.4.2

03 Dec 12:56
Compare
Choose a tag to compare

Target signald version: v0.23.0

  • Fixed database schema upgrade for users who used SQLite before it was stabilized in v0.4.1.
  • Fixed error in commands that use phone numbers (like !signal pm).
  • Fixed updating private chat portal metadata when Signal user info changes.
  • Updated Docker image to Alpine 3.17.

v0.4.1

28 Oct 20:25
Compare
Choose a tag to compare

Target signald version: v0.23.0

  • Dropped support for phone numbers as Signal user identifiers.
  • Dropped support for v1 groups.
  • Promoted SQLite support to non-experimental level.
  • Fixed call notices not having a plaintext body field.
  • "Implicit" messages from Signal (things like read receipts) that fail to decrypt will no longer send a notice to the Matrix room.
  • The docker image now has an option to bypass the startup script by setting the MAUTRIX_DIRECT_STARTUP environment variable. Additionally, it will refuse to run as a non-root user if that variable is not set (and print an error message suggesting to either set the variable or use a custom command).

v0.4.0

17 Sep 19:22
Compare
Choose a tag to compare

Target signald version: v0.21.1

N.B. This release requires a homeserver with Matrix v1.1 support, which bumps up the minimum homeserver versions to Synapse 1.54 and Dendrite 0.8.7. Minimum Conduit version remains at 0.4.0.

Added

  • Added provisioning API for checking if a phone number is registered on Signal
  • Added admin command for linking to an existing account in signald.
  • Added Matrix -> Signal bridging for invites, kicks, bans and unbans (thanks to @maltee1 in #246 and #257).
  • Added command to create Signal group for existing Matrix room (thanks to @maltee1 in #250).
  • Added Matrix -> Signal power level change bridging (thanks to @maltee1 in #260 and #263).
  • Added join rule bridging in both directions (thanks to @maltee1 in #268).
  • Added Matrix -> Signal bridging of location messages (thanks to @maltee1 in #287).
    • Since Signal doesn't have actual location messages, they're just bridged as map links. The link template is configurable.
  • Added command to link devices when the bridge is the primary device (thanks to @Craeckie in #221).
  • Added command to bridge existing Matrix rooms to existing Signal groups (thanks to @MaximilianGaedig in #288).
  • Added config option to auto-enable relay mode when a specific user is invited (thanks to @maltee1 in #293).
  • Added options to make encryption more secure.
    • The encryption -> verification_levels config options can be used to make the bridge require encrypted messages to come from cross-signed devices, with trust-on-first-use validation of the cross-signing master key.
    • The encryption -> require option can be used to make the bridge ignore any unencrypted messages.
    • Key rotation settings can be configured with the encryption -> rotation config.

Improved

  • Improved/fixed handling of disappearing message timer changes.
  • Improved handling profile/contact names and prevented them from being downgraded (switching from profile name to contact name or phone number).
  • Updated contact list provisioning API to not block if signald needs to update profiles.
  • Trying to start a direct chat with a non-existent phone number will now reply with a proper error message instead of throwing an exception (thanks to @maltee1 in #265).
  • Syncing chat members will no longer be interrupted if one of the member profiles is unavailable (thanks to [@maltee1] in [#270]).
  • Group metadata changes are now bridged based on the event itself rather than resyncing the whole group, which means changes will use the correct ghost user instead of always using the bridge bot (thanks to @maltee1 in #283).
  • Added proper captcha error handling when registering (thanks to @maltee1 in #280).
  • Added user's phone number as topic in private chat portals (thanks to @maltee1 in #282).

Fixed

  • Call start notices work again

v0.3.0

20 Apr 07:31
Compare
Choose a tag to compare

Target signald version: v0.18.0

Important changes

  • Both the signald and mautrix-signal docker images have been changed to run as UID 1337 by default. The migration should work automatically as long as you update both containers at the same time.
  • Old homeservers which don't support the new /v3 API endpoints are no longer supported. Synapse 1.48+, Dendrite 0.6.5+ and Conduit 0.4.0+ are supported. Legacy r0 API support can be temporarily re-enabled with pip install mautrix==0.16.0. However, this option will not be available in future releases.

Added

  • Support for creating DM portals by inviting user (i.e. just making a DM the normal Matrix way).
  • Leaving groups is now bridged to Signal (thanks to @maltee1 in #245).
  • Signal group descriptions are now bridged into Matrix room topics.
  • Signal announcement group status is now bridged into power levels on Matrix (the group will be read-only for everyone except admins).
  • Added optional parameter to mark-trusted command to set trust level (instead of always using TRUSTED_VERIFIED).
  • Added option to use MSC2246 async media uploads.
  • Added provisioning API for listing contacts and starting private chats.

Improved

  • Dropped Python 3.7 support.
  • Files bridged to Matrix now include the size field in the file info.
  • Removed redundant msgtype field in sticker events sent to Matrix.
  • Users who have left the group on Signal will now be removed from Matrix too.

Fixed

  • Logging into the bridge with double puppeting no longer removes your Signal user's Matrix ghost from DM portals with other bridge users.
  • Fixed identity failure error message always saying "while sending message to None" instead of specifying the problematic phone number.
  • Fixed channel -> id field in m.bridge events.

v0.2.3

17 Feb 19:13
Compare
Choose a tag to compare

Target signald version: v0.17.0

N.B. This will be the last release to support Python 3.7. Future versions will require Python 3.8 or higher. In general, the mautrix bridges will only support the lowest Python version in the latest Debian or Ubuntu LTS.

Added

  • New v2 link API to provide immediate feedback after the QR code is scanned.

Improved

  • Added automatic retrying for failed Matrix->Signal reactions.
  • Commands using phone numbers will now try to resolve the UUID first (especially useful for pm so the portal is created with the correct ghost immediately)
  • Improved signald socket handling to catch weird errors and reconnect.

Fixed

  • Fixed catching errors when connecting to Signal (e.g. if the account was deleted from signald's database, but not the bridge's).
  • Fixed handling message deletions from Signal.
  • Fixed race condition in incoming message deduplication.