Skip to content

Zephyr v1.5.0

Choose a tag to compare

@github-actions github-actions released this 19 Apr 18:23

Zephyr v1.5.0 — 工程架构升级 & 安全加固 & 测试覆盖提升

pnpm Monorepo 重构、Rust 1.92 升级、响应式 DOM 绑定、单元测试全面扩充、路径遍历防御强化。

🏗️ 架构重构

  • pnpm Monorepo:将项目重构为 apps/desktop + packages/shared 的 monorepo 结构,前端共享工具库统一在 @zephyr/shared 包中管理,构建命令迁移至 pnpm run dev / pnpm run build
  • 响应式 DOM 绑定(bind.js:新增声明式响应式绑定系统,移除大量命令式 DOM 操作,简化前端状态同步逻辑
  • 状态管理统一:整合前端状态管理,激活 EventBus,清理约 116 行冗余代码
  • ESLint 配置:新增 eslint.config.js,使用 globals.browser 替代手动全局声明

🔒 安全修复

  • 路径遍历防御前移sanitize_config_file_name 现在在调用 Path::file_name() 提取文件名之前即检测解码后路径中的 .. 与目录分隔符,彻底堵塞通过编码绕过 file_name() 截断进行路径遍历的攻击向量
  • Deep Link URL 截断修复:URL 超长截断时现在查找最近的 UTF-8 字符边界,避免截断多字节字符导致 panic

⚡ 性能 & 代码质量

  • Rust 升级至 1.92:应用 cargo fmt,修复所有 clippy 警告;全面迁移 .to_string().to_owned(),减少不必要堆分配;启用严格 clippy lint 配置(Cargo.toml 中定义 9 层 lint 策略)
  • 消除冗余 Uuid::to_owned() 调用:清理 Rust 侧冗余克隆
  • init_tun_mode_from_config 启动时调用:应用启动时主动从配置文件初始化 TUN 模式标志,确保托盘图标在启动时即显示正确状态

🧪 测试覆盖

  • config_sanitizer:新增 19 个单元测试,覆盖 URL 解码(标准、双重、三重编码)、路径遍历检测、控制字符、Windows 保留文件名、文件名长度等边界场景
  • config_manager:新增 10 个单元测试,覆盖 mask_url(长域名、短域名、无效 URL、IP、scheme 保留)及 remove_dangerous_keys(script 移除、provider path 移除、嵌套场景)
  • core_log:新增 9 个单元测试,覆盖日志读取偏移、行数限制(上限 2000)、日志轮转检测、空文件等场景
  • deep_link:新增 7 个单元测试,覆盖基础解析、编码字符、缺少 URL、无效 scheme 等场景
  • lib(RateLimiter):新增 4 个单元测试,验证频率限制逻辑、冷却期后恢复、不同 key 相互独立

🔧 CI / 工具链

  • i18n 完整性检查:新增 check:i18n 脚本并集成至安全扫描 CI,自动验证翻译键完整性
  • 安全扫描管道升级:迁移至 pnpm,Semgrep 新增自定义规则(.semgrep.yml),pnpm audit 替换 npm audit
  • CodeQL 迁移:JS 分析安装步骤迁移至 pnpm

📦 下载说明

请根据您的操作系统选择对应版本(full 版本含所有依赖,lite 版本体积更小):

平台 Full 版本 Lite 版本
Windows (x64) Zephyr_1.5.0_x64-setup-full.exe Zephyr_1.5.0_x64-setup-lite.exe
Windows (x64 MSI) Zephyr_1.5.0_x64_zh-CN-full.msi Zephyr_1.5.0_x64_zh-CN-lite.msi
macOS (Apple Silicon) Zephyr_1.5.0_aarch64-full.dmg Zephyr_1.5.0_aarch64-lite.dmg
macOS (Intel x64) Zephyr_1.5.0_x64-full.dmg Zephyr_1.5.0_x64-lite.dmg
Linux (deb, amd64) Zephyr_1.5.0_amd64-full.deb Zephyr_1.5.0_amd64-lite.deb
Linux (AppImage, amd64) Zephyr_1.5.0_amd64-full.AppImage Zephyr_1.5.0_amd64-lite.AppImage
Linux (RPM, x86_64) Zephyr-1.5.0-1.x86_64-full.rpm Zephyr-1.5.0-1.x86_64-lite.rpm

⚠️免责声明:本项目由 AI 开发,安全性和性能尚未经充分验证,请自行评估使用风险。如发现安全问题或 Bug,欢迎提交 Issue。