Zephyr v1.3.0
Zephyr v1.3.0 — 无障碍增强 & 性能优化 & 后端重构
键盘导航全面升级、缓存系统重构、Rust 核心模块化拆分。
♿ 无障碍(A11y)改进
- ARIA 属性补全:为代理列表(
role="listbox")、通知容器(aria-live="polite")、模态框(role="dialog" aria-modal="true")等关键元素补全 ARIA 语义标注,提升屏幕阅读器兼容性 - 焦点陷阱(Focus Trap):新增
focus-trap.js工具模块,模态框打开时 Tab / Shift+Tab 焦点将被锁定在弹窗内,Escape 键可关闭弹窗并自动恢复焦点 - Roving Tabindex:新增
roving-tabindex.js工具模块,代理节点列表支持方向键(↑↓)导航、Home/End 跳转首尾、字符快速跳转(Typeahead),并通过 MutationObserver 自动适应动态 DOM 变化 - NFKC 规范化:在
escapeHtml与sanitizeHtml入口对输入字符串执行 Unicode NFKC 规范化,防御同形异义字攻击 - 排序标签同步修复:修复代理列表在语言切换或重渲染后排序标签文字与当前模式不一致的问题
⚡ 性能优化
- LRU 缓存淘汰:将前端 API 缓存从简单对象升级为基于
Map的 LRU(最近最少使用)结构,设置最大 50 条缓存上限,自动淘汰最久未访问的条目 - Stale-While-Revalidate(SWR):缓存命中后在 5 秒宽限期内返回旧数据同时在后台静默刷新,减少界面等待感
- 顺序执行器(Sequential Executor):新增
sequential.js工具模块,快速切换代理组时旧请求结果将被静默丢弃,避免乱序响应覆盖最新状态 - 页面可见性守卫:新增
page-visibility.js工具模块,页面隐藏时自动暂停定时器与 RAF,页面重新可见时恢复,降低后台资源占用
🔧 后端重构
core_manager.rs模块化拆分:将原 3090 行的单体文件拆分为src-tauri/src/core/下的多个独立子模块(config_manager、config_sanitizer、core_process、core_log、crypto、secure_io、subscription、tun_manager),通过mod.rs门面对外统一导出,提升代码可维护性与可读性
📄 其他改动
- 统一换行符:新增
.gitattributes配置,将仓库所有文本文件换行符统一为 LF,避免跨平台换行符差异导致的 diff 噪音 - 修复 CI 构建:解决
core/模块拆分后fmt与clippy检查失败的问题
📦 下载说明
请根据您的操作系统选择对应版本(full 版本含所有依赖,lite 版本体积更小):
| 平台 | Full 版本 | Lite 版本 |
|---|---|---|
| Windows (x64) | Zephyr_1.3.0_x64-setup-full.exe |
Zephyr_1.3.0_x64-setup-lite.exe |
| Windows (x64 MSI) | Zephyr_1.3.0_x64_zh-CN-full.msi |
Zephyr_1.3.0_x64_zh-CN-lite.msi |
| macOS (Apple Silicon) | Zephyr_1.3.0_aarch64-full.dmg |
Zephyr_1.3.0_aarch64-lite.dmg |
| macOS (Intel x64) | Zephyr_1.3.0_x64-full.dmg |
Zephyr_1.3.0_x64-lite.dmg |
| Linux (deb, amd64) | Zephyr_1.3.0_amd64-full.deb |
Zephyr_1.3.0_amd64-lite.deb |
| Linux (AppImage, amd64) | Zephyr_1.3.0_amd64-full.AppImage |
Zephyr_1.3.0_amd64-lite.AppImage |
| Linux (RPM, x86_64) | Zephyr-1.3.0-1.x86_64-full.rpm |
Zephyr-1.3.0-1.x86_64-lite.rpm |
⚠️ 免责声明:本项目由 AI 开发,安全性和性能尚未经充分验证,请自行评估使用风险。如发现安全问题或 Bug,欢迎提交 Issue。