P2 · validation · implemented · partial · E2 · 2026-09-07
Startup 双阶段预热与单次冷启动 S1/S2 结果
设备级与应用级 readiness 已进入 Mac 产品链。Startup 选择后,CoreProfile 在 Session 前武装并由有界 bridge 持续 drain;点击开始复用同一 Sidecar / Provider / DTX owner,并仅调用一次 ProcessControl 冷启动。
已实现
DeviceReadinessToken:设备 key、generation、providerCount。AppReadinessToken:device generation、App revision、metric plan、sourceArmed。stream --prewarm控制面:prepare_app、start、stop。- CoreProfile ring=64、live queue=512;正式开始前不创建 Raw Session。
samplingTriggerEnabled=false、callstackDepth=0。KillExisting=true、StartSuspended=false;launch_requested在 selector 调用前发出,reply 为独立launch_acknowledged。
顺序证据
hello → provider → device_ready → prepare_app_accepted → app_ready(sourceArmed=true, hostDrainHealthy=true) → start_accepted → launch_requested → launch_acknowledged → attached → sample
验证结果
| 验证 | 结果 | 等级 |
|---|---|---|
| Python 3.12 全量 | 198/198 | E2 |
| Python realtime 专项 | 22/22 | E2 |
| Swift 全量 | 101/101 | E2 |
| Collector Core 独立构建 | 成功 | E2 |
| pymobiledevice3 11.3.1 probe | 9/9 ready | E2 |
| 最终 Release App | 1.0.0 (33);Collector Foundation 2.3-beta;ad-hoc 签名严格校验通过 | E2 |
| iOS 17/18 商店 App | 未执行 | E4 开放 |
时延口径
clickToLaunchRequestMs = (launchRequestedHostMonotonicNs - startControlReceivedHostMonotonicNs) / 1,000,000
当前值覆盖 Sidecar 控制入口到 ProcessControl 调用前;完整 UI click 端到端值仍由 S5 E4 补齐。
边界与下一阶段
商店 App 九阶段仍为 partial。S3 将完成版本化 Lifecycle decoder、PID/TID 归属、乱序窗口、BEGIN/END 栈、多 Span 与 Total;S4 再完成启动甘特详情 UI。