# 07 浏览器 RUN feedback 证据完成记录与下一步

生成时间：2026-06-22

## 1. 本轮执行范围

按 `06-run-implementation-traceability-matrix-and-next-steps.md` 的优先级，完成浏览器端 `07-run-preconditions-and-feedback` 证据采集。

本轮没有继续扩展 ABORT/STEP/xyzbc 对称测试。

## 2. 已完成改动

更新：

```text
qa/web-rtcp-5axis-site-test/capture-toolpath-preview-cases.mjs
```

新增：

```text
07-run-preconditions-and-feedback
```

浏览器流程：

```text
1. 等待 app、INI、kinematics runtime、machine files ready。
2. 选择 LinuxCNC vendored G-code:
   configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc
3. 确认 taskHalSession.programPath 已 open 同一个 G-code。
4. POWER -> MANUAL -> HOME -> AUTO。
5. RUN。
6. 采集 baseline 和 0.2s / 0.5s / 1.0s / 2.0s / 5.0s state。
7. 截图并输出 JSON 证据。
```

输出：

```text
qa/web-rtcp-5axis-site-test/output/run-preconditions-feedback.json
qa/web-rtcp-5axis-site-test/screenshots/run-preconditions-feedback/
```

## 3. 断言结果

`run-preconditions-feedback.json` 当前状态：

```text
status=PASS
```

通过的关键断言：

```text
1. INI ready。
2. selected G-code 是 xyzac_switchkins_test_1.ngc。
3. task/HAL session opened selected G-code。
4. RUN 后 taskHalStatusLoop sequence 从 1 变为 2。
5. 本次 RUN tickCount=4。
6. 本次 RUN programRuntimeFeedbackHistory=5。
7. feedback sourceMode 全部是 linuxcnc-task-motion-hal-wasm。
8. 不含 fixture-line-playback feedback。
9. semanticBoundary 全部是 linuxcnc_task_motion_hal_wasm_simulation_runtime。
10. activeLine 等于 UI 高亮行。
11. DRO 等于 runtime feedback axisPose。
12. RTCP canvas 状态与 state.rtcpState 一致。
13. taskCycle/servoCycle 可见。
14. canvas 执行轨迹可见。
```

样本摘要：

```text
t=0.2s / 0.5s / 1.0s / 2.0s / 5.0s
runState=complete
taskHalStatusLoop.sequence=2
taskHalStatusLoop.tickCount=4
programRuntimeFeedbackHistory.length=5
activeLine=29
sourceMode=linuxcnc-task-motion-hal-wasm
```

说明：

```text
xyzac_switchkins_test_1.ngc 很短，浏览器首个 0.2s 样本时程序已 complete。
因此证据不要求 5 秒内持续 active=true，而是验证本次 RUN 的新 loop sequence、tick/history、task/HAL feedback 和 UI snapshot 一致性。
```

## 4. 已运行验证

执行：

```bash
node qa/web-rtcp-5axis-site-test/capture-toolpath-preview-cases.mjs
```

结果：

```text
01-home-toolpath: PASS
02-operator-demo-toolpath: PASS
03-arc-demo-toolpath: PASS
04-clear-preview-reference: PASS
05-vendored-impeller-toolpath: PASS
06-running-rtcp-toolpath: PASS
07-run-preconditions-and-feedback: PASS
```

## 5. 接续工作

下一步建议补控制类 node 测试：

```text
1. ABORT 后 taskHalStatusLoop.active=false，runState/stopped status 正确。
2. STEP 在 task/HAL loaded 时 sourceMode 仍是 linuxcnc-task-motion-hal-wasm。
3. RUN gate 对 machine ON / AUTO / homed / opened-file 增加更细粒度失败断言。
4. taskHalStatusLoop 的 taskPeriodNs/servoPeriodNs 从 INI CYCLE_TIME/SERVO_PERIOD 派生。
5. xyzbc-trt 增加 RUN status loop 对称测试。
```

## 6. 当前完成矩阵变化

`06` 中的阶段 13 状态从：

```text
未完成：无新 JSON/截图
```

更新为：

```text
完成：run-preconditions-feedback.json + run-preconditions-feedback/*.png，07 case PASS
```
