| 🪟 Windows | EXE
| amd64 | 📥 |
| arm64 | 📥 | ||
Portable
| amd64 | 📥 | |
| arm64 | 📥 | ||
| 🍎 MacOS | DMG
| universal | 📥 |
| amd64 | 📥 | ||
| arm64 | 📥 | ||
| 🐧 Linux | Flathub
| amd64 | 📥 |
SNAP
| amd64 | 📥 | |
DEB
| amd64 | 📥 | |
| arm64 | 📥 | ||
AppImage
| amd64 | 📥 | |
| arm64 | 📥 | ||
| 🤖 Android | APK
| universal | 📥 |
| armeabi-v7a | 📥 | ||
| arm64-v8a | 📥 | ||
| x86_64 | 📥 | ||
| 📱 iOS | IPA
| universal | 📥 |
| 🐳 Docker | - | universal | 📥 |
| 💾 Qnap | QPKG
| amd64 | 📥 |
| arm64 | 📥 | ||
| 🌐 Web | Windows
| amd64 | 📥 |
| arm64 | 📥 | ||
| 386 | 📥 | ||
MacOS
| amd64 | 📥 | |
| arm64 | 📥 | ||
Linux
| amd64 | 📥 | |
| arm64 | 📥 | ||
| 386 | 📥 |
Release notes
This update adds FTP downloads, task groups and automatic categorization, fixes Cookie forwarding and other issues, and improves download performance and stability.
🆕 Features
- feat(extension): add request mutation methods on
task.meta.reqfor task start and error handlers @monkeyWie (#1538) - feat(task): record task completion time and display it in task details @monkeyWie (#1536)
- feat(ui): check extension updates directly against GitHub, unify the update entry point, and display local extension documentation @monkeyWie (#1535)
- feat(download): add HTTP checksum verification, an MCP speed/progress tool, pause webhooks, and CLI checksum flags @Ashish6298 (#1542)
- feat(bt): add DHT and PEX switches to BitTorrent settings; changes take effect after restarting the app @junkerderprovinz (#1555)
- feat(http): use extension-provided file sizes as estimates for downloads with unknown lengths @monkeyWie (#1599)
- feat(download): optionally organize downloads into category folders by file extension, with editable extension rules @wufeng5702 (#1572)
- feat(protocol): add FTP, FTPS and FTPES downloads with directory downloads, segmented transfers and resume support @silasmariusz (#1569)
- feat(tasks): group extension folder downloads into one task card with combined progress and group actions; batch creation now returns
{taskIds, parentId?}@wufeng5702 (#1594) - feat(ui): show Web task creation in a modal, unify task creation across platforms, and make the app mark a home action @monkeyWie (#1633)
🐛 Bug Fixes
- fix(http): use the complete resource size from
Content-Rangefor HTTP 206 responses and validate partial response ranges @learnr-reader (#1545) - fix(ui): smooth task progress bar updates while respecting the system animation preference @monkeyWie (#1532)
- fix(settings): use Save as the primary button label in settings form dialogs @wufeng5702 (#1571)
- fix(extension): preserve Cookie and other authentication headers in extension fetch and XMLHttpRequest calls @monkeyWie (#1581)
- fix(http): eliminate the unnecessary prefetch wait when resuming restored downloads @pentaoa (#1584)
- fix(ui): widen the navigation rail for macOS window controls and improve narrow desktop layouts @monkeyWie (#1582)
- fix(extensions): correctly match magnet URI patterns when selecting extensions @zhzjzz (#1619)
- fix(web): report actionable server startup errors and exit cleanly instead of panicking @OKAN-SOFTWARE (#1620)
- fix(mcp): provide explicit schemas for dynamic tool outputs to prevent clients from rejecting the tool list @monkeyWie (#1626)
- fix(analytics): use Android ID for Android analytics and persist UUID fallbacks when device identifiers are unavailable @monkeyWie (#1624)
- fix(web): prevent the browser context menu from covering task menus while preserving native text-input menus @zhzjzz (#1627)
- fix(extension): restore deprecated request APIs for compatibility with existing extensions throughout 2.x @monkeyWie (#1628)
- fix(bt): prevent crashes and data races when the shared BitTorrent client is created and closed concurrently @junkerderprovinz (#1587)
- fix(macos): release Flutter engines and subscriptions when child windows close to prevent memory accumulation @monkeyWie (#1639)
- fix(ui): make downloaded-file deletion an explicit switch, keep files by default for new or missing settings, and preserve saved preferences @KaemiaDeveloper (#1638)
🔧 Performance Improvements
- perf(extensions): load store summaries and installed extensions in parallel, check updates in the background, and cache list/detail requests @monkeyWie (#1583)
- perf(http): use 64 KiB connection read buffers to reduce HTTP download CPU overhead @Arpit-Khandelwal (#1588)
- perf(http): replace per-read goroutines with a reusable timeout timer and prevent timed-out reads from writing into reused buffers @Arpit-Khandelwal (#1597)
🧰 Maintenance
- refactor(ios): simplify continued processing startup and share task-event decoding with Live Activities @UltraGeek0102 (#1547)
- refactor(downloader): make resource resolution request-only; download options must now be supplied when creating tasks @monkeyWie (#1595)
- refactor: remove the proxy API, move Tracker subscriptions to the backend, verify app updates with SHA-256, and improve GitHub mirror fallback; legacy Tracker and mirror settings are not migrated @monkeyWie (#1596)
🧪 Tests
- test(bt): isolate shared-piece cleanup fixtures from automatic part-file promotion to stabilize regression tests @monkeyWie (#1531)
🚀 CI/CD
- fix(ci): restore Windows ARM builds with scoped MSVC compatibility settings @monkeyWie (#1586)
- fix(ci): locate Windows AMD64 runtime DLLs through the selected compiler instead of hardcoded Git paths @monkeyWie (#1603)
- fix(ci): select the first compiler in PATH when locating Windows runtime libraries @monkeyWie (#1604)
- fix(ci): restore Windows release asset uploads when the build test option is enabled @monkeyWie (#1605)
🌎 Internationalization
- feat(i18n): add Slovak (
sk) localization @doctor-martin-sowa (#1541)
更新日志
本次升级新增 FTP 下载、任务组和自动分类支持,修复 Cookie 传递等问题,并提升下载性能与稳定性。
🆕 新功能
- feat(extension): 支持在任务启动和错误处理事件中通过
task.meta.req修改请求参数 @monkeyWie (#1538) - feat(task): 记录任务完成时间,并在任务详情中显示 @monkeyWie (#1536)
- feat(ui): 直接从 GitHub 检查扩展更新,统一更新入口,并显示本地扩展文档 @monkeyWie (#1535)
- feat(download): 新增 HTTP 文件校验、MCP 下载速度与进度工具、暂停 Webhook 事件及命令行校验参数 @Ashish6298 (#1542)
- feat(bt): 新增 BitTorrent DHT 和 PEX 开关,重启应用后生效 @junkerderprovinz (#1555)
- feat(http): 对长度未知的下载使用扩展提供的文件大小作为估算值 @monkeyWie (#1599)
- feat(download): 支持按文件扩展名自动保存到分类目录,并提供可编辑的扩展名规则,默认关闭 @wufeng5702 (#1572)
- feat(protocol): 新增 FTP、FTPS 和 FTPES 下载,支持目录下载、分段传输和断点续传 @silasmariusz (#1569)
- feat(tasks): 将扩展文件夹下载聚合为一张任务卡片,统一显示进度并支持分组操作;批量创建接口改为返回
{taskIds, parentId?}@wufeng5702 (#1594) - feat(ui): Web 端通过弹窗创建任务,统一各平台创建任务入口,并支持点击应用标识返回首页 @monkeyWie (#1633)
🐛 问题修复
- fix(http): 从 HTTP 206 响应的
Content-Range获取完整资源大小,并校验部分响应的范围 @learnr-reader (#1545) - fix(ui): 平滑显示任务进度条变化,并遵循系统动画设置 @monkeyWie (#1532)
- fix(settings): 将设置表单弹窗的主按钮文案统一为“保存” @wufeng5702 (#1571)
- fix(extension): 保留扩展 fetch 和 XMLHttpRequest 请求中的 Cookie 等认证请求头 @monkeyWie (#1581)
- fix(http): 消除恢复已保存下载任务时不必要的预读取等待 @pentaoa (#1584)
- fix(ui): 加宽导航栏以适配 macOS 窗口控制按钮,并优化较窄桌面窗口的布局 @monkeyWie (#1582)
- fix(extensions): 选择扩展时正确匹配 magnet URI 规则 @zhzjzz (#1619)
- fix(web): 服务器启动失败时输出明确错误并正常退出,避免 panic 堆栈 @OKAN-SOFTWARE (#1620)
- fix(mcp): 为工具的动态输出提供明确的 Schema,避免客户端拒绝整个工具列表 @monkeyWie (#1626)
- fix(analytics): Android 统计改用 Android ID,并在无法获取设备标识时持久化 UUID 备用标识 @monkeyWie (#1624)
- fix(web): 避免浏览器右键菜单遮挡任务菜单,同时保留文本输入框的原生菜单 @zhzjzz (#1627)
- fix(extension): 恢复已弃用的请求 API,在 2.x 版本中保持对现有扩展的兼容 @monkeyWie (#1628)
- fix(bt): 修复共享 BitTorrent 客户端并发创建和关闭时的崩溃与数据竞争 @junkerderprovinz (#1587)
- fix(macos): 子窗口关闭时释放 Flutter 引擎及订阅,避免内存持续累积 @monkeyWie (#1639)
- fix(ui): 将删除弹窗开关改为“删除已下载的文件”,新用户或缺少配置时默认保留文件,并沿用已保存的偏好 @KaemiaDeveloper (#1638)
🔧 性能优化
- perf(extensions): 并行加载扩展商店摘要与已安装扩展,后台检查更新,并缓存列表和详情请求 @monkeyWie (#1583)
- perf(http): 使用 64 KiB 连接读取缓冲区,降低 HTTP 下载的 CPU 开销 @Arpit-Khandelwal (#1588)
- perf(http): 使用可复用的超时计时器替代每次读取创建的协程,并避免超时读取继续写入已复用的缓冲区 @Arpit-Khandelwal (#1597)
🧰 维护调整
- refactor(ios): 简化持续处理任务的启动流程,并与实时活动共用任务事件解析逻辑 @UltraGeek0102 (#1547)
- refactor(downloader): 资源解析接口改为仅接收请求参数,下载选项需在创建任务时传入 @monkeyWie (#1595)
- refactor: 移除代理 API,将 Tracker 订阅交由后端管理,为应用更新添加 SHA-256 校验,并改进 GitHub 镜像回退;旧 Tracker 和镜像配置不自动迁移 @monkeyWie (#1596)
🧪 测试
- test(bt): 将共享分片清理测试与临时分片文件自动转正逻辑隔离,提高回归测试稳定性 @monkeyWie (#1531)
🚀 持续集成与发布
- fix(ci): 通过限定作用范围的 MSVC 兼容设置恢复 Windows ARM 构建 @monkeyWie (#1586)
- fix(ci): 通过所选编译器定位 Windows AMD64 运行库 DLL,避免依赖固定的 Git 安装路径 @monkeyWie (#1603)
- fix(ci): 定位 Windows 运行库时选择 PATH 中的第一个编译器 @monkeyWie (#1604)
- fix(ci): 恢复启用构建测试选项时向 Release 上传 Windows 安装包的行为 @monkeyWie (#1605)
🌎 国际化
- feat(i18n): 新增斯洛伐克语(
sk)本地化 @doctor-martin-sowa (#1541)