# R4.9 任务报告

## 结果

- CaseRun 完成态已按真实 `software-smoke` DTO 投影：
  - 不再把固定的代理、下载、串口阶段全部涂成完成；
  - 按 API 事件顺序展示 `queued`、`prepare`、`prepared`、`build-completed`、`collect-completed`、`completed`；
  - 兼容生产字段 `createdAt`；
  - 从 `result.summary`、`result.evidence`、`result.run` 读取状态、产物、证据和硬件需求。
- 右侧证据区拆为四个标签页：
  - 结果区显示模式、耗时、证据状态、产物数和硬件需求；
  - 产物区显示文件名、bytes、SHA256 与复制入口；
  - 编排区显示 workflowId、workflowRunId、runId、时间和 traceId；
  - HWPOD 区显示运行引用。
- 证据面板视觉层级已补齐：
  - 结果状态与 runId 不再粘连；
  - 产物行和编排标识使用紧凑的无卡片列表；
  - 长标识在 pane 内有界换行或截断。

## 真实 smoke 基线

- runId：`software-smoke-1784346141262`
- workflowId：`harnessrl-caserun-software-smoke-1784346141262`
- workflowRunId：`019f7351-667b-7466-976e-c9c6d9d865a3`
- 终态：`completed`
- 产物：`software-smoke.json`，335 bytes
- 产物 SHA256：`d69871dd289aea216298727c8014c76a88d52c8abb864232cc18b20e7a8642ab`
- L1 fixture：
  - 已调整为与生产 DTO 同形，用于前端 HMR 小回环；
  - 不作为生产 smoke 的替代证据。

## 验证

- 目标测试：
  - `bun test scripts/caserun-native-fixtures.test.ts`：2 pass，0 fail；
  - Vue SFC parse 与 `compileScript`：通过；
  - `git diff --check`：通过。
- L1 服务：
  - 由 UniDesk CLI 在 YAML 固定公网入口 `http://152.53.229.148:5173/caserun` 重启并管理；
  - 没有裸起 Vite。
- 桌面 `caserun` native readiness：
  - 状态为 pass；
  - 页面挂载、交互和布局通过；
  - console error、page error、failed response 均为 0。
- 移动端 `caserun-mobile` native readiness：
  - 状态为 pass；
  - 内部滚动合同通过；
  - console error、page error、failed response 均为 0。
- 完成态桌面截图：
  - 路径：`/tmp/web-probe-screenshot-nc01-v03-1784349502065-f0ece315-web-probe-nc01-v03.png`；
  - SHA256：`b98b3fbccba0e62b45e76721b297d45a669c261346fb46d177e8e29557d7755d`；
  - document size 与 viewport 均为 1920x1080；
  - 无水平溢出。

## 生产认证边界

- 正式公网深链：
  - `https://lab-dev.hwpod.com/caserun/runs/software-smoke-1784346141262?case=software-smoke`；
  - 无登录态探针会正确重定向到登录页；
  - `/auth/session` 返回 401。
- 本轮判定：
  - 没有绕过认证；
  - 没有把登录页或 L1 fixture 声称为生产页面视觉验收；
  - 生产数据真实性由真实 CLI/API DTO 提供；
  - 视觉与交互由同形 L1 页面提供。
