v2.5.4 / 稳定版
绿色免安装,解压即用。本版起加密口令不再随版本号变化——从 2.4.x ~ 2.5.3 任何旧版本升级,账号口令、下载队列、流媒体库链接均可正常读取,无需备份配置。
Portable, no install. As of this release encrypted secrets no longer depend on the assembly version — credentials, download queue and streaming-library links from any prior version (2.4.x–2.5.3) survive the upgrade; no config backup needed.
What's Changed / 本次变更
两批合并发布:2.5.3 之后落地的静默修复集 + 流媒体在线观看根治 + 全语言翻译补齐。一句话:升级不再丢数据,在线观看不再卡死,界面不再蹦英文。
Two batches combined: the silent-fix set landed after 2.5.3, a definitive fix for streaming watch-online, and complete translations for every language. In one line: no data lost on upgrade, no more watch-online hangs, no more English leaking into localized UIs.
🔐 升级即静默丢数据(P0)/ Secrets silently lost on upgrade (P0)
- DPAPI 熵此前由程序集全名派生(内含版本号)→ 每次版本升级,上一版保存的账号口令、下载队列链接、流媒体库链接全部解密为空且无提示。现改为固定派生 + 12 个历史版本熵轮询兼容,旧值下次保存自动迁移。
- DPAPI entropy was derived from the assembly name (version included) — every upgrade silently wiped stored credentials, queue links and the streaming library. Now derived from a fixed identity with a decryption chain covering all 12 historical entropies; old values are re-encrypted on next save.
🐛 用户可感知修复(P1)/ User-visible fixes (P1)
- 在线观看死循环根治:上游断流时零长空转发占满线程;
bytes=0-0单字节探测(QuickTime/DLNA 类播放器连上即发)被当成开区间补成整文件长度,必现死循环卡死播放器;EOF 落在 16 字节块中间时越界崩溃。 - Watch-online deadlocks eliminated: an upstream EOF left a thread spinning forever; the
bytes=0-0probe sent by QuickTime/DLNA-style players was misparsed as an open range and always hung the player; an EOF mid-block crashed with an out-of-bounds write. - 7z 解压:头加密档案无论口令对错都失败(列目录未带口令);口令含空格被 argv 拆分;子进程可能弹口令提示永久阻塞。
- 7z extraction: header-encrypted archives failed regardless of password (listing omitted it); spaces broke passwords via argv splitting; the child process could hang on a password prompt.
- MEGA 文件夹:API 错误码带括号形式(
[-9])未被识别,配额熔断与错误映射成死代码。 - MEGA folders: bracketed error codes (
[-9]) were never matched, leaving quota circuit-breaking and error mapping dead. - 代理:地址填
http://1.2.3.4会拼成http://http//…主机名,所有请求无提示失败;负数端口被放行。 - Proxy: an
http://prefix produced a host literally named "http", silently failing every request; negative ports were accepted. - 其他:流媒体库条目增删永不落盘(
Elements()返回副本被直接改)、畸形 MEGA 密钥三处裸崩改友好报错。 - Also: streaming-library edits never persisted (
Elements()returns a copy), three raw crashes on malformed MEGA keys replaced with friendly errors.
🔒 加固与体验(P2)/ Hardening & UX (P2)
- 流媒体密码错误返回 403(此前 200,播放器把错误文本当媒体数据);流媒体库登录加失败锁定 + 并发闸,与 Web 界面一致。
- Wrong streaming password now returns 403 (was 200, which players rendered as data); streaming-library login gets failure lockout + concurrency cap, matching the web UI.
- 双服务 cookie 同名互顶登录态修复(
Sd_session/Sd_streaming分离);并发请求 AJAX 响应串扰(改AsyncLocal);气泡通知期内复制的链接被静默吞掉;更新器注册表句柄泄漏;进度列回到"% 独立列 + 条形列"。 - Cookie collision between the two local services fixed; concurrent AJAX responses no longer overwrite each other (
AsyncLocal); links copied while a toast was showing are no longer swallowed; registry handle leak in the updater; progress column back to "separate % column + bar".
🌍 语言包 / Languages
- 9 个语言文件补齐 567 条缺失翻译(德/意各 96、法/匈各 70、葡/罗/繁中各 69、西 27、简中 1)——本地化界面不再混入成段英文;10 个文件清理 44 条历史重复死条目。
- 567 missing translations completed across 9 language files (de/it 96, fr/hu 70, pt/ro/zh-TW 69, es 27, zh-CN 1) — localized UIs no longer fall back to English; 44 dead duplicate entries removed from all 10 files.
📦 版本 / Version
- 2.5.4.0;自本版起版本号变更不再影响存量加密数据。
Full Changelog: v2.5.3...v2.5.4
Full Changelog: v2.5.3...v2.5.4