Validate AXIS task state flow
This commit is contained in:
@@ -1,5 +1,295 @@
|
||||
# 03-推进台账
|
||||
|
||||
## 2026-07-08 17:26 EDT - 全功能与全按钮测试
|
||||
|
||||
### 本轮目标
|
||||
|
||||
按用户要求“全面完整执行测试项目功能,每个按钮都要全面测试”,在原有 browser smoke 的基础上补齐可重复执行的全按钮自动化验证,并重新跑完整功能测试链路。
|
||||
|
||||
### 已做事项
|
||||
|
||||
- 新增全按钮浏览器测试:
|
||||
- `tests/browser/xyzbc_trt_all_buttons.html`:启动真实页面,读取 `api.getButtonParity()`,对 63 个 `AXIS_BUTTON_PARITY` 按钮/动作逐项确认 DOM 控件、LinuxCNC 来源元数据和点击后状态效果。
|
||||
- `tests/browser/verify_xyzbc_trt_all_buttons.mjs`:使用 Playwright 和临时 HTTP server 执行真实浏览器测试。
|
||||
- `tests/browser/verify_xyzbc_trt_all_buttons.sh`:命令行入口。
|
||||
- `app/package.json` 新增 `smoke:buttons`。
|
||||
- 全按钮测试覆盖内容:
|
||||
- 菜单:Stage、Save session、Restore session、Reload、View X/Y/Z/P、Clear Live Plot、Audit。
|
||||
- 工具栏:ESTOP/RESET、Power on/off、AUTO/MANUAL、Reload、Run、Pause/Resume、Step、Stop、视图和清轨迹。
|
||||
- 手动区:Manual/MDI tab、joint 选择、jog increment、Jog +/−、Touch Off、Tool Touch Off。
|
||||
- MDI/PyVCP:MDI submit、MDI history、M428 TCP、M429 identity、M430 userk、vismach-clear。
|
||||
- Override/冷却/主轴:feed/rapid/spindle override +/−、spindle reverse/stop/forward、flood、mist、block delete、optional stop、ignore limits。
|
||||
- 修复全按钮测试发现的真实状态问题:
|
||||
- `app/src/state/store.js` 中 MDI M428/M429/M430 已经解析出的 `kinsType`/`rtcpState`,在随后 task/HAL 状态回写时会被旧的 runtime status 覆盖回 identity。
|
||||
- 修复为 MDI task/HAL 命令回写时通过 `preserveMachine.kinsType` 保留当前 MDI switchkins 结果。
|
||||
- 修正旧测试口径:
|
||||
- `verify_five_axis_session.mjs` 更新为当前目标项目默认 `xyzbc-trt` 和 `xyzbc-trt-web-session`。
|
||||
- `verify_gmoccapy_trt_project_sidebar.mjs` 更新 power ESTOP 文案与当前项目 OPFS 根。
|
||||
- `verify_linuxcnc_parity_matrix.mjs` 更新默认 active profile 为 `xyzbc-trt`。
|
||||
- `verify_machine_file_staging.mjs` 与 `verify_tool_db_web_simulation.mjs` 对仍验证 `xyzac-trt` 的场景先显式 `SET_PROFILE`,避免拿当前默认 `xyzbc-trt` 状态和旧 profile 预期比较。
|
||||
|
||||
### 执行命令
|
||||
|
||||
```text
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build
|
||||
for test_file in web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/*.mjs; do node "$test_file"; done
|
||||
node wasm-port/tests/wasm/node/verify_task_status_json_contract.mjs
|
||||
node wasm-port/tests/wasm/node/verify_task_hal_sdk.mjs
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:buttons
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:browser
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare
|
||||
git diff --check -- web-rtcp-5axis-xyzbc-trt-sim-plan/app/src web-rtcp-5axis-xyzbc-trt-sim-plan/app/package.json web-rtcp-5axis-xyzbc-trt-sim-plan/app/dist/src web-rtcp-5axis-xyzbc-trt-sim-plan/tests web-rtcp-5axis-xyzbc-trt-sim-plan/working web-rtcp-5axis-xyzbc-trt-sim-plan/tools
|
||||
```
|
||||
|
||||
### 关键结果
|
||||
|
||||
```text
|
||||
gmoccapy_static_build=ok
|
||||
全部 tests/node/*.mjs 通过
|
||||
task_status_json_contract=ok
|
||||
linuxcnc_task_hal_sdk=ok
|
||||
xyzbc_trt_all_buttons=ok checked=63
|
||||
xyzbc_trt_browser_smoke=ok
|
||||
compare_xyzbc_trt_status=pass
|
||||
git diff --check 无输出
|
||||
```
|
||||
|
||||
最新 evidence 摘要:
|
||||
|
||||
```text
|
||||
web.status=ready-for-wasm-runtime
|
||||
web.collectedAt=2026-07-08T21:25:01.630Z
|
||||
web.blockers=[]
|
||||
web.taskHalEquivalence.ready=true
|
||||
web.executionPath.status=ok
|
||||
web.executionPath.sampleCount=228
|
||||
|
||||
compare.status=pass
|
||||
compare.comparedAt=2026-07-08T21:25:02.164Z
|
||||
compare.surfaceSummary.passCount=60
|
||||
compare.surfaceSummary.failCount=0
|
||||
compare.functionalSummary.status=pass
|
||||
compare.functionalSummary.passCount=8
|
||||
compare.functionalSummary.failCount=0
|
||||
compare.requiredImprovements=[]
|
||||
```
|
||||
|
||||
### 结论
|
||||
|
||||
T-084 完成。目标项目已新增可重复的 63 项全按钮浏览器测试,并完成完整功能测试链路。全按钮测试暴露并修复了 MDI switchkins 后 `kinsType` 被 task/HAL 状态回写覆盖的问题;全量 Node、WASM、browser、buttons、evidence/compare 均通过。
|
||||
|
||||
## 2026-07-08 10:42 EDT - 目标项目删除顶层旧字段
|
||||
|
||||
### 本轮目标
|
||||
|
||||
按用户要求“`wasm-port` 中已经删除旧字段,目标项目也要删除旧字段,使用新方法”,将 Web 项目从“拒绝旧输入但仍可能生成内部顶层旧视图”进一步收敛为:正常 `taskHalStatus` 只保留新版 `emcStatus` 和面向 UI 的 `ui`,不再输出或消费顶层 `task`/`motionStatus`。
|
||||
|
||||
### 已做事项
|
||||
|
||||
- 修改 `app/src/runtime/linuxcnc-task-hal-runtime.js`:
|
||||
- `normalizeTaskHalStatus()` 继续拒绝旧 `task`、`motionStatus`、`rcsStatus`、`taskTopLevelStatus`、顶层 `servoCycle`。
|
||||
- 正常返回对象不再生成顶层 `task` 或 `motionStatus`,所有 task/motion 事实来自 `emcStatus.task` 和 `emcStatus.motion`。
|
||||
- 修改 `app/src/state/linuxcnc-task-policy.js` 与 `app/src/state/store.js`:
|
||||
- policy、状态循环、暂停/继续、jog、runtime feedback 均改为读取 `emcStatus`/`ui`。
|
||||
- `TASK_HAL_STATUS_APPLIED` 入口对旧字段直接失败,不再兼容旧形态。
|
||||
- 修改 `tools/collect-web-xyzbc-trt-evidence.mjs`:
|
||||
- Web evidence 的执行采样、轴值和主轴状态改为读取 `emcStatus`/`ui`,不再读取 `motionStatus` 或顶层 `task`。
|
||||
- 修改 Node 测试:
|
||||
- 增加正常 `taskHalStatus` 中不存在 `task`/`motionStatus` 的断言。
|
||||
- 将手工状态夹具改为新版 `emcStatus`/`ui` 结构。
|
||||
|
||||
### 执行命令
|
||||
|
||||
```text
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_xyzbc_trt_web_app.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_run_feedback_loop.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_rtcp_store.mjs
|
||||
node wasm-port/tests/wasm/node/verify_task_status_json_contract.mjs
|
||||
node wasm-port/tests/wasm/node/verify_task_hal_sdk.mjs
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build
|
||||
bash web-rtcp-5axis-xyzbc-trt-sim-plan/tests/browser/verify_xyzbc_trt_browser.sh
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare
|
||||
```
|
||||
|
||||
### 关键结果
|
||||
|
||||
```text
|
||||
xyzbc_trt_web_app_smoke=ok
|
||||
linuxcnc_task_hal_runtime_smoke=ok
|
||||
run_feedback_status_loop_smoke=ok
|
||||
rtcp_store_smoke=ok
|
||||
task_status_json_contract=ok
|
||||
linuxcnc_task_hal_sdk=ok
|
||||
gmoccapy_static_build=ok
|
||||
xyzbc_trt_browser_smoke=ok
|
||||
compare_xyzbc_trt_status=pass
|
||||
```
|
||||
|
||||
最新 evidence 摘要:
|
||||
|
||||
```text
|
||||
web.status=ready-for-wasm-runtime
|
||||
web.collectedAt=2026-07-08T14:41:49.397Z
|
||||
web.blockers=[]
|
||||
web.taskHalEquivalence.ready=true
|
||||
web.executionPath.status=ok
|
||||
web.executionPath.sampleCount=228
|
||||
|
||||
compare.status=pass
|
||||
compare.comparedAt=2026-07-08T14:41:49.928Z
|
||||
compare.surfaceSummary.passCount=60
|
||||
compare.surfaceSummary.failCount=0
|
||||
compare.functionalSummary.status=pass
|
||||
compare.functionalSummary.passCount=8
|
||||
compare.functionalSummary.failCount=0
|
||||
compare.requiredImprovements=[]
|
||||
```
|
||||
|
||||
### 结论
|
||||
|
||||
T-083 完成。目标 Web 项目已跟随新版 `wasm-port` 删除顶层旧字段:正常状态对象不再输出 `task`/`motionStatus`,程序内部也不再消费这些旧字段;旧字段仅作为无效输入被拒绝。
|
||||
|
||||
## 2026-07-08 10:01 EDT - 移除旧 task/motionStatus 输入兼容
|
||||
|
||||
### 本轮目标
|
||||
|
||||
按用户要求“不保留旧字段兼容,修改程序”,将上一轮状态适配从“以 `emcStatus` 为主并兼容旧输入”改为“只接受新版 `StandaloneEmcStatus`/`emcStatus` 输入”。
|
||||
|
||||
### 已做事项
|
||||
|
||||
- 修改 `app/src/runtime/linuxcnc-task-hal-runtime.js`:
|
||||
- `normalizeTaskHalStatus()` 现在要求 `status.emcStatus.task` 和 `status.emcStatus.motion` 存在,缺失时直接抛错。
|
||||
- 移除从旧 `status.task`、`status.motionStatus.motion`、`status.motionStatus.axis`、`status.motionStatus.joint0` 的回退读取。
|
||||
- 本轮完成后继续在 T-083 删除 Web 顶层 `task`/`motionStatus` 派生输出,当前正常状态只保留 `emcStatus` 和 `ui`。
|
||||
- `activeLineSource` 改为 `emc-status`。
|
||||
- 修改测试:
|
||||
- `verify_xyzbc_trt_web_app.mjs` 增加旧 `task`/`motionStatus` 输入拒绝断言。
|
||||
- `verify_linuxcnc_task_hal_runtime.mjs` 不再断言旧 `teleopMode`/`aborted` 字段,改为断言新版 `emcStatus` 有效性和可观察运行结果。
|
||||
- `verify_run_feedback_loop.mjs` 将 active line 来源断言更新为 `emc-status`。
|
||||
- 重新构建静态产物并刷新 Web evidence/compare。
|
||||
|
||||
### 执行命令
|
||||
|
||||
```text
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_xyzbc_trt_web_app.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_run_feedback_loop.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_rtcp_store.mjs
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build
|
||||
bash web-rtcp-5axis-xyzbc-trt-sim-plan/tests/browser/verify_xyzbc_trt_browser.sh
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web
|
||||
node wasm-port/tests/wasm/node/verify_task_status_json_contract.mjs
|
||||
node wasm-port/tests/wasm/node/verify_task_hal_sdk.mjs
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare
|
||||
```
|
||||
|
||||
### 关键结果
|
||||
|
||||
```text
|
||||
xyzbc_trt_web_app_smoke=ok
|
||||
linuxcnc_task_hal_runtime_smoke=ok
|
||||
run_feedback_status_loop_smoke=ok
|
||||
rtcp_store_smoke=ok
|
||||
gmoccapy_static_build=ok
|
||||
xyzbc_trt_browser_smoke=ok
|
||||
legacy_task_motion_status_rejected=ok
|
||||
task_status_json_contract=ok
|
||||
linuxcnc_task_hal_sdk=ok
|
||||
compare_xyzbc_trt_status=pass
|
||||
```
|
||||
|
||||
最新 evidence 摘要:
|
||||
|
||||
```text
|
||||
web.status=ready-for-wasm-runtime
|
||||
web.collectedAt=2026-07-08T14:00:44.425Z
|
||||
web.blockers=[]
|
||||
web.taskHalEquivalence.ready=true
|
||||
web.executionPath.status=ok
|
||||
web.executionPath.sampleCount=228
|
||||
|
||||
compare.status=pass
|
||||
compare.comparedAt=2026-07-08T14:00:58.972Z
|
||||
compare.surfaceSummary.passCount=60
|
||||
compare.surfaceSummary.failCount=0
|
||||
compare.functionalSummary.status=pass
|
||||
compare.functionalSummary.passCount=8
|
||||
compare.functionalSummary.failCount=0
|
||||
compare.requiredImprovements=[]
|
||||
```
|
||||
|
||||
### 结论
|
||||
|
||||
旧 `task`/`motionStatus` 输入兼容已移除,T-082 完成。当前 Web task/HAL runtime 只接受新版 `StandaloneEmcStatus`/`emcStatus` 合同;后续 T-083 已进一步删除 Web 顶层 `task`/`motionStatus` 输出。
|
||||
|
||||
## 2026-07-08 09:50 EDT - 新版 WASM 状态合同适配收口
|
||||
|
||||
### 本轮目标
|
||||
|
||||
继续完成新版 `/home/mes123456/cnc_wams/wasm-port` 完善后目标项目剩余适配工作:将 task/HAL status 主状态来源收敛到新版 `StandaloneEmcStatus`/`emcStatus`,并刷新 Web evidence/compare 确认无新增缺口。
|
||||
|
||||
### 已做事项
|
||||
|
||||
- 复核 `working/README.md`、`04-任务矩阵.md`、`05-验收证据.md` 和当前 evidence 摘要,确认旧任务 T-001 到 T-080 已完成,本轮需要把新版 WASM 状态合同适配作为新增闭环任务记录。
|
||||
- 完成 `app/src/runtime/linuxcnc-task-hal-runtime.js` 适配:以 `emcStatus.task`、`emcStatus.motion`、`emcStatus.motion.traj`、`emcStatus.motion.axisByName`、`emcStatus.motion.joint0` 作为唯一输入生成 Web UI 消费字段,旧 `task`/`motionStatus` 输入会被拒绝。
|
||||
- 在 `tests/node/verify_xyzbc_trt_web_app.mjs` 增加真实新版 status contract 断言和纯 `emcStatus` 输入归一化断言。
|
||||
- 重新构建静态产物,同步 `app/dist/src/runtime/linuxcnc-task-hal-runtime.js` 与 `app/dist/wasm-port/build/wasm/task-hal/linuxcnc_task_hal.js/.wasm`。
|
||||
- 刷新 Web evidence 和 compare evidence。
|
||||
|
||||
### 执行命令
|
||||
|
||||
```text
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_xyzbc_trt_web_app.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_run_feedback_loop.mjs
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build
|
||||
bash web-rtcp-5axis-xyzbc-trt-sim-plan/tests/browser/verify_xyzbc_trt_browser.sh
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web
|
||||
node wasm-port/tests/wasm/node/verify_task_status_json_contract.mjs
|
||||
node wasm-port/tests/wasm/node/verify_task_hal_sdk.mjs
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare
|
||||
```
|
||||
|
||||
### 关键结果
|
||||
|
||||
```text
|
||||
xyzbc_trt_web_app_smoke=ok
|
||||
linuxcnc_task_hal_runtime_smoke=ok
|
||||
run_feedback_status_loop_smoke=ok
|
||||
gmoccapy_static_build=ok
|
||||
xyzbc_trt_browser_smoke=ok
|
||||
task_status_json_contract=ok
|
||||
linuxcnc_task_hal_sdk=ok
|
||||
compare_xyzbc_trt_status=pass
|
||||
```
|
||||
|
||||
最新 evidence 摘要:
|
||||
|
||||
```text
|
||||
web.status=ready-for-wasm-runtime
|
||||
web.collectedAt=2026-07-08T13:50:12.039Z
|
||||
web.blockers=[]
|
||||
web.taskHalEquivalence.ready=true
|
||||
web.executionPath.status=ok
|
||||
web.executionPath.sampleCount=228
|
||||
|
||||
compare.status=pass
|
||||
compare.comparedAt=2026-07-08T13:50:23.202Z
|
||||
compare.surfaceSummary.passCount=60
|
||||
compare.surfaceSummary.failCount=0
|
||||
compare.functionalSummary.status=pass
|
||||
compare.functionalSummary.passCount=8
|
||||
compare.functionalSummary.failCount=0
|
||||
compare.requiredImprovements=[]
|
||||
```
|
||||
|
||||
### 结论
|
||||
|
||||
新版 WASM 状态合同适配已闭合,T-081 完成。当前目标项目对新版 `StandaloneEmcStatus`/`emcStatus` 可直接消费,且不再接受旧 `task`/`motionStatus` 输入;刷新后的 Web evidence 和 compare 没有新增 fail、blocker 或 required improvement。
|
||||
|
||||
## 2026-07-07 19:03 EDT - working 全部工作收口复验
|
||||
|
||||
### 本轮目标
|
||||
|
||||
@@ -82,6 +82,10 @@
|
||||
| T-078 | 2026-07-07 AXIS 主控制按钮状态链路收敛 | 完成 | 按 `18-20260707-AXIS主控制按钮调用链与Web完善指南.md` 完成 ESTOP、Power、Home、Run、Pause/Resume、Step 的 LinuxCNC task/motion/home 状态收敛;Task/HAL WASM 暴露 `motionEnabled`、`homed[]`、`singleStepping`、`motionStepping`;policy 统一门禁;build、Node/WASM/browser smoke、Web evidence 和 compare 均通过,最新 `compare.status=pass`、`60/60 pass`、`blockers=[]`、`requiredImprovements=[]` |
|
||||
| T-079 | 2026-07-07 AXIS 按钮 LinuxCNC C++ 功能级 compare 硬验收 | 完成 | 按 `20-20260707-AXIS按钮LinuxCNC真实C++对标实施步骤.md` 和 `21-20260707-AXIS按钮LinuxCNC真实C++对标验收测试.md` 增强 `tools/compare-xyzbc-trt-evidence.mjs`;compare 输出 `surfaceSummary` 与 `functionalSummary`,并硬检查 `cppTaskStateMachineParity`、`cppModeGateParity`、`cppHomingParity`、`cppRunGateParity`、`cppPauseResumeParity`、`cppStepParity`、`illegalCommandParity`、`realProgramExecutionParity`;最新 `surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]` |
|
||||
| T-080 | 2026-07-07 19:03 EDT working 全部工作收口复验 | 完成 | 重新执行 native LinuxCNC evidence、Web evidence、compare、Node smoke、build、Task/HAL 状态矩阵、Task/HAL WASM/SDK smoke、browser smoke;最新 `compare.status=pass`、`surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]` |
|
||||
| T-081 | 2026-07-08 新版 WASM `StandaloneEmcStatus` 状态合同适配 | 完成 | Web task/HAL runtime 以新版 `emcStatus` 为唯一输入状态来源,旧 `task`/`motionStatus` 输入会被拒绝;目标 Node smoke、WASM `verify_task_status_json_contract.mjs`、Task/HAL SDK smoke、build、browser smoke、Web evidence 和 compare 均通过;最新 `compare.status=pass`、`surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]` |
|
||||
| T-082 | 2026-07-08 移除旧 `task`/`motionStatus` 输入兼容 | 完成 | `normalizeTaskHalStatus()` 缺少 `StandaloneEmcStatus`/`emcStatus.task`/`emcStatus.motion` 时直接失败,不再读取旧 `status.task` 或 `status.motionStatus`;旧格式拒绝检查、目标 Node smoke、build、browser smoke、Web evidence 和 compare 均通过;最新 `compare.status=pass`、`surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]` |
|
||||
| T-083 | 2026-07-08 目标项目删除顶层旧字段 | 完成 | Web 正常 `taskHalStatus` 不再输出或消费顶层 `task`/`motionStatus`;runtime、store、policy、feedback、Web evidence 统一读取 `emcStatus`/`ui`;旧字段只作为无效输入被拒绝;目标 Node smoke、WASM status JSON contract、Task/HAL SDK、build、browser smoke、Web evidence 和 compare 均通过;最新 `compare.status=pass`、`surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]` |
|
||||
| T-084 | 2026-07-08 全功能与全按钮测试 | 完成 | 新增 `npm run smoke:buttons`,真实浏览器逐项测试 `AXIS_BUTTON_PARITY` 63 个按钮/动作;修复 M428/M429/M430 后 task/HAL 状态回写覆盖 `kinsType` 的问题;完整 `tests/node/*.mjs`、WASM status contract、Task/HAL SDK、build、browser smoke、全按钮 smoke、Web evidence 和 compare 均通过;最新 `compare.status=pass`、`surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]` |
|
||||
|
||||
状态说明:
|
||||
|
||||
@@ -89,7 +93,7 @@
|
||||
- 待前置:代码已接入,但仍依赖未完成的外部或运行环境步骤。
|
||||
- 待实现:已记录验收要求,仍需修改采集或对比脚本。
|
||||
|
||||
当前 T-001 到 T-080 均已完成;T-047/T-048/T-049/T-050 是用户指出 `working/screenshots/web-simulation-full-process-20260703T051258Z` 截图问题后的页面/截图层真实执行闭环项。
|
||||
当前 T-001 到 T-084 均已完成;T-047/T-048/T-049/T-050 是用户指出 `working/screenshots/web-simulation-full-process-20260703T051258Z` 截图问题后的页面/截图层真实执行闭环项。
|
||||
|
||||
T-051 到 T-075 是 2026-07-04 新增的严格完整对标任务:以 `/home/mes123456/cnc_wams/linuxcnc` 源树和 LinuxCNC `xyzbc-trt` 真实执行为唯一 native 权威基线,当前已完成,最新 compare 为 60/60 pass,blockers=[]。
|
||||
|
||||
@@ -102,3 +106,11 @@ T-078 是 2026-07-07 按 AXIS 主控制按钮调用链完善指南完成的状
|
||||
T-079 是 2026-07-07 按 20/21 号文档完成的功能级硬验收任务:旧 `summary/checks` 保持 60 项表面兼容检查,新增 `functionalChecks/functionalSummary` 作为真实通过判定;最新 compare 为 `surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`。
|
||||
|
||||
T-080 是 2026-07-07 19:03 EDT 针对用户“完成 working 中全部工作”的收口复验任务:重新采集 native/Web evidence 并重跑 compare、smoke、build、Task/HAL 状态矩阵和浏览器验证,确认所有 working 任务仍处于完成状态。
|
||||
|
||||
T-081 是 2026-07-08 针对新版 `wasm-port` task/HAL WASM 完善后的适配任务:目标项目 runtime 以 `StandaloneEmcStatus`/`emcStatus` 为主合同,测试覆盖纯 `emcStatus` 输入和真实 WASM status,刷新后的 Web evidence/compare 仍为通过。
|
||||
|
||||
T-082 是 2026-07-08 按用户要求移除旧字段兼容的任务:目标项目 runtime 不再接受旧 `task`/`motionStatus` 输入。
|
||||
|
||||
T-083 是 2026-07-08 按用户要求跟随 `wasm-port` 删除旧字段的任务:目标项目正常状态对象不再输出顶层 `task`/`motionStatus`,内部代码和 evidence 采集改为使用 `emcStatus`/`ui`。
|
||||
|
||||
T-084 是 2026-07-08 按用户要求全面测试功能和每个按钮的任务:新增 63 项全按钮浏览器测试入口,修复 MDI switchkins 后 task/HAL 状态回写覆盖问题,并完成全量 Node/WASM/browser/evidence/compare 验收。
|
||||
|
||||
@@ -1,5 +1,339 @@
|
||||
# 05-验收证据
|
||||
|
||||
## 2026-07-08 17:26 EDT - 全功能与全按钮测试验收证据
|
||||
|
||||
本轮按用户要求全面执行目标项目功能测试,并补齐“每个按钮都要全面测试”的自动化入口。新增全按钮浏览器测试覆盖 `AXIS_BUTTON_PARITY` 63 个按钮/动作条目,逐项验证 DOM 控件、LinuxCNC 来源元数据和点击后的状态效果。
|
||||
|
||||
关键实现证据:
|
||||
|
||||
```text
|
||||
app/package.json
|
||||
app/src/state/store.js
|
||||
tests/browser/xyzbc_trt_all_buttons.html
|
||||
tests/browser/verify_xyzbc_trt_all_buttons.mjs
|
||||
tests/browser/verify_xyzbc_trt_all_buttons.sh
|
||||
tests/node/verify_five_axis_session.mjs
|
||||
tests/node/verify_gmoccapy_trt_project_sidebar.mjs
|
||||
tests/node/verify_linuxcnc_parity_matrix.mjs
|
||||
tests/node/verify_machine_file_staging.mjs
|
||||
tests/node/verify_tool_db_web_simulation.mjs
|
||||
working/evidence/web-xyzbc-trt-evidence.json
|
||||
working/evidence/compare-xyzbc-trt-evidence.json
|
||||
```
|
||||
|
||||
执行命令:
|
||||
|
||||
```text
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build
|
||||
for test_file in web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/*.mjs; do node "$test_file"; done
|
||||
node wasm-port/tests/wasm/node/verify_task_status_json_contract.mjs
|
||||
node wasm-port/tests/wasm/node/verify_task_hal_sdk.mjs
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:buttons
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:browser
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare
|
||||
git diff --check -- web-rtcp-5axis-xyzbc-trt-sim-plan/app/src web-rtcp-5axis-xyzbc-trt-sim-plan/app/package.json web-rtcp-5axis-xyzbc-trt-sim-plan/app/dist/src web-rtcp-5axis-xyzbc-trt-sim-plan/tests web-rtcp-5axis-xyzbc-trt-sim-plan/working web-rtcp-5axis-xyzbc-trt-sim-plan/tools
|
||||
```
|
||||
|
||||
关键输出:
|
||||
|
||||
```text
|
||||
gmoccapy_static_build=ok
|
||||
five_axis_session_smoke=ok
|
||||
full_execution_boundary_smoke=ok
|
||||
full_linuxcnc_5axis_source_node_smoke=ok
|
||||
gmoccapy_communication_model_smoke=ok
|
||||
gmoccapy_hal_model_smoke=ok
|
||||
gmoccapy_icon_manifest_smoke=ok
|
||||
gmoccapy_icon_registry_smoke=ok
|
||||
gmoccapy_trt_project_sidebar_smoke=ok
|
||||
gmoccapy_xyzab_gates_smoke=ok
|
||||
gmoccapy_xyzab_profile_smoke=ok
|
||||
gmoccapy_xyzac_trt_parity_smoke=ok
|
||||
impeller_feed_task_hal_run=ok
|
||||
linear_unit_conversion_smoke=ok
|
||||
linuxcnc_ini_runtime_smoke=ok
|
||||
linuxcnc_interpreter_runtime_smoke=ok
|
||||
linuxcnc_kinematics_runtime_smoke=ok
|
||||
linuxcnc_parity_matrix_smoke=ok
|
||||
linuxcnc_task_hal_runtime_smoke=ok
|
||||
machine_file_staging_smoke=ok
|
||||
native_task_hal_source_artifact_audit=ok
|
||||
profile_boundary_smoke=ok
|
||||
real_linuxcnc_5axis_program_cases_smoke=ok
|
||||
rtcp_store_smoke=ok
|
||||
run_feedback_status_loop_smoke=ok
|
||||
run_preconditions_machine_file_smoke=ok
|
||||
tool_db_user_m_simulation_smoke=ok
|
||||
tool_db_web_simulation_smoke=ok
|
||||
xyzbc_trt_web_app_smoke=ok
|
||||
task_status_json_contract=ok
|
||||
linuxcnc_task_hal_sdk=ok
|
||||
xyzbc_trt_all_buttons=ok checked=63
|
||||
xyzbc_trt_browser_smoke=ok
|
||||
compare_xyzbc_trt_status=pass
|
||||
```
|
||||
|
||||
最新 evidence 摘要:
|
||||
|
||||
```text
|
||||
web.status=ready-for-wasm-runtime
|
||||
web.collectedAt=2026-07-08T21:25:01.630Z
|
||||
web.blockers=[]
|
||||
web.taskHalEquivalence.ready=true
|
||||
web.executionPath.status=ok
|
||||
web.executionPath.sampleCount=228
|
||||
|
||||
compare.status=pass
|
||||
compare.comparedAt=2026-07-08T21:25:02.164Z
|
||||
surfaceSummary.checkCount=60
|
||||
surfaceSummary.passCount=60
|
||||
surfaceSummary.failCount=0
|
||||
functionalSummary.status=pass
|
||||
functionalSummary.checkCount=8
|
||||
functionalSummary.passCount=8
|
||||
functionalSummary.failCount=0
|
||||
functionalSummary.requiredImprovements=[]
|
||||
compare.requiredImprovements=[]
|
||||
```
|
||||
|
||||
结论:全功能和全按钮测试已完成。新增 `smoke:buttons` 覆盖 63 个按钮/动作;本轮发现并修复 M428/M429/M430 MDI 后 `kinsType` 被 task/HAL 状态回写覆盖的问题。当前完整 Node、WASM、browser、buttons、evidence/compare 验收均通过。
|
||||
|
||||
## 2026-07-08 10:42 EDT - 目标项目删除顶层旧字段验收证据
|
||||
|
||||
本轮按用户要求让目标 Web 项目跟随 `/home/mes123456/cnc_wams/wasm-port` 删除旧字段。当前正常 `taskHalStatus` 不再输出或消费顶层 `task`/`motionStatus`,runtime、store、policy、feedback 和 Web evidence 均使用 `emcStatus`/`ui`。
|
||||
|
||||
关键实现证据:
|
||||
|
||||
```text
|
||||
app/src/runtime/linuxcnc-task-hal-runtime.js
|
||||
app/src/state/linuxcnc-task-policy.js
|
||||
app/src/state/store.js
|
||||
tools/collect-web-xyzbc-trt-evidence.mjs
|
||||
tests/node/verify_xyzbc_trt_web_app.mjs
|
||||
tests/node/verify_run_feedback_loop.mjs
|
||||
tests/node/verify_rtcp_store.mjs
|
||||
app/dist/src/runtime/linuxcnc-task-hal-runtime.js
|
||||
working/evidence/web-xyzbc-trt-evidence.json
|
||||
working/evidence/compare-xyzbc-trt-evidence.json
|
||||
```
|
||||
|
||||
执行命令:
|
||||
|
||||
```text
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_xyzbc_trt_web_app.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_run_feedback_loop.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_rtcp_store.mjs
|
||||
node wasm-port/tests/wasm/node/verify_task_status_json_contract.mjs
|
||||
node wasm-port/tests/wasm/node/verify_task_hal_sdk.mjs
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build
|
||||
bash web-rtcp-5axis-xyzbc-trt-sim-plan/tests/browser/verify_xyzbc_trt_browser.sh
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare
|
||||
```
|
||||
|
||||
关键输出:
|
||||
|
||||
```text
|
||||
xyzbc_trt_web_app_smoke=ok
|
||||
linuxcnc_task_hal_runtime_smoke=ok
|
||||
task_hal_machine_file_smoke=ok
|
||||
switchkins_remap_hal_sync_smoke=ok
|
||||
browser_task_hal_worker_smoke=ok
|
||||
run_feedback_status_loop_smoke=ok
|
||||
run_ready_sequence_smoke=ok
|
||||
pause_uses_motion_paused_gate=ok
|
||||
pause_freezes_task_hal_status_loop=ok
|
||||
rtcp_store_smoke=ok
|
||||
task_status_json_contract=ok
|
||||
linuxcnc_task_hal_sdk=ok
|
||||
gmoccapy_static_build=ok
|
||||
xyzbc_trt_browser_smoke=ok
|
||||
compare_xyzbc_trt_status=pass
|
||||
```
|
||||
|
||||
最新 evidence 摘要:
|
||||
|
||||
```text
|
||||
web.status=ready-for-wasm-runtime
|
||||
web.collectedAt=2026-07-08T14:41:49.397Z
|
||||
web.blockers=[]
|
||||
web.taskHalEquivalence.ready=true
|
||||
web.executionPath.status=ok
|
||||
web.executionPath.sampleCount=228
|
||||
|
||||
compare.status=pass
|
||||
compare.comparedAt=2026-07-08T14:41:49.928Z
|
||||
surfaceSummary.checkCount=60
|
||||
surfaceSummary.passCount=60
|
||||
surfaceSummary.failCount=0
|
||||
functionalSummary.status=pass
|
||||
functionalSummary.checkCount=8
|
||||
functionalSummary.passCount=8
|
||||
functionalSummary.failCount=0
|
||||
functionalSummary.requiredImprovements=[]
|
||||
compare.requiredImprovements=[]
|
||||
```
|
||||
|
||||
结论:目标 Web 项目已删除顶层旧字段。旧 `task`/`motionStatus` 只在拒绝输入的负向测试和错误提示中出现,正常运行数据以 `emcStatus`/`ui` 为准。
|
||||
|
||||
## 2026-07-08 10:01 EDT - 移除旧字段兼容验收证据
|
||||
|
||||
本轮按用户要求“不保留旧字段兼容,修改程序”,将 Web task/HAL runtime 改为只接受新版 `StandaloneEmcStatus`/`emcStatus` 输入。旧 `task`/`motionStatus` 输入不再被兼容归一化。
|
||||
|
||||
关键实现证据:
|
||||
|
||||
```text
|
||||
app/src/runtime/linuxcnc-task-hal-runtime.js
|
||||
tests/node/verify_xyzbc_trt_web_app.mjs
|
||||
tests/node/verify_linuxcnc_task_hal_runtime.mjs
|
||||
tests/node/verify_run_feedback_loop.mjs
|
||||
app/dist/src/runtime/linuxcnc-task-hal-runtime.js
|
||||
working/evidence/web-xyzbc-trt-evidence.json
|
||||
working/evidence/compare-xyzbc-trt-evidence.json
|
||||
```
|
||||
|
||||
执行命令:
|
||||
|
||||
```text
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_xyzbc_trt_web_app.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_run_feedback_loop.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_rtcp_store.mjs
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build
|
||||
bash web-rtcp-5axis-xyzbc-trt-sim-plan/tests/browser/verify_xyzbc_trt_browser.sh
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web
|
||||
node wasm-port/tests/wasm/node/verify_task_status_json_contract.mjs
|
||||
node wasm-port/tests/wasm/node/verify_task_hal_sdk.mjs
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare
|
||||
```
|
||||
|
||||
关键输出:
|
||||
|
||||
```text
|
||||
xyzbc_trt_web_app_smoke=ok
|
||||
linuxcnc_task_hal_runtime_smoke=ok
|
||||
task_hal_machine_file_smoke=ok
|
||||
switchkins_remap_hal_sync_smoke=ok
|
||||
browser_task_hal_worker_smoke=ok
|
||||
run_feedback_status_loop_smoke=ok
|
||||
run_ready_sequence_smoke=ok
|
||||
pause_uses_motion_paused_gate=ok
|
||||
pause_freezes_task_hal_status_loop=ok
|
||||
rtcp_store_smoke=ok
|
||||
gmoccapy_static_build=ok
|
||||
xyzbc_trt_browser_smoke=ok
|
||||
legacy_task_motion_status_rejected=ok
|
||||
task_status_json_contract=ok
|
||||
linuxcnc_task_hal_sdk=ok
|
||||
compare_xyzbc_trt_status=pass
|
||||
```
|
||||
|
||||
最新 evidence 摘要:
|
||||
|
||||
```text
|
||||
web.status=ready-for-wasm-runtime
|
||||
web.collectedAt=2026-07-08T14:00:44.425Z
|
||||
web.blockers=[]
|
||||
web.taskHalEquivalence.ready=true
|
||||
web.executionPath.status=ok
|
||||
web.executionPath.sampleCount=228
|
||||
|
||||
compare.status=pass
|
||||
compare.comparedAt=2026-07-08T14:00:58.972Z
|
||||
surfaceSummary.checkCount=60
|
||||
surfaceSummary.passCount=60
|
||||
surfaceSummary.failCount=0
|
||||
functionalSummary.status=pass
|
||||
functionalSummary.checkCount=8
|
||||
functionalSummary.passCount=8
|
||||
functionalSummary.failCount=0
|
||||
functionalSummary.requiredImprovements=[]
|
||||
compare.requiredImprovements=[]
|
||||
```
|
||||
|
||||
结论:旧字段输入兼容已移除并通过验证。后续 T-083 已进一步删除 Web 正常状态对象里的顶层 `task`/`motionStatus`,仅保留新版 `emcStatus` 与 UI 所需 `ui`。
|
||||
|
||||
## 2026-07-08 09:50 EDT - 新版 WASM 状态合同适配验收证据
|
||||
|
||||
本轮继续完成新版 `/home/mes123456/cnc_wams/wasm-port` task/HAL WASM 完善后的目标项目适配。关键目标是让 Web runtime 直接消费新版 `StandaloneEmcStatus`/`emcStatus` 状态结构,并拒绝旧 `task`/`motionStatus` 输入;后续 T-083 已删除 Web 顶层 `task`/`motionStatus` 派生视图,正常状态只保留 `emcStatus` 和 `ui`。
|
||||
|
||||
关键实现证据:
|
||||
|
||||
```text
|
||||
app/src/runtime/linuxcnc-task-hal-runtime.js
|
||||
tests/node/verify_xyzbc_trt_web_app.mjs
|
||||
app/dist/src/runtime/linuxcnc-task-hal-runtime.js
|
||||
app/dist/wasm-port/build/wasm/task-hal/linuxcnc_task_hal.js
|
||||
app/dist/wasm-port/build/wasm/task-hal/linuxcnc_task_hal.wasm
|
||||
working/evidence/web-xyzbc-trt-evidence.json
|
||||
working/evidence/compare-xyzbc-trt-evidence.json
|
||||
```
|
||||
|
||||
执行命令:
|
||||
|
||||
```text
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_xyzbc_trt_web_app.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_run_feedback_loop.mjs
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build
|
||||
bash web-rtcp-5axis-xyzbc-trt-sim-plan/tests/browser/verify_xyzbc_trt_browser.sh
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web
|
||||
node wasm-port/tests/wasm/node/verify_task_status_json_contract.mjs
|
||||
node wasm-port/tests/wasm/node/verify_task_hal_sdk.mjs
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare
|
||||
```
|
||||
|
||||
关键输出:
|
||||
|
||||
```text
|
||||
xyzbc_trt_web_app_smoke=ok
|
||||
linuxcnc_task_hal_runtime_smoke=ok
|
||||
task_hal_machine_file_smoke=ok
|
||||
switchkins_remap_hal_sync_smoke=ok
|
||||
browser_task_hal_worker_smoke=ok
|
||||
run_feedback_status_loop_smoke=ok
|
||||
run_ready_sequence_smoke=ok
|
||||
pause_uses_motion_paused_gate=ok
|
||||
pause_freezes_task_hal_status_loop=ok
|
||||
gmoccapy_static_build=ok
|
||||
xyzbc_trt_browser_smoke=ok
|
||||
task_status_json_contract_runtime=ok
|
||||
task_status_json_contract_schema=ok
|
||||
task_status_json_contract=ok
|
||||
linuxcnc_task_hal_sdk=ok
|
||||
task_hal_sdk_status_snapshot=ok
|
||||
task_hal_sdk_standalone_emc_status=ok
|
||||
task_hal_sdk_status_json_contract=ok
|
||||
compare_xyzbc_trt_status=pass
|
||||
```
|
||||
|
||||
最新 evidence 摘要:
|
||||
|
||||
```text
|
||||
web.status=ready-for-wasm-runtime
|
||||
web.collectedAt=2026-07-08T13:50:12.039Z
|
||||
web.blockers=[]
|
||||
web.taskHalEquivalence.ready=true
|
||||
web.executionPath.status=ok
|
||||
web.executionPath.sampleCount=228
|
||||
|
||||
compare.status=pass
|
||||
compare.comparedAt=2026-07-08T13:50:23.202Z
|
||||
surfaceSummary.checkCount=60
|
||||
surfaceSummary.passCount=60
|
||||
surfaceSummary.failCount=0
|
||||
functionalSummary.status=pass
|
||||
functionalSummary.checkCount=8
|
||||
functionalSummary.passCount=8
|
||||
functionalSummary.failCount=0
|
||||
functionalSummary.requiredImprovements=[]
|
||||
compare.requiredImprovements=[]
|
||||
```
|
||||
|
||||
结论:新版 WASM 状态合同适配完成。目标项目可以直接从 `emcStatus.task`、`emcStatus.motion`、`emcStatus.motion.traj`、`axisByName`、`joint0` 生成 Web UI 状态,并且刷新后的 compare 仍为表面检查 60/60、功能级检查 8/8 通过。
|
||||
|
||||
## 2026-07-07 19:03 EDT - working 全部工作收口复验证据
|
||||
|
||||
本轮按用户要求完成 `working` 中全部工作,并重新执行收口复验。
|
||||
|
||||
@@ -22,6 +22,10 @@
|
||||
|
||||
当前新增关注点:
|
||||
|
||||
- 2026-07-08 17:26 EDT 已按用户要求全面执行目标项目功能测试,并新增 `npm run smoke:buttons` 全按钮浏览器测试入口:覆盖 `AXIS_BUTTON_PARITY` 的 63 个按钮/动作条目,逐项检查 DOM 控件、LinuxCNC 来源元数据和点击后的状态效果;本轮同时修复 M428/M429/M430 MDI 后 task/HAL 状态回写覆盖 `kinsType` 的问题,并修正旧默认机型/旧项目根测试口径。完整 Node 测试集、WASM status contract、Task/HAL SDK、build、browser smoke、全按钮 smoke、Web evidence 和 compare 均通过;最新 `compare.status=pass`、`surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]`。
|
||||
- 2026-07-08 10:42 EDT 已按用户要求在目标 Web 项目中删除顶层旧字段:`taskHalStatus` 正常形态不再输出或消费 `task`/`motionStatus`,store、policy、feedback、evidence 采集统一读取 `emcStatus` 和 `ui`;旧字段只保留在拒绝输入的负向测试和错误提示中。Node smoke、WASM status JSON contract、Task/HAL SDK、build、browser smoke、Web evidence 和 compare 均通过;最新 `compare.status=pass`、`surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]`。
|
||||
- 2026-07-08 10:01 EDT 已按用户要求移除旧字段兼容:`normalizeTaskHalStatus()` 现在缺少 `StandaloneEmcStatus`/`emcStatus.task`/`emcStatus.motion` 时直接失败,不再从旧 `status.task` 或 `status.motionStatus` 回退;旧格式拒绝检查、Node smoke、browser smoke、WASM status JSON contract、Task/HAL SDK、Web evidence 和 compare 均通过。
|
||||
- 2026-07-08 09:50 EDT 已完成新版 `wasm-port` task/HAL WASM 状态合同适配:Web runtime 以 `StandaloneEmcStatus`/`emcStatus` 为唯一输入合同,拒绝旧 `task`/`motionStatus` 输入字段;目标 Node smoke、WASM status JSON contract、SDK smoke、Web evidence 和 compare 均通过;最新 `compare.status=pass`、`surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]`。
|
||||
- 2026-07-07 19:03 EDT 已按“完成 working 中全部工作”重新执行当前收口复验:native LinuxCNC evidence、Web evidence、compare、Node smoke、build、Task/HAL 状态矩阵、Task/HAL WASM/SDK smoke、browser smoke 均通过;最新 `compare.status=pass`、`surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]`。
|
||||
- 2026-07-07 18:57 EDT 已完成 20/21 号文档要求的功能级 compare 增强:`compare-xyzbc-trt-evidence.json` 现在同时输出 `surfaceSummary` 和 `functionalSummary`;最新结果为 `surfaceSummary=60/60 pass`、`functionalSummary=8/8 pass`、`requiredImprovements=[]`,硬规则覆盖 `cppTaskStateMachineParity`、`cppModeGateParity`、`cppHomingParity`、`cppRunGateParity`、`cppPauseResumeParity`、`cppStepParity`、`illegalCommandParity`、`realProgramExecutionParity`。
|
||||
- 2026-07-07 18:35 EDT 已将 19 号源码分析拆分为 20 号实施步骤和 21 号验收测试。后续结论必须区分 `surfaceSummary` 和 `functionalSummary`;`compare 60/60 pass` 只代表表面规则通过,真实通过必须证明 Web 行为符合 LinuxCNC C++ `emctaskmain.cc`、`emctask.cc`、`taskintf.cc`、`motion/command.c`、`control.c`、`homing.c` 的状态机和真实程序执行结果。
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"apiName": "xyzbc-trt-native-web-evidence-comparison",
|
||||
"status": "pass",
|
||||
"comparedAt": "2026-07-07T23:03:43.547Z",
|
||||
"comparedAt": "2026-07-08T21:25:02.164Z",
|
||||
"nativePath": "/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/native-xyzbc-trt-evidence.json",
|
||||
"webPath": "/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/web-xyzbc-trt-evidence.json",
|
||||
"summary": {
|
||||
@@ -567,7 +567,7 @@
|
||||
"execution": {
|
||||
"completed": true,
|
||||
"sampleCount": 228,
|
||||
"taskHalEventCount": 30
|
||||
"taskHalEventCount": 35
|
||||
},
|
||||
"semanticBoundary": "web_basic_sim_joint_home_spindle_manualtoolchange_feedback"
|
||||
},
|
||||
@@ -578,7 +578,7 @@
|
||||
"semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime",
|
||||
"sessionProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc",
|
||||
"completed": true,
|
||||
"eventCount": 30
|
||||
"eventCount": 35
|
||||
},
|
||||
"taskPolicy": {
|
||||
"taskState": "estop-reset",
|
||||
@@ -619,7 +619,7 @@
|
||||
"execution": {
|
||||
"completed": true,
|
||||
"sampleCount": 228,
|
||||
"taskHalEventCount": 30
|
||||
"taskHalEventCount": 35
|
||||
},
|
||||
"semanticBoundary": "web_basic_sim_joint_home_spindle_manualtoolchange_feedback"
|
||||
},
|
||||
@@ -2469,7 +2469,7 @@
|
||||
"semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime",
|
||||
"sessionProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc",
|
||||
"completed": true,
|
||||
"eventCount": 30
|
||||
"eventCount": 35
|
||||
},
|
||||
"executionPath": {
|
||||
"nativeSampleCount": 4,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"apiName": "xyzbc-trt-web-opfs-wasm-evidence",
|
||||
"status": "ready-for-wasm-runtime",
|
||||
"collectedAt": "2026-07-07T23:03:42.947Z",
|
||||
"collectedAt": "2026-07-08T21:25:01.630Z",
|
||||
"profile": {
|
||||
"id": "xyzbc-trt",
|
||||
"machineName": "sim-xyzbc-trt-kins (switchkins)",
|
||||
@@ -102296,7 +102296,7 @@
|
||||
"semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime",
|
||||
"sessionProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc",
|
||||
"completed": true,
|
||||
"eventCount": 30
|
||||
"eventCount": 35
|
||||
}
|
||||
},
|
||||
"semanticExecutionPath": {
|
||||
@@ -227512,7 +227512,7 @@
|
||||
"semanticBoundary": "linuxcnc_task_motion_hal_wasm_simulation_runtime",
|
||||
"sessionProgramPath": "/work/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt/demos/xyzbc_switchkins.ngc",
|
||||
"completed": true,
|
||||
"eventCount": 30
|
||||
"eventCount": 35
|
||||
},
|
||||
"taskPolicy": {
|
||||
"taskState": "estop-reset",
|
||||
@@ -227553,7 +227553,7 @@
|
||||
"execution": {
|
||||
"completed": true,
|
||||
"sampleCount": 228,
|
||||
"taskHalEventCount": 30
|
||||
"taskHalEventCount": 35
|
||||
},
|
||||
"semanticBoundary": "web_basic_sim_joint_home_spindle_manualtoolchange_feedback"
|
||||
},
|
||||
@@ -227584,7 +227584,7 @@
|
||||
"execution": {
|
||||
"completed": true,
|
||||
"sampleCount": 228,
|
||||
"taskHalEventCount": 30
|
||||
"taskHalEventCount": 35
|
||||
},
|
||||
"semanticBoundary": "web_basic_sim_joint_home_spindle_manualtoolchange_feedback"
|
||||
},
|
||||
@@ -229820,16 +229820,16 @@
|
||||
{
|
||||
"rel": "wasm-port/build/wasm/task-hal/linuxcnc_task_hal.js",
|
||||
"absolutePath": "/home/mes123456/cnc_wams/wasm-port/build/wasm/task-hal/linuxcnc_task_hal.js",
|
||||
"bytes": 19878,
|
||||
"mtime": "2026-07-07T22:01:17.840Z",
|
||||
"sha256": "b5f5caa1a898acea8280dfba6dae7b723d775e54e9d769bdb4d21ac6ac2ac358"
|
||||
"bytes": 20858,
|
||||
"mtime": "2026-07-08T14:15:38.726Z",
|
||||
"sha256": "31a4b38ab6c92d5524c80414a159ae874f72bcbe4d3744019cefd18bb224c8f6"
|
||||
},
|
||||
{
|
||||
"rel": "wasm-port/build/wasm/task-hal/linuxcnc_task_hal.wasm",
|
||||
"absolutePath": "/home/mes123456/cnc_wams/wasm-port/build/wasm/task-hal/linuxcnc_task_hal.wasm",
|
||||
"bytes": 215042,
|
||||
"mtime": "2026-07-07T22:01:17.596Z",
|
||||
"sha256": "b456ffb64e5a32bc4a425343b5539dea9cf064b1804c4c6b53dea3661ea37fa8"
|
||||
"bytes": 281624,
|
||||
"mtime": "2026-07-08T14:15:38.526Z",
|
||||
"sha256": "ed62ea4a6138c3bde51fa6071fcdd41119e57aba65d4b4edee47665921d595df"
|
||||
}
|
||||
],
|
||||
"buildCommands": [
|
||||
@@ -230621,7 +230621,7 @@
|
||||
"execution": {
|
||||
"completed": true,
|
||||
"sampleCount": 228,
|
||||
"taskHalEventCount": 30
|
||||
"taskHalEventCount": 35
|
||||
}
|
||||
},
|
||||
"semanticBoundary": "web_task_hal_full_state"
|
||||
@@ -231679,16 +231679,16 @@
|
||||
{
|
||||
"rel": "wasm-port/build/wasm/task-hal/linuxcnc_task_hal.js",
|
||||
"absolutePath": "/home/mes123456/cnc_wams/wasm-port/build/wasm/task-hal/linuxcnc_task_hal.js",
|
||||
"bytes": 19878,
|
||||
"mtime": "2026-07-07T22:01:17.840Z",
|
||||
"sha256": "b5f5caa1a898acea8280dfba6dae7b723d775e54e9d769bdb4d21ac6ac2ac358"
|
||||
"bytes": 20858,
|
||||
"mtime": "2026-07-08T14:15:38.726Z",
|
||||
"sha256": "31a4b38ab6c92d5524c80414a159ae874f72bcbe4d3744019cefd18bb224c8f6"
|
||||
},
|
||||
{
|
||||
"rel": "wasm-port/build/wasm/task-hal/linuxcnc_task_hal.wasm",
|
||||
"absolutePath": "/home/mes123456/cnc_wams/wasm-port/build/wasm/task-hal/linuxcnc_task_hal.wasm",
|
||||
"bytes": 215042,
|
||||
"mtime": "2026-07-07T22:01:17.596Z",
|
||||
"sha256": "b456ffb64e5a32bc4a425343b5539dea9cf064b1804c4c6b53dea3661ea37fa8"
|
||||
"bytes": 281624,
|
||||
"mtime": "2026-07-08T14:15:38.526Z",
|
||||
"sha256": "ed62ea4a6138c3bde51fa6071fcdd41119e57aba65d4b4edee47665921d595df"
|
||||
}
|
||||
],
|
||||
"missing": [],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user