日期:2026-09-16 · 证据:E2 构建与静态契约 · 状态:implemented · partial
真机测试中暴露两个关键问题:
RuntimeError: core-profile-source-busy,导致整个采集会话抛出未捕获异常而 failed。本次修复确立并落地以下状态机边界:
prepare_app,不重启 Prewarm;点击开始时才根据最终 CapturePlan 按需启动数据源。is_degradable_core_profile_error;遇设备/硬件级冲突,统一降级(StartupTiming 标记 unavailable,依赖 CoreProfile 的 FrameTime 同样降级为 unavailable/partial),CPU、Memory、FPS、Network、Disk 等其余数据源继续正常采集,会话状态记为 partial 或 completed,严禁抛出未捕获 RuntimeError 或把 Session 标记为 failed。CoreProfile.start();受控冷启动永远恰好 1 次,绝不重复 launch。available=True 延后至收到首个有效 chunk 后发出,避免 start() 虚假就绪。| 验证项 | 指标 / 结果 | 状态 |
|---|---|---|
| Python Sidecar 测试套件 | 388/388 通过(新增 6 项 CoreProfile 降级与契约单测) | 通过 |
| Swift 客户端测试套件 | 145/145 通过(含 3 项显式基准跳过,0 失败) | 通过 |
| 冻结 Sidecar Core 探针 | ready=true,63 Metric Contracts,9 Source Families,pymobiledevice3 11.3.1 | 通过 |
| 站点知识库门禁与构建 | 63 项 Registry 契约校验通过,VitePress 0 报错 0 死链 | 通过 |
Build 55 测试安装包已完成生成与严格校验:
/Users/itreenewbee/工作/代码/perfowl/MacApp/dist/Perfowl.app(CFBundleVersion=55,Developer ID Application: Jiacheng Li (76J692XB5C) 签名,Hardened Runtime 开启,时间戳有效,codesign --verify --deep --strict 通过)。/Users/itreenewbee/工作/代码/perfowl/MacApp/dist/Perfowl-internal-test-Build55-x86_64.zip11a3a19f3bfafa418817076a025110678eac8c2bffcc064b0b46fd8524666121codesign --verify --deep --strict 通过。
/Users/itreenewbee/工作/代码/perfowl/MacApp/dist/Perfowl-internal-test-Build55-x86_64.dmge3243acd50beadc1774c4d7613cb980b7fe3716d410fd409addbbd168037a97ehdiutil verify 通过,独立挂载卷内 App 严格签名校验通过。
本机未配置 Apple Notary Service Keychain Profile,公证与 ticket stapling 门禁仍开放;GPL-3.0 法务评估门禁仍开放;当前测试包仅供内部联调与真机复测,交付状态标记为 partial。