Skip to content

Zephyr v2.4.2

Latest

Choose a tag to compare

@Juwan-Hwang Juwan-Hwang released this 22 Jul 18:27
49b2371

Zephyr v2.4.2 — 供应链安全加固、SBOM 生成、Provider 加载轮询、延迟测试修复

CI 供应链安全全面加固(OSSF Scorecard、SBOM 生成、Semgrep SARIF、所有 Action SHA 锁定、AGPL deny list、pnpm overrides);DOM ID 生成器改用 CSPRNG;Provider 加载轮询机制(1.5s 间隔、代际取消、终端耗尽状态、26 个前端测试);hide_timeout_nodes 安全阀(全过滤时保留原始列表、GLOBAL include-all);延迟测试卡住修复(preferredGroupName 传递 + stuck pending 清除)。

新功能 — CI / 供应链安全

OSSF Scorecard 供应链安全检查

新增 OSSF Scorecard 供应链安全健康检查 Job,覆盖分支保护、代码审查、依赖管理、CI 安全等维度。

SBOM(软件物料清单)生成

Release 工作流新增独立 SBOM 生成 Job,将 CycloneDX 格式的依赖清单作为 Release asset 发布。

GitHub Action 全面 SHA 锁定

所有第三方 GitHub Actions 从浮动版本标签改为锁定到不可变的 commit SHA,防止供应链注入攻击。

Semgrep SARIF 上传

Semgrep SAST 扫描结果新增 SARIF 上传步骤,安全告警直接显示在 GitHub Security tab 和 PR 中,支持点击跳转到问题代码行。

AGPL 许可证 Deny List 强化

dependency-review-actiondeny-licensesGPL-3.0, AGPL-3.0 扩展为完整变体列表。

pnpm overrides 依赖版本固定

通过 pnpm-workspace.yamloverrides 字段强制固定传递依赖版本,修复已知漏洞:

依赖 固定版本 修复的漏洞
nanoid@3 3.3.16 nanoid 5.x 为 ESM-only,CommonJS 消费者需要 3.x 线获取安全补丁
brace-expansion 5.0.7 CVE-2024-4068 ReDoS(1.x/2.x 未 backport 修复)
ws 8.21.1 CVE-2024-37890 超长 header DoS

同时 package.json 新增 engines.node >= 20 约束(#958)。

新功能 — 安全

DOM ID CSPRNG

apps/desktop/src/utils/dom-id.js 中的 DOM ID 生成器从 Math.random() 改为 crypto.getRandomValues()

新功能 — 代理

Provider 加载轮询

代理组从 Provider(订阅源)异步加载时,前端自动启动轮询机制确保 UI 及时更新。

hide_timeout_nodes 安全阀

隐藏超时节点功能增强,防止过度过滤导致用户看到空白代理组。

i18n 新增

4 种语言(en/zh/ja/ko)新增 providerPollExhaustedretry 翻译键。

新功能 — 测试

前端测试

新增 26 个前端测试用例(Vitest)。

Bug 修复

延迟测试卡住修复(#976

延迟测试按钮、自动测试调度器、selectBest 处理器在调用 fetchProxyGroupsShared() 时未传递 preferredGroupName,导致 resolver 回退到 effective group(来自 MATCH 规则)而非用户当前查看的组。