# R4.7 任务报告

## 结果

- CaseRun 从 Workbench 内嵌面板迁移为 `/caserun` 与 `/caserun/runs/:runId` 独立页面，保留正式 Cloud Web AppShell、导航、Router 和设计系统。
- 页面提供 case catalog、运行身份与阶段、事件流、blocker、aggregate、artifact、trace 与 HWPOD 证据检查器；终态只读取 CaseRun API 投影。
- L1 API/Web 使用 `config/hwlab-node-lanes.yaml` 声明的公网 `152.53.229.148`、固定端口 `4316/5173`、bind/probe host 和状态目录。
- `hwlab-cli caserun service api|web start|stop|restart|status|logs` 管理服务生命周期；restart 等待旧进程组退出，必要时强制结束，再复用同一固定端口。
- CLI 缺少 `CASERUN_PUBLIC_HOST` 时返回 `native_exposure_config_required`；Web 到 API 的内部 proxy host/port 也必须由 YAML profile 注入，不再存在 localhost 或固定端口代码回退。
- Caserun native Vite 模式仅在测试开关启用时注入正式 AppShell 所需 runtime config，并以 `204` 接收非阻塞 Web RUM 上报，生产路径不变。
- UniDesk 的 OA、DevLevel、WebDev、AGENTS 与 HarnessRL SPEC 已固化：L1 用户和浏览器入口必须使用 YAML 解析出的公网 IP，localhost 仅允许内部 probe。

## L1 验证

- 公网 API smoke：`HWLAB_CASERUN_NATIVE_URL=http://152.53.229.148:4316 bun scripts/caserun-native-smoke.ts`，completed aggregate、runId 和 SHA 通过。
- 公网 Web readiness：`caserun`（1920x1080）、`caserun-compact`（1180x800）、`caserun-mobile`（390x844）全部通过。
- 三档 readiness 均确认 `#caserun-page`、`#caserun-panel` 已挂载，case 选择交互生效，console error、pageerror 与关键失败响应均为 0，并生成截图 artifact。
- `bun test scripts/caserun-native-fixtures.test.ts`：2/2 通过。
- `bunx vitest run src/stores/caserun.test.ts`：2/2 通过。
- `bun scripts/caserun-native-reload-smoke.ts`：API supervisor 热重载、原子保存窗口与无端口占用错误通过。
- UniDesk native readiness focused test：5/5 通过。
- 缺少公网 host 的 L0 启动检查按预期拒绝；修复后的 CLI restart 约 2 秒完成，日志无旧进程尾写污染。
- `git diff --check` 通过。

## 边界

- 未修改 CI/CD 基础设施，也未执行 L2/L3 rollout。
- 全量 `vue-tsc` 中本任务新增的 CaseRun、router、Vite 与 supervisor finding 已清零；剩余 finding 位于既有 TaskTree 与 Agent Observer 文件，不属于本任务。
- API 与 Web 当前继续由项目 CLI 管理运行，交付入口为 `http://152.53.229.148:5173/caserun`。
