🚀 VProxy v1.16.2 发布说明 / Release Notes
🎉 VProxy v1.16.2 正式发布!本版本全面整合了面向 macOS 平台的常驻后台与 TUN 守护能力、大幅提升了海量脏数据订阅源的容错解析效率,并完成了全工程历史兼容项清理与交互保障:
🍎 macOS:Dock 最小化常驻、登录恢复与 TUN 守护加固 (PR #9)
- Dock 优雅常驻与生命周期管理:
- 针对 macOS 缺乏通用系统托盘的平台特性,点击窗口关闭按钮时通过
ViewportCommand::Minimized(true)拦截退出并最小化收进 Dock,维持代理与 TUN 路由不中断;显式退出时置位force_quit,确保释放所有资源并平稳退出守护进程;
- 针对 macOS 缺乏通用系统托盘的平台特性,点击窗口关闭按钮时通过
- LaunchAgent 用户级登录自动启动与节点状态持久恢复:
- 支持在用户登录系统后自动启动并恢复记忆的代理节点状态,无需手动打开界面重连;
- 独立内核看护任务与崩溃退避重试:
- 解决 macOS AppKit 在窗口最小化后停止重绘导致渲染主循环挂起的问题,派生独立的 Tokio 守护循环持续维护内核状态,确保崩溃重试机制(2s / 5s / 15s 退避)在后台常驻时始终可靠生效;
- Darwin 域套接字
O_NONBLOCK继承机理修复:- 在 Privileged Helper IPC 通信中显式配置阻塞模式与读写超时,彻底根治 macOS 内核
accept()继承父级套接字非阻塞标志引起的EAGAIN/EWOULDBLOCK瞬时报错。
- 在 Privileged Helper IPC 通信中显式配置阻塞模式与读写超时,彻底根治 macOS 内核
⚡ 核心解析引擎:超大脏数据公开订阅源容错解码
- Base64 容错解码与 Unicode C1 控制符兼容:
- 彻底修复
decode_maybe_base64在解析数兆字节超大订阅(如 14,000+ 节点的自动化抓取代理池)时,因备注或 query 参数混入个别 Latin-1 / C1 控制字符(\u{80}、\u{93})导致整包数据被all(!is_control)判定为二进制而误丢弃为 0 节点的严重缺陷; - 引入代理协议特征快速放行与最高 2% 的控制字符容错机制,实测公开大订阅源解析成功率提升至 100%。
- 彻底修复
🎯 界面交互:Tab 切换机制确认与防误触保障
- 全量 Tab 严格点击触发机制:
- 确认并固化侧边栏一级导航、设置页子面板、扩展功能、活动连接、分流规则等全部 Tab 组件的交互响应,确保界面切换严格由明确的鼠标点击(
resp.clicked())触发,鼠标移入(hover)仅改变视觉焦点样式,杜绝任何误切页。
- 确认并固化侧边栏一级导航、设置页子面板、扩展功能、活动连接、分流规则等全部 Tab 组件的交互响应,确保界面切换严格由明确的鼠标点击(
🧹 工程治理与老版本平滑兼容
- 历史遗留硬编码收敛:
- 梳理并收敛工程内部遗存的
vpn-parser命名,优先读取VPROXY_*环境变量(同时无缝向下兼容VPN_PARSER_*); - 全平台打包配置、Inno Setup、deb、rpm、Scoop Manifest 同步升级至
v1.16.2。
- 梳理并收敛工程内部遗存的