Skip to content

Releases: mautrix/telegram

v0.15.2

16 Jul 10:53
Compare
Choose a tag to compare
  • Dropped support for Python 3.9.
  • Updated Telegram API to layer 183.
  • Added support for authenticated media downloads.
  • Added support for receiving reactions when using a bot account.
  • Added option to limit file size by chat type.
  • Fixed reply bridging breaking in some cases.

v0.15.1

26 Dec 16:41
Compare
Choose a tag to compare
  • 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

26 Nov 18:26
Compare
Choose a tag to compare
  • 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

19 Sep 17:20
Compare
Choose a tag to compare
  • 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

26 Jun 13:24
Compare
Choose a tag to compare

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

26 May 09:37
Compare
Choose a tag to compare

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

26 Feb 15:32
Compare
Choose a tag to compare

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

26 Nov 17:59
Compare
Choose a tag to compare

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

26 Sep 18:46
Compare
Choose a tag to compare

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

26 Aug 13:33
Compare
Choose a tag to compare

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).