Build55 CoreProfile 冲突容错与按需采集降级验收

日期:2026-09-16 · 证据:E2 构建与静态契约 · 状态:implemented · partial

根因与架构修复

真机测试中暴露两个关键问题:

本次修复确立并落地以下状态机边界:

  1. Prepare 与 Collect 严格分离:应用选择后 Prewarm 一次性就绪全部支持的数据源 transport;指标选择变更仅为 MacApp 本地 Draft,不发 prepare_app,不重启 Prewarm;点击开始时才根据最终 CapturePlan 按需启动数据源。
  2. CoreProfile 可降级错误分类与单会话降级:引入 is_degradable_core_profile_error;遇设备/硬件级冲突,统一降级(StartupTiming 标记 unavailable,依赖 CoreProfile 的 FrameTime 同样降级为 unavailable/partial),CPU、Memory、FPS、Network、Disk 等其余数据源继续正常采集,会话状态记为 partial 或 completed,严禁抛出未捕获 RuntimeError 或把 Session 标记为 failed。
  3. 杜绝二次启动与严格单次冷启动:会话一旦判定 CoreProfile 不可用,禁止再次调用 CoreProfile.start();受控冷启动永远恰好 1 次,绝不重复 launch。
  4. 能力事件延后判定:CoreProfile 的 available=True 延后至收到首个有效 chunk 后发出,避免 start() 虚假就绪。

E2 验证结果

验证项指标 / 结果状态
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 测试安装包已完成生成与严格校验:

证据边界与未关门门禁

本机未配置 Apple Notary Service Keychain Profile,公证与 ticket stapling 门禁仍开放;GPL-3.0 法务评估门禁仍开放;当前测试包仅供内部联调与真机复测,交付状态标记为 partial。