Alhaitham App Proxy 0.1 (23) 已发布
https://testflight.apple.com/join/KVmQFXAA
Alhaitham DNS Proxy 0.4 (84) 已发布
https://testflight.apple.com/join/r8yjKr4P
Alhaitham Dashboard 0.4 (172) 已发布
https://testflight.apple.com/join/pR1xwCfB
# 公共更新
## 改进:数据刷新与显示性能
- 统一流(Flow)、策略(Policy)、DNS 与事务(Transaction)页面的数据刷新机制
- 侧栏、统计卡片与搜索结果改为响应数据变更并节流刷新
- 大型事务列表改用增量查询与轻量快照,减少重复读取、界面重建与内存占用
- 策略数据改为进入对应页面时再加载,缩短概览页与服务器切换时的等待时间
## 改进:状态与统计体系
- 统一流、DNS 与事务的完成、拒绝、取消和失败状态
- 取消状态现在与失败状态分别记录和显示
- 合并重复的流拒绝统计,统一各应用的事务状态统计卡片
- 修正流、事务与 DNS 的持续时间及平均传输速率计算
## 改进:代理生命周期与数据保存
- App Proxy 与 DNS Proxy 启用前会清理各自上次运行残留的流与应用层事务
- Provider 休眠或停止时会停止接收新流,等待现有流退出并保存待写入数据
- 各数据管理器按 App Proxy / DNS Proxy 来源独立清理运行期索引
- 改进高频状态、流量与事务数据的写入队列,减少终态丢失和残留数据
## 升级:底层转发组件
- Forwarder 升级至 2.4.0
- UniversalShared 升级至 0.2.2
- App Proxy 与 Surge API 已适配新的连接池、配置及运行期管理方式
# Alhaitham 应用代理(App Proxy)
## 改进:手动取消流
- “取消流”操作现在会直接通知对应的运行期 Flow Actor
- Provider 会确认目标流仍在运行,并在取消状态完成写回后返回操作结果
- 修复手动取消后界面状态更新不及时或终态记录不准确的问题
## 改进:Flow Actor 生命周期
- 每个 Flow Actor 持有并管理对应的真实 TCP 或 UDP Flow
- 统一正常完成、策略拒绝、主动取消与 I/O 失败的收尾路径
- Provider 休眠或停止时会等待转发器、数据处理器与 Flow Actor 完整退出
- 修复取消状态被后续错误覆盖,以及流关闭后仍继续写入的问题
## 改进:HTTP 事务记录
- HTTP 响应分片会先保存原始数据,再进行状态行与报文解析
- 避免解析顺序影响原始响应内容的保存
- HTTP 响应新增原因短语语义,例如状态码对应的响应说明
# Alhaitham DNS 代理(DNS Proxy)
## 改进:启动与停止收尾
- 启用代理前会清理上次运行残留的 DNS Flow 与应用层事务
- 休眠和停止时会等待当前 DNS Flow 退出并保存最终状态
- DNS 数据写入使用独立的类型化队列,避免不同 Provider 来源之间残留运行期状态
## 改进:统计显示
- DNS Proxy 概览页改用统一事务状态统计卡片
- 修复 DNS 请求持续时间缺失或与其他事务统计口径不一致的问题
# Alhaitham 仪表盘(Dashboard)
## 新增:Surge TCP Controller 能力
- 补全 Surge TCP Controller 的指令、响应、流量、事件与 Profile 数据模型
- 支持通过持续连接读取 Surge 实时更新
- Surge HTTP 与 TCP Controller 共用统一的 Forwarder 运行期,减少重复连接与停止后的残留任务
## 改进:事务页面
- 统一 V1 与 V2 事务页面的查询状态、内容列表、侧栏、搜索与详情组件
- 合并重复的 V1 HTTP 事务模型,HTTP 数据继续作为应用层事务展示
- 优化主机名、URL 与远端端点的解析和显示
- 修复全部事务与 HTTP 页面筛选范围错误、删除后侧栏未刷新等问题
## 改进:Surge 事务写入性能
- 实时事务更新改为分批写入,减少高频 SwiftData 保存
- 侧栏改为增量构建,避免每次更新都重新扫描全部事务
## 修复:概览页与服务器切换
- 统一概览页实际选择的服务器状态
- 修复切换 Shared、Surge、Clash 或 Stash 数据源后,卡片与内容来源不一致的问题
- 修复搜索状态被错误带入其他页面的问题
Post #93
773