Skip to content

Releases: transmission/transmission

4.1.1

20 Feb 04:45
56442e2

Choose a tag to compare

Transmission 4.1.1

This is Transmission 4.1.1, a bugfix release.

4.1.0 was in development for over a year, so we've gotten a lot of good feedback, including actionable bug reports, since it was released three weeks ago. 4.1.1 fixes 20+ bugs and also has some performance improvements. All users are encouraged to upgrade to this version.

This progress was possible because of good bug reports and performance logs reported by users. Thanks, and keep them coming!

What's New in 4.1.1

All Platforms

  • Fixed a 4.1.0 bug that failed to report some filesystem errors to RPC clients who were querying the system's free space available. (#8258)
  • Fixed a 4.1.0 bug that kept a a torrent's updated queue position from being shown. (#8298)
  • Fixed a 4.1.0 bug that caused torrents' queuing order to sometimes be lost between sessions. (#8306)
  • Fixed "assertion failed: no timezone" error on OpenSolaris. (#8358)
  • Fixed a 4.0.0 bug that displayed the wrong mime-type icon for mp4 video files. (#8411)
  • Hardened .torrent parsing by exiting sooner if pieces has an invalid size. (#8412)
  • Reverted a 4.1.0 RPC change that broke some 3rd party code by returning floating-point numbers, rather than integers, for speed limit fields. (#8416)
  • Fixed crash that could happen if a user paused a torrent and edited its tracker list at the same time. (#8478)
  • Fixed 4.1.0 crash on arm32 by switching crc32 libraries to Mark Madler's crcany. (#8529)
  • Require UTF-8 filenames in .torrent files, as required by the BitTorrent spec. (#8541)
  • Fixed crash that could occur when parsing a .torrent file with a bad pieces key. (#8542)
  • Fixed potential file descriptor leak when launching scripts on POSIX systems. (#8549)
  • Changed the network traffic algorithm to spread bandwidth more evenly amongst peers. (#8259)
  • Improved laggy user interface when bandwidth usage is high. (#8454)

macOS Client

  • Fixed a 4.1.0 crash that occurred if deleting a torrent's files on macOS returned a system error. (#8275)
  • Fixed a crash in the "Rename File ..." dialog when trying to rename a torrent right when the torrent finished downloading. (#8425)
  • Fixed 4.1.0 crash when removing a torrent that was being show in the Inspector. (#8496)
  • Improved performance of internal Torrent lookup code. (#8505)
  • Improved responsiveness when scrolling the torrent list with keyboard navigation. (#8323)

Qt Client

  • Fixed a 4.1.0 bug where the RPC error response arguments were not handled. (#8414)
  • Fixed a long-standing bug that wouldn't let file:/// URIs be added from the command line. (#8448)
  • Fixed broken icons in the torrent list on Windows. (#8456)

GTK Client

  • Fixed a 4.1.0-beta.5 assertion failure when fetching a blocklist failed on a system compiled with GLIBCXX_ASSERTIONS enabled. (#8273)
  • Fixed a 4.1.0 bug that wouldn't let magnet links be added from the "Add URL" dialog. (#8277)
  • Fixed a 4.1.0 bug that broke keyboard shortcuts when built with GTK3. (#8293)
  • Fixed a crash that could happen when removing some torrents. (#8340)
  • Fixed a 4.1.0 bug that showed the wrong encryption mode being shown in the Preferences dialog. (#8345)
  • Fixed a 4.0.x bug that prevented a handful of strings from being marked for translation. (#8350)
  • Fixed a 4.1.0 packaging error that prevented the Qt and GTK clients from being installed side-by-side on Arch. (#8387)
  • Fixed a 4.1.0 bug that wouldn't let magnet links be added from the command line. (#8415)

Web Client

  • Reverted a 4.1.0 change that merged the "Remove torrent" and "Trash torrent" confirmation dialogs into a single dialog. (#8355)
  • Fixed a 4.1.0 bug that showed a "Connection failed" popup when opening the "Open torrent" dialog while the current download directory path was invalid. (#8386)

Everything Else

4.1.0

27 Jan 23:30
2724011

Choose a tag to compare

Transmission 4.1.0

This is Transmission 4.1.0. We've been working on this release for over
a year now, and we're excited to finally get it over the finish line!

What's New in 4.1.0

Highlights

  • Improved µTP download performance. (#6508)
  • Added support for IPv6 and dual-stack UDP trackers. (#6687)
  • Support trackers that only support the old BEP-7 with &ipv4= and &ipv6=. (#7481)
  • New JSON-RPC 2.0-compliant RPC API. (#7269)
  • Added optional sequential downloading. (#4795)
  • Use native icons for menus and toolbars: SF Symbols on macOS, Segoe Fluent on Windows 11, Segoe MDL2 on Windows 10, and XDG standard icon names everywhere else. (#7819, Qt Client)
  • Fixed 4.0.6 bug where Transmission might spam HTTP tracker announces. (#7086)

All Platforms

  • Improved libtransmission code to use less CPU. (#4876, #5645, #5715, #5734, #5740, #5792, #6103, #6111, #6325, #6549, #6589, #6712, #7027, #7744, #7800)
  • Avoid unnecessary heap memory allocations. (#5519, #5520, #5522, #5527, #5540, #5649, #5666, #5672, #5676, #5720, #5722, #5725, #5726, #5768, #5788, #5830, #6542)
  • Slightly reduced latency when sending protocol messages to peers. (#5394)
  • Added the option preferred_transport to settings.json, so that users can choose their preference between µTP and TCP. (#5939)
  • Return X-Transmission-Rpc-Version header in RPC HTTP 409 response to indicate JSON-RPC support. (#7958)
  • Added an option to verify a torrent immediately after it finishes downloading. (#4178)
  • Feat: add stats for known peers, not just connected ones. (#4900)
  • Added support for using a proxy server for web connections. (#5038, #7486)
  • Added ability to cache IP addresses used in global communications, and use it to fix UDP6 warning log spam. (#5329, #5510)
  • Updated the torrent creator's default piece size to handle very large torrents better. (#5615)
  • Added support for sending an ipv4 parameter during the Extension Protocol handshake. (#5643)
  • Setting "cache-size-mb": 0 in settings.json now disables the disk write cache. (#5668)
  • Improved libtransmission code to use less CPU and RAM. (#5801)
  • The WebUI now does separate port checks for IPv4 and IPv6. (#5953)
  • Transmission now checks if local files exists after setting torrent location. (#5978)
  • Added forced variant of the "Verify Local Data" context menu item to WebUI. (#5981)
  • Improved handling of plaintext and MSE handshakes. (#6025)
  • If a torrent contains empty (zero byte) files, create them when starting the torrent. (#6232)
  • Added optional sequential downloading. (#6450, #6746, #6893, #7047)
  • The Qt and GTK Client now does separate port checks for IPv4 and IPv6. (#6525)
  • Improved DHT performance. (#6569, #6695)
  • Added advanced sleep-per-seconds-during-verify setting to settings.json. (#6572)
  • Improved µTP download performance. (#6586)
  • Added support for IPv6 Local Peer Discovery. (#6700)
  • Allow port forwarding state to automatically recover from error. (#6718)
  • Save upload/download queue order between sessions. (#6753, #7332)
  • Added BEP-21 downloader count to tr_tracker_view and RPC. (#6936)
  • Make client reqq configurable. (#7030)
  • Daemon log timestamps are now in local ISO8601 format. (#7057)
  • Log the reason when the RPC server rejects requests. (#7114)
  • Added peer traffic statistics to torrent-get rpc method. (#7172)
  • Added bytesCompleted field to torrent-get rpc call. (#7173)
  • Deprecate tcp-enabled and udp-enabled in favour of preferred_transports. (#7473)
  • Added raw PeerID to RPC interface. (#7514)
  • IPv4 patterns in the RPC whitelist can now match with IPv4-mapped IPv6 addresses. (#7523)
  • torrent_get.wanted is now an array of booleans in the JSON-RPC API. (#7997)
  • Encryption mode in settings.json and RPC are now serialized to the same set of strings. (#8032)
  • Fixed crash in tr_peerMgrPeerStats(). (#5279)
  • Fixed "no such file or directory" warning when adding a magnet link. (#5426)
  • Fixed bug that caused the wrong decimal separator to be used in some locales. (#5444)
  • Fixed bug in sending torrent metadata to peers. (#5460)
  • Fixed filename collision edge case when renaming files. (#5563)
  • Fixed locale errors that broke number rounding when displaying statistics, e.g. upload / download ratios. (#5587)
  • In RPC responses, change the default sort order of torrents to match Transmission 3.00. (#5604)
  • Improved handling of multiple connections from the same IP address. (#5619)
  • Always use a fixed-length key query in tracker announces. This isn't required by the spec, but some trackers rely on that fixed length because it's co...
Read more

4.1.0-beta.5

06 Jan 03:18
11d3fc6

Choose a tag to compare

4.1.0-beta.5 Pre-release
Pre-release

Transmission 4.1.0-beta.5

This is Transmission 4.1.0-beta.5. We're now in feature freeze for 4.1.0 -- testers and feedback are encouraged!

What's New in 4.1.0-beta.5

Highlights

  • Fixed 4.1.0-beta.1 bug where some downloads could get stuck for a long time. (#7899)
  • Fixed 4.1.0-beta.4 bug that broke icons on Windows. (#7931)
  • Fixed 4.1.0-beta.4 issue that included backwards-incompatible keys in the settings file. (#7917, #7918, #7932, #7995, #8002)
  • Return X-Transmission-Rpc-Version header in RPC HTTP 409 response to indicate JSON-RPC support. (#7958)

All Platforms

  • Fixed 4.1.0-beta.1 bug where torrents with unaligned piece and block boundaries could get stuck at 99%. (#7944)
  • Fixed intermittent crashes on macOS and GTK app. (#7948)
  • Reject incoming BT data if they are not selected for download. (#7866)
  • Fixed minor 4.1.0 beta regression to honor the sleep_per_seconds_during_verify setting when verifying local data. (#7870)
  • Fixed remote RPC bug where querying recently_active torrents missed some torrents. (#8029)
  • torrent_get.wanted is now an array of booleans in the JSON-RPC API. (#7997)
  • Encryption mode in settings.json and RPC are now serialized to the same set of strings. (#8032)
  • Renamed setting to cache_size_mib to reflect the correct size units. (#7971)
  • Renamed peer_socket_tos to peer_socket_diffserv. (#8004)
  • Deprecated session_get.rpc_version and session_get.rpc_version_minimum in favour of session_get.rpc_version_semver in RPC. (#8022)

macOS Client

  • Fixed crash when opening the messages log. (#8035)
  • Fixed re-opening the filter bar is showing an incorrect selected filter. (#7844)
  • Removed menu icons on older Macs. (#7994)

Qt Client

  • Fixed build script bug that could cause extra instances of Transmission to launch on Windows. (#7841)
  • Fixed "sequence not ordered" assertion error in debug builds. (#8000)
  • Fixed a Qt API deprecation warning when building with Qt >= 6.13. (#7940)
  • Raised the minimum Qt5 version to 5.15. (#7943)

Daemon

  • Deprecated tcp-enabled and udp-enabled in favour of preferred_transports. (#7988)

transmission-remote

  • transmission-remote --blocklist-update now prints blocklist size after update. (#8021)
  • Fixed layout bug that caused columns to be misaligned when transfer speed was >= 10MB. (#8019)
  • Deprecated --(no-)utp in transmission-remote. (#7990)

Everything Else

  • Updated documentation. (#8039)

Thank You!

Last but certainly not least, a big Thank You to these people who contributed to this release:

Contributions to All Platforms:

  • @nevack (Dzmitry Neviadomski):
  • @reardonia (reardonia):
  • @tearfur (Yat Ho):
    • Code review. (#7877, #7883, #7892, #7910, #7917, #7918, #7923, #7932, #7953, #7954, #7956, #7961, #7985, #8012)
    • Reject incoming BT data if they are not selected for download. (#7866)
    • Fixed minor 4.1.0 beta regression to honor the sleep_per_seconds_during_verify setting when verifying local data. (#7870)
    • Fix: FTBFS in C++20. (#7880)
    • Perf: use iterator range insert in Wishlist::next. (#7890)
    • Fixed 4.1.0-beta.1 bug where some downloads could get stuck for a long time. (#7899)
    • Fix: only shrink wishlist block span if previous piece is wanted. (#7900)
    • Fix: FTBFS with rapidjson 1.1.0 release on GCC < 12. (#7933)
    • Fixed 4.1.0-beta.1 bug where torrents with unaligned piece and block boundaries could get stuck at 99%. (#7944)
    • Fix: add client_has_piece check to recalculate_wanted_pieces. (#7945)
    • Refactor: re-use recalculate_wanted_pieces logic in wishlist constructor. (#7946)
    • Fixed intermittent crashes on macOS and GTK app. (#7948)
    • Refactor: use api-compat for settings.json. (#7950)
    • Return X-Transmission-Rpc-Version header in RPC HTTP 409 response to indicate JSON-RPC support. (#7958)
    • Renamed setting to cache_size_mib to reflect the correct size units. (#7971)
    • Refactor: use apicompat for bandwidth-groups.json. (#7972)
    • Feat: generic support for optional fields in serializer. (#7979)
    • Feat: sync the values of preferred_transports and *_enabled. (#7980)
    • Fixed 4.1.0-beta.4 issue that included backwards-incompatible keys in the settings file. (#7995)
    • torrent_get.wanted is now an array of booleans in the JSON-RPC API. (#7997)
    • Renamed peer_socket_tos to peer_socket_diffserv. (#8004)
    • Fix: rpcimpl array size. (#8014)
    • Fix: detect is_torrent in rpc response too. (#8015)
    • Fix: discard any non-int tag when converting to tr4. (#8017)
    • Fix: dedupe Access-Control-Expose-Headers header. (#8018)
    • Deprecated session_get.rpc_version and session_get.rpc_version_minimum in favour of session_get.rpc_version_semver in RPC. (#8022)
    • Fixed remote RPC bug where querying recently_active torrents missed some torrents. (#8029)
    • Encryption mode in settings.json and RPC are now serialized to the same set of strings. (#8032)
    • Fix: remove block from wishlist when received. (#8042)
    • Fix: optional serializer edge cases. (#8044)
    • Fix: wishlist edge case when got bad piece in unaligned torrents. (#8047)
    • Fix: unconst variable to be moved. (#8048)

Contributions to macOS Client:

Read more

4.1.0-beta.4

04 Dec 21:47
c92b42d

Choose a tag to compare

4.1.0-beta.4 Pre-release
Pre-release

Transmission 4.1.0-beta.4

This is Transmission 4.1.0-beta.4. We're not in feature freeze yet,
so this release includes some new features as well as bugfixes and
performance improvements.

What's New in 4.1.0-beta.4

Highlights

  • Unify RPC and settings.json strings to snake_case, backwards compatible. (#7108)
  • New JSON-RPC 2.0-compliant RPC API. (#7269)
  • Use native icons for menus and toolbars: SF Symbols on macOS, Segoe Fluent on Windows 11, Segoe MDL2 on Windows 10, and XDG standard icon names everywhere else. (#7819, Qt Client)

All Platforms

  • Added an option to verify a torrent immediately after it finishes downloading. (#4178)
  • Added BEP-21 downloader count to tr_tracker_view and RPC. (#6936)
  • Added peer traffic statistics to torrent-get rpc method. (#7172)
  • Added bytesCompleted field to torrent-get rpc call. (#7173)
  • Deprecate tcp-enabled and udp-enabled in favour of preferred_transports. (#7473)
  • Added raw PeerID to RPC interface. (#7514)
  • IPv4 patterns in the RPC whitelist can now match with IPv4-mapped IPv6 addresses. (#7523)
  • Improved libtransmission code to use less CPU. (#7800)
  • Support dual stack by manually creating and binding socket on Windows platform. (#6548)
  • Generate imported targets for MbedTLS. (#7631)
  • Added support for libevent 2.2.1-alpha-dev. (#7765)
  • Bumped miniupnpc from 2.2.8 to 2.3.3. (#7783)
  • Bumped {fmt} to 12.1.0. (#7793)

macOS Client

  • Fixed missing tooltips for Group rows in Torrent Table View. (#7828)

Qt Client

  • Added the ability to use a custom URL path when connecting to remote Transmission servers. (#7561)

Web Client

  • Implemented a context menu for file list in web app making way to rename or copy name of individual file. (#7389)
  • Updated turtle for web app. (#6940)
  • Added checkbox to delete data while removing torrents. (#7000)
  • Gave labels to the mainwin buttons for web client. (#6985)

transmission-remote

  • Added support to download sequentially from a specific piece. This can enable apps to seek within media files for streaming use cases. (#7808, #7809)
  • Fixed 4.1.0-beta.1 issue that displayed incorrect speeds when using transmission-remote -pi. (#7796)

Everything Else

Thank You!

Last but certainly not least, a big Thank You to these people who contributed to this release:

Contributions to All Platforms:

Contributions to macOS Client:

Contributions to Qt Client:

  • @htmltiger:
    • Added the ability to use a custom URL path when connecting to remote Transmission servers. ([#7561](http...
Read more

4.1.0-beta.3

06 Nov 11:29
f20fd5e

Choose a tag to compare

4.1.0-beta.3 Pre-release
Pre-release

Transmission 4.1.0-beta.3

This is Transmission 4.1.0-beta.3. We're not in feature freeze yet, so this release includes some new features as well as bugfixes and performance improvements.

What's New in 4.1.0-beta.3

All Platforms

  • Added support for using a proxy server for web connections. (#7486)
  • When downloading in sequential mode, flush pieces to disk as soon as they're completed and pass their checksum test. This helps apps that are trying to use the data in realtime, e.g. streaming media. (#7489)
  • Respect the min interval and interval keys from any tracker responses. (#7493)
  • Announce port-forwarded peer port instead of local peer port on DHT. (#7511)
  • Fixed 4.1.0-beta.1 bug where UDP tracker announces were delayed for 10+ seconds on some systems. (#7634)
  • Fixed 4.1.0-beta.1 bug where opening the Torrent Properties window while downloading would hang the Qt client. (#7638)
  • Fixed 4.1.0-beta.2 bug that could crash when a peer's client name had invalid UTF-8. (#7667)
  • Improved libtransmission code to use less CPU. (#7744)
  • Deprecated the RPC field torrent-get.manualAnnounceTime. (#7497)

macOS Client

  • Reimplemented QuickLook previews for torrent files with Quick Look preview extension API on macOS 12+. (#7213)
  • Use modern macOS APIs to prevent idle system sleep and add support for Low Power Mode. (#7543)
  • Updated app icon for Liquid Glass. (#7736)

Qt Client

  • Use custom colored progress bars in Qt client for torrent states differentiation. (#7756)

Web Client

  • Added new options for web client to filter torrents by their privacy or error status. (#6977)
  • Added accept torrent files in web. (#7683)
  • Fixed filtering torrents by tracker after a torrent's tracker list is edited. (#7761)
  • Added waiting 1/4 seconds of typing in the search bar before executing and a new button to clear the search. (#6948)
  • Updated viewport-sensitive layout and style to uniform across browsers of varying viewport. (#7328)

Daemon

  • Use Type=notify-reload in the systemd service file. (#7570)
  • The daemon systemd service file now uses the CMake install prefix. (#7571)

transmission-remote

  • Expose the torrent-get.percentDone key in transmission-remote. (#7622)

Everything Else

  • Require CMake 3.16.3 or higher to build Transmission. (#7576)
  • Configuring Transmission's CMake project no longer inserts third-party submodules to CMake's user package registry. (#7648)
  • Sync translations. (#7768)

Thank You!

Last but certainly not least, a big Thank You to these people who contributed to this release:

Contributions to All Platforms:

  • @flowerey (flower):
  • @G-Ray (Geoffrey Bonneville):
    • When downloading in sequential mode, flush pieces to disk as soon as they're completed and pass their checksum test. This helps apps that are trying to use the data in realtime, e.g. streaming media. (#7489)
  • @nevack (Dzmitry Neviadomski):
  • @reardonia (reardonia):
  • @tearfur (Yat Ho):
    • Code review. (#7489, #7667, #7738)
    • Feat: use canonical peer priority to decide which peers to keep. (#6981)
    • Refactor: use new tr_variant API for stats.json. (#7098)
    • Refactor: prioritise peers slots for downloading torrents. (#7306)
    • Added support for using a proxy server for web connections. (#7486)
    • Respect the min interval and interval keys from any tracker responses. (#7493)
    • Refactor: announcer code housekeeping. (#7496)
    • Deprecated the RPC field torrent-get.manualAnnounceTime. (#7497)
    • Feat: allow optional arguments in tr_getopt(). (#7510)
    • Announce port-forwarded peer port instead of local peer port on DHT. (#7511)
    • Fix: ignore whitespaces in whitelist. (#7522)
    • Fix: correctly get Windows socket error codes in get_source_address. (#7524)
    • Refactor: add more details to logs in ip cache. (#7525)
    • Chore: bump libnatpmp. (#7536)
    • Chore: bump rapidjson. (#7537)
    • Chore: bump googletest. (#7538)
    • Fix: Band-Aid fix for utp speed limit. (#7541)
    • Refactor: removed redundant type check in tr_ip_cache::set_global_addr(). (#7551)
    • Chore: bump libpsl. (#7575)
    • Chore: bump dht. (#7577)
    • Chore: bump libevent. (#7578)
    • Fix: process failure response from a non-BEP-7 HTTP announcement. (#7580)
    • Fix: accept either one of udp announce response. (#7583)
    • Fix: load .torrent then .magnet. (#7585)
    • Chore: silence clang-tidy warnings. (#7586)
    • Fix: remove duplicated mime types and prefer iana source. (#7590)
    • Fixup! chore: move away from fmt/core.h (#7557). (#7595)
    • Chore: bump {fmt} to 11.2.0 and fix compatibility. (#7612)
    • Fix: include wolfssl library configurations header. (#7632)
    • Fixed 4.1.0-beta.1 bug where UDP tracker announces were delayed for 10+ seconds on some systems. (#7634)
    • Fixed 4.1.0-beta.1 bug where opening the Torrent Properties window while downloading would hang the Qt client. (#7638)
    • Fix: FTBFS for libevent <= 2.1.8. (#7640)
    • Chore: implement TR_CONSTEXPR23. (#7649)
    • Build: conditionally compile utils.mm using generator expression. (#7704)
    • Fix: update wishlist when files wanted changed. ([#7733](http...
Read more

4.1.0-beta.2

12 Mar 11:01
ac5c9e0

Choose a tag to compare

4.1.0-beta.2 Pre-release
Pre-release

Transmission 4.1.0-beta.2

This is Transmission 4.1.0-beta.2. We're not in feature freeze yet,
so this release includes some new features as well as bugfixes and
performance improvements.

What's New in 4.1.0-beta.2

Highlights

  • Support trackers that only support the old BEP-7 with &ipv4= and &ipv6=. (#7481)

All Platforms

  • Added support for using a proxy server for web connections. (#5038)
  • Added optional sequential downloading. (#6893, #7047)
  • Disconnect blocklisted peers immediately upon blocklist update. (#7167)
  • New files are assigned a file mode per the process umask defined in settings.json. (#7195)
  • Harden the HTTP tracker response parser. (#7326)
  • Fixed an issue where the speed limits are not effective below 16KiB/s. (#7339)
  • Added workaround for crashes related to Curl bug 10936. (#7416)
  • Added a workaround for users affected by Curl bug 6312. (#7447)
  • Better utilize high Internet bandwidth. (#7029)
  • Save upload/download queue order between sessions. (#7332)

macOS Client

  • Fixed the context menu's appearance in compact mode. (#7350)
  • Added Afrikaans and Greek translations. (#7477)

GTK Client

  • Fixing a bug in adding torrent in GTK application. (#7247)

Web Client

  • Added a new alert message of a problem when renaming torrent or file name. (#7394)
  • Fixed a bug inflating per-torrent rows by long torrent names in compact view. (#7336)
  • Fixed incorrect text entry sensitivity when sessions changed. (#7346)
  • Added column mode for viewport unconstrained browsers. (#7051)
  • Fixed an issue where Transmission web's custom context menu does not close when clicking on some outside element. (#7296)
  • Implemented a new popup management system for web client to support multiple popups in a hierarchy-like system. (#7297)

Daemon

  • Added optional sequential downloading. (#7048)

transmission-remote

  • Improved error logging. (#7034)

Thank You!

Last but certainly not least, a big Thank You to these people who contributed to this release:

Contributions to All Platforms:

Contributions to macOS Client:

Contributions to Qt Client:

Contributions to GTK Client:

Read more

4.1.0-beta.1

13 Dec 02:37
c3a8106

Choose a tag to compare

4.1.0-beta.1 Pre-release
Pre-release

Transmission 4.1.0-beta.1

This is the first beta for 4.1.0! It's been in development in parallel with the 4.0.x bugfix series since February 2023's release of 4.0.0 and has major code changes relative to 4.0.x.

What's New in 4.1.0-beta.1

Highlights

  • Added optional sequential downloading. (#4795)
  • Added the option preferred-transport to settings.json, so that users can choose their preference between µTP and TCP. (#5939)
  • Improved µTP download performance. (#6508)
  • Added support for IPv6 and dual-stack UDP trackers. (#6687)
  • Fixed 4.0.6 bug where Transmission might spam HTTP tracker announces. (#7086)

All Platforms

  • Added ability to cache IP addresses used in global communications, and use it to fix UDP6 warning log spam. (#5329, #5510)
  • Added support for sending an ipv4 parameter during the Extension Protocol handshake. (#5643)
  • Setting "cache-size-mb": 0 in settings.json now disables the disk write cache. (#5668)
  • Improved libtransmission code to use less CPU and RAM. (#5801)
  • Transmission now checks if local files exists after setting torrent location. (#5978)
  • Improved handling of plaintext and MSE handshakes. (#6025)
  • If a torrent contains empty (zero byte) files, create them when starting the torrent. (#6232)
  • Improved DHT performance. (#6569, #6695)
  • Added advanced sleep-per-seconds-during-verify setting to settings.json. (#6572)
  • Improved µTP download performance. (#6586)
  • Added support for IPv6 Local Peer Discovery. (#6700)
  • Allow port forwarding state to automatically recover from error. (#6718)
  • Save upload/download queue order between sessions. (#6753)
  • Make client reqq configurable. (#7030)
  • Daemon log timestamps are now in local ISO8601 format. (#7057)
  • Fixed crash in tr_peerMgrPeerStats(). (#5279)
  • Fixed bug in sending torrent metadata to peers. (#5460)
  • Avoid unnecessary heap memory allocations. (#5519, #5520, #5522, #5527, #5540, #5649, #5666, #5672, #5676, #5720, #5722, #5725, #5726, #5768, #5788, #5830)
  • Fixed filename collision edge case when renaming files. (#5563)
  • Fixed locale errors that broke number rounding when displaying statistics, e.g. upload / download ratios. (#5587)
  • In RPC responses, change the default sort order of torrents to match Transmission 3.00. (#5604)
  • Improved handling of multiple connections from the same IP address. (#5619)
  • Always use a fixed-length key query in tracker announces. This isn't required by the spec, but some trackers rely on that fixed length because it's common practice by other BitTorrent clients. (#5652)
  • Fixed minor performance bug that caused disk writes to be made in smaller batches than intended. (#5671)
  • Fixed potential Windows crash when getstdhandle() returns NULL. (#5675)
  • Modified LTEP to advertise PEX support more proactively, and added an sanity check for magnet metadata exchange. (#5783)
  • Fixed 4.0.0 bug where the port numbers in LPD announces are sometimes malformed. (#5825)
  • Fixed a bug that prevented editing the query part of a tracker URL. (#5871)
  • Fixed a bug where Transmission may not announce LPD on its listening interface. (#5875)
  • Fixed a bug that prevented editing trackers on magnet links. (#5957)
  • Fixed HTTP tracker announces and scrapes sometimes failing after adding a torrent file by HTTPS URL. (#5969)
  • Fixed blocklist error seen on some Synology devices due to a bug in tr_sys_path_copy(). (#5974)
  • Run peerMgrPeerStats in session thread. (#5992)
  • In some locales, some JSON stirngs were incorrectly escaped. (#6005)
  • Fixed 1.60 bug where low priority torrents behaved as if they had a normal priority. (#6079)
  • Fixed 4.0.4 regression that could cause slower downloads when upload speed limits were enabled. (#6082)
  • Fixed 4.0.0 bug where the IP address field in UDP announces were not encoded in network byte order. [BEP-15]. (#6126)
  • Improved parsing HTTP tracker announce response. (#6223)
  • Fixed 4.0.0 bugs where some RPC methods don't put torrents in recently-active anymore. (#6355, #6405)
  • Fixed error when using mbedtls crypto backend: "CTR_DRBG - The requested random buffer length is too big". (#6379)
  • Fixed 4.0.0 bug that caused some user scripts to have an invalid TR_TORRENT_TRACKERS environment variable. (#6434)
  • Added optional sequential downloading. (#6450, #6746)
  • Fixed 4.0.0 bug where alt-speed-enabled had no effect in settings.json. (#6483)
  • Fixed 4.0.0 bug where the GTK client's "Use authentication" option was not saved between's sessions. (#6514)
  • Fixed 4.0.0 bug where secondsDownloading and secondsSeeding will be reset when stopping the torrent. (#6844)
  • Fixed 4.0.0 bug where the filename for single-file torrents aren't sanitized. (#6846)
  • Partial file suffixes will now be updated after torrent verification. (#6871)
  • Limit the number of bad pieces to accept from a webseed before banning it. (#6875)
  • Fixed a 4.0.0 bug where 2.20-3.00 torrent piece timestamps saved in the resume file aren't loaded correctly. (#6896)
  • Fixed a bug that could discard BT messages that immediately followed a handshake. (#6913)
  • Various bug fixes and improvements related to PEX flags. (#6917)
  • Fixed a bug where the turtle icon is active but not effective on starting Transmission. ([#6937](#6937...
Read more

4.0.6

29 May 23:27
38c1649

Choose a tag to compare

Transmission 4.0.6

This is a bugfix-only release. Everyone's feedback on 4.0.x has been very helpful -- thanks for all the suggestions, bug reports, and pull requests!

What's New in 4.0.6

All Platforms

  • Improved parsing HTTP tracker announce response. (#6223)
  • Fixed 4.0.0 bug that caused some user scripts to have an invalid TR_TORRENT_TRACKERS environment variable. (#6434)
  • Fixed 4.0.0 bug where alt-speed-enabled had no effect in settings.json. (#6483)
  • Fixed 4.0.0 bug where the GTK client's "Use authentication" option was not saved between's sessions. (#6514)
  • Fixed 4.0.0 bug where the filename for single-file torrents aren't sanitized. (#6846)

macOS Client

  • Fix: Sparkle support for handling beta version updates. (#5263)
  • Fixed app unable to start when having many torrents and TimeMachine enabled. (#6523)
  • Fix: Sparkle Version Comparator. (#6623)

Qt Client

  • Fixed 4.0.0 bug where piece size description text and slider state in torrent creation dialog are not always up-to-date. (#6516)

GTK Client

  • Fixed build when compiling with GTKMM 4. (#6393)
  • Added developer name to metainfo files. (#6598)
  • Added the launchable desktop-id to metainfo files. (#6779)
  • Fixed build when compiling on BSD. (#6812)

Web Client

  • Fixed a 4.0.0 bug where the infinite ratio symbol was displayed incorrectly in the WebUI. (#6491, #6500)
  • Fixed layout issue in speed display. (#6570)
  • General UI improvement related to filterbar and fixes download/upload speed info wrap. (#6761)

Daemon

  • Fixed a couple of logging issues. (#6463)

Everything Else

  • Updated flatpak release metainfo. (#6357)
  • Fixed libtransmission build on very old cmake versions. (#6418)
  • UTP peer connections follow user-defined speed limits better now. (#6551)
  • Only use a single concurrent queue for timeMachineExclude instead of one queue per torrent (#6523). (#6558)
  • Fixed 4.0.5 bug where svg and png icons in the WebUI might not be displayed. (#6563)
  • Fixed 4.0.0 bug where alt-speed-enabled had no effect in settings.json. (#6564)
  • Fixed 4.0.0 bugs where some RPC methods don't put torrents in recently-active anymore. (#6565)
  • Improved parsing HTTP tracker announce response. (#6567)
  • Fixed compatibility with clang-format 18. (#6690)
  • Fixed build when compiling with mbedtls 3.x . (#6823)

Thank You!

Last but certainly not least, a big Thank You to these people who contributed to this release:

Contributions to All Platforms:

  • @tearfur (Yat Ho):
    • Improved parsing HTTP tracker announce response. (#6223)
    • Fix: add check for EWOULDBLOCK. (#6350)
    • Fixed 4.0.0 bug where alt-speed-enabled had no effect in settings.json. (#6483)
    • Fixed 4.0.0 bug where the GTK client's "Use authentication" option was not saved between's sessions. (#6514)
    • Fixed 4.0.0 bug where the filename for single-file torrents aren't sanitized. (#6846)

Contributions to macOS Client:

Contributions to GTK Client:

Contributions to Web Client:

Contributions to Everything Else:

  • @nevack (Dzmitry Neviadomski):
  • @orangepizza:
    • Fixed build when compiling with mbedtls 3.x . (#6823)
  • @tearfur (Yat Ho):
    • UTP peer connections follow user-defined speed limits better now. (#6551)
    • Fixed 4.0.5 bug where svg and png icons in the WebUI might not be displayed. (#6563)
    • Fixed 4.0.0 bug where alt-speed-enabled had no effect in settings.json. (#6564)
    • Fixed 4.0.0 bugs where some RPC methods don't put torrents in recently-active anymore. (#6565)
    • Fix: add check for EWOULDBLOCK (#6350). (#6566)
    • Improved parsing HTTP tracker announce response. (#6567)
  • @wjt (Will Thompson):
    • Updated flatpak release metainfo. (#6357)

4.0.5

07 Dec 16:24

Choose a tag to compare

Transmission 4.0.5

This is a bugfix-only release. Everyone's feedback on 4.0.x has been very helpful -- thanks for all the suggestions, bug reports, and pull requests!

What's New in 4.0.5

Highlights

  • Fixed 4.0.0 bug where the IP address field in UDP announces were not encoded in network byte order. [BEP-15]. (#6132)
  • Fixed a bug that incorrectly escaped JSON strings in some locales. (#6005, #6133)
  • Fixed 4.0.4 decreased download speeds for people who set a low upload bandwidth limit. (#6134)

All Platforms

  • Fixed bug that prevented editing trackers on magnet links. (#5957)
  • Fixed HTTP tracker announces and scrapes sometimes failing after adding a torrent file by HTTPS URL. (#5969)
  • In RPC responses, change the default sort order of torrents to match Transmission 3.00. (#5604)
  • Fixed tr_sys_path_copy() behavior on some Synology Devices. (#5974)

macOS Client

  • Support Sonoma when building from sources. (#6016, #6051)
  • Fixed early truncation of long group names in groups list. (#6104)

Qt Client

  • Fix: only append .added suffix to watchdir files. (#5705)

GTK Client

  • Fixed crash when opening torrent file from "Recently used" section in GTK 4. (#6131, #6142)

Thank You!

Last but certainly not least, a big Thank You to these people who contributed to this release:

Contributions to All Platforms:

  • @chantzish:
    • Fixed bug that prevented editing trackers on magnet links. (#5957)
  • @hgy59:
    • Fixed tr_sys_path_copy in file-posix.cc for some Synology Devices (#5966). (#5974)
  • @tearfur (Yat Ho):
    • Code review. (#5974)
    • Fixed HTTP tracker announces and scrapes sometimes failing after adding a torrent file by HTTPS URL. (#5969)
    • Fixed a bug where Transmission is incorrectly escaping JSON strings in some locales. (#6005, #6133)
    • Fixed 4.0.4 decreased download speeds for people who set a low upload bandwidth limit. (#6082, #6134)
    • Fixed 4.0.0 bug where the IP address field in UDP announces are not encoded in network byte order. [BEP-15]. (#6126, #6132)
    • Fix: formatting cmdline help message. (#6174)

Contributions to macOS Client:

Contributions to GTK Client:

4.0.4

28 Aug 19:54

Choose a tag to compare

Transmission 4.0.4

This is a bugfix-only release. Everyone's feedback on 4.0.x has been very helpful -- thanks for all the suggestions, bug reports, and pull requests!

What's New in 4.0.4

All Platforms

  • Fixed bug in sending torrent metadata to peers. (#5460)
  • Avoid unnecessary heap memory allocations. (#5520, #5527)
  • Fixed filename collision edge case when renaming files. (#5563)
  • Fixed locale errors that broke number rounding when displaying statistics, e.g. upload / download ratios. (#5587)
  • Always use a fixed-length key query in tracker announces. This isn't required by the spec, but some trackers rely on that fixed length because it's common practice by other BitTorrent clients. (#5652)
  • Fixed potential Windows crash when getstdhandle() returns NULL. (#5675)
  • Fixed 4.0.0 bug where the port numbers in LDP announces are sometimes malformed. (#5825)
  • Fixed a bug that prevented editing the query part of a tracker URL. (#5871)
  • Fixed a bug where Transmission may not announce LPD on its listening interface. (#5896)
  • Made small performance improvements in libtransmission. (#5715)

macOS Client

  • Updated code that had been using deprecated API. (#5633)

Qt Client

  • Fixed torrent name rendering when showing magnet links in compact view. (#5491)
  • Fixed bug that broke the "Move torrent file to trash" setting. (#5505)
  • Fixed Qt 6.4 deprecation warning. (#5552)
  • Fixed poor resolution of Qt application icon. (#5570)

GTK Client

  • Fixed missing 'Remove torrent' tooltip. (#5777)

Web Client

  • Don't show null as a tier name in the inspector's tier list. (#5462)
  • Fixed truncated play / pause icons. (#5771)
  • Fixed overflow when rendering peer lists and made speed indicators honor prefers-color-scheme media queries. (#5814)
  • Made the main menu accessible even on smaller displays. (#5827)

transmission-cli

  • Fixed "no such file or directory" warning when adding a magnet link. (#5426)
  • Fixed bug that caused the wrong decimal separator to be used in some locales. (#5444)

transmission-remote

  • Fixed display bug that failed to show some torrent labels. (#5572)

Everything Else

  • Ran all PNG files through lossless compressors to make them smaller. (#5586)
  • Fixed potential build issue when compiling on macOS with gcc. (#5632)

Thank You!

Last but certainly not least, a big Thank You to these people who contributed to this release:

Contributions to All Platforms:

Contributions to macOS Client:

Contributions to Qt Client:

Contributions to GTK Client:

Contributions to Web Client:

Contributions to transmission-remote:

Contributions to Everything Else: