Skip to content

v1.0.31

Choose a tag to compare

@bcblr1993 bcblr1993 released this 27 Sep 13:42
· 276 commits to main since this release

v1.0.31 发布说明

2026-09-27,完成本机 6 小时连续运行指标与系统日志深度监控(720 周期无侵入采样)、SwiftUI 运行时更新 Fault 消除、Combine 状态同步解耦、Menu Bar Quit 退出 XPC 0x7d 断言修复与优雅清理、网络扩展意外中断恢复感知(.recovering)、活动路由探测超时高灵敏度优化(3.5s Failover)、Tart 虚拟机与物理真机全矩阵回归验证:

核心优化与演进落地:

  1. SwiftUI 运行时 Fault 彻底消除(ContentView.swift):

    • 修复在视图更新周期内调用 setRealtimeTelemetryPreferred 引发的 Publishing changes from within view updates is not allowed 告警;
    • 将 updateOverviewTelemetryState() 中的属性同步改由 DispatchQueue.main.async 派发,彻底消除运行时状态更新竞争。
  2. Combine 状态同步初始化解耦(AppAutomationController.swift):

    • 为 licenseAccessObservation 和 privacyObservation 订阅管道追加 .receive(on: DispatchQueue.main) 调度;
    • 规避在控制器与主视图装载生命周期中因同步修改属性引发的重入警告。
  3. MenuBarExtra Quit 退出时 XPC 0x7d 断言修复与安全退场(AetherRouteApp.swift):

    • 菜单栏弹窗中的 Quit 按钮通过 DispatchQueue.main.async { NSApplication.shared.terminate(nil) } 异步解耦,杜绝在 AppKit 菜单事件跟踪循环内强杀引发的 0x7d XPC 退出断言;
    • 在 AppDelegate 中实现 applicationWillTerminate(_:) 生命周期回调,有序释放 DispatchSource 信号源并主动清理网络扩展 Tunnel 资源,实现进程优雅安全退出。
  4. 网络扩展中断恢复感知(TunnelManager+ConnectionLifecycle.swift):

    • 针对多网络工具并存场景下底层系统扩展触发 NEVPNConnectionErrorDomain Code 12 意外终止,当即将触发自动重连时将连接状态置为 .recovering(恢复中),防止界面误报不可用错误红框,并在重连成功后平滑恢复至 .connected。
  5. 活动路由探测超时高灵敏度优化(TunnelStartupTimingPolicy.swift、TunnelManager+Telemetry.swift):

    • 新增 activeRouteProbeTimeoutMilliseconds = 3_500 策略;
    • 将活动节点探测超时由 10s 缩短至 3.5s,极大提升节点网络闪断感应速度与节点切换(Failover)敏捷度。
  6. 版本号推进与项目规范对齐(project.yml、CHANGELOG.md):

    • 版本号推进至 MARKETING_VERSION: "1.0.31", CURRENT_PROJECT_VERSION: "2026092702"。

监控与环境自动化验证结论:

  1. 本机 6 小时连续运行指标与日志取证(720 周期采样):

    • 采样时长:5.99 小时(720 轮次,每 30 秒无侵入采样);
    • CPU 资源消耗:平均 CPU 占用 0.28%,峰值仅 1.80%;
    • 内存稳定性:驻留内存从 66.8 MB 平稳过渡至 68.2 MB(净漂移 +1.4 MB),无任何内存泄漏(Memory Leak Free);
    • 文件描述符:稳定维持在 31 个,句柄零泄漏;
    • 日志排查:通过专项修复彻底消除了捕获的 SwiftUI 更新与 XPC 断言事件。
  2. 本地全量回归测试套件 100% 通过:

    • scripts/test_network_switch_gate.py: 3/3 passed (OK)
    • Tests/EngineReconnect/run.sh: PASSED
    • Tests/RuntimeEnvironment/run.sh: PASSED
    • ./scripts/test.sh: PASSED (所有单元测试、跨协议用例、内存与句柄测试全部通过)
  3. Tart 虚拟机矩阵验收(aether-diag-1434):

    • 6 维网络矩阵(TUN / 透明代理 × Rule / Global / Direct)全部验收通过,测试后 VM 沙箱环境与日志完整清理。
  4. 物理真实设备实机 6 维网络矩阵验收(Apple Silicon Mac mini chenxu@100.64.0.3):

    • 运行 test_remote_arm64.sh fast,全量测试套件通过,TCP 吞吐与 UDP 零丢包完整性 100% 达标。

正式发布规范执行核验:

  1. 采用标准生产核心(Normal Core Variant),完全剥离 QA 自动化测试标记;
  2. 主程序(com.aetherroute.desktop)及网络扩展(com.aetherroute.desktop.tunnel、com.aetherroute.desktop.transparent-proxy)均采用 Developer ID 签名与 Hardened Runtime;
  3. 提交 Apple Notarization 官方公证并完成双重票据装订(Stapled App + Stapled DMG);
  4. Sparkle 自动更新清单采用官方专用 Ed25519 密钥签名并经反向验签断言通过;
  5. 磁盘镜像挂载检验通过,确认无任何测试说明文件,卷标为 AetherRoute 1.0.31。