chore(release): prepare Firelink 1.4.0

Document the Torrent and Properties release, align desktop version metadata, and pin the published Companion 2.2.0.
This commit is contained in:
NimBold
2026-08-27 08:26:57 +03:30
parent cfe929680c
commit e79c0c1446
9 changed files with 63 additions and 12 deletions
+47
View File
@@ -5,6 +5,53 @@ All notable changes to Firelink will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.4.0] - 2026-08-27
This release adds built-in Torrent downloads and a dedicated Properties window, while making regular downloads, browser handoffs, and cross-platform packages more dependable.
### New features
- **Torrent downloads**
- Add `.torrent` files and magnet links from the Add window, file associations, `magnet:` links, and Firelink Companion.
- Resolve remote metadata before enqueueing and safely reuse validated Torrent metadata.
- Select files, prioritize pieces, preallocate or allocate as needed, verify existing data, remove unselected files safely, and add per-file web seeds.
- Manage trackers and exclusions, tracker timing, DHT/IPv6/PEX/LPD discovery, encryption, peer limits, network identity, and resource limits.
- View file progress, piece availability, connected and listed peers, seeders, upload totals and speed, and the info hash.
- Set upload limits, seed time or ratio, stop timeout, concurrent seed slots, and move Torrent data to a new location.
- Use a dedicated Torrents category with pause, resume, retry, redownload, and safe cleanup.
- **Download and Torrent Properties windows**
- Open a selected download in its own window with overview, transfer, and advanced controls.
- Use Torrent tabs for file selection, trackers, peers, options, and live diagnostics.
- Edit supported settings while a transfer is active, including speed, connections, Torrent upload and peer limits, seeding, verification, allocation, and encryption.
- Inspect allocation, exact progress, resume failures, destinations, and current diagnostics; copy long URLs or paths and export magnet links where available.
- Keep the window size during the app session while the window follows the current theme and locale.
- **Adaptive mirror selection**
- Optionally use recent transfer performance to choose among multiple mirrors. Mirror statistics stay private on this device.
- **Transfer and layout visibility**
- Show the file-allocation phase while a normal download prepares its destination.
- Remember the main-window size and position and the Folders collapse preference between launches.
### Improvements
- Improve normal-download recovery across restarts, stale transfers, redirects, mirrors, connection-pool slowdowns, retries, and resume operations without saved credentials.
- Improve media recovery and resume messaging, preserve exact progress at the end of a transfer, and restore adaptive YouTube formats. This responds to the interrupted-YouTube-download report in [#36](https://github.com/nimbold/Firelink/issues/36).
- Make browser and deep-link inputs arrive in order, keep magnet clipboard handoffs usable, and make Add-window destination and metadata validation clearer.
- Improve the download table, sidebar, Add window, Settings, RTL keyboard navigation, and accessibility behavior at narrow window sizes.
- Add clear guidance for the macOS first-launch security warning and safe approval steps, responding to [#34](https://github.com/nimbold/Firelink/issues/34).
- Refresh bundled engines and dependencies, resume interrupted engine downloads safely, and strengthen package, release, and cross-platform verification.
### Fixes
- Retry affected transfers through the system resolver when a VPN or network tunnel leaves aria2 unable to resolve a host, addressing [#35](https://github.com/nimbold/Firelink/issues/35).
- Prevent late or duplicate lifecycle events from reviving, removing, or misreporting a download after a newer action has already won.
- Keep replacement, removal, and pre-admission cleanup from leaving stale queue entries, partial files, or misleading progress behind.
- Keep completed, paused, failed, and retrying downloads authoritative while allocation and progress updates arrive asynchronously.
- Make scheduled actions, speed limits, logs, persisted settings, and browser credentials safer when several changes happen close together.
### Compatibility
- Use [Firelink Companion `2.2.0`](https://github.com/nimbold/Firelink-Extension/releases/tag/v2.2.0), or the [latest Companion release](https://github.com/nimbold/Firelink-Extension/releases/latest), with Firelink `1.4.0`.
## [1.3.1] - 2026-07-30
This hotfix improves filename handling, localized display details, and release reliability across platforms.
+7 -3
View File
@@ -28,9 +28,9 @@ It uses a Rust and Tauri backend with a React and TypeScript interface. Required
## Status
Firelink `1.3.1` is the latest desktop release.
Firelink `1.4.0` is the latest desktop release.
It is paired with [the latest Firelink Companion release, `2.1.0`](https://github.com/nimbold/Firelink-Extension/releases/tag/v2.1.0). The Companion did not change for this hotfix.
Use [the latest Firelink Companion release, `2.2.0`](https://github.com/nimbold/Firelink-Extension/releases/tag/v2.2.0) with Firelink. The Companion is maintained in the [Firelink-Extension repository](https://github.com/nimbold/Firelink-Extension).
The project is actively maintained. See the [changelog](CHANGELOG.md) for release history and current work.
@@ -40,8 +40,12 @@ Translations are available for English, Simplified Chinese, Hebrew, Persian, Ukr
- Segmented HTTP and HTTPS downloads with retries, speed limits, and connection controls.
- Media and playlist downloads through yt-dlp, FFmpeg, and Deno.
- BitTorrent downloads from `.torrent` files, magnet links, and browser handoff, with file selection, web seeds, seeding, and live diagnostics.
- Standalone Download and Torrent Properties windows with live controls, transfer details, and safe Torrent relocation.
- Adaptive mirror selection for multi-source downloads.
- An Add window for metadata, duplicate handling, save locations, and download options.
- Persistent queues with pause, resume, retry, redownload, and scheduling.
- Visible allocation and resume status with clearer transfer diagnostics.
- Live speed and connection controls for active downloads.
- A customizable download table with sorting, column selection, reordering, and bulk actions.
- File organization with categories, default folders, and per-download locations.
@@ -95,7 +99,7 @@ Only use these steps for Firelink downloaded from the [official GitHub release p
## Browser integration
[Firelink Companion `2.1.0`](https://github.com/nimbold/Firelink-Extension/releases/tag/v2.1.0) connects browser downloads, links, and media pages to Firelink. Use the latest Companion release with the latest Firelink release; no extension update is needed for Firelink `1.3.1`.
[Firelink Companion `2.2.0`](https://github.com/nimbold/Firelink-Extension/releases/tag/v2.2.0) connects browser downloads, links, media pages, magnets, and Torrent metadata to Firelink. Use the [latest Companion release](https://github.com/nimbold/Firelink-Extension/releases/latest) with the [latest Firelink release](https://github.com/nimbold/Firelink/releases/latest).
Captured links open Firelink's Add window for review before they are started or queued.
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "firelink",
"version": "1.3.1",
"version": "1.4.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "firelink",
"version": "1.3.1",
"version": "1.4.0",
"license": "MIT",
"dependencies": {
"@fontsource-variable/inter": "^5.3.0",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "firelink",
"private": true,
"version": "1.3.1",
"version": "1.4.0",
"description": "A fast cross-platform desktop download manager powered by Rust, Tauri, React, aria2, and yt-dlp.",
"license": "MIT",
"homepage": "https://github.com/nimbold/Firelink",
+1 -1
View File
@@ -1395,7 +1395,7 @@ checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890"
[[package]]
name = "firelink"
version = "1.3.1"
version = "1.4.0"
dependencies = [
"apple-native-keyring-store",
"async-trait",
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "firelink"
version = "1.3.1"
version = "1.4.0"
description = "A fast cross-platform desktop download manager powered by Rust and Tauri"
authors = ["NimBold"]
edition = "2021"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Firelink",
"version": "1.3.1",
"version": "1.4.0",
"identifier": "com.nimbold.firelink",
"build": {
"beforeDevCommand": "node scripts/stage-engines.js && npm run dev",
+2 -2
View File
@@ -1636,7 +1636,7 @@ runEngineChecks(false);
value={settings.torrentPeerIdPrefix}
label={t($ => $.settings.network.torrentPeerIdPrefix)}
description={t($ => $.settings.network.torrentPeerIdPrefixDescription)}
placeholder="-FL-1-3-1-"
placeholder="-FL-1-4-0-"
maxLength={20}
onCommit={settings.setTorrentPeerIdPrefix}
onError={showTorrentNetworkInputError}
@@ -1646,7 +1646,7 @@ runEngineChecks(false);
value={settings.torrentPeerAgent}
label={t($ => $.settings.network.torrentPeerAgent)}
description={t($ => $.settings.network.torrentPeerAgentDescription)}
placeholder="Firelink/1.3.1"
placeholder="Firelink/1.4.0"
maxLength={128}
onCommit={settings.setTorrentPeerAgent}
onError={showTorrentNetworkInputError}