外观
P4 Wi-Fi 身份、两阶段停止与滚动时间轴结果
结论
本批解决三个同源于长时真机使用的问题:设备选择器不再把历史 Network 拓扑冒充在线 Wi-Fi;点击停止后工作台立即退出采集态,报告在后台按阶段生成;实时性能曲线统一使用 60 秒滚动窗口,不再把整段 Session 压缩进一个屏幕。
本批不改变任何指标公式、scope、单位或 64 项 Registry 数量。原始 Session elapsed 坐标保持不变,60 秒规则只作用于实时工作台视口。
产品行为
| 场景 | build 32 行为 |
|---|---|
| USB 发现 | 详细身份先返回并立即展示,不等待 Network 查询 |
| 可达 Wi-Fi | 后台 Lockdown 水化后展示真实名称、型号和 iOS 版本 |
| 已记住但离线 | 展示本机缓存名称并明确“当前离线”;点击只重试可达性,不进入准备态 |
| 无身份的历史 Network | 统一显示“历史 Wi-Fi 设备”,不生成虚构名称 |
| 点击停止 | 红色停止按钮立即退出,曲线/截图冻结;状态切为“采集已停止 · 正在生成报告” |
| 报告生成 | capture_stopped 后显示 9 阶段进度;只有 stopped 与 delivery 哈希齐全才 completed |
| 中断/超时 | 宿主 manifest 标记 partial 或 failed,不再因用户点过 stop 而误报 completed |
| 实时曲线 | 所有面板共享 [max(0,end-60), end];超过 60 秒后整体左移 |
实现与证据
Wi-Fi 身份
DeviceIdentityCache只写入本机 Application Support,不进入 Session、站点或 Git。- USB 与 Network 查询解耦;Network 水化任务带 refresh generation,旧刷新结果不会覆盖新快照。
- 已选设备从 USB 晋升到 Wi-Fi 时,Network 查询窗口会保留同一逻辑选择与目标 App;刷新返回前完成所选路由的服务重建,未选 Wi-Fi 设备仍在后台水化。
- build 32 内置工具当前匿名拓扑为 USB 2 条、Network 3 条;三条 Network 在 4 秒窗均不可达,因此本次只证明离线记录不会冒充在线设备,未虚构真实名称(E4 环境)。
两阶段停止与完整性
- Collector 顺序发出
stop_requested、capture_stopped、finalizer_progress、stopped。 - Core 的强制回收上限由原 15 秒改为 120 秒;交互退出与后台完整收口解耦,超时仍 fail-closed。
- 真机短 Session 使用最终 build 32 内置 Core:收到停止到
capture_stopped为 0.339 s,到 delivery 完整stopped为 0.387 s;进程退出码 0,delivery 文件与 wire 哈希均存在(E4 命令级)。 - 290,392,234 bytes 既有匿名 Raw 离线重放完成 delivery,当前总耗时 24.77 s;这验证 120 秒边界不会复现 15 秒强杀,但也说明超大 Raw 报告继续需要性能专项。本批 UI 在 stop 调用同步切到 finalizing,不等待这段离线计算(E3 本机环境)。
60 秒视口
实时视口固定公式:
text
windowEnd = max(60, latestElapsed)
windowStart = max(0, windowEnd - 60)
xRatio = (elapsed - windowStart) / 601 / 60 / 61 / 600 / 1,200 秒 Fixture 的窗口边界、过滤和绝对刻度全部通过;序列缺值会断线,不以 0 补线(E2)。Session Review 和导出仍保留全量事实流。
验收清单
| 项目 | 结果 | 层级 |
|---|---|---|
| Python Collector 回归 | 194/194 | E2 |
| Swift 回归 | 96/96 | E2 |
| Mac App | 1.0.0 (32),x86_64 | E2 |
| Foundation | collector-foundation.2.2-beta;pymobiledevice3 11.3.1 | E2 |
| 严格签名 | codesign --verify --deep --strict 通过 | E2 |
| 当前匿名拓扑 | USB 2 / Network 3;Network 可达 0 | E4 环境 |
| 真机短 Session 停止 | capture 0.339 s;delivery 0.387 s;哈希闭环 | E4 命令级 |
| 原生 UI 视觉交互 | 代码和确定性测试完成,等待用户点击验收 | E2,待 E4 |
下一阶段与整体进度
- 下一阶段:用户在 build 32 关闭三个原生 UI 门禁——可达 Wi-Fi 真实名称、停止后的报告状态反馈、61 秒以上曲线滚动;同时开展大 Raw finalizer 性能专项,目标是在不牺牲哈希和尾部 drain 的前提下降低 290 MB 级离线报告时延。
- 整体进度:P0/P1 完成;P2 Startup 官方链完成;P3 产品链完成、长窗数值校准开放;P4 本批三项修复 E2 完成且短 Session 停止获得 E4 命令证据,原生 UI 待用户关门;P5 放电/ThermalStatus、P6 其余 xctrace 增强、P7 云端仍待推进。
证据边界
- 当前没有可达 Network 路由,因此“可达时显示真实名称”只有 Fixture E2,离线呈现有当前环境 E4;不能描述为可达 Wi-Fi 真机已验收。
- 0.339 s 是设备通道与尾部回收完成时间;界面退出采集态是同步状态转换,尚未由原生 UI 录屏计时。
- 大 Raw 基准来自匿名既有 Session 副本,只记录体量和时延,不公开任何设备或 App 身份。