Zephyr v2.5.0 — 全新标志与界面、订阅下载重做、连接/日志/规则库重构、Windows TUN 一键提权
全新标志与托盘图标;全新「检查更新」对话框;订阅拖动排序图标、到期提示、失败原因常驻;覆写「仅保存」与上次失败原因;连接页暂停、逐条关闭、真实应用图标;日志结构化显示与「回到最新」;规则库可视化插入与行内编辑、单个规则文件启停;设置页搜索与分区导航;Windows 下 TUN 缺权限时一键以管理员身份重启;订阅三档下载全面重做(本地 DNS 失败也能走代理);大量 macOS TUN 优化;配置清洗与防 SSRF 全面加固;断电不再损坏配置文件。
设计与品牌
新标志
应用图标、托盘图标、标题栏(Zephyr 文字标识)、安装器与文档头图全部换新。macOS 应用图标与菜单栏图标按苹果惯例留边,大小与系统图标对齐。
新托盘图标
- 空闲 / 系统代理 / TUN 三种状态各有新图标,取代旧的红、黄图标
- macOS:菜单栏使用模板图标,随系统深浅色自动变色
- Windows:空闲图标跟随任务栏深浅色自动切换
界面整体刷新
- 所有页面统一控件高度、分段标签、对话框标题、输入框与通知样式;动效时长与缓动重新调整,页面切换带淡入
- 浅色主题层次与深色对齐;默认主题色由紫色改为蓝色,紫色主题移除(原紫色用户自动迁移为蓝色)
- 流量配色统一:下载蓝色、上传珊瑚红,首页、控制台、迷你曲线一致
- 内置国旗字体:Windows 上节点名里的国旗 emoji 也能正常显示,不再是两个字母
- 侧边栏图标新增悬停 / 键盘聚焦提示,当前页有滑动高亮
- 窗口过窄时,标题栏按钮自动变为仅图标,搜索框自动收窄
- 文案整体改写得更直白(如「节点选择」→「代理」、「DNS 覆写 (防泄漏 & Fake-IP)」→「DNS 防泄漏」)
新功能 — 首页与控制台
简洁首页大卡片
简洁首页改为整窗高度的单张卡片:实时流量曲线垫在上下行速度后面,底部一行实时数据显示总流量(↓/↑)、活动连接数(TCP/UDP)、当前节点及其延迟。
无订阅引导
还没有订阅时,首页与控制台显示「还没有添加订阅」空状态和「添加订阅」按钮;此时打开系统代理(首页、控制台、托盘、快捷键)会引导去添加订阅,而不是开一个只能直连的代理。添加第一个订阅(含 clash:// 链接导入)后自动开始使用。没有订阅时也不再自动生成示例 config.yaml,改用内置最小配置启动内核。
内核启动失败卡片
内核启动失败时不再弹系统 alert 后卡住:首页显示错误卡片,包含失败原因、「重试」和「查看日志」(就地展开本次失败的内核日志末尾)。
简洁首页节点胶囊
- 加了下拉箭头;列表每行显示延迟并按延迟着色,分组行显示其当前所选节点的延迟
- 支持完整键盘操作(Enter 展开,方向键 / Home / End 选择,Esc 关闭)
控制台主页
- 连接列表显示应用的真实图标(Windows 取 exe 图标、macOS 取 .app 图标、Linux 取 .desktop / Flatpak 图标;不会读取网络共享与网络挂载),取不到时显示中性占位
- 回到控制台时节点延迟立即显示上次的已知值,只在没有记录时才重新测量
- 总流量改用内核自身的累计计数;速度卡片迷你曲线移到大数字旁,峰值不再被截断
新功能 — 代理页
- 节点搜索:输入即筛选,显示「匹配数 / 总数」,Esc 清空
- 单节点重测:卡片悬停时出现小按钮,只测这一个节点,不切换
- 测速可停止:测速中按钮变为「停止 · 已测/总数」;测完底部显示可用数、超时数和最快节点,可一键切换到最快(直连、拒绝和分组不参与评比),会保存选择并断开旧连接
- 开启「隐藏超时节点」时,测完后短暂显示「已隐藏 N 个超时节点 · 显示」,可临时查看;超时节点等整轮测完再统一隐藏
- 排序改为下拉菜单,列出每种排序方式的说明,当前方式打勾
- 节点卡片重新设计:名称独占一行;底部显示协议与传输层(如「SS · TCP」「Hy2 · QUIC」);状态点按延迟显示绿 / 黄 / 红;当前节点卡角打勾;智能评分改为名称行末的小胶囊,无评分时隐藏
- 长节点名在悬停或聚焦时自动横向滚动显示全名
- 分组卡片显示类型与当前去向(如「自动 → 香港 02」)并沿用其延迟,按延迟排序时分组也参与排序
- 分组菜单显示每个分组当前使用的节点、经过的中间分组,DIRECT 显示为「直连」
- 直连模式下显示说明面板和「切换到规则模式」按钮
- 分组不一致提示改为蓝色说明,直接写明流量实际由哪个分组控制,附「打开该分组」;关闭后按订阅记住,重启不再出现;误报更少(当前分组本身在流量路径上时不再提示,只统计走代理的连接,隐藏分组不再提供跳转)
- 测速过程中切换节点不再中断测速
- 切换节点成功会提示「已切换到 XX」;失败时提示带原因并说明「已保持原节点」(首页胶囊和托盘切换失败此前没有任何提示)
- 节点加载超过 8 秒时提示「加载时间比平时长」并提供「重启内核」;订阅提供者仍在下载时显示加载中而非「没有节点」;无法连接内核时显示错误状态,不再一直停在「正在加载节点…」
新功能 — 订阅与覆写
订阅
- 新的添加订阅对话框:实时校验链接(仅支持 http / https),可选填名称且会被保留
- 拖动排序:订阅卡片与覆写卡片都可用拖动手柄排序,也可聚焦后按 Alt+↑/↓
- 到期提示:显示剩余天数(不足 7 天高亮)或「已过期」,悬停显示到期日期;流量超过 75% 时进度条变为警示色
- 更新失败常驻:卡片显示「更新失败」,悬停查看原因,直到下次成功(含从未成功过的订阅)
- 编辑、更新、删除按钮常驻显示;本地配置也能编辑;当前订阅显示「使用中」;本地文件标注「本地文件 · 不会自动更新」
- 编辑面板:当前链接只读显示,点「更换链接」才可改,改后立即下载;显示下次自动更新时间;说明何时需要修改请求标识(UA);自动更新间隔改为分段选择
- 添加时先出现「正在下载」占位卡片,完成后高亮
- 「全部更新」失败时写明哪个订阅、因为什么失败
- 订阅更新中重复点击、改名、删除都会提示,不再并发下载同一订阅
- 订阅更新或重启后,若内核回退到其他配置或最小配置,会提示并把实际运行的配置保存为当前配置
- 删除订阅的确认框写明名称及会一并删除的内容
覆写
- 仅保存:Ctrl/⌘+S 只保存,Ctrl/⌘+Enter 保存并应用(全屏编辑器同样支持)
- 编辑器顶部新增面包屑与「● 未保存」标记,离开前询问是否放弃修改
- 运行结果改为一行摘要:成功 / 失败、耗时、代理组数量变化(如「代理组 12 → 15」),完整输出点「查看日志」展开
- 覆写列表每行显示「作用于」(可点击修改),上次运行失败时直接显示失败原因
- 从链接导入覆写使用新的链接对话框
- Prism YAML 覆写的「测试」改为检查 YAML 语法;测试和语法检查不再覆盖「上次运行结果」
- 内核拒绝或未响应热重载时,单个覆写和「全部应用」都如实报告失败,不再显示成功
- 全屏编辑器打开即显示正确的行、列与字符数
新功能 — 连接、日志与规则库
连接页
- 暂停 / 继续:暂停后列表停止刷新,方便点选(取代「刷新」按钮)
- 每行悬停出现 ✕,可直接关闭单条连接
- 搜索时「全部关闭 / 全部清空」只作用于匹配结果
- 「已关闭」标签显示「持续时间」和「关闭于」
- 详情面板打开期间连接断开会标为「已断开」并冻结数据
- 显示命中的规则内容;长规则类型用简称(全名在悬停提示里)
- 顶部 4 张统计卡改为一行摘要;总流量与每条连接的总量都改用内核累计值(此前只统计打开页面之后的流量)
- 表格改为双行布局,空闲连接变暗;文本列首次点击按 A→Z 排序,第三次取消排序
- 搜索框带清除按钮,无结果时显示专门的空状态
日志页
- 新增「暂停」「清空」(只清视图,不动文件)「导出」
- 回到最新:往上翻自动停止跟随,按钮显示期间新到的行数(取代「自动滚动」开关)
- 内核日志与应用日志共用同一筛选栏:全部 / 信息+ / 警告+ / 仅错误(含 fatal),并显示「显示 X / Y 行」
- mihomo 格式的内核日志按结构显示:本地时间、级别徽标、消息,警告和错误行带底色
- 应用日志本地化(Prism 事件徽标和消息跟随界面语言),往上翻时不再被强制滚到底
- 离开再回来保留标签、级别和搜索词
- 字号调大,长行优先在空白处换行
规则库
- 单个规则文件可启用 / 停用:停用后其规则从运行配置中移除,卡片显示「已停用」,统计与订阅右键菜单都会跳过
- 可视化插入规则:规则类型下拉、匹配内容、「命中后走」策略下拉(列出配置中的代理组与 DIRECT / REJECT),插入位置标出最高 / 最低优先级;也可直接粘贴整行规则
- 行内编辑:点击某行(或 Enter / F2)原地修改;「添加规则」在列表上方打开行内表单,策略默认沿用文件最新一条;底部有「有未保存的修改」提示;正确保留 AND / OR / NOT 逻辑规则与 no-resolve 等参数
- 导入规则改用真正的文件选择器并支持拖放(上限 10 MB),自动按文件名填写规则集名称;导入前在对话框内校验
- 「从 URL 导入」直连失败时可经内核代理重试
- 卡片直接提供启用开关、编辑和「更多」菜单;标签显示文件格式(Clash / Surge)
- 「生效规则」页工具栏新增「匹配追踪」按钮
- 删除文件 / 分组的确认框写明后果(会移除多少条规则、文件是否保留)
- 规则保存时保留注释;上下箭头改为每次移动一位
代码编辑器
语法配色跟随主题,深色主题下不再看不清;新增行 / 列 · 字符数状态。
新功能 — 设置与更新
全新「检查更新」对话框
一个窗口走完检查中、已是最新、发现更新(版本号与更新说明)、下载进度、完成、失败重试全部状态。
- 应用与内核同时有更新时,先更新内核,再下载并打开新版安装包
- 便携版提供发布页链接和「仅更新内核」
- 任一版本读取失败会如实报告,不再显示「已是最新」
- 更新内核时占用网络锁,不会与 TUN、模式、订阅切换同时进行
- 内核更新后会重新应用 Prism 补丁与覆写并恢复节点选择
- 更新说明里的链接在系统浏览器中打开
更新下载更可靠
- 先直连,失败(或 403 / 407 / 408 / 429 / 451 / 5xx)再经 Zephyr 内核代理重试,中途断开也会重下一次
- 大文件更新不再在 60 秒处被掐断:传输上限 30 分钟,30 秒无数据才算卡住
- 不再读取系统或环境变量代理
- 第三方客户端版本查询(伪装 UA 用)改为并发,失败时指数退避
设置页
- 搜索框:按名称或说明筛选设置项
- 右侧分区导航条:显示当前分区,悬停看名称,点击跳转;分区标题固定在各自内容上方
- 分区由 9 个整合为 7 个:外观、通用、代理、网络、订阅与规则、数据与安全、关于
- 原来藏在齿轮里的操作改为直接可见的按钮(DNS「服务器」、日志「设置」「导出…」、评分「参数」、高级设置「打开」)
- 「故障转移」更名为「自动切换节点」,并反映 Prism 页故障转移策略的实际状态
- 节点评分参数弹窗重新排版,新增「恢复默认值」和权重合计;最短测速间隔不低于 60 秒
- 「恢复默认」确认框列出会重置和不会动的内容;覆盖更多项(界面缩放、轻量模式、复制环境变量格式、日志保留与大小);代理模式和 TUN 会对运行中的内核实际生效;只写入被重置的项,不再还原其他设置;主题色正确回到蓝色
- 主题、首页模式、界面缩放统一为分段控件,连点按顺序保存
- 主题色一栏显示当前颜色名,自定义色块显示所选颜色
- 复制代理环境变量的 Shell 格式改为「复制」旁的下拉
- 日志设置合并为一个窗口;导出改为选择「应用 / 内核 / 全部」后一键导出
- 端口转发协议改为 TCP / UDP / TCP+UDP 三选一
- Redir 端口只在 Linux / macOS 显示,TProxy 端口只在 Linux 显示
- 「统一延迟」「IPv6」「局域网连接」热重载成功后提示「已应用」,只在确需重启时提示重启
- 加密配置、导入备份等改用应用内确认对话框;导入备份时说明会重启内核
- 修改 DNS 服务器立即生效,内核没能切换时单独说明
- 高级设置页显示 YAML 原始键名,文字全部本地化
- 第三方许可证:「设置 → 关于」可查看全部开源组件许可证全文,安装包随附 THIRD-PARTY-LICENSES.txt
全局快捷键
- 窗口隐藏或不在前台时,用系统通知反馈结果
- 切换模式与点击模式按钮行为一致:遵守网络锁、尽量保留当前节点、同步托盘
- 连按两次显示 / 隐藏不再互相抵消
平台
Windows
- TUN 一键提权:开启 TUN 缺少管理员权限时,提示「以管理员身份重新启动 Zephyr?」,确认后经 UAC 重启并自动开启 TUN(托盘的 TUN 开关同样适用)。仅对管理员账户提供;标准账户直接说明原因;已是管理员时提示查看内核日志。提权前会关闭 Zephyr 开启的系统代理,在新实例中再打开;拒绝 UAC 时 TUN 偏好恢复原值
- Zephyr 以管理员身份运行时,再普通方式打开 Zephyr 或点
clash://链接,会转交给已在运行的实例,不再出现第二个托盘图标或端口冲突 - 未以管理员运行时,保存的 TUN 偏好和配置中的
tun.enable不再生效,内核关着 TUN 正常启动,不会因无权限启动失败;开关如实显示为关闭 - 开启系统代理时刷新系统设置失败,会回滚注册表,不再留下一半生效的代理设置
macOS
- 开关 TUN、退出应用时只结束 Zephyr 自己的内核,不再用
killall -9连带杀掉其他客户端或系统服务的 mihomo,退出时也不会因别人的 root 进程弹密码框 - 自定义控制端口(非 9090)的配置可以正常开启 TUN
- 开启 TUN 时只改顶层
secret,不再误改代理或监听器里的secret:字段 - 授权框点「取消」或超时,原内核继续运行,
run_config.yaml恢复原样 - TUN 模式下托盘图标与状态显示正确(此前 TUN 开着却显示「已停止」)
- 关闭 TUN 时取消授权,不会再把设置改成关闭
- 开关 TUN 后,运行时长、端口、密钥与日志都指向新的 root 内核;「查看内核日志」显示 root 内核日志(位置改为
/Library/Logs/Zephyr/tun.log) - 同一配置重复启动时复用正在运行的 root 内核,不再每次弹密码框
- root 内核一启动就退出时几秒内报错,不用等满 30 秒;TUN 模式下重启内核省去约 7 秒无效等待
- 关闭 TUN 后残留的 root 内核会先被清理,普通启动不再因端口被占失败
- TUN 模式下订阅更新也能使用代理档和全局档
- 胶囊与按钮文字视觉居中,修正代理页横向滚动条
Linux
- 开启 TUN 需要授权时改用应用内确认对话框;从托盘触发会先显示主窗口再询问,避免开关卡住
订阅下载与网络
2.4.4 已有「直连 → 内核代理 → 临时全局模式」三档下载,2.5.0 对其全面重做:
- 本地 DNS 失败也会走代理:2.4.4 先做本地 DNS 校验,域名被污染、解析失败或超时会直接报错,到不了代理档;现在只要内核在运行就继续走代理
- 代理档使用内核实际监听的端口和协议(只开 socks 端口也能用),不再固定
http://127.0.0.1:7890 - 全局档真正可用:临时切到全局时同时把 GLOBAL 指向一个存活的节点(2.4.4 若 GLOBAL 选的是 DIRECT 则这一档无效),下载完立即恢复;期间用户手动切换的模式或节点以用户为准;应用中途崩溃,下次启动自动复原
- 明确拒绝不再兜圈子:404、401 等确定性错误直接失败,不再走代理或切全局;403 / 407 / 408 / 429 / 451 仍会回退
- 超时改为总预算:手动更新共 25 秒、后台自动更新共 14 秒,按档位分配并为后续档位预留时间,后台更新也能真正用上代理和全局档
- 局域网订阅支持主机名:
.lan、.internal、.home.arpa、http://nas:8080/sub等单段主机名可直接下载,同主机重定向放行 - TUN fake-ip 下识别更准:不再把 fake-ip 合成地址当真实地址,读取自定义
fake-ip-range,只拿到合成地址时给出明确提示 - 错误分类更准确,按真实失败原因报告
- 订阅名很长时更新不再失败
- 远程覆写下载改用内核实际监听端口;规则 URL 导入与 SR 规则转换新增经内核代理的回退
- 复制代理环境变量与系统代理会识别监听协议:只开
socks-port时复制socks5h://;内核没有 HTTP 端口时,系统代理提示「内核没有 HTTP 代理端口」,不再指向连不上的端口或凭空使用 7890 - 热重载后同步更新记录的代理端口,系统代理与复制环境变量使用新端口
clash://链接先由后端排队(最多 8 条),界面就绪后逐条处理,冷启动或重载时不再丢失
安全加固
- 剥离控制面字段:订阅或导入的配置中的
external-controller-unix/-pipe/-tls/-cors、external-doh-server、external-ui/-url/-name会被移除(其中 unix、pipe 与 DoH 端点在 mihomo 中不校验 secret),<<合并键里的也一样 - 修补清洗器绕过:显式 YAML 标签(如
!!str script)、带标签映射、经<<继承的 provider 不能再绕过script与 providerpath过滤 - 规则文件与 Prism YAML 覆写在新建、编辑、提取、远程刷新、启用、导入、执行各路径统一清洗危险键
- 防 SSRF 更严格:拦截更多保留网段(CGNAT、198.18/15、组播、240/4 及各类嵌入私网 IPv4 的 IPv6 前缀);每一跳重定向都校验;代理档先经内核 DNS 预检;拒绝畸形 URL;局域网订阅只走直连;DNS 解析有超时与并发上限
- 更新包校验:安装包必须附带格式正确的 SHA256 摘要(2.4.4 遇到格式错误会静默跳过 SHA256 校验);签名文件下载上限 4 KB
- 内核健康检查带密钥:另一个 Clash / mihomo 实例或残留进程占着控制端口时,不再被误判为「内核启动成功」
- macOS:TUN 日志目录改为 root 所有的
/Library/Logs/Zephyr,防符号链接攻击,日志权限 600;特权脚本 kill 前以 root 再次核对 PID,防止误杀被复用 PID 的进程 - 前端:
escapeHtml转义引号,节点名、订阅名中的引号不能再注入 HTML 属性;HTML 清洗器按浏览器解析方式检查 URL 协议,拦截混淆过的javascript:/vbscript:链接,并校验 SVGxlink:href;打开外部链接只允许 http / https - 规则文件 YAML 无法解析时拒绝保存;Prism 名称类输入加长度上限
fetch_text失败日志中的 URL 令牌已脱敏- 配置、设置与订阅元数据写入时,临时文件一创建即为仅本人可读(Unix 0600)
Bug 修复
数据可靠性
- 意外断电或崩溃后,
settings.json、订阅文件与metadata.json不会再被截断或清空(改为 fsync + 原子替换;Windows 上文件被占用时自动重试) - 设置写盘失败时内存中的设置不变,界面与磁盘保持一致
- 完整保存设置时不会把当前订阅、节点选择、主策略组偏好、订阅 UA 覆盖成旧值
- 开启「加密配置文件」后,在界面修改内核配置项或拖拽导入 YAML 不会再明文落盘
- 机器密钥未能持久保存时以明文保存配置,避免下次启动无法解密
- 切换加密时,正在下载的订阅或正在保存、改名的配置不会被旧内容覆盖
- 启动时补完上次中断的批量加密 / 解密
- 删除当前订阅后,自动改选的下一个订阅能可靠保存
run_config.yaml改为先写临时文件再替换,写入失败不影响内核正在用的配置
内核与网络
- 系统睡眠唤醒后后端重启了内核,界面会自动接上新内核(新端口与密钥),重新应用覆写并恢复节点选择,托盘同步刷新
- 内核没能停下时,内核更新会中止,不再替换文件后报告成功
- Geo 数据更新失败时不再丢失原有 geosite / geoip 文件;内核重启成功后才显示「已更新」
- 「全部应用覆写」时一组失败不再导致其余覆写全部跳过
- 回退到内置最小配置时也会套用用户设置的端口等偏好
- 内核启动失败时「查看日志」打开的是本次失败的日志
- 内核日志含非 UTF-8 文本时日志页不再读取失败
- Windows / Linux:TUN 被内核拒绝时不再记下「TUN 已开启」偏好
- 覆写或 Prism 修改了
tun.enable后,托盘与界面 TUN 状态跟随内核实际状态 - 轻量模式下点托盘 TUN 项会打开主窗口,不再卡死 TUN 开关;停止或重启内核后托盘及时更新
- 轻量模式下更新、切换订阅、切换 TUN 进行中关闭窗口,任务不再中断
- 内核没运行时托盘里不能再开启系统代理
- 托盘里选的节点按当前订阅记住,重启后恢复,且不会与其他网络操作冲突
- 重启后恢复节点选择更可靠(全局模式下只切 GLOBAL);恢复不完整时给出提示
- 切换订阅后「当前订阅」保存失败会提示
- 切换模式后原节点没能带过去时如实提示,失败时界面回到内核实际模式
- DNS 防泄漏启动时读取失败会自动重试,不再整次运行处于禁用状态;内核重载配置后会重新应用
- 判断「是否为当前订阅」时区分大小写与扩展名(a.yaml / A.yaml / a.yml)
- 订阅右键菜单切换规则文件时,内核拒绝重载会提示需要重启,不再显示「已应用」
- IPv6 地址的订阅 URL 能正常使用
- 非 Unicode 启动参数不再导致崩溃
- 结束内核连接的本机请求不再走环境变量代理
界面功能
- 关闭单条连接会断开全部连接的问题(Mihomo 忽略了带 body 的批量删除)
- 设置中「节点评分参数」弹窗无效:此前读写字段与 smart.toml 结构不一致,保存会把评分重置为默认并关闭节点评分
- 定时测速不按设置的最短 / 最长间隔运行(始终 60 / 600 秒),遇到手动测速或分组为空时会悄悄停掉
- Prism 页保存评分设置会校验旧文件并把间隔强写为 10 / 3600 秒;
enabled = true # 注释被读成关闭 - 「显示 / 隐藏窗口」全局快捷键无效
- Prism 插件页「触发」钩子按钮总是失败
- 规则库以文本插入规则总是失败
- 伪装客户端版本获取失败时陷入请求死循环
- 5 秒内连续更新两个订阅时第二个因频率限制失败(现在自动排队)
- 编辑订阅时非预设的自动更新间隔显示为「关闭」并在保存后被关掉
- 「恢复默认」读取开机自启状态失败时不会真正关闭自启
- 控制台 TUN 开关开启失败后仍显示开启
- 已关闭连接在列表中出现两次;空列表不显示空状态;详情「持续时间」不准;详情打开期间连接断开会报错
- 日志搜索高亮会拆坏 HTML 实体、搜不到含
<&的内容 - 内核日志 FATAL 行被当作 info;应用日志中失败的补丁 / 重载按「错误」筛选时看不到
- 日志读取较慢时同一段日志被追加两次
- 删除规则文件后其规则仍留在运行配置中
- 规则编辑器保存失败时对话框照样关闭导致修改丢失;「添加规则」会插入占位规则
MATCH,Proxy - 规则文件回退保存会丢元数据、单引号写出损坏 YAML
- 节点名、订阅名中的全角字符、上标等被悄悄改写(如全角「1」变成「1」)
- 流量格式化遇到异常输入显示「NaN undefined」;流量图遇到异常数值画坏整张图
- 更新说明 Markdown 中链接含
*或行首为粗体时渲染错误
性能
- 连接列表由每 2 秒整表重建改为按连接 ID 增量更新
- 首页流量图尺寸不变时不再重新分配画布,重绘合并到 requestAnimationFrame,窗口不可见时停止绘制,主题色读取缓存
- 首页实时数据只在首页与窗口可见时轮询
- 日志级别解析加缓存与快速路径;HTML 转义改为纯字符串处理
- 保存、改名、删除配置及修改设置等操作移到后台线程,批量加解密时界面不再卡住
- 订阅更新的 DNS 解析不再阻塞后台线程
无障碍
- 设置页开关关联标题与说明;分段控件提供 radiogroup 语义
- 对话框支持多层嵌套焦点陷阱、Esc 关闭,关闭后焦点回到触发元素;用鼠标打开时不显示焦点环
- 焦点框只在键盘操作时显示,Windows 高对比度模式保留系统焦点框
- 代理节点网格支持二维方向键导航;排序、分组菜单与下拉框支持方向键、Home / End、Esc
- 连接行、订阅卡片、覆写卡片、规则行都可用键盘操作;连接详情为真正的模态对话框
- 图标按钮均有本地化 aria-label,装饰性 SVG 标记 aria-hidden;测速结果、延迟加载等会被读屏播报
- 开启「减少动态效果」时关闭页面切换动画、名称滚动与转圈
移除与行为变化
- 移除紫色主题(自动迁移为蓝色)
- 移除「节点名称滚动」设置,长名称改为悬停 / 聚焦时自动滚动
- 移除代理页「最佳」按钮,改用测速后的「切换到最快」
- 移除连接页「刷新」按钮与顶部统计卡、日志页「自动滚动」开关;日志「调试」「致命」筛选并入新的四档筛选
- 移除「核心与更新」「系统与兼容性」设置分区(各项并入其他分区)
- 订阅中的
external-ui面板设置不再生效(见安全加固) - 局域网订阅不再回退到代理或临时全局模式
- 订阅域名解析到 100.64.0.0/10(如 Tailscale MagicDNS)会被拦截,请直接填写 IP
- 无法解析的规则 YAML 不能再保存;导入覆写备份时 YAML 无效的条目会被跳过
- 没有订阅时不再生成示例
config.yaml