日期:2026-09-16 · 证据:E2 构建与静态契约 · 状态:implemented · partial
在历史测试中发现两项影响真机体验的关键缺陷:
LaunchTraceStreamDecoder 移除了 coreProfileStreamRole == 'frame-continuation' 的顶层 early return,保持同一连续 RAW-v2 parser 状态机,使后续 800+ continuation chunk 内的 Presented Frame 正常解析并进入帧事件流。RealtimeMetricProjector 跟踪最新帧时间戳,无新帧到达时返回 None,质量标为 missing-no-new-frame,彻底消除静止时无限重复 32.915208 ms 旧值的假象。MetricPanel 分流,Header 固定展示卡片名、可用 counter 总数与 整机 · source-native,不再在 Header 横向排布 24+ 个长名称。gpuCounterPanel(keys:) 移除 24 项截断限制,底层 PerformanceSample.gpuCounters、Session 存储与导出全量保持,UI 单选绝不减损底层数据。| 验证项 | 指标 / 结果 | 状态 |
|---|---|---|
| Python Sidecar 测试套件 | 417/417 通过(新增 6 项 FrameTime continuation 与 freshness 专项单测,覆盖跨阶段解析、无 header 流解析、报告冻结、帧去重、新鲜度门禁与前后台切换) | 通过 |
| Swift 客户端测试套件 | 154/154 通过(新增 GPUCounterPanel 全量 key 保持单测,覆盖 30+ 动态 key 无截断与属性契约,3 项显式基准跳过,0 失败) | 通过 |
| 冻结 Sidecar Core 探针 | ready=true,63 Metric Contracts,9 Source Families,pymobiledevice3 11.3.1 | 通过 |
| 站点知识库门禁与构建 | 63 项 Registry 契约校验通过,VitePress 0 报错 0 死链 | 通过 |
Build 60 测试安装包已完成生成与严格校验:
/Users/itreenewbee/工作/代码/perfowl/MacApp/dist/Perfowl.app(CFBundleVersion=60,Developer ID Application: Jiacheng Li (76J692XB5C) 签名,Hardened Runtime 开启,时间戳有效,codesign --verify --deep --strict 通过)。/Users/itreenewbee/工作/代码/perfowl/MacApp/dist/Perfowl-internal-test-Build60-x86_64.zipebf9fcef82b1c7c42aca1f41e9fa0c3d319903420279f6461e73d8193c6b0e70codesign --verify --deep --strict 通过。
/Users/itreenewbee/工作/代码/perfowl/MacApp/dist/Perfowl-internal-test-Build60-x86_64.dmgf3f25a62f36c71f15da19c378d6c656dc4be406128000d4c1b5b147b36a372fehdiutil verify 通过,独立挂载卷内 App 严格签名校验通过。
16cd10b9a0b81bfa400c461f030a5e087e26188d165790179f95c93e2f1a02ea。本机未配置 Apple Notary Service Keychain Profile,公证与 ticket stapling 门禁仍开放;GPL-3.0 法务评估门禁仍开放;当前测试包仅供内部联调与真机长测复测,交付状态标记为 partial。