v2.5.8
补丁版,一句话:慢速下载不再被"停滞看门狗"误杀;解压队列崩了能自愈;RAR 分卷(含旧式 .rNN 命名)和带密码的分卷终于解得出;深色模式的菜单栏会换肤了;改完配置静默丢失那条链彻底断根。
⏱️ 慢速下载不再被误杀
- 停滞看门狗原来按"已落盘进度"判活,落盘粒度约 700 KiB。总速慢的下载会长时间"落盘进度不动",于是每约 2 分钟被判停滞失败一次——进度条明明在走
- 现在改按内存进度判活(每 ~50 KB 推进一次),落盘进度保留作兜底,两个信号取"或":任一推进即续命,只有同时静止才判真停滞
🗜️ 解压:worker 自愈 + RAR 分卷修复
- 单个文件解压抛异常会带走整个 worker,解压队列直接报废到重启,而且每次关闭都弹 "Files extracting, corruption danger"。现在异常隔离在单个元素内,
bgwDescompresor加了看门狗,3 秒后自救重启(关闭期不重启,带防风暴) - RAR 分卷改为按命名发现兄弟卷:新式
foo.partN.rar和旧式foo.rar+foo.rNN都认。此前旧式命名只读第一卷(解压结果不完整),单卷碰巧叫xxx.part1.rar又被误判成多卷 - 带密码的分卷 RAR 能解了:多卷分支此前显式丢掉了密码;"多卷 + 密码直接抛不支持"的拦截也一并删除
- 整组卷一起交给解压库,
IsComplete反映真实完整性;失败改本地化提示并附原始原因 - 7z 判定收紧:只认
.7z与.7z.NNN,xxx.7z.zip/xxx.7z.rar不再被误送 7zr 而失败 - 7z 两条通道统一
-sccUTF-8,中文等非 ASCII 文件名不再乱码
💾 改完配置不再静默丢失
- 存量配置里
PrioridadDescompresion="VeryLow"会让下拉框选中值取不到 → 抛异常冒出保存按钮 → 进程不崩但整个保存被跳过,刚改的配置全丢且没有任何提示。现在三处校验先判空,下拉补进VeryLow - 配置原子读:区分"文件被占用"与"文件损坏",被占用时拒绝写入并保留旧文件,不再拿默认值覆盖一份好配置
- 端口 / 超时越界值移到解析之后才钳制(此前钳制发生在解析之前,等于没生效)
- 周期存盘不再每 5 秒重写一次磁盘(随机 IV 密文排除出比对,账号变更改用 SHA-256 指纹判断)
- 隐写向导的路径错误上报修正
🎨 界面与主题
- 深色模式下顶部菜单栏终于换肤:经典
MainMenu换成了MenuStrip。前者既不是 ToolStrip 也不在控件树里,主题管理器根本够不着,深色下一直是一条浅灰 - 左栏 / 右栏的总览说明文字不再几乎不可读:新增
Muted主题色(此前误用边框色当前景),对比度从浅色 1.38:1 / 深色 1.82:1 提到 5.16:1 / 4.97:1(正文下限是 4.5:1) Options → Generate ELC修好:此前窗口永远打不开且无提示,已开着再点还会再开一个- 包属性里只改解压密码现在生效;取消速度限制也生效了,只改路径 / 密码时不再被静默清零
- 在线观看窗口不再谎报 "URL is mandatory":会显示真实原因,失败后可重试
- 添加链接时勾选"立即下载"不再绕过配额熔断守卫
🔧 其他修复
- 版本统计上报此前永不触发(
Double解析 "2.5.7" 必然失败),改用System.Version比较 - 状态归一化补齐(
CreandoLocal/ComprobandoMD5等),缺漏的状态不再让队列永久卡住 - 校验失败(MetaMAC 不匹配)按硬失败处理并重置分块重试;无效密钥长度改为跳过校验,不再让每个完成的下载都判失败
mega://协议注册改写到HKCU(不需要管理员权限);静默模式不弹窗;失败提示带"不再询问"- 代理主机名里的内嵌端口会被剥掉,裸 IPv6 自动补方括号
- 在线观看:非法 Range 按 200 全量处理;错误返回 4xx 而不是 200 带错误体(播放器会把错误体当成媒体)
- 链接解析移到线程池,不再每 150 ms 卡一次界面线程
- 关闭流程:
Cerrando提前置位,托盘不再在关闭过程中把窗口唤醒
🌍 多语言
- 三批合计补齐:西班牙语 13 键;德 / 法 / 匈 / 意 / 葡 / 罗各 45 键(含完整隐写向导);繁体中文 34 键;10 个语言包补
Priority_VeryLow,每个包再补 2 个新提示键 - 硬编码的 "Error" 标题改为本地化
- 审计结果:384 个字面量键对英文 404 键,缺失 0
🩹 热修复:顶部菜单栏不再挡住主窗口
同一 tag 的第二次构建(v2.5.8 重发)。上一版把经典 MainMenu 换成 MenuStrip 时,菜单条和工具栏都用了 Dock=Top,两者谁在上取决于控件集合的顺序(WinForms 未文档化的规则);顺序一反,菜单条就会停到工具栏下面、盖住下载区顶部。
- 菜单条与工具栏改为显式坐标:菜单条固定在
(0,0),工具栏紧跟其下(y = 菜单条高度),两者都用 Anchor 跟随窗口宽度 —— 不再依赖停靠顺序 - 下载区、左栏、右栏本来就按工具栏底边起算,因此无需任何额外偏移
Full Changelog: v2.5.7...v2.5.8