Mautrix Telegram Versions Save

A Matrix-Telegram hybrid puppeting/relaybot bridge

v0.15.1

4 months ago
  • Updated Telegram API to layer 169.
  • Updated Docker image to Alpine 3.19.
  • Fixed some potential cases where a portal room would be created for the relaybot even if ignore_unbridged_group_chat was enabled.
  • Fixed member sync in groups with hidden members causing puppeted Matrix users to be kicked even if they're still in the group.

v0.15.0

5 months ago
  • Removed support for MSC2716 backfilling.
  • Added add-contact and delete-contact commands.
  • Updated Telegram API layer to 166.
    • Includes receiving view-once media, blockquotes, quote replies and other such things
  • Fixed AuthKeyNotFound errors not being handled and causing users to get stuck in a non-logged-in state.

v0.14.2

7 months ago
  • Security: Updated Pillow to 10.0.1.
  • Added support for double puppeting with arbitrary as_tokens. See docs for more info.
  • Added support for sending webm and tgs files as stickers.
  • Updated to Telegram API layer 161.
  • Fixed cached usernames for Telegram users being cleared incorrectly, leading to mentions not being bridged as usernames.
  • Fixed reaction bridging failing if the server running the bridge was rebooted less than 12 hours ago.

v0.14.1

10 months ago

