# HWLAB CaseRun

- 问题域：`PJ2026-0103 HarnessRL` 下的 `PJ2026-010301 CaseRun规格`。
- 长期规格：[PJ2026-0103 HarnessRL](../../project-management/PJ2026-01/specs/PJ2026-0103-harness-rl.md)。
- 当前大型计划：[HWLAB #2204](https://github.com/pikasTech/HWLAB/issues/2204)。
- 目标运行面：HWLAB `NC01/v03`、AgentRun `NC01/nc01-v02`。
- 执行原则：吸收 v0.2 成熟行为合同，按 v0.3 架构重写；不恢复 v0.2 URL、fallback、direct route 或旧运行面兼容。
- 验收原则：源码和测试不能替代 YAML-selected 原入口验证；CaseRun 结果必须保留 AgentRun、HWPOD、artifact manifest、aggregate 和终态证据关系。


## R1 [in_progress]

执行 [HWLAB #2204](https://github.com/pikasTech/HWLAB/issues/2204)：从 Git 分叉事实出发，把 v0.2 CaseRun/Harness 成熟行为合同按 v0.3 架构吸收进 `PJ2026-0103 HarnessRL` 泛化问题域，不恢复 v0.2 运行面兼容，并完成 NC01/v03 原入口验收，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R1_Task_Report.md)。

### R1.1 [completed]

P0 基线与合同设计：复核 merge-base、v0.2/v0.3 能力矩阵和 HarnessRL SPEC，明确 evidence、manifest、stage、aggregate、HWPOD observation 与 replay 目标合同；若稳定语义变化先更新 SPEC。来源：[HWLAB #2204](https://github.com/pikasTech/HWLAB/issues/2204)，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R1.1_Task_Report.md)。

### R1.2 [completed]

执行 [HWLAB #2567](https://github.com/pikasTech/HWLAB/issues/2567) P1 证据模型与执行收口：消费 AgentRun `toolCallSummary`，补齐 provider provenance，分离 Agent final/post-validation 与 agent/runner warning，统一 timeout、cancel、natural-end、build-completed 终态；依赖 R1.1，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R1.2_Task_Report.md)。

### R1.3 [completed]

执行 [HWLAB #2574](https://github.com/pikasTech/HWLAB/issues/2574) P2 Registry、aggregate 与离线诊断：实现 registry-only aggregate、`case refresh/backfill`、manifest/hash 收口及 `inspect`、`trace-summary`、`skill-usage`，保证离线默认不访问 runtime；依赖 R1.2，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R1.3_Task_Report.md)。

### R1.4 [completed]

执行 [HWLAB #2575](https://github.com/pikasTech/HWLAB/issues/2575) P3 Workspace diff 与 HWPOD 执行合同：验收 tracked/untracked/submodule/include/ignore，按 v0.3 operation result 重建 build wait、YAML topology route 校验和 UART monitor 自动恢复；依赖 R1.1，可与 R1.3 并行，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R1.4_Task_Report.md)。

### R1.5 [completed]

执行 [HWLAB #2581](https://github.com/pikasTech/HWLAB/issues/2581) P4 ioProbe、board-comm 与 runtime validation：从 case definition 推导验证模式，通过 HWPOD service 引用带单位、采样、统计、动作关联和原始 artifact ref 的 observation result，并纳入 manifest、aggregate 与 replay；依赖 R1.2-R1.4，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R1.5_Task_Report.md)。

### R1.6 [completed]

执行 [HWLAB #2586](https://github.com/pikasTech/HWLAB/issues/2586) P5 Web/API/read model 对齐：把 stage、blocker、manifest、aggregate 和 replay refs 投影到同源 API，确保 Web、CLI、web-probe 使用同一事实且不在客户端合成结果；依赖 R1.2-R1.5，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R1.6_Task_Report.md)。

### R1.7 [in_progress]

执行 [HWLAB #2591](https://github.com/pikasTech/HWLAB/issues/2591) P6 NC01/v03 原入口验收与收口：依次执行 software-smoke、两个 compile-only case、download+UART 和 ioProbe case，记录 runId、traceId、operation result、manifest/aggregate SHA、selected origin 和无 v0.2 fallback 证据；依赖 R1.2-R1.6，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R1.7_Task_Report.md)。

#### R1.7.1 [completed]

修复 [HWLAB #2592](https://github.com/pikasTech/HWLAB/issues/2592) 的 HWPOD subject worktree prepare：保持同一 service/node authority，修复两个 compile case 的公共失败根因并投影 operation identity、partialWrite、dispatched 与脱敏错误摘要；通过自动交付后回到 R1.7 原入口复验，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R1.7.1_Task_Report.md)。
#### R1.7.2 [completed]

复审并纠正 [HWLAB #2592](https://github.com/pikasTech/HWLAB/issues/2592) / [PR #2595](https://github.com/pikasTech/HWLAB/pull/2595) 的局部实现：`dispatched`/`partialWrite` 只能投影 HWPOD 权威事实或 `null`，且 internal fetch 必须保留 `Request` 自带 Authorization 与 init override 语义；同步最新 `v0.3`、补 focused tests 后由主代理复审，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R1.7.2_Task_Report.md)。
#### R1.7.3 [in_progress]

执行 [UniDesk #2394](https://github.com/pikasTech/unidesk/issues/2394)：通过 YAML-first 与仓库 `hwlab nodes hwpod-node` 受控入口声明、部署并验证 CaseRun 绑定的 D601 Python HWPOD node `node-d601-f103-v2`，工作区 allowlist 覆盖两个 compile case，禁止 G14 fallback、手写 Windows 部署、旧 Bun runner、v0.2/direct route、第二 authority、人工 CI/CD 或 PK01 变更，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R1.7.3_Task_Report.md)。
#### R1.7.4 [completed]

执行 [HWLAB #2120](https://github.com/pikasTech/HWLAB/issues/2120)：在 v0.3 同源 CaseRun 暴露 download+UART 等价 case，复用现有 evidence/manifest/aggregate 与 HWPOD operation authority，完成 case definition、API 列表和非硬件 focused 验证；真实 D601 build/download/UART 原入口验收继续依赖 R1.7.3，禁止恢复 v0.2 URL、旧 registry、direct route、G14 fallback 或客户端合成事实，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R1.7.4_Task_Report.md)。
## R2 [completed]

执行 [HWLAB #2573](https://github.com/pikasTech/HWLAB/issues/2573)：为 CaseRun 模块拆分与证据收口提供单命令静态审计入口，一次覆盖 scoped 类型、依赖方向、重复 helper、压缩声明和源码行数检查，输出 compact text/显式 JSON 与 typed finding；不改变运行面或 CaseRun 业务语义，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R2_Task_Report.md)。

## R3 [completed]

执行 [HWLAB #2580](https://github.com/pikasTech/HWLAB/issues/2580)：在 R1.5 合并后收敛 CaseRun 当前 39 个真实 scoped TypeScript finding，使 `hwlab-cli case audit` 对当前源码恢复通过；只做类型合同收敛与语义等价验证，不恢复错误码白名单或 v0.2 兼容，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R3_Task_Report.md)。

## R4 [completed]

执行 [HWLAB #2614](https://github.com/pikasTech/HWLAB/issues/2614)：将 CaseRun/HarnessRL 后端改造为 Temporal durable workflow，拆分 API 与 worker，提供 CLI local/`--over-api` 双模式、前端独立热重载 native 测试服务，先完成 native smoke，再通过原 PaC/Tekton/GitOps/Argo 自动链回归，禁止第二 authority、v0.2/direct route、fake 生产回退或人工 CI/CD，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R4_Task_Report.md)。

### R4.1 [completed]

P0 SPEC 与服务合同：更新 PJ2026-0103 HarnessRL、CLI、Web/API 规格，冻结 Temporal workflow/activity、registry/read model、API/worker、native test 和 CI/CD 数据流；来源 HWLAB #2614，依赖无，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R4.1_Task_Report.md)。

### R4.2 [completed]

执行 [HWLAB #2615](https://github.com/pikasTech/HWLAB/issues/2615) P1 Temporal 后端：实现 HarnessRL durable registry、deterministic CaseRun workflow、idempotent activities、API/worker 独立服务、cancel 与重启恢复；依赖 R4.1，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R4.2_Task_Report.md)。

### R4.3 [completed]

执行 [HWLAB #2617](https://github.com/pikasTech/HWLAB/issues/2617) P2 CLI 双模式：CaseRun CLI 默认 local adapter，增加 `--over-api` 与 `base-url`，复用 application service/DTO、typed error 和 submit-and-poll 合同；依赖 R4.2，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R4.3_Task_Report.md)。

### R4.4 [completed]

执行 [HWLAB #2616](https://github.com/pikasTech/HWLAB/issues/2616) P3 前端 native 敏捷服务：提供独立 Vite HMR 与可热重载 CaseRun native test API/fixture，覆盖 queued/running/completed/failed/blocked/canceled、events 和 aggregate；依赖 R4.1，可与 R4.2/R4.3 低耦合并行，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R4.4_Task_Report.md)。

### R4.5 [completed]

P4 native smoke：启动本地 Temporal、HarnessRL API/worker 与前端测试服务，验证 software-smoke、cancel、worker/API restart recovery 和 CLI local/over-api 等价；依赖 R4.2-R4.4，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R4.5_Task_Report.md)。

### R4.6 [completed]

P5 CI/CD 与原入口回归：补齐服务制品和 GitOps，仅以 v0.3 PR merge 触发 PaC/Tekton/GitOps/Argo，验证 selected public origin CaseRun software-smoke 且原 CI/CD 可用；依赖 R4.5，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R4.6_Task_Report.md)。

### R4.7 [completed]

执行 [HWLAB #2614](https://github.com/pikasTech/HWLAB/issues/2614) 的 CaseRun 独立 Web 页面与 L1 公网 native 调试收口：从 owning YAML 解析固定公网 IP、API/Web 端口和状态目录，由项目 CLI 管理 API/Web 启停重启状态日志，修复正式 AppShell native bootstrap，完成桌面、紧凑和移动端受控 readiness；禁止 localhost 交付入口、裸起进程或修改 CI/CD 基础设施，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R4.7_Task_Report.md)。

### R4.8 [completed]

完成 CaseRun 独立页中文优先与 HWLAB 受限工作区通用规范：AppShell 禁止全局滚动、记录 pane 内部滚动，三视口由 YAML profile 自动验收；修复 L1 固定端口旧同服务进程接管和 profile 应用端口归属，并通过正式公网 API 运行最小 software-smoke，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R4.8_Task_Report.md)。

### R4.9 [completed]

基于真实 software-smoke 的 Temporal DTO 优化 CaseRun 完成态展示：按服务端事件绘制实际阶段，展示产物、SHA256、证据和 workflow identity，修正 createdAt、深链用例选择与证据面板视觉层级，并通过 YAML 固定公网入口完成桌面和移动端 L1 readiness；正式公网部署态无受控登录态时保留认证边界，不用 fixture 冒充生产页面证据，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R4.9_Task_Report.md)。

### R4.10 [completed]

根据真实页面截图收敛 CaseRun 页头空间：将页面身份、说明和操作改为紧凑命令栏，将状态摘要固定为页头底栏，并把紧凑页头、状态底栏和主体高度预算沉淀为 unidesk-webdev 默认设计规则；通过桌面和移动端 L1 readiness 验证无全局滚动及交互回归，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R4.10_Task_Report.md)。

### R4.11 [completed]

让 CaseRun Web 加载 CLI `--over-api` 已运行通过的共享 registry 结果：补充纯读游标分页运行历史接口、最近运行与 runId 直达交互、native fixture 和 focused tests，并用真实 software-smoke run 完成 L1 公网桌面与移动端验收；禁止读取 CLI 本地文件、静默发布 local 结果或引入第二权威，完成任务后将详细报告写入[任务报告](./details/hwlab-caserun/R4.11_Task_Report.md)。
