外观
截图时间轴
展示方式
工作台在未运行 Session 时展示一张设备预览。Session 开始后,截图区域切换为横向时间轴:每个截图都以独立卡片保留,不会覆盖上一张;Session 结束后仍可在工作台看到本次 Session 的截图卡片,并可在 Review 中再次回放。
固定频率与时间坐标
| 项 | 口径 |
|---|---|
| 目标频率 | 1.0 秒一张 |
| 调度方式 | 以 Host monotonic deadline 推进;请求耗时不叠加整秒,超时跳到下一个间隔,避免连续补发 |
| 时间轴 | session-timeline.v1 的 elapsedSeconds |
| 排序 | 按 elapsedSeconds 升序;相同时间保留追加顺序 |
| 卡片标识 | 持久化 SessionScreenshot.id,跨 UI 刷新保持稳定 |
截图采集节拍和展示节拍使用同一份常量 PerformanceSessionController.screenshotIntervalSeconds。截图时间点不由 SwiftUI 刷新时刻重新计算;因此截图、指标样本和标注可以在同一条时间轴上对齐。
质量语义
- 成功截图保存为 Session 目录内的 PNG 附件,卡片显示图片、elapsed、序号和字节数。
- 失败、取消、设备断开或附件缺失仍保留事件时间点和质量原因;卡片显示占位,不回退到上一张成功图片。
- 缺失值保持缺失,不转换为
0。截图是低频辅助证据,不代表逐帧 Display 真值。
Review 回放
Review 使用同一 session-timeline.v1 加载截图,支持横向查看成功与失败卡片、标注与指标曲线。JSONL / CSV 导出保留截图相对路径、质量、错误原因和 elapsed,不把图片二进制嵌入文本导出。
来源批次:P4 工作台布局与截图时间轴 · P4 截图、标注与导出。