Added

  • Added option to delete megolm sessions that were received before the automatic ratcheting options were introduced.
  • Added config option to use IPv6 for Telegram connection (thanks to @exciler in #920).

Improved

  • Dropped support for Python 3.8.
  • Updated Docker image to Alpine 3.18.
  • Added timeout for forward backfills to prevent it from getting stuck permanently.

Fixed

  • Fixed bridge.filter.users config option not being read correctly.
  • Fixed proxy support to use python-socks instead of pysocks.

v0.14.0

11 months ago

Added

  • Added fallback messages for calls and premium gifts.
  • Added options to automatically ratchet/delete megolm sessions to minimize access to old messages.
  • Added option to not set room name/avatar even in encrypted rooms.
  • Implemented appservice pinging using MSC2659.
  • Added option to disable or filter bridging direct chats (thanks to @Steffo99 in #892).
  • Added options to specify different limits for forward and catchup backfilling depending on chat type.

Improved

  • Improved handling logouts and certain connection errors.
  • Changed reaction bridging to preserve timestamps.
  • Disabled creating portals for DMs that don't have any messages when sync_direct_chats is enabled.

Fixed

  • Fixed syncing mute status when portal is created through incoming message rather than in startup sync.
  • Fixed bridge incorrectly trusting member list and kicking users when supergroup has member list hidden.
  • Fixed sending messages after creating groups from Matrix using relaybot instead of puppet (thanks to @maltee1 in #902).

v0.13.0

1 year ago

Added

  • Added allow_contact_info config option to specify whether personal names and avatars for other users should be bridged.
    • The option is only safe to enable on single-user instances, using it anywhere else will cause ghost user profiles to flip back and forth between personal and default ones.
  • Added config option to notify Matrix room if bridging an incoming message fails.

Improved

  • Updated Docker image to Alpine 3.17.
  • Updated to Telegram API layer 152.
  • Improved handling users getting logged out.
  • Removed support for creating accounts, as Telegram only allows requesting SMS login codes on the official mobile clients now.
  • Replaced moviepy with calling ffmpeg directly for generating video thumbnails.

Fixed

  • Fixed handling Telegram chat upgrades when backfilling is enabled.
  • Fixed file transfers failing if transfering the thumbnail fails.
  • Fixed bridging unnamed files with unrecognized mime types.
  • Fixed enqueueing more backfill.
  • Fixed timestamps not being saved in telegram_file table.
  • Fixed issues with old events being replayed if the bridge was shut down uncleanly.

v0.12.2

1 year ago

Added

  • Added built-in custom emoji packs to allow reacting with any standard unicode emoji from Matrix (note that only premium users can use custom emojis).
  • Added infinite backfill using MSC2716.
    • The new system includes a backwards compatibility mechanism which uses the old method of just sending events to the room. By default, MSC2716 is not enabled and the legacy method will be used.

Improved

  • Redacting reactions on Matrix no longer removes the user's other reactions to the same message (premium users can have up to 3 reactions per message).
  • Changes to default user permissions on Telegram are now bridged.
  • Added database index to make reaction polling more efficient (thanks to @AndrewFerr in #862).

Fixed

  • Fixed provisioning API not working with URL-encoded parameters.

v0.12.1

1 year ago

Added

  • Support for custom emojis in reactions.
    • Like other bridges with custom emoji reactions, they're bridged as mxc:// URIs, so client support is required to render them properly.

Improved

  • The bridge will now poll for reactions to 20 most recent messages when receiving a read receipt. This works around Telegram's bad protocol that doesn't notify clients on reactions to other users' messages.
  • 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).
  • Moved environment variable overrides for config fields to mautrix-python. The new system also allows loading JSON values to enable overriding maps like login_shared_secret_map.

Fixed

  • ChatParticipantsForbidden is handled properly when syncing non-supergroup info.
  • Fixed some bugs with file transfers when using SQLite.
  • Fixed error when attempting to log in again after logging out.
  • Fixed QR login not working.
  • Fixed error syncing chats if bridging a message had previously been interrupted.

v0.12.0

1 year ago

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 resolving Telegram identifiers (like usernames).
  • Added support for bridging Telegram custom emojis to Matrix.
  • Added option to not bridge chats with lots of members.
  • Added option to include captions in the same message as the media to implement MSC2530. Sending captions the same way is also supported and enabled by default.
  • Added commands to kick or ban relaybot users from Telegram.
  • Added support for Telegram's disappearing messages.
  • Added support for bridging forwarded messages as forwards on Telegram.
    • Forwarding is not allowed in relay mode as the bot wouldn't be able to specify who sent the message.
    • Matrix doesn't have real forwarding (there's no forwarding metadata), so only messages bridged from Telegram can be forwarded.
    • Double puppeted messages from Telegram currently can't be forwarded without removing the fi.mau.double_puppet_source key from the content.
    • If forwarding fails (e.g. due to it being blocked in the source chat), the bridge will automatically fall back to sending it as a normal new message.
  • 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 handling the bridge user leaving chats on Telegram, and new users being added on Telegram.
  • Improved animated sticker conversion options: added support for animated webp and added option to convert video stickers (webm) to the specified image format.
  • Audio and video metadata is now bridged properly to Telegram.
  • Added database index on Telegram usernames (used when bridging username @-mentions in messages).
  • Changed /login/send_code provisioning API to return a proper error when the phone number is not registered on Telegram.
    • The same login code can be used for registering an account, but registering is not currently supported in the provisioning API.
  • Removed plaintext_highlights config option (the code using it was already removed in v0.11.0).
  • Enabled appservice ephemeral events by default for new installations.
    • Existing bridges can turn it on by enabling ephemeral_events and disabling sync_with_custom_puppets in the config, then regenerating the registration file.
  • Updated to API layer 144 so that Telegram would send new message types like premium stickers to the bridge.
  • Updated Docker image to Alpine 3.16 and made it smaller.

Fixed

  • Fixed command prefix in game and poll messages (thanks to @cynhr in #804).

v0.11.3

2 years ago

N.B. This release drops support for old homeservers which don't support the new /v3 API endpoints. 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

  • Added list-invite-links command to list invite links in a chat.
  • Added option to use MSC2246 async media uploads.
  • Provisioning API for listing contacts and starting private chats.

Improved

  • Dropped Python 3.7 support.
  • Telegram->Matrix message formatter will now replace t.me/c/chatid/messageid style links with a link to the bridged Matrix event (in addition to the previously supported t.me/username/messageid links).
  • Updated formatting converter to keep newlines in code blocks as \n instead of converting them to <br/>.
  • Removed max_document_size option. The bridge will now fetch the max size automatically using the media repo config endpoint.
  • Removed redundant msgtype field in sticker events sent to Matrix.
  • Disabled file logging in Docker image by default.
    • If you want to enable it, set the filename in the file log handler to a path that is writable, then add "file" back to logging.root.handlers.
  • Reactions are now marked as read when bridging read receipts from Matrix.

Fixed

  • Fixed !tg bridge throwing error if the parameter is not an integer
  • Fixed !tg bridge failing if the command had been previously run with an incorrectly prefixed chat ID (e.g. !tg bridge -1234567 followed by !tg bridge -1001234567).
  • Fixed bridge_matrix_leave config option not actually being used correctly.
  • Fixed public channel mentions always bridging into a user mention on Matrix rather than a room mention.
    • The bridge will now make room mentions if the portal exists and fall back to user mentions otherwise.
  • Fixed newlines being lost in unformatted forwarded messages.