CHzip 3.2
v3.2(2026-09-15)— 正确性 / 安全修复 + 工程加固
修复
- 进度条下方堆着一串百分比:7-Zip 在管道(非 TTY)下会把文件名行与进度行挤在同一行且没有
\r分隔,而百分比正则只在行首匹配 —— 于是解析器退化到「取行内第一个%」,把第一个0%之后的内容全当成了文件名。现在按「前后都是空白」识别进度百分比,并从扣掉百分比后的残余文本里取文件名;前端另加一道兜底。已在飞牛真机验证通过 - 任务永久卡在「排队中」:worker 启动阶段(读任务、打开源文件)抛错时进程以 0 退出,父进程无法感知失败,任务状态永远停在
queued。现在会落终态并以非 0 退出 - 分卷识别可被普通文件名打挂:
backup.20260915这类合法备份名会被当成 2000 万号分卷,info/preview需要分配近 2000 万元素的数组(实测峰值内存约 900 MiB;10 位数字直接 OOM)。分卷号与缺失枚举现在都有上界 - 诊断报告的授权目录被误脱敏:
authorizedRoots因敏感词子串匹配(authorized含auth)恒被替换成[REDACTED],导致诊断报告无法用于排查目录授权问题。顺带修掉含-p的路径被误伤 - 清理步骤相互干扰:解压收尾时若临时目录删除失败(权限异常),密码文件覆写与选择文件删除会被整体跳过;过期清理与 worker 并发删除时也可能让
extract/jobs请求报内部错误
工程
- 补齐
source/selection/diagnostics三个安全模块的单测(此前零直连测试) - 新增版本号一致性门禁:
manifest/package.json/index.html的?v=/ README 徽章与安装命令,漏改任一处npm test就会失败 - 新增 GitHub Actions CI(push / PR 跑
node --check+npm test) - 清理死代码(
parse-worker.js、不可达的configureVariant),constants.js成为常量的唯一来源 - 文档与实现对齐:
API.md删掉从未实现的verify端点,补上comment与preview-file
测试:172 → 258(+86)
安装
下载对应架构的 .fpk,在飞牛应用中心手动安装;校验和见 SHA256SUMS.txt。