Skip to content

Zephyr v2.2.3

Choose a tag to compare

@github-actions github-actions released this 17 May 08:03
d72ee02

Zephyr v2.2.3 — Core 生命周期优化 & 测速稳定性修复 & DNS Rewrite 修复

统一订阅切换逻辑为 switchToConfig() 共享函数,修复托盘切换缺少 prism rebuild 的 bug;Core 健康检查从固定轮询改为指数退避,启动等待从最坏 20s 降至 ~2s;新增连接排空(Drain)+ SIGTERM 优雅终止;修复测速 loading 状态丢失和快速切换订阅时页面卡住的问题;修复 DNS Rewrite 污染原始订阅文件导致节点超时的问题。

🐛 Bug 修复

快速切换订阅时测速卡住

修复连续切换订阅时延迟测试 worker 无法正确取消,导致 isTestingLatency 锁永远不释放、页面持续转圈但没有新数据的问题。新增 resetLatencyTestController() 确保每次测速使用独立的 AbortController。

测速 loading 状态丢失

buildProxyWrappers 创建 wrapper 时未检查 isTestingLatency 状态,导致 full render 路径丢失 loading 动画。现在测速期间新创建的 wrapper 会正确显示 pending 状态。

DNS Rewrite 污染原始订阅文件

applyDnsRewrite() 之前会调用 persistConfigChanges() 将 DNS rewrite payload 写回原始 profile 文件。切换订阅时 CORE_RESTARTED 事件触发 persistConfigChanges 覆盖订阅原始 DNS 配置,导致节点超时。现在 DNS rewrite 仅通过 mihomo API (patchConfig) 在运行时生效,不再写回磁盘。

托盘切换缺少 prism rebuild

托盘菜单切换订阅时未执行 prism.rebuild(),导致 Prism 规则的 __when__.profile 条件未重新评估。现已通过统一的 switchToConfig() 共享函数修复。

⚡ 性能优化

Core 健康检查指数退避

健康检查从固定 1s 轮询改为指数退避(50ms → 1s,上限 1s),Core 启动等待时间从最坏 20s 降低到 ~2s。

连接排空(Connection Draining)

kill_mihomo 前通过 DELETE /connections 排空活跃连接(2s 超时),帮助 mihomo 在繁忙时更快退出。

优雅终止(SIGTERM → SIGKILL)

进程终止从直接 SIGKILL 改为 SIGTERM → 等待 2s → SIGKILL,配合连接排空实现更干净的退出。

Smart Score IPC 限流

SmartScoreBatcher 限制 smart score IPC 并发为 2,避免测速期间密集 invoke 导致 UI 卡顿。smartNextInterval 从每节点调用改为全部测速完成后调用一次。

🏗️ 架构改进

统一配置切换(lifecycle.js

新增 ui/lifecycle.js 模块,将 switchToConfig()api.js 抽取为独立的高层编排函数:

  • 统一 UI 切换和托盘切换逻辑
  • 切换前自动中止测速 + 关闭连接 + 保存代理选择
  • 切换后自动重建 prism + 恢复代理选择
  • 原子更新 last_config(新增 update_last_config 后端命令,避免 Read-Modify-Write 竞态)
  • 修复 api.js 导入 UI 模块的分层违规和循环依赖

异步 I/O

  • 健康检查:std::net::TcpStreamtokio::net::TcpStream
  • 连接排空:reqwest::blockingreqwest async API

📦 下载说明

请根据您的操作系统选择对应版本:

平台 安装版 (Full) 安装版 (Lite) 便携版
Windows Zephyr_2.2.3_x64-setup-full.exe Zephyr_2.2.3_x64-setup-lite.exe Zephyr-windows-portable.zip
Windows (MSI) Zephyr_2.2.3_x64_zh-CN-full.msi Zephyr_2.2.3_x64_zh-CN-lite.msi
macOS (Apple Silicon) Zephyr_2.2.3_aarch64-full.dmg Zephyr_2.2.3_aarch64-lite.dmg
macOS (Intel) Zephyr_2.2.3_x64-full.dmg Zephyr_2.2.3_x64-lite.dmg
Linux (deb) Zephyr_2.2.3_amd64-full.deb Zephyr_2.2.3_amd64-lite.deb
Linux (AppImage) Zephyr_2.2.3_amd64-full.AppImage Zephyr_2.2.3_amd64-lite.AppImage Zephyr-linux-portable.tar.gz
Linux (RPM) Zephyr-2.2.3-1.x86_64-full.rpm Zephyr-2.2.3-1.x86_64-lite.rpm

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