🚀 VPN Parser v1.9.0 发布说明 / Release Notes
🎉 欢迎使用 VPN Parser v1.9.0!这一版集中修三件"看得见却说不清"的事:可用节点里重复的节点、下载内核总是失败、新装机器上点导入没反应,并把菜单栏做成可展开/收起的。
🌟 本版内容
📦 1. 可用节点按"真身份"收敛,不再重复出现
- 现象:同一个节点在面板里出现两三次,看着像节点池有水分。
- 原因:库的唯一键是
(协议, 服务器, 端口, 名字),改名就是新行;而面板钉在"全部订阅源"上把各分片结果直接拼接,谁都不去重。 - 现在的行为:查询层按节点指纹(协议 + 服务器 + 端口 + 凭据)收敛,同一颗只留排序最靠前的那条;凭据缺失或配置为空的行退回按
node-id单列,不会被误并。 - 不动数据:只改查询,库里一条都没删。
🧯 2. 「下载内核失败」修好了 —— 它根本不是下载失败
- 日志形状:
下载完成 → SHA-256 校验通过 → 解压暂存 → 暂存内核报版本成功 → 准备替换正式路径 → 替换内核失败,已尝试回滚,三个内核、两个变体、多轮全自动全死在同一步。 - 真因:最后那句
rename(暂存 → 正式)被拒 —— 刚被跑过一次的那颗 exe,杀软实时防护还会占它几秒,而改名需要对源文件的 DELETE 权限,复制只需要读权限。 - 现在的行为:改名与复制交替重试(4 轮,退避 400/800/1600/3200ms,每轮查取消),改名被拒就改用复制落地并写一行说明;两条路都失败才报错,且错误里带上 os code(以前只印最外层那句 context,系统错误码整条丢了)。
📥 3. 修「新装机器点『导入本地 YAML』没反应」
- 原因:节点池为空时页面有一句提前
return,而那个弹框的渲染写在它后面 —— 于是标志位被置上、弹框那一层永远不画。偏偏"导入本地 YAML"是空库机器上唯一还能往里灌东西的入口。 - 现在的行为:弹框渲染钉在页面函数第一句,任何提前返回都吞不到它;并留了两条离屏判据(一条量真事,一条守探针自己别是坏的)。
🧭 4. 菜单栏可以展开了
- 菜单栏底部(更新提醒上方)新增一个展开/收起按钮:展开 = 左图标 + 右文字,收起 = 只有图标。
- 状态持久化(
settings.sidebar_expanded),默认收起;展开宽 110、收起宽 64,两个宽度是常量并被判据共用。 - 展开/收起图标是新画的矢量图(圆角方框 + 分隔线 + 指向折叠方向的箭头)。
🏷 5. 节点归属徽章说实话了
- 汇总卡片那颗徽章原来在"出口查询失败"时会被短路成永远未检测 —— 因为失败路径也已经写上了归属主人。现在读取口只在真有结果时才优先用它。
- 屏幕上只留两档:住宅 / 机房;三档判定(含"这颗 IP 被公开代理/VPN 出口库标记")挪到 hover 里说明。
- 状态栏那两颗「IP 检测」按钮撤掉,改由代理运行且出口变化时静默自动查。
- 新增
[代理状态]/[出口归属]两类启动日志:状态变化各打一行,同一状态卡住超过 30 秒再补一行警告 —— 以前"点了没反应"在日志里一个字都没有。 - 「启动代理」按钮灰掉时,hover 会说清是正在忙、正在切换还是没有可用节点。
🧹 6. 图标与文案清理
- 设置页状态那颗
✓ 已同步和⚠ 有未保存修改、导入弹框里那颗✕ 清空路径,全部从裸 unicode 字符换成仓库自绘的矢量图标(Check/Alert/Trash)—— 字符当图标在缺字形的机器上会渲成方框。 - 撤掉系统设置里「控制台当前/首选 Tab」那一行(连同三语词表里的条目)。
📐 实测数字
- 测试:Windows
cargo test --features gui= 418 passed / 0 failed(9 ignored)。 - 重复节点收敛(他机器上的真实库,快照):1,227 条可用 → 按指纹 980 颗(落在 769 个
server:port端点上);另一轮 393 → 341(收敛掉 52 条重复)。 - 改名 vs 复制:用
FileShare.ReadWrite占住刚跑过的暂存 exe 做隔离实验 ——RENAME=FAIL (IOException)/COPY=OK,这就是复制兜底成立依据。 - 装机对账(本机,同一轮连做两次):安装包不动内核 ——
mihomo / sing-box / xray三颗 sha256 前 16 位装前装后逐字节相同(1CDE41CF…/5C19BB3F…/C77A00EB…),累计第四次验证。 - 已知未修:系统设置表头右侧那块(保存设置 / 重置修改 / 状态)是
right_to_left排布,但状态那一项实际从光标向右排 —— 离屏量到状态文字盒与「重置修改」文字盒重叠:已同步重叠 15.3px、有未保存修改42.3px,旧写法⚠ 有未保存修改52.0px。这是本版之前就有的老毛病(A/B 实测过),本版只是把最坏情况缩到 42.3px,没有治好。
⬇️ 怎么升
- 已经在跑 v1.3.0 及以后 的:打开「关于 → 检查更新」,软件会自己下包并校验 SHA-256,再交给安装向导。
- 还在跑更早版本的:那个入口本身是 v1.3.0 才有的,只能到 Releases 页手动下
vpn-parser-1.9.0-windows-x64-setup.exe。 - 安装包只替换程序本体,不会删你的订阅数据、节点库和已下载的内核;数据都在安装目录的
data\里。