用途:为 Daytona UI 流程收集补充性展示工件(截图、可选视频),供人工审阅。判定通过与否必须来自 @openwork/testkit 的测试证据,自定义截图或录制不能替代测试运行;声明结论前先使用 daytona-flow-validator 并运行 run-tests。
主要能力:默认产出可浏览的 HTML 截图索引,每步一张命名 PNG,响应式网格展示,并标注分支、提交与沙箱名;仅在需要表现动态时使用 MP4 视频(流式文本、加载指示、动画、拖拽、实时交互),并把视频嵌入同一 HTML 页面。
使用方式:先通过 run-tests 运行相关 evals/specs/**/*.test.ts,再用 publish-evidence 发布该次测试证据。截图索引可在沙箱内以端口 8090 提供目录服务,例如 daytona exec "$SANDBOX" -- 'bash -lc "mkdir -p /workspace/proof-frames; nohup python3 -m http.server 8090 --directory /workspace/proof-frames >/dev/null 2>&1 &"',随后用 daytona preview-url "$SANDBOX" -p 8090 获取公开 URL 并附到 PR。首选路径是 test-on-daytona.sh --artifacts-volume,挂载并服务 /daytona-artifacts;不可用时回退到 /workspace/proof-frames,并在 PR/评估报告中说明。录制需用 stop-daytona-recording.sh 停止,避免 kill -9 损坏文件,并用 ffprobe 校验时长。工件代理 URL 非永久,沙箱停止后需重启沙箱与工件服务并生成新 URL,确认本地 curl -I 返回 200 且 Content-Length 非零后再分享。
适用场景:UI 回归或设计变更的前后对比录制、需要展示动态交互的流程、以及测试完成后的展示性截图索引。
限制:录制应像真人操作,覆盖完整相关旅程,尽量通过可见控件驱动,避免隐藏自动化;若大部分流程为隐藏自动化,应标注为补充材料。发现无效证据后不得复用旧 URL,需生成新命名帧并说明替代关系。持久卷为 openwork-eval-artifacts:/daytona-artifacts,预期目录含 recordings、screenshots、validation。其余细节暂未提供。