Zephyr v2.4.1
Zephyr v2.4.1 — SignPath 代码签名、Workspace 统一 Lint、Golden 快照测试、Portable 构建优化
Windows 发布产物 Authenticode 代码签名(SignPath Foundation,含 Portable exe);Cargo workspace 统一 Lint 配置(4 层分类,165+ deny 规则);insta Golden 快照测试(68 个场景);rust-toolchain.toml 版本固定 + GitHub Action SHA 锁定;Portable 构建优化(复用 Full build 二进制,新增 ARM64 portable,文件名带架构后缀);deep_link sanitize_name 增强(Windows 保留设备名 + 危险字符);truncate_str 边界修复;代理环境变量复制增强(5 种 shell 统一大小写输出);crates/core 代码质量改进(#[must_use]、const fn、UTF-8 安全 mask_url)。
新功能 — CI / 供应链
SignPath 代码签名
Windows 发布产物(NSIS .exe + MSI .msi + Portable .exe)通过 SignPath Foundation 进行 Authenticode 代码签名,覆盖 x64 与 ARM64 架构。
Workspace 统一 Lint 配置
Cargo.toml 新增 [workspace.lints.rust] 和 [workspace.lints.clippy],所有成员 crate 通过 [lints] workspace = true 继承,消除「本地通过、CI 失败」的不一致问题。
新功能 — 测试
Golden (Snapshot) 测试
引入 insta crate 进行快照测试,覆盖关键工具函数的输入/输出契约。
- 快照管理:
.snap文件存储在src/子目录下,通过cargo insta review管理基线更新
新功能 — CI 优化
Portable 构建优化
Portable 版本构建流程重构,复用 Full build 二进制,无需第三次完整编译。
- 复用 Full build 二进制:Full build 阶段直接 copy
Zephyr.exe/ AppImage 作为 portable 产物,消除此前单独的 portable 编译步骤(每次 Release 减少 2 次完整编译) - 新增 ARM64 portable:Windows ARM64 和 Linux ARM64 现在都有 portable 产物
- Windows portable exe 签名:Portable exe 复用 SignPath 签名后的 Full build exe,签名验证通过后才打包为 ZIP
- 文件名带架构后缀:从
Zephyr-windows-portable.zip/Zephyr-linux-portable.tar.gz改为Zephyr_{arch}-portable.zip/Zephyr-linux-{arch}-portable.tar.gz,避免不同架构产物同名冲突 - Linux AppImage 固定命名:从
Zephyr-*.AppImage(含版本号通配)改为固定Zephyr.AppImage,简化解压命令
Portable 产物清单(v2.4.1):
| 平台 | 架构 | 文件名 |
|---|---|---|
| Windows | x64 | Zephyr_x64-portable.zip |
| Windows | ARM64 | Zephyr_arm64-portable.zip |
| Linux | x64 | Zephyr-linux-x64-portable.tar.gz |
| Linux | ARM64 | Zephyr-linux-arm64-portable.tar.gz |
Bug 修复
deep_link sanitize_name 增强
sanitize_name 函数增强,修复跨平台文件名安全问题。
os_notification truncate_str 边界修复
truncate_str 函数在极小 max_len 时的边界行为修复。
代理环境变量复制增强
托盘菜单「复制代理环境变量」功能增强,统一大小写输出。
crates/core 代码质量改进
跨平台核心 crate 的代码质量与安全性改进。