Validate AXIS task state flow

This commit is contained in:
wangdequan
2026-07-09 18:12:01 -04:00
parent f99ba2bbe8
commit f4b9911d45
57 changed files with 195248 additions and 647 deletions

View File

@@ -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` 中全部工作,并重新执行收口复验。