# R1.5 CaseRun 运行时观测任务报告

## 交付结果

- 完成 HWLAB [#2581](https://github.com/pikasTech/HWLAB/issues/2581)，并通过 [PR #2584](https://github.com/pikasTech/HWLAB/pull/2584) 合并到 `v0.3`。
- 合并提交：`ed2045491dc7501f14d23f74165252ccc62ae9c9`。
- CaseRun 可从 `case.json.validation` 推导 compile-only、download+UART、ioProbe、board-comm 和 custom runtime validation plan。
- 新增 `validation-observations.json`，并把 observation 关系纳入 evidence、artifact manifest、aggregate 与 replay。

## 权威边界

- HWPOD service/node 是 operation 与 observation 的唯一 authority。
- CaseRun 只消费结构化 `result.observation` / `output.observation`；stdout-only、Agent final 和 trace 均不能补写 observation 或通过状态。
- TS 节点与单文件 Python `tools/hwlab-node.py` 对齐 ioProbe、board-comm 和 UART observation 合同。
- Python ioProbe 原生完成采样与统计，不依赖 `.mjs` sidecar。
- 缺失 observation、operation 失败、拓扑不一致或观测字段不完整均返回 typed blocker。

## Artificer 与审查

- 第一轮实现提交：`c279b570`，非重写基线集成：`140a3a6b`。
- 第一轮权威边界纠偏：`166f45e4`，删除 CaseRun stdout fallback。
- 第二轮 Python 单文件节点纠偏：`af4962e1`。
- 第三轮 UART observation 纠偏：`a9570cee`。
- 最终 Artificer task：`qt_4482ded0d2b14f28b668a9a35fd8dfdd`，run：`run_150730b7c0c4470981f1664202c6cb6e`。
- 主代理完成三轮架构审查后 guarded merge；post-task 结论为无需新增泛化改进 issue。

## 验证

- 分支 focused suites：CaseRun `43/43`，HWPOD node `24/24`。
- 合并后 NC01/v03 无服务 smoke：`caserun-runtime-observation.test.ts` 为 `7/7`。
- tracked Python `py_compile` 与 `git diff --check` 通过，`__pycache__` / `.pyc` 已清理。
- 补齐 `package-lock.json` 已声明依赖后，`case audit --json` 返回退出码 2、`findingCount=39`；均为 [#2580](https://github.com/pikasTech/HWLAB/issues/2580) 已登记既有类型 finding。

## 交付边界

- 未恢复 v0.2 URL、fallback、direct route、G14 workspace 或旧 AgentRun envelope。
- 未修改 Web/API/read model、Secret、权限或部署对象。
- `rollout=not-applicable`；未触发 PipelineRun、mirror flush 或 Argo refresh。
- 后续 39 个类型 finding 由 MDTODO R3 / HWLAB #2580 继续处理。
