Skip to content

Releases: mautrix/telegram

v26.04

16 Apr 15:23

Choose a tag to compare

Migration of SQLite databases has a known bug. If you're upgrading a legacy bridge that uses SQLite, use the main branch or wait for the next release

Release post: https://mau.fi/blog/2026-04-mautrix-release/

  • Rewrote bridge in Go using bridgev2 architecture.
    • To migrate the bridge, simply upgrade in-place from v0.15.3 or later. The database and config will be migrated automatically, although some parts of the config aren't migrated (e.g. log config, permission types specific to the legacy bridge). Taking backups beforehand is always recommended.
    • It is recommended to check the config file after upgrading. If you have prevented the bridge from writing to the config, you should update it manually.
    • The old-style relaybot is not yet supported and will not be migrated. Setups using the relaybot will have to manually log in as a bot and use set-relay to enable the generic relay mode. The default_relays config option can be used to allow users to bridge chats through the relay user to emulate the old-style relaybot.
    • For multi-user bridges, normal (mini/non-super) group portal rooms are no longer shared, which means every Matrix user will have their own room. The old room will be assigned to one Matrix user randomly and others will get a new room created automatically when receiving a message in the chat or when using the !tg sync-chats command.
      • If you want shared portals, upgrade the affected groups to supergroups. You can upgrade groups using the !tg upgrade command, or in the official apps by enabling any setting that requires a supergroup (e.g. add a member tag for any admin).
    • Management room status will not be migrated. Use !tg set-management-room after the upgrade to re-allow commands without the !tg prefix in your private chat with the bridge bot.
    • Any migration issues should be reported in the Matrix room linked in the readme.
  • Notable new features include:
    • Topic groups are now bridged as spaces
    • Entire sticker and emoji packs can be synced in both directions

Note: the last (unreleased) version of the legacy Python bridge is available in the python-final tag.

v0.15.3

16 Jul 10:57

Choose a tag to compare

  • Updated Telegram API to layer 204.
  • Added support for MSC4190.
  • Enabled captions by default, as they are now supported by most clients.
    • Existing configs will still need to enable caption_in_message manually.
  • Changed new room creation to hardcode room v11 to avoid v12 rooms being created before proper support for them can be added.
  • Fixed bridging sticker messages with partial quote replies from Telegram.
  • Fixed text in poll bridging.
  • Disabled kicking unauthenticated users from portals.

v0.15.2

16 Jul 10:53

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

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

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

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

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

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

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

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.