Skip to content

v2.9.0

Choose a tag to compare

@bcblr1993 bcblr1993 released this 08 Nov 04:17
· 3 commits to main since this release

AetherRoute v2.9.0 (Build 2026110805)

Highlights / 核心更新

  • Transparent Proxy Post-EOF First-Write Close Handling (TCPFlowStateMachine): Fixed a false-positive outcome=failed error=closed termination record when a local client sends a complete request (bridgeWrittenBytes > 0) and half-closes/closes its socket before the server's first response chunk (flowWrittenBytes == 0) is written to the local flow, bringing error-level log lines (10m) to 0 across all 6 engine × routing matrix dimensions.
    • 透明代理客户端发包并关闭后首包下行 .closed 正常收敛:修复本地客户端发送请求后关闭连接、服务端首包响应写入返回 .closed 时被误记为 outcome=failed 的问题,6 维验收矩阵 Error 级日志全部归零。
  • Non-Interruptive Passive Proxy Selection Refresh (TunnelManager+ProxySelection): Passive read-only snapshot refreshes on Overview and Proxies now use a non-@Published tracking set and skip redundant offline disk reads/writes, eliminating two full-window re-layouts per tab switch.
    • 被动节点快照刷新零重排:将「概览」与「节点」页打开时的只读快照检查移出 @Published 状态集并跳过冗余磁盘读写,消除切页时的双次全窗口重排与控件瞬时禁用。
  • ICU Formatter & Region Cache, Single-Pass Proxy Member Rendering, & Snapshot-Cached Connections (AppLanguageController, NodeRegion, GroupLeafResolver, ProxiesPageView, ConnectionsPageView, ProfilesPageView): Cached Locale, DateComponentsFormatter, and region names in AppLocalization; added a 2,048-entry cache and ASCII word-boundary fast-path to NodeRegion; added unique-chain deduplication and single-pass O(L) tie-breaking to GroupLeafResolver.leaves(forGroups:chains:); cached identified and traffic-sorted connection rows on NetworkTelemetryViewModel; propagated native node renames to sibling dialerProxy references; and added live iCloud sync observation for standalone custom rule-providers.
    • 全链路零分配缓存、节点页单遍构建、连接页快照缓存、原生节点改名级联更新与规则集 iCloud 实时同步:全面优化高频遥测与切页渲染路径,完善原生多节点 dialer-proxy 重命名联动与远程规则集 iCloud 实时热重载。

Verification & Release Qualification / 全量验收结论

  • 6-Dimension Tart VM Matrix (vm:macos27): 160 PASS / 0 FAIL / 50 SKIP across tun/rule, tun/global, tun/direct, transparent/rule, transparent/global, transparent/direct (0 error-level log lines across all 6 modes).
  • UI Responsiveness & Memory Budget Gate (vm:macos27, 300s showcase + 300s large):
    • showcase: p50 = 79.9 ms, p95 = 116.5 ms (<= 180 ms), max = 157.5 ms (<= 300 ms), memory median 68 MB / max 82 MB / growth +1 MB (<= 90 / 110 / +8 MB).
    • large (500 nodes / 10,000 rules / 2,000 connections): p50 = 79.2 ms, p95 = 115.0 ms (<= 180 ms), max = 125.6 ms (<= 300 ms), memory median 65 MB / max 80 MB / growth +1 MB (<= 90 / 110 / +8 MB).
  • Isolated Runtime Evidence (vm:macos27):
    • 50s TLS idle keep-alive reuse: PASS (TUN & Transparent Proxy).
    • 2 MiB large upload: PASS (TUN 0.897178s, Transparent Proxy 0.893715s).
    • 3-cycle / 6-phase NIC uplink switch recovery: PASS (TUN 0/2/2/2/2/1 s, Transparent Proxy 3/2/3/3/3/2 s, deadline 15s, zero manual reconnects).

Checksums / 校验信息

  • AetherRoute-2.9.0-build-2026110805-arm64.dmg:
    • SHA-256: 14389dd6158196eb7eee9ba15bc426c9e2767d62d513d1c29e5be8b38541a1c1
    • Size: 28,921,512 bytes