Skip to content

v2.0.7

Choose a tag to compare

@bcblr1993 bcblr1993 released this 05 Nov 02:26
· 23 commits to main since this release

AetherRoute 2.0.7

基于本机连续 8.5 小时(30 秒/次,共 1,020 个采样点)的全量运行时遥测监控分析,修复主进程 CGFontCache 滚动数字字形缓存内存泄漏、Fake-IP 二级历史反向映射丢失与 HTTP/MMTLS Host 自愈、Tunnel 启动阶段 CoreFoundation 备份排除通知风暴,以及窗口启动阶段 AppKit 布局重入告警。适用于 macOS 15 及以上、Apple Silicon。

更新

  • 主进程 CGFontCache 内存泄漏治理(P1):AetherNumericValueModifier 由 .contentTransition(.numericText) 改为 .contentTransition(.identity),消除连接数徽章、节点延迟与 DNS 统计在动态刷新时向 CGFontCache 持续累积可变字体 CGFont 实例导致的 174 MB -> 378 MB 锯齿形内存上涨;同时在 AETHERROUTE_UI_REVIEW_LIVE=1 压测夹具中注入每秒动态跳动的连接数,补齐门禁覆盖。
  • Fake-IP 二级反向映射保持与 HTTP/MMTLS Host 自愈(P2):当域名已存在较新主正向 Fake-IP 时,FakeDns::restore_if_unmapped 与 EncryptedFileStore 仍允许恢复并持久化旧 Fake-IP 的二级反向映射且不覆盖主正向映射;Dispatcher 新增 sniff_client_hello_or_http_host,在 443 与 80 端口同时支持从 TLS ClientHello SNI 与 HTTP/MMTLS Host: 请求头恢复域名并自愈未映射 Fake-IP。
  • Tunnel 启动通知风暴与运行时文件覆写优化(P2):跳过临时 .staging 目录的 Time Machine 备份排除属性设置,正式目录设置前先通过 getxattr 检查 com_apple_backup_excludeItem 短路,并在 writeProtected 中对内容未变的运行时文件保持原 inode,消除启动瞬间 182.8 notifications/sec 的通知风暴。
  • 窗口启动 AppKit 布局递归消除(P2):WindowChromeView 通过 scheduleApplyWindowChrome() 合并并推迟窗口与工具栏样式更新至下一主线程 RunLoop 周期,避免在 NSWindow.layoutIfNeeded() 期间同步修改触发 _NSDetectedLayoutRecursion。
  • Core 与 App 实时物理内存遥测:新增 ProcessMemoryFootprint(Mach TASK_VM_INFO phys_footprint)与 TrafficHistory 双轨内存采样,在菜单栏弹窗、概览页和连接页状态栏实时展示内核与宿主应用的物理内存占用及曲线。

验证

  • 测试先行(TDD):新增 3 项 Rust 核心测试、1 项 RoutingResourceStoreTests 测试及 3 项静态与观测范围门禁,均在旧代码上复现失败并在新代码上通过。
  • 本机 test_fast_lane.sh(15 步)与完整 scripts/test.sh(820 项单元与桥接测试 + 全部脚本门禁)零警告通过。
  • 默认与 Chrome 指纹 12 协议互通门禁各 68 项矩阵用例通过、34 次预期证书拒绝;9 个真实站点(含 Google/YouTube ALPS 与 Cloudflare ECH)及 Mac mini 43 节点 Mihomo 实网对照全部通过(both_ok=43)。
  • Mac mini 真机两档各 300 秒 UI 性能与内存预算门禁(含动态跳动连接数)通过:showcase 切页 p95/max 152.2 / 199.2 ms、内存中位数/峰值 68 / 81 MB、后半程增长 -0 MB;large 切页 p95/max 148.4 / 207.5 ms、内存中位数/峰值 67 / 83 MB、后半程增长 +2 MB。
  • 正式包完成 Developer ID 签名、Apple 公证、装订和 Sparkle 更新签名验证。

完整验收与边界说明。