Repository navigation
Releases: LeiSureYu/dsh-smart-download
Releases · LeiSureYu/dsh-smart-download
Release list
v1.9.1
新增
- 鸿蒙适配第一阶段:识别 OpenHarmony 运行时(process.platform === 'ohos'),插件在鸿蒙开箱可用(缺省 curl 单线程;PATH 上有 aria2c 或用环境变量指定则自动多线程)。随包 ohos-arm64 子包在路线图上。
DSH_SMARTDL_ARIA2_PATH环境变量:显式指定 aria2 二进制,优先于随包子包与 PATH,对所有平台生效。
变更
- aria2 定位顺序改为「环境变量 → 子包 → PATH」;显式指定的二进制验证失败不回落其它来源,直接回退 curl,并在 reason 里提示核对环境变量。
升级
DSH 侧边栏「插件」更新到 1.9.1,重启 DSH。鸿蒙设备开箱即用;要多线程见 COMPATIBILITY.md 的 HarmonyOS 一节。
v1.8.0
v1.7.0
新增
- 后台下载:
background: true,校验完成后立即返回 taskId(批量返回批次 ID),下载在宿主进程继续。进度用download_status查询,批量可用batchId过滤。 - 代理:
proxy参数。探测、镜像探测与下载共用同一代理;支持NO_PROXY,显式参数优先于环境变量。仅 http(s)。 expectedSize:按官方文档声明的字节数核对,与远端声明冲突则在下载前拒绝。- macOS 子包:
dsh-aria2-darwin-x64/-arm64,由本仓库 CI 从官方源码构建(源码 pin SHA256,otool 断言只链系统库,SLSA provenance)。 download_status新增batchId参数。- curl 退出码 36 的中文说明。
变更
- 自定义请求头改走 stdin(curl
-K -/ aria2--input-file=-),凭证不再出现在进程命令行。无自定义头时命令行与 1.6.0 逐字节相同。 - 探测与镜像解析失败现在写入 failed 终态(此前进度轨道停在「探测中」)。
- 新增运行时依赖 undici ^7(探测走显式代理需要 ProxyAgent)。
修复
- 批量中探测失败的条目,进度轨道卡在「探测中」。
ifExists: skip且只传expectedSize时不校验已有文件。- 探测用的 ProxyAgent 不关闭导致连接积压。
background传非布尔值时静默按前台执行。
升级
DSH 侧边栏「插件」更新到 1.7.0,重启 DSH。六平台均随包分发 aria2,无需自行安装。
v1.6.0
新增
- 管理器运行中的任务可取消:中止子进程,终态记 cancelled;不需要 confirm,只对当前宿主进程有效。
- 失败 / 已取消的任务可原地重试:复用原 taskId 与请求元数据(URL、输出路径、摘要、ifExists、镜像、限速、超时);重试前重新校验 URL 与摘要,非法值回 not-retryable。
- 进度记录新增
request字段:只含可安全落盘的请求信息,请求头与凭证一律不保存、不重放。 - 管理器行内新增「取消下载」/「重试」按钮,行级动作在途时其余行按钮禁用。
变更
smartdl.manage的 op 白名单扩展为 inspect / forget / delete / reveal / cancel / retry;cancel 与 retry 在 delete 的 confirm 分支之前分派。- 条目级取消信号与批量信号、timeoutMs 信号合并;修正 aria2 → curl 回退路径此前只传批量信号、导致条目级取消与超时失效的问题。
v1.4.5
v1.4.4
v1.4.3
v1.4.2
v1.4.1
v1.4.0
新增
- 下载管理器:任务列表页,支持状态筛选(带计数)、文件名搜索、多选批量删除记录;每行状态色点、进度条、大小与时间,下载中另有速度与 ETA;支持键盘操作。
- 删除确认显示完整绝对路径与大小;「同时删除本地文件」只在文件仍在原位时提供,批量删除只删记录。
POST /api/smartdl.manage新增reveal:由宿主进程打开文件管理器并定位产物。- 进度记录新增可选
outPath/size/fileMtimeMs。
修复
- 「文件删得掉、记录删不掉」(manage 不带会话)。
- 「在文件夹中显示」失败时静默。
- 打开文件管理器会崩掉宿主(spawn 异步 error 无监听器)。
- Linux 上绝对路径泄漏进用户文案。
- 完成态显示为灰色而非绿色。