Files
cnc_wams/wasm-port/working/05-验收证据.md
2026-07-10 03:22:55 -04:00

99 KiB
Raw Blame History

05-验收证据

2026-07-08 10:18 EDT T-056 旧 status 字段源头收口

验收对象

lctask_read_status_json() 输出契约和直接消费 task status JSON 的 WASM/SDK/state matrix 测试。

证据命令

source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && bash wasm-port/tools/build_task_hal_wasm.sh
node wasm-port/tests/wasm/node/verify_task_status_json_contract.mjs
node wasm-port/tests/wasm/node/verify_task_hal_sdk.mjs
node wasm-port/tests/wasm/node/verify_task_state_matrix.mjs
node wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs

实际输出摘要

linuxcnc_task_hal_wasm_build=ok
task_status_json_contract=ok
linuxcnc_task_hal_sdk=ok
task_hal_sdk_status_json_contract=ok
task_state_matrix=ok
task_status_json_contract_matrix=ok
linuxcnc_task_runtime_smoke=ok
task_status_json_contract=ok

结论

T-056 验收通过。task status JSON 不再输出 taskTopLevelStatusrcsStatus、顶层 taskservoCycle、顶层 motionStatus;测试读取路径均从 emcStatus 取值,并对旧字段做负向断言。

2026-07-08 09:30 EDT 目标文件 11/12 全部工作复核

验收对象

  • 11-WASM核心状态机边界与后续完善路线.md
  • 12-status-json-LinuxCNC对标方案.md
  • T-051 到 T-055 / SJ-1 到 SJ-5 当前闭合状态。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_full_closure.sh
cd /home/mes123456/cnc_wams
git diff --check

实际输出摘要

./tools/verify_task_full_closure.sh

linuxcnc_task_hal_wasm_build=ok
task_status_json_contract=ok
linuxcnc_task_hal_sdk=ok
task_state_matrix=ok
motion_hal_sync_smoke=ok
task_standalone_emc_status_status=ok
task_no_json_motion_plan_main_path_status=ok
task_status_json_contract_status=ok
task_working_closure_status=ok
task_source_reuse_drift_docs_status=ok
task_hal_readiness_contract_status=ok
task_full_closure_status=ok

git diff --check:无输出,以 0 退出。

结论

目标文件 1112 当前定义的全部可执行工作已闭合。后续新增状态或 LinuxCNC 对标字段仍需先补入任务矩阵、验收标准和 gate。

2026-07-08 09:26 EDT working 全部工作闭合复核

验收对象

/home/mes123456/cnc_wams/wasm-port/working 当前全部任务闭合状态。

验收目标

  • 04-任务矩阵.md 中 T-001 到 T-055 均为完成。
  • 当前推进指针为“下一条优先任务:无”。
  • T-051 到 T-055 的 status JSON contract gate 已纳入 full closure。
  • 全量闭合验证通过。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_full_closure.sh

实际输出摘要

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
linuxcnc_task_hal_sdk=ok
task_state_matrix=ok
motion_hal_sync_smoke=ok
task_standalone_emc_status_status=ok
task_no_json_motion_plan_main_path_status=ok
task_status_json_contract_status=ok
task_working_closure_status=ok
task_source_reuse_drift_docs_status=ok
task_hal_readiness_contract_status=ok
task_full_closure_status=ok

结论

wasm-port/working 全部工作闭合复核通过。后续新增对标项仍需先补入任务矩阵、验收标准和 gate再实施代码或文档变更。

2026-07-08 09:12 EDT SJ-1 到 SJ-5 status JSON contract 验收

验收对象

T-051、T-052、T-053、T-054、T-055。

验收目标

  • emcStatus.motion.traj 导出 LinuxCNC EMC_TRAJ_STAT 风格字段,并与兼容 motionStatus 同源。
  • emcStatus.task.currentLine/readLine/motionLine/callLevelStandaloneEmcStatus 导出,并与 task 兼容视图同源。
  • emcStatus.motion.axis[]joint[] 导出结构化数组,旧 motionStatus.axisjoint0 与其一致。
  • emcStatus.io.aux/tool/coolant 显式表达 shim/unsupported 边界readiness 不提升。
  • tools/verify_task_status_json_contract.sh 纳入 full closure。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && ./tools/build_task_hal_wasm.sh
SKIP_TASK_HAL_BUILD=1 ./tools/verify_task_status_json_contract.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_sdk.sh
node tests/wasm/node/verify_task_state_matrix.mjs
./tools/verify_task_full_closure.sh

实际输出摘要

构建:

linuxcnc_task_hal_wasm_build=ok

新增 contract gate

task_status_json_contract_runtime=ok
task_status_json_contract_schema=ok
task_status_json_contract=ok
task_status_json_contract_status_read_no_motion_json=ok
task_status_json_contract_sdk_no_motion_semantics=absent
task_status_json_contract_sdk_no_task_semantics=absent
task_status_json_contract_status=ok

回归 smoke

task_status_json_contract=ok
task_hal_sdk_status_json_contract=ok
task_status_json_contract_matrix=ok

全量闭合:

task_status_json_contract_status=ok
task_working_closure_status=ok
task_source_reuse_drift_docs_status=ok
task_hal_readiness_contract_status=ok
task_full_closure_status=ok

结论

T-051 到 T-055 验收通过。status JSON 新增字段均从 StandaloneEmcStatus 或同一 C/C++ status buffer 导出JSON 仍是 host/browser 通信格式,不是 task/motion 事实源。

2026-07-08 09:00 EDT working 全部工作最终复核

验收对象

/home/mes123456/cnc_wams/wasm-port/working 当前全部任务闭合状态。

验收目标

  • 04-任务矩阵.md待办进行中阻塞 任务行。
  • README、台账、验收证据、决策记录与 T-007/T-046/T-047/T-048/T-049/T-050 当前闭合口径一致。
  • task-HAL 全量闭合 gate 通过。
  • 当前相关差异无 whitespace error。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_full_closure.sh
git diff --check -- working tools docs runtime tests

实际输出摘要

./tools/verify_task_full_closure.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
linuxcnc_task_hal_sdk=ok
task_state_matrix=ok
motion_hal_sync_smoke=ok
task_standalone_emc_status_status=ok
task_no_json_motion_plan_main_path_status=ok
task_working_closure_status=ok
task_source_reuse_drift_docs_status=ok
task_hal_readiness_contract_status=ok
task_full_closure_status=ok

git diff --check -- working tools docs runtime tests:无输出,以 0 退出。

结论

wasm-port/working 全部工作最终复核通过。当前矩阵闭合、全量 gate 通过,后续新增对标范围需先在任务矩阵新增任务编号、验收标准和 gate。

2026-07-08 08:55 EDT status JSON LinuxCNC 对标方案验收

验收对象

T-050。

验收目标

  • 12-status-json-LinuxCNC对标方案.md 存在。
  • 方案明确 LinuxCNC EMC_STAT / status buffer 与 WASM StandaloneEmcStatus -> status JSON 的关系。
  • README、功能内容、开发步骤、周期蓝图、核心状态机路线、任务矩阵、台账和决策记录均接入该方案。
  • 既有 working closure gate 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_working_closure.sh
test -f working/12-status-json-LinuxCNC对标方案.md
git diff --check -- working

实际输出摘要

./tools/verify_task_working_closure.sh

task_working_closure_status=ok

test -f working/12-status-json-LinuxCNC对标方案.md:以 0 退出。

git diff --check -- working:无输出,以 0 退出。

结论

T-050 验收通过。status JSON 后续完善方案已固定WASM/C++ status 容器是事实源,emcStatus 是新增 LinuxCNC 对标字段的 JSON 主对象,旧兼容字段只从同一 status buffer 导出。

2026-07-08 08:18 EDT WASM核心状态机边界文档验收

验收对象

本轮文档完善。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_working_closure.sh
git diff --check -- working

实际输出摘要

./tools/verify_task_working_closure.sh

task_working_closure_status=ok

git diff --check -- working:无输出,以 0 退出。

结论

文档已固定 WASM/C++、JS/SDK、JSON 的职责边界。后续实现时,核心状态机应继续进入 WASM/C++ 结构体、枚举、队列和周期函数JSON 只作为外部通信格式。

2026-07-08 08:08 EDT task-HAL 全量闭合验证入口验收

验收对象

T-049。

本轮验收目标是证明:

  • tools/verify_task_full_closure.sh 存在且可执行。
  • 该脚本能一次性运行 task-HAL build、WASM smoke、SDK smoke、state matrix、motion sync、T-007/T-046/T-047/T-048/docs/readiness gates。
  • source reuse / compatibility 文档记录该 full closure gate。
  • verify_task_source_reuse_drift_docs.sh 检查该 full closure gate 和 T-049 矩阵状态。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_full_closure.sh
git diff --check

实际输出摘要

./tools/verify_task_source_reuse_drift_docs.sh

task_source_reuse_drift_docs_source_full_closure_gate=ok
task_source_reuse_drift_docs_compat_full_closure_gate=ok
task_source_reuse_drift_docs_compat_full_closure=ok
task_source_reuse_drift_docs_matrix_t049_done=ok
task_source_reuse_drift_docs_status=ok

./tools/verify_task_full_closure.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
linuxcnc_task_hal_sdk=ok
task_state_matrix=ok
motion_hal_sync_smoke=ok
task_standalone_emc_status_status=ok
task_no_json_motion_plan_main_path_status=ok
task_working_closure_status=ok
task_source_reuse_drift_docs_status=ok
task_hal_readiness_contract_status=ok
task_full_closure_status=ok

结论

T-049 验收通过。task-HAL 对标工作已有统一全量闭合验证入口;后续可用 ./tools/verify_task_full_closure.sh 一次性验证当前闭合状态。本轮不改变 runtime 行为。

2026-07-08 05:51 EDT working closure 全局文档 gate 验收

验收对象

T-048。

本轮验收目标是证明:

  • verify_task_working_closure.sh 已记录到 source reuse map。
  • verify_task_working_closure.sh 已记录到 compatibility validation。
  • verify_task_source_reuse_drift_docs.sh 会检查 working closure gate。
  • 任务矩阵记录 T-048 已完成。
  • T-047 working closure 和 T-007 StandaloneEmcStatus gate 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_working_closure.sh
./tools/verify_task_standalone_emc_status.sh
git diff --check

实际输出摘要

./tools/verify_task_source_reuse_drift_docs.sh

task_source_reuse_drift_docs_source_working_closure_gate=ok
task_source_reuse_drift_docs_compat_working_closure_gate=ok
task_source_reuse_drift_docs_compat_working_closure=ok
task_source_reuse_drift_docs_matrix_t048_done=ok
task_source_reuse_drift_docs_status=ok

回归 gate

task_working_closure_status=ok
task_standalone_emc_status_status=ok

结论

T-048 验收通过。working closure gate 已纳入 source reuse / compatibility 文档和总文档一致性 gate后续文档 drift 会检查该收口 gate 是否仍被记录。本轮不改变 runtime 行为。

2026-07-08 05:46 EDT working closure 验收

验收对象

T-047。

本轮验收目标是证明:

  • 任务矩阵所有任务均为完成。
  • 当前推进指针为“无”。
  • working README、功能内容和 NML 评估文档不再保留 T-007 完成前的过期口径。
  • 新增 closure gate 能防止后续 working 索引与矩阵闭合状态漂移。
  • T-007、文档一致性和 no-JSON 主路径 gate 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_working_closure.sh
./tools/verify_task_standalone_emc_status.sh
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_no_json_motion_plan_main_path.sh
git diff --check

实际输出摘要

./tools/verify_task_working_closure.sh

task_working_closure_matrix_t007_done=ok
task_working_closure_matrix_t047_done=ok
task_working_closure_matrix_next_none=ok
task_working_closure_matrix_unclosed_tasks=absent
task_working_closure_readme_closed=ok
task_working_closure_readme_status_source=ok
task_working_closure_readme_no_json=ok
task_working_closure_functions_closed=ok
task_working_closure_functions_standalone_status=ok
task_working_closure_functions_readiness=ok
task_working_closure_nml_t007_done=ok
task_working_closure_status=ok

回归 gate

task_standalone_emc_status_status=ok
task_source_reuse_drift_docs_status=ok
task_no_json_motion_plan_main_path_status=ok

结论

T-047 验收通过。working 索引与当前实现口径一致,任务矩阵无待办/进行中/阻塞项,下一条优先任务为“无”。本轮为文档和 gate 收口,不改变 runtime 行为。

2026-07-08 05:40 EDT StandaloneEmcStatus 验收

验收对象

T-007。

本轮验收目标是证明:

  • task/motion/io/top 必需状态集中到 StandaloneEmcStatus
  • write_status_snapshot() 在写 status buffer 前同步该容器。
  • JSON status 从该容器导出 taskTopLevelStatusrcsStatustaskmotionStatusemcStatus
  • WASM、SDK、state matrix 均验证 emcStatus 与兼容 JSON 字段一致。
  • T-046 no-JSON 主路径、source reuse/drift 文档、readiness contract 和 motion sync 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && ./tools/build_task_hal_wasm.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh
./tests/wasm/node/verify_task_hal_sdk.sh
node tests/wasm/node/verify_task_state_matrix.mjs
./tools/verify_task_standalone_emc_status.sh
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_no_json_motion_plan_main_path.sh
./tools/verify_task_hal_readiness_contract.sh
./tests/wasm/node/verify_motion_hal_sync.sh

实际输出摘要

构建:

linuxcnc_task_hal_wasm_build=ok

SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_runtime_smoke=ok
task_top_level_rcs_status_aggregation=ok
standalone_emc_status_container=ok
task_hal_no_json_main_path_status=ok

./tests/wasm/node/verify_task_hal_sdk.sh

linuxcnc_task_hal_sdk=ok
task_hal_sdk_status_snapshot=ok
task_hal_sdk_standalone_emc_status=ok
task_hal_timed_motion_plan_compat=ok

node tests/wasm/node/verify_task_state_matrix.mjs

task_state_matrix=ok
standalone_emc_status_matrix=ok

./tools/verify_task_standalone_emc_status.sh

task_standalone_emc_status_wrapper_status_struct=ok
task_standalone_emc_status_wrapper_task_struct=ok
task_standalone_emc_status_wrapper_motion_struct=ok
task_standalone_emc_status_wrapper_io_struct=ok
task_standalone_emc_status_wrapper_sync=ok
task_standalone_emc_status_wasm_status=ok
task_standalone_emc_status_sdk_status=ok
task_standalone_emc_status_state_matrix_status=ok
task_standalone_emc_status_matrix_t007_done=ok
task_standalone_emc_status_matrix_next_none=ok
task_standalone_emc_status_status=ok

回归 gate

task_source_reuse_drift_docs_status=ok
task_no_json_motion_plan_main_path_status=ok
task_hal_readiness_contract_status=ok
motion_hal_sync_smoke=ok

结论

T-007 验收通过。StandaloneEmcStatus 已作为当前阶段 EMC_STAT 等价容器集中管理 task/motion/io/top 必需字段JSON status 从该容器导出并保持兼容字段一致。任务矩阵当前已全部闭合readiness 仍未提升。

2026-07-08 05:28 EDT no-JSON 主 RUN 路径验收

验收对象

T-046。

本轮验收目标是证明:

  • verify_task_hal_wasm.sh smoke 不再调用 lctask_load_program_motion_plan_json()
  • staged program RUN 可通过 emcTaskPlanRead()emcTaskPlanCommand()emcTaskPlanExecute()emccanon.cc command envelope 和 taskintf.cc motion issue 完成。
  • 主状态保持 motionPlanLoaded=falseplanId=0
  • loadProgramMotionPlan() 仍作为 timed motion plan 兼容/调试入口保留,且有单独验证。
  • T-040/T-041/T-042/T-043/T-044/T-045、SDK、motion sync、readiness contract 和文档 gate 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && ./tools/build_task_hal_wasm.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh
./tests/wasm/node/verify_task_hal_sdk.sh
node tests/wasm/node/verify_task_state_matrix.mjs
./tools/verify_task_no_json_motion_plan_main_path.sh
./tools/verify_task_emccanon_motion_output.sh
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_emctask_plan_read_execute.sh
./tools/verify_task_hal_readiness_contract.sh
./tests/wasm/node/verify_motion_hal_sync.sh

实际输出摘要

构建:

linuxcnc_task_hal_wasm_build=ok

SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_runtime_smoke=ok
emctask_plan_read_execute_status=ok
emccanon_motion_output_status=ok
task_hal_no_json_main_path_status=ok

./tests/wasm/node/verify_task_hal_sdk.sh

linuxcnc_task_hal_sdk=ok
task_hal_sdk_status_snapshot=ok
task_hal_timed_motion_plan_compat=ok
task_hal_comment_source_line_numbers=ok

node tests/wasm/node/verify_task_state_matrix.mjs

task_state_matrix=ok
run_gate_staged_program_executes_without_json_plan=ok
run_gate_accepts_homed_open_plan=ok
run_gate_json_motion_plan_compat=ok

./tools/verify_task_no_json_motion_plan_main_path.sh

task_no_json_motion_plan_main_path_wasm_test_main_load_plan=absent
task_no_json_motion_plan_main_path_wasm_test_main_false=ok
task_no_json_motion_plan_main_path_wasm_test_plan_zero=ok
task_no_json_motion_plan_main_path_sdk_compat_call=ok
task_no_json_motion_plan_main_path_state_default_no_json=ok
task_no_json_motion_plan_main_path_matrix_t046_done=ok
task_no_json_motion_plan_main_path_matrix_next_t007=ok
task_no_json_motion_plan_main_path_status=ok

回归 gate

task_emccanon_motion_output_status=ok
task_source_reuse_drift_docs_status=ok
task_emctask_plan_read_execute_status=ok
task_hal_readiness_contract_status=ok
motion_hal_sync_smoke=ok

结论

T-046 验收通过。主 RUN 路径已从 JSON timed motion plan 预加载切换为 staged program plan read/execute + emccanon + taskintfloadProgramMotionPlan() 仍保留为兼容/调试入口。readiness 仍保持未提升。

2026-07-08 05:06 EDT emccanon motion output/switchkins 验收

验收对象

T-045。

本轮验收目标是证明:

  • motion output / wait command 已进入 emccanon_wasm_subset 的窄 command envelope。
  • task-HAL runtime 可观测 EMC_MOTION_SET_DOUT / EMC_MOTION_SET_AOUT / EMC_AUX_INPUT_WAIT append 到 interp_list 的 evidence。
  • M428/M429/M430 不再走 MDI 字符串 special-case而是通过 canon SET_AUX_OUTPUT_VALUE() 到 taskintf AOUT 边界,仍保持 switchkins HAL 同步。
  • T-040/T-041/T-042/T-043/T-044、taskintf、SDK、motion sync 和 readiness contract 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && ./tools/build_task_hal_wasm.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh
./tools/verify_task_emccanon_motion_output.sh
./tools/verify_task_emccanon_spindle_tool.sh
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_emccanon_dwell_path_control.sh
./tools/verify_task_emccanon_straight_motion.sh
./tools/verify_task_emccanon_init_finish_unit.sh
./tools/verify_task_hal_readiness_contract.sh
node ./tests/wasm/node/verify_task_state_matrix.mjs
./tests/wasm/node/verify_task_hal_sdk.sh
./tests/wasm/node/verify_motion_hal_sync.sh
./tools/verify_task_taskintf_jog_home_switchkins.sh
./tools/verify_task_emctask_plan_read_execute.sh
./tools/verify_task_emctask_plan_open_wait.sh

实际输出摘要

构建:

linuxcnc_task_hal_wasm_build=ok

SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_runtime_smoke=ok
emccanon_spindle_tool_status=ok
emccanon_motion_output_status=ok

./tools/verify_task_emccanon_motion_output.sh

task_emccanon_motion_output_upstream_SET_MOTION_OUTPUT_BIT=ok
task_emccanon_motion_output_upstream_CLEAR_MOTION_OUTPUT_BIT=ok
task_emccanon_motion_output_upstream_SET_AUX_OUTPUT_BIT=ok
task_emccanon_motion_output_upstream_CLEAR_AUX_OUTPUT_BIT=ok
task_emccanon_motion_output_upstream_SET_MOTION_OUTPUT_VALUE=ok
task_emccanon_motion_output_upstream_SET_AUX_OUTPUT_VALUE=ok
task_emccanon_motion_output_upstream_WAIT=ok
task_emccanon_motion_output_upstream_dout=ok
task_emccanon_motion_output_upstream_aout=ok
task_emccanon_motion_output_upstream_wait=ok
task_emccanon_motion_output_wrapper_old_m428_special=absent
task_emccanon_motion_output_matrix_t045_done=ok
task_emccanon_motion_output_matrix_next_t046=ok
task_emccanon_motion_output_status=ok

./tools/verify_task_source_reuse_drift_docs.sh

task_source_reuse_drift_docs_source_emccanon_motion_output=ok
task_source_reuse_drift_docs_drift_emccanon_motion_output=ok
task_source_reuse_drift_docs_compat_emccanon_motion_output_gate=ok
task_source_reuse_drift_docs_compat_emccanon_motion_output_status=ok
task_source_reuse_drift_docs_status=ok

回归 gate

task_emccanon_spindle_tool_status=ok
task_emccanon_dwell_path_control_status=ok
task_emccanon_straight_motion_status=ok
task_emccanon_init_finish_unit_status=ok
task_hal_readiness_contract_status=ok
task_state_matrix=ok
linuxcnc_task_hal_sdk=ok
motion_hal_sync_smoke=ok
task_taskintf_jog_home_switchkins_status=ok
task_emctask_plan_read_execute_status=ok
task_emctask_plan_open_wait_status=ok

结论

T-045 验收通过。canon motion output/switchkins 已有 EMC_MOTION_SET_DOUT / EMC_MOTION_SET_AOUT / EMC_AUX_INPUT_WAIT / interp_list status evidenceM428-M430 已通过 canon output 到 taskintf AOUT 边界,旧 MDI 字符串 special-case 已移除readiness 仍未提升。

2026-07-08 04:50 EDT emccanon spindle/tool 验收

验收对象

T-044。

本轮验收目标是证明:

  • spindle/tool command 已进入 emccanon_wasm_subset 的窄 command envelope。
  • task-HAL runtime 可观测 EMC_SPINDLE_* / EMC_TOOL_* append 到 interp_list 的 evidence。
  • MDI S1200 M3M5T7 M6M61 Q8 可记录 spindle/tool evidence不误发 motion command。
  • T-040/T-041/T-042/T-043、taskintf、SDK、motion sync 和 readiness contract 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && ./tools/build_task_hal_wasm.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh
./tools/verify_task_emccanon_spindle_tool.sh
./tools/verify_task_emccanon_dwell_path_control.sh
./tools/verify_task_emccanon_straight_motion.sh
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_emccanon_init_finish_unit.sh
./tools/verify_task_emctask_plan_read_execute.sh
./tools/verify_task_emctask_plan_open_wait.sh
./tools/verify_task_hal_readiness_contract.sh
node ./tests/wasm/node/verify_task_state_matrix.mjs
./tests/wasm/node/verify_task_hal_sdk.sh
./tests/wasm/node/verify_motion_hal_sync.sh
./tools/verify_task_taskintf_jog_home_switchkins.sh
./tools/verify_task_taskintf_linear_move.sh

实际输出摘要

构建:

linuxcnc_task_hal_wasm_build=ok

SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_runtime_smoke=ok
emccanon_init_finish_unit_status=ok
emccanon_straight_motion_status=ok
emccanon_dwell_path_control_status=ok
emccanon_spindle_tool_status=ok

./tools/verify_task_emccanon_spindle_tool.sh

task_emccanon_spindle_tool_upstream_SET_SPINDLE_SPEED=ok
task_emccanon_spindle_tool_upstream_START_SPINDLE_CLOCKWISE=ok
task_emccanon_spindle_tool_upstream_START_SPINDLE_COUNTERCLOCKWISE=ok
task_emccanon_spindle_tool_upstream_STOP_SPINDLE_TURNING=ok
task_emccanon_spindle_tool_upstream_SELECT_TOOL=ok
task_emccanon_spindle_tool_upstream_CHANGE_TOOL=ok
task_emccanon_spindle_tool_upstream_CHANGE_TOOL_NUMBER=ok
task_emccanon_spindle_tool_upstream_RELOAD_TOOLDATA=ok
task_emccanon_spindle_tool_subset_anchor=ok
task_emccanon_spindle_tool_wrapper_spindle_append=ok
task_emccanon_spindle_tool_wrapper_tool_append=ok
task_emccanon_spindle_tool_wasm_test_status=ok
task_emccanon_spindle_tool_matrix_t044_done=ok
task_emccanon_spindle_tool_matrix_next_t045=ok
task_emccanon_spindle_tool_status=ok

./tools/verify_task_source_reuse_drift_docs.sh

task_source_reuse_drift_docs_source_emccanon_spindle_tool=ok
task_source_reuse_drift_docs_drift_emccanon_spindle_tool=ok
task_source_reuse_drift_docs_compat_emccanon_spindle_tool_gate=ok
task_source_reuse_drift_docs_compat_emccanon_spindle_tool_status=ok
task_source_reuse_drift_docs_status=ok

回归 gate

task_emccanon_dwell_path_control_status=ok
task_emccanon_straight_motion_status=ok
task_emccanon_init_finish_unit_status=ok
task_emctask_plan_read_execute_status=ok
task_emctask_plan_open_wait_status=ok
task_hal_readiness_contract_status=ok
task_state_matrix=ok
linuxcnc_task_hal_sdk=ok
motion_hal_sync_smoke=ok
task_taskintf_jog_home_switchkins_status=ok
task_taskintf_linear_move_status=ok

结论

T-044 验收通过。canon spindle/tool command 已有 EMC_SPINDLE_* / EMC_TOOL_* / interp_list status evidencereadiness 仍未提升。

2026-07-08 04:34 EDT emccanon dwell/path-control 验收

验收对象

T-043。

本轮验收目标是证明:

  • DWELL()SET_MOTION_CONTROL_MODE() 已进入 emccanon_wasm_subset 的窄 command envelope。
  • task-HAL runtime 可观测 EMC_TRAJ_DELAY / EMC_TRAJ_SET_TERM_COND append 到 interp_list 的 evidence。
  • MDI G64 P...G4 P... 可进入 path-control / dwell evidence不误发 motion command。
  • T-040/T-041/T-042、taskintf、SDK、motion sync 和 readiness contract 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
source /home/mes123456/emsdk/emsdk_env.sh >/dev/null && ./tools/build_task_hal_wasm.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh
./tools/verify_task_emccanon_dwell_path_control.sh
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_emccanon_straight_motion.sh
./tools/verify_task_emccanon_init_finish_unit.sh
./tools/verify_task_emctask_plan_read_execute.sh
node ./tests/wasm/node/verify_task_state_matrix.mjs
./tools/verify_task_hal_readiness_contract.sh
./tests/wasm/node/verify_task_hal_sdk.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
./tools/verify_task_emctask_update_snapshot.sh
./tools/verify_task_emctask_plan_open_wait.sh
./tools/verify_task_emctask_state_mode.sh
./tools/verify_task_emctask_subset.sh
./tools/verify_task_taskintf_motion_bridge.sh
./tools/verify_task_taskintf_traj_control.sh
./tools/verify_task_taskintf_linear_move.sh
./tools/verify_task_taskintf_jog_home_switchkins.sh
git diff --check -- wasm-port/runtime/core/linuxcnc_task_subset/emccanon_wasm_subset.hh wasm-port/runtime/core/linuxcnc_task_subset/emccanon_wasm_subset.cc wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs wasm-port/tools/verify_task_emccanon_dwell_path_control.sh wasm-port/tools/verify_task_emccanon_straight_motion.sh wasm-port/tools/verify_task_source_reuse_drift_docs.sh wasm-port/docs/source-reuse-map.md wasm-port/docs/drift-report.md wasm-port/docs/compatibility-validation.md wasm-port/working/04-任务矩阵.md

实际输出摘要

构建:

linuxcnc_task_hal_wasm_build=ok

SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_runtime_smoke=ok
emccanon_init_finish_unit_status=ok
emccanon_straight_motion_status=ok
emccanon_dwell_path_control_status=ok

./tools/verify_task_emccanon_dwell_path_control.sh

task_emccanon_dwell_path_control_upstream_DWELL=ok
task_emccanon_dwell_path_control_upstream_SET_MOTION_CONTROL_MODE=ok
task_emccanon_dwell_path_control_upstream_delay=ok
task_emccanon_dwell_path_control_upstream_term_cond=ok
task_emccanon_dwell_path_control_subset_dwell_impl=ok
task_emccanon_dwell_path_control_subset_path_impl=ok
task_emccanon_dwell_path_control_wrapper_dwell_count=ok
task_emccanon_dwell_path_control_wrapper_term_append=ok
task_emccanon_dwell_path_control_matrix_t043_done=ok
task_emccanon_dwell_path_control_matrix_next_t044=ok
task_emccanon_dwell_path_control_status=ok

./tools/verify_task_source_reuse_drift_docs.sh

task_source_reuse_drift_docs_source_emccanon_dwell_path_control=ok
task_source_reuse_drift_docs_drift_emccanon_dwell_path_control=ok
task_source_reuse_drift_docs_compat_emccanon_dwell_path_control_gate=ok
task_source_reuse_drift_docs_compat_emccanon_dwell_path_control_status=ok
task_source_reuse_drift_docs_status=ok

回归 gate

task_emccanon_straight_motion_status=ok
task_emccanon_init_finish_unit_status=ok
task_emctask_plan_read_execute_status=ok
task_state_matrix=ok
task_hal_readiness_contract_status=ok
linuxcnc_task_hal_sdk=ok
motion_hal_sync_smoke=ok
task_emctask_update_snapshot_status=ok
task_emctask_plan_open_wait_status=ok
task_emctask_state_mode_status=ok
task_emctask_subset_source_reuse=ok
task_taskintf_motion_bridge_status=ok
task_taskintf_traj_control_status=ok
task_taskintf_linear_move_status=ok
task_taskintf_jog_home_switchkins_status=ok

结论

T-043 验收通过。canon dwell/path-control 已有 EMC_TRAJ_DELAY / EMC_TRAJ_SET_TERM_COND / interp_list status evidencereadiness 仍未提升。

2026-07-08 03:52 EDT emccanon straight traverse/feed 验收

验收对象

T-042。

本轮验收目标是证明:

  • generate_fast_move()generate_move()STRAIGHT_TRAVERSE()STRAIGHT_FEED() 已进入 emccanon_wasm_subset 的 straight linear move 边界。
  • task-HAL runtime 可观测 canon straight move 生成 EMC_TRAJ_LINEAR_MOVE 并进入 interp_list 路径的 evidence。
  • no-json staged program RUN 仍能通过 PlanRead/Execute 后进入 canon straight feed 和 structured taskintf linear move。
  • T-041 init/finish/unit、T-040 plan read/execute、taskintf linear move、SDK、motion sync 和 readiness contract 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
./tools/verify_task_emccanon_straight_motion.sh
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_emccanon_init_finish_unit.sh
./tools/verify_task_emctask_plan_read_execute.sh
./tools/verify_task_emccanon_subset.sh
node ./tests/wasm/node/verify_task_state_matrix.mjs
./tools/verify_task_hal_readiness_contract.sh
./tests/wasm/node/verify_task_hal_sdk.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
./tools/verify_task_emctask_update_snapshot.sh
./tools/verify_task_emctask_plan_open_wait.sh
./tools/verify_task_emctask_state_mode.sh
./tools/verify_task_emctask_subset.sh
./tools/verify_task_taskintf_motion_bridge.sh
./tools/verify_task_taskintf_traj_control.sh
./tools/verify_task_taskintf_linear_move.sh
./tools/verify_task_taskintf_jog_home_switchkins.sh
git diff --check -- wasm-port/runtime/core/linuxcnc_task_subset/emccanon_wasm_subset.hh wasm-port/runtime/core/linuxcnc_task_subset/emccanon_wasm_subset.cc wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs wasm-port/tools/verify_task_emccanon_straight_motion.sh wasm-port/tools/verify_task_emccanon_init_finish_unit.sh wasm-port/tools/verify_task_source_reuse_drift_docs.sh wasm-port/docs/source-reuse-map.md wasm-port/docs/drift-report.md wasm-port/docs/compatibility-validation.md wasm-port/working/04-任务矩阵.md

实际输出摘要

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
emctask_plan_read_execute_status=ok
emccanon_subset_source_reuse_status=ok
emccanon_init_finish_unit_status=ok
emccanon_straight_motion_status=ok

./tools/verify_task_emccanon_straight_motion.sh

task_emccanon_straight_motion_upstream_generate_fast_move=ok
task_emccanon_straight_motion_upstream_generate_move=ok
task_emccanon_straight_motion_upstream_STRAIGHT_TRAVERSE=ok
task_emccanon_straight_motion_upstream_STRAIGHT_FEED=ok
task_emccanon_straight_motion_upstream_linear_move=ok
task_emccanon_straight_motion_upstream_interp_list=ok
task_emccanon_straight_motion_subset_linear_anchor=ok
task_emccanon_straight_motion_wrapper_append_count=ok
task_emccanon_straight_motion_wrapper_last_command=ok
task_emccanon_straight_motion_matrix_t042_done=ok
task_emccanon_straight_motion_matrix_next_t043=ok
task_emccanon_straight_motion_status=ok

./tools/verify_task_source_reuse_drift_docs.sh

task_source_reuse_drift_docs_source_emccanon_straight_motion=ok
task_source_reuse_drift_docs_drift_emccanon_straight_motion=ok
task_source_reuse_drift_docs_compat_emccanon_straight_motion_gate=ok
task_source_reuse_drift_docs_compat_emccanon_straight_motion_status=ok
task_source_reuse_drift_docs_status=ok

回归 gate

task_emccanon_init_finish_unit_status=ok
task_emctask_plan_read_execute_status=ok
task_emccanon_subset_source_reuse=ok
task_state_matrix=ok
task_hal_readiness_contract_status=ok
linuxcnc_task_hal_sdk=ok
motion_hal_sync_smoke=ok
task_emctask_update_snapshot_status=ok
task_emctask_plan_open_wait_status=ok
task_emctask_state_mode_status=ok
task_emctask_subset_source_reuse=ok
task_taskintf_motion_bridge_status=ok
task_taskintf_traj_control_status=ok
task_taskintf_linear_move_status=ok
task_taskintf_jog_home_switchkins_status=ok

结论

T-042 验收通过。canon straight traverse/feed 已有 EMC_TRAJ_LINEAR_MOVE / interp_list status evidence且 no-json staged program RUN、taskintf structured linear move 和 readiness contract 均未回退。

2026-07-08 03:36 EDT emccanon init/finish/unit 验收

验收对象

T-041。

本轮验收目标是证明:

  • INIT_CANON()ON_RESET()FINISH()USE_LENGTH_UNITS()GET_EXTERNAL_LENGTH_UNITS()GET_EXTERNAL_ANGLE_UNITS()GET_EXTERNAL_POSITION*() 已进入 emccanon_wasm_subset 的窄状态边界。
  • task-HAL runtime 可通过 motion/config snapshot 更新 canon unit 和 endpoint evidence。
  • emccanonSourceReuse status JSON 可观测 init/finish/reset/unit/position/endpoint 状态。
  • T-039/T-040 plan gate、taskintf gate、SDK、motion sync 和 readiness contract 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
./tools/verify_task_emccanon_init_finish_unit.sh
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_emctask_plan_read_execute.sh
./tools/verify_task_emccanon_subset.sh
node ./tests/wasm/node/verify_task_state_matrix.mjs
./tests/wasm/node/verify_task_hal_sdk.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
./tools/verify_task_hal_readiness_contract.sh
./tools/verify_task_emctask_update_snapshot.sh
./tools/verify_task_emctask_plan_open_wait.sh
./tools/verify_task_emctask_state_mode.sh
./tools/verify_task_emctask_subset.sh
./tools/verify_task_taskintf_motion_bridge.sh
./tools/verify_task_taskintf_traj_control.sh
./tools/verify_task_taskintf_linear_move.sh
./tools/verify_task_taskintf_jog_home_switchkins.sh
git diff --check -- wasm-port/runtime/core/linuxcnc_task_subset/emccanon_wasm_subset.hh wasm-port/runtime/core/linuxcnc_task_subset/emccanon_wasm_subset.cc wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs wasm-port/tools/verify_task_emccanon_init_finish_unit.sh wasm-port/tools/verify_task_source_reuse_drift_docs.sh wasm-port/tools/verify_task_taskintf_jog_home_switchkins.sh wasm-port/tools/verify_task_emctask_plan_read_execute.sh wasm-port/docs/source-reuse-map.md wasm-port/docs/drift-report.md wasm-port/docs/compatibility-validation.md wasm-port/working/04-任务矩阵.md

实际输出摘要

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
emctask_plan_read_execute_status=ok
emccanon_subset_source_reuse_status=ok
emccanon_init_finish_unit_status=ok

./tools/verify_task_emccanon_init_finish_unit.sh

task_emccanon_init_finish_unit_upstream_INIT_CANON=ok
task_emccanon_init_finish_unit_upstream_ON_RESET=ok
task_emccanon_init_finish_unit_upstream_FINISH=ok
task_emccanon_init_finish_unit_upstream_USE_LENGTH_UNITS=ok
task_emccanon_init_finish_unit_upstream_GET_EXTERNAL_LENGTH_UNITS=ok
task_emccanon_init_finish_unit_upstream_GET_EXTERNAL_ANGLE_UNITS=ok
task_emccanon_init_finish_unit_upstream_GET_EXTERNAL_POSITION=ok
task_emccanon_init_finish_unit_subset_state=ok
task_emccanon_init_finish_unit_wrapper_status_endpoint=ok
task_emccanon_init_finish_unit_matrix_t041_done=ok
task_emccanon_init_finish_unit_matrix_next_t042=ok
task_emccanon_init_finish_unit_status=ok

./tools/verify_task_source_reuse_drift_docs.sh

task_source_reuse_drift_docs_source_emccanon_init_finish_unit=ok
task_source_reuse_drift_docs_drift_emccanon_init_finish_unit=ok
task_source_reuse_drift_docs_compat_emccanon_init_finish_unit_gate=ok
task_source_reuse_drift_docs_compat_emccanon_init_finish_unit_status=ok
task_source_reuse_drift_docs_status=ok

回归 gate

task_emctask_plan_read_execute_status=ok
task_emccanon_subset_source_reuse=ok
task_state_matrix=ok
linuxcnc_task_hal_sdk=ok
motion_hal_sync_smoke=ok
task_hal_readiness_contract_status=ok
task_emctask_update_snapshot_status=ok
task_emctask_plan_open_wait_status=ok
task_emctask_state_mode_status=ok
task_emctask_subset_source_reuse=ok
task_taskintf_motion_bridge_status=ok
task_taskintf_traj_control_status=ok
task_taskintf_linear_move_status=ok
task_taskintf_jog_home_switchkins_status=ok

结论

T-041 验收通过。canon init/reset/finish/unit/endpoint 状态已由 emccanon_wasm_subset 驱动并进入 task-HAL status evidenceT-042 可继续推进 straight traverse/feed 子集。

2026-07-08 03:14 EDT emctask plan read/execute 验收

验收对象

T-040。

本轮验收目标是证明:

  • emcTaskPlanRead()emcTaskPlanExecute()emcTaskPlanLine()emcTaskPlanLevel()emcTaskPlanCommand() 已进入 emctask_wasm_subset 的 plan IO result 边界。
  • staged program 不再必须依赖 host JSON motion plan 才能 RUN。
  • no-json staged program RUN 可通过 PlanRead/Command/Execute 进入 interp_list/taskintf issue 等价路径。
  • MDI execute 也记录 PlanExecute evidence。
  • 现有 task-HAL smoke、state matrix、source reuse/drift 文档和 readiness 均不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
./tools/verify_task_emctask_plan_read_execute.sh
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_emctask_plan_open_wait.sh
node ./tests/wasm/node/verify_task_state_matrix.mjs
./tools/verify_task_emctask_update_snapshot.sh
./tools/verify_task_emctask_state_mode.sh
./tools/verify_task_emctask_subset.sh
./tests/wasm/node/verify_task_hal_sdk.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
./tools/verify_task_hal_readiness_contract.sh

实际输出摘要

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_commands_drive_motion_runtime=ok
emctask_subset_source_reuse_status=ok
emctask_plan_read_execute_status=ok
taskintf_motion_bridge_status=ok
emccanon_subset_source_reuse_status=ok

./tools/verify_task_emctask_plan_read_execute.sh

task_emctask_plan_read_execute_upstream_emcTaskPlanRead=ok
task_emctask_plan_read_execute_upstream_emcTaskPlanExecute=ok
task_emctask_plan_read_execute_upstream_emcTaskPlanLine=ok
task_emctask_plan_read_execute_upstream_emcTaskPlanLevel=ok
task_emctask_plan_read_execute_upstream_emcTaskPlanCommand=ok
task_emctask_plan_read_execute_upstream_interp_list=ok
task_emctask_plan_read_execute_subset_plan_io_result=ok
task_emctask_plan_read_execute_wrapper_read_execute_helper=ok
task_emctask_plan_read_execute_wrapper_no_json_run=ok
task_emctask_plan_read_execute_wrapper_status_interp_list=ok
task_emctask_plan_read_execute_state_matrix_no_json=ok
task_emctask_plan_read_execute_matrix_t040_done=ok
task_emctask_plan_read_execute_matrix_next_t041=ok
task_emctask_plan_read_execute_status=ok

补充回归:

task_source_reuse_drift_docs_status=ok
task_emctask_plan_open_wait_status=ok
task_state_matrix=ok
run_gate_staged_program_executes_without_json_plan=ok
task_emctask_update_snapshot_status=ok
task_emctask_state_mode_status=ok
task_emctask_subset_source_reuse=ok
linuxcnc_task_hal_sdk=ok
motion_hal_sync_smoke=ok
task_hal_readiness_contract_status=ok

结论

T-040 通过。emctask.cc plan read/execute/line/level/command 子集已接入 staged program 主路径RUN 不再硬依赖 host JSON motion plan。完整 canon init/finish/unit 和更完整 interp_list 命令类型迁移留给 T-041 之后继续推进。

2026-07-08 02:30 EDT emctask plan wait/open/synch/reset 验收

验收对象

T-039。

本轮验收目标是证明:

  • emcTaskPlanSetWait()emcTaskPlanIsWait()emcTaskPlanClearWait()emcTaskPlanSynch()emcTaskPlanOpen()emcTaskPlanClose()emcTaskPlanReset() 已进入 emctask_wasm_subset 的 plan state/result 边界。
  • lctask_open_program() 正常路径通过 plan open 处理 staged FS program open。
  • EMC_TASK_PLAN_RUN 设置 plan wait程序完成和 motion wait done 路径清理 plan wait。
  • should_plan_synch 通过 emctask_plan_synch() 记录 source-anchored plan synch。
  • 现有 task-HAL smoke、state matrix、source reuse/drift 文档和 readiness 均不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
./tools/verify_task_emctask_plan_open_wait.sh
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_emctask_update_snapshot.sh
./tools/verify_task_emctask_state_mode.sh
./tools/verify_task_emctask_subset.sh
node ./tests/wasm/node/verify_task_state_matrix.mjs
./tests/wasm/node/verify_task_hal_sdk.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
./tools/verify_task_hal_readiness_contract.sh

实际输出摘要

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_commands_drive_motion_runtime=ok
emctask_subset_source_reuse_status=ok
taskintf_motion_bridge_status=ok
taskintf_jog_home_switchkins_status=ok
emccanon_subset_source_reuse_status=ok

./tools/verify_task_emctask_plan_open_wait.sh

task_emctask_plan_open_wait_upstream_emcTaskPlanSetWait=ok
task_emctask_plan_open_wait_upstream_emcTaskPlanIsWait=ok
task_emctask_plan_open_wait_upstream_emcTaskPlanClearWait=ok
task_emctask_plan_open_wait_upstream_emcTaskPlanSynch=ok
task_emctask_plan_open_wait_upstream_emcTaskPlanOpen=ok
task_emctask_plan_open_wait_upstream_emcTaskPlanClose=ok
task_emctask_plan_open_wait_upstream_emcTaskPlanReset=ok
task_emctask_plan_open_wait_subset_plan_state=ok
task_emctask_plan_open_wait_subset_plan_result=ok
task_emctask_plan_open_wait_wrapper_plan_open=ok
task_emctask_plan_open_wait_wrapper_plan_wait=ok
task_emctask_plan_open_wait_wrapper_plan_clear=ok
task_emctask_plan_open_wait_wrapper_plan_synch=ok
task_emctask_plan_open_wait_wrapper_plan_close=ok
task_emctask_plan_open_wait_wrapper_plan_reset=ok
task_emctask_plan_open_wait_matrix_t039_done=ok
task_emctask_plan_open_wait_matrix_next_t040=ok
task_emctask_plan_open_wait_status=ok

补充回归:

task_source_reuse_drift_docs_status=ok
task_emctask_update_snapshot_status=ok
task_emctask_state_mode_status=ok
task_emctask_subset_source_reuse=ok
task_state_matrix=ok
linuxcnc_task_hal_sdk=ok
motion_hal_sync_smoke=ok
task_hal_readiness_contract_status=ok

结论

T-039 通过。emctask.cc plan wait/open/synch/reset 子集已接入 staged FS 和 task-cycle command 边界;完整 PlanRead/Execute/Line/Level/Commandinterp_list 驱动留给 T-040。readiness 仍保持未 promoted。

2026-07-08 01:57 EDT emctask determine/update snapshot 验收

验收对象

T-038。

本轮验收目标是证明:

  • determineMode()determineState()emcTaskUpdate() 已进入 emctask_wasm_subset 的 update 边界。
  • wasm_emcTaskUpdate() 正常路径从 task cycle 的 LcmotStatusSnapshot 和 IO latch 构造 update 输入。
  • status JSON 能记录 snapshot-fed update 证据。
  • 现有 task-HAL smoke、state matrix、source reuse/drift 文档和 readiness 均不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
./tools/verify_task_emctask_update_snapshot.sh
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_emctask_state_mode.sh
./tools/verify_task_emctask_subset.sh
node ./tests/wasm/node/verify_task_state_matrix.mjs
./tests/wasm/node/verify_task_hal_sdk.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
./tools/verify_task_hal_readiness_contract.sh

实际输出摘要

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
emctask_subset_source_reuse_status=ok
taskintf_motion_bridge_status=ok
taskintf_jog_home_switchkins_status=ok

./tools/verify_task_emctask_update_snapshot.sh

task_emctask_update_snapshot_upstream_determineMode=ok
task_emctask_update_snapshot_upstream_determineState=ok
task_emctask_update_snapshot_upstream_emcTaskUpdate=ok
task_emctask_update_snapshot_wrapper_motion_coord=ok
task_emctask_update_snapshot_wrapper_motion_enabled=ok
task_emctask_update_snapshot_wrapper_io_estop=ok
task_emctask_update_snapshot_wrapper_status_source=ok
task_emctask_update_snapshot_wasm_assertion=ok
task_emctask_update_snapshot_matrix_t038_done=ok
task_emctask_update_snapshot_matrix_next_t039=ok
task_emctask_update_snapshot_status=ok

补充回归:

task_source_reuse_drift_docs_status=ok
task_emctask_state_mode_status=ok
task_emctask_subset_source_reuse=ok
task_state_matrix=ok
task_command_json_host_boundary=ok
linuxcnc_task_hal_sdk=ok
motion_hal_sync_smoke=ok
task_hal_readiness_contract_status=ok

结论

T-038 通过。emctask.cc determine/update 子集已由 motion/io snapshot 驱动task cycle command 触发语义保持稳定readiness 仍保持未 promoted。下一步进入 T-039。

2026-07-08 01:49 EDT emctask abort/state/mode 验收

验收对象

T-037。

本轮验收目标是证明:

  • emcTaskAbort()emcTaskSetMode()emcTaskSetState() 已进入 emctask_wasm_subset 的 command-result 边界。
  • wrapper 的 SetState/SetMode/Abort 分支通过 lc_emctask_subset_*() 决策结果执行。
  • command 仍由 task cycle 消费,不在 send 阶段改变 task 语义状态。
  • 现有 task-HAL smoke、state matrix、readiness 均不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
./tools/verify_task_emctask_state_mode.sh
./tools/verify_task_emctask_subset.sh
./tools/verify_task_source_reuse_drift_docs.sh
node ./tests/wasm/node/verify_task_state_matrix.mjs
./tests/wasm/node/verify_task_hal_sdk.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
./tools/verify_task_hal_readiness_contract.sh

实际输出摘要

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_commands_drive_motion_runtime=ok
emctask_subset_source_reuse_status=ok
taskintf_motion_bridge_status=ok
taskintf_jog_home_switchkins_status=ok

./tools/verify_task_emctask_state_mode.sh

task_emctask_state_mode_upstream_emcTaskAbort=ok
task_emctask_state_mode_upstream_emcTaskSetMode=ok
task_emctask_state_mode_upstream_emcTaskSetState=ok
task_emctask_state_mode_subset_result_type=ok
task_emctask_state_mode_wrapper_result_apply=ok
task_emctask_state_mode_wrapper_status_count=ok
task_emctask_state_mode_matrix_t037_done=ok
task_emctask_state_mode_matrix_next_t038=ok
task_emctask_state_mode_status=ok

node ./tests/wasm/node/verify_task_state_matrix.mjs

task_state_matrix=ok
run_gate_estop_rejected=ok
run_gate_estop_reset_rejected=ok
run_gate_manual_rejected=ok
run_gate_unhomed_rejected=ok
run_gate_homing_rejected=ok
run_gate_program_open_required=ok
run_gate_interpreter_plan_required=ok
run_gate_accepts_homed_open_plan=ok
task_command_send_queues_until_cycle=ok
task_command_json_host_boundary=ok

补充回归:

task_emctask_subset_source_reuse=ok
task_source_reuse_drift_docs_status=ok
linuxcnc_task_hal_sdk=ok
motion_hal_sync_smoke=ok
task_hal_readiness_contract_status=ok

结论

T-037 通过。emctask.cc abort/state/mode 子集已通过结构化 command-result 接入task cycle command 触发语义保持稳定readiness 仍保持未 promoted。下一步进入 T-038。

2026-07-08 01:39 EDT taskintf jog/home/switchkins 验收

验收对象

T-036。

本轮验收目标是证明:

  • emcJogIncr()emcJointHome()emcJointUnhome()emcMotionSetAout() 已进入 taskintf_wasm_subset 的结构化 command envelope。
  • task runtime 的 jog/home/switchkins 主路径不再依赖 task wrapper 拼接 motion JSON而是调用结构化 lcmot_write_*()
  • Home/Jog/M428/M429/M430 smoke 均通过,且 readiness 不提升。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
./tools/verify_task_taskintf_jog_home_switchkins.sh
./tools/verify_task_taskintf_subset.sh
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_taskintf_linear_move.sh
./tools/verify_task_taskintf_traj_control.sh
./tools/verify_task_taskintf_motion_bridge.sh
./tools/verify_task_hal_readiness_contract.sh
./tests/wasm/node/verify_task_hal_sdk.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh

实际输出摘要

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
mdi_jog_home_motion_issue_from_execute=ok
mdi_jog_task_motion_hal_sync=ok
taskintf_subset_source_reuse_status=ok
taskintf_motion_bridge_status=ok
taskintf_traj_control_status=ok
taskintf_linear_move_status=ok
taskintf_jog_home_switchkins_status=ok

./tools/verify_task_taskintf_jog_home_switchkins.sh

task_taskintf_jog_home_switchkins_upstream_taskintf_emcJogIncr=ok
task_taskintf_jog_home_switchkins_upstream_taskintf_emcJointHome=ok
task_taskintf_jog_home_switchkins_upstream_taskintf_emcJointUnhome=ok
task_taskintf_jog_home_switchkins_upstream_taskintf_emcMotionSetAout=ok
task_taskintf_jog_home_switchkins_lcmot_jog_abi=ok
task_taskintf_jog_home_switchkins_lcmot_home_abi=ok
task_taskintf_jog_home_switchkins_lcmot_unhome_abi=ok
task_taskintf_jog_home_switchkins_lcmot_aout_abi=ok
task_taskintf_jog_home_switchkins_wrapper_status_count=ok
task_taskintf_jog_home_switchkins_matrix_t036_done=ok
task_taskintf_jog_home_switchkins_matrix_next_t037=ok
task_taskintf_jog_home_switchkins_status=ok

补充回归:

task_taskintf_subset_source_reuse=ok
task_source_reuse_drift_docs_status=ok
task_taskintf_linear_move_status=ok
task_taskintf_traj_control_status=ok
task_taskintf_motion_bridge_status=ok
task_hal_readiness_contract_status=ok
linuxcnc_task_hal_sdk=ok
motion_hal_sync_smoke=ok

结论

T-036 通过。taskintf.cc jog/home/switchkins 子集已通过结构化 lcmot_write_*() 接入Home/Jog/M428-M430 smoke 通过readiness 仍保持未 promoted。下一步进入 T-037。

2026-07-08 01:27 EDT taskintf linear move 验收

验收对象

T-035。

本轮验收目标是证明:

  • emcTrajLinearMove() 已进入 taskintf_wasm_subset 的结构化 linear move envelope。
  • task runtime 的 linear move 主路径不再依赖 task wrapper 拼接 linear move JSON而是调用 lcmot_write_linear_move()
  • pending execute flush 也能携带结构化 LcTaskIntfSubsetMotionCommand
  • G0/G1 smoke 均通过,且 readiness 不提升。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
./tools/verify_task_taskintf_linear_move.sh
./tools/verify_task_taskintf_subset.sh
./tools/verify_task_source_reuse_drift_docs.sh
./tools/verify_task_taskintf_traj_control.sh
./tools/verify_task_hal_readiness_contract.sh
./tools/verify_task_taskintf_motion_bridge.sh
./tests/wasm/node/verify_task_hal_sdk.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh

实际输出摘要

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
taskintf_subset_source_reuse_status=ok
taskintf_motion_bridge_status=ok
taskintf_traj_control_status=ok
taskintf_linear_move_status=ok
emccanon_subset_source_reuse_status=ok

./tools/verify_task_taskintf_linear_move.sh

task_taskintf_linear_move_upstream_emcTrajLinearMove=ok
task_taskintf_linear_move_upstream_sets_line=ok
task_taskintf_linear_move_upstream_writes_command=ok
task_taskintf_linear_move_subset_linear_move_ex_decl=ok
task_taskintf_linear_move_lcmot_linear_abi=ok
task_taskintf_linear_move_wrapper_structured_issue=ok
task_taskintf_linear_move_wrapper_pending_struct=ok
task_taskintf_linear_move_build_exports_linear=ok
task_taskintf_linear_move_wasm_test_prints_linear=ok
task_taskintf_linear_move_matrix_t035_done=ok
task_taskintf_linear_move_matrix_next_t036=ok
task_taskintf_linear_move_status=ok

补充回归:

task_taskintf_subset_source_reuse=ok
task_source_reuse_drift_docs_status=ok
task_taskintf_traj_control_status=ok
task_hal_readiness_contract_status=ok
task_taskintf_motion_bridge_status=ok
linuxcnc_task_hal_sdk=ok
motion_hal_sync_smoke=ok

结论

T-035 通过。taskintf.cc linear move issue 子集已通过结构化 lcmot_write_linear_move() 接入G0/G1 smoke 通过readiness 仍保持未 promoted。下一步进入 T-036。

2026-07-08 01:13 EDT taskintf traj control 验收

验收对象

T-034。

本轮验收目标是证明:

  • emcTrajEnable() / emcTrajDisable() / emcTrajAbort() / emcTrajPause() / emcTrajStep() / emcTrajResume() / emcTrajSetMotionId() 已进入 taskintf_wasm_subset
  • enable/disable/set-motion-id 已接入 lcmot runtime 状态。
  • task state ON/OFF、pause/step/resume、program/MDI motion issue 都能通过 taskintf traj control 入口。
  • 现有 pause/step/resume smoke 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
./tools/verify_task_taskintf_traj_control.sh

实际输出摘要

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
pause_freezes_motion_queue=ok
resume_restores_interp_resume_state=ok
step_returns_to_paused=ok
pause_resume_step_motion_issue_from_execute=ok
taskintf_subset_source_reuse_status=ok
taskintf_motion_bridge_status=ok
taskintf_traj_control_status=ok

./tools/verify_task_taskintf_traj_control.sh

task_taskintf_traj_control_upstream_taskintf=ok
task_taskintf_traj_control_upstream_motion=ok
task_taskintf_traj_control_subset_source=ok
task_taskintf_traj_control_subset_header=ok
task_taskintf_traj_control_lcmot_header=ok
task_taskintf_traj_control_lcmot_source=ok
task_taskintf_traj_control_task_wrapper=ok
task_taskintf_traj_control_wasm_test=ok
task_taskintf_traj_control_matrix=ok
task_taskintf_traj_control_subset_has_enable_fn=ok
task_taskintf_traj_control_subset_has_disable_fn=ok
task_taskintf_traj_control_subset_has_motion_id_fn=ok
task_taskintf_traj_control_lcmot_enable_command=ok
task_taskintf_traj_control_lcmot_disable_command=ok
task_taskintf_traj_control_lcmot_motion_id_command=ok
task_taskintf_traj_control_wrapper_exports_traj_count=ok
task_taskintf_traj_control_wasm_test_prints_traj=ok
task_taskintf_traj_control_matrix_t034_done=ok
task_taskintf_traj_control_matrix_next_t035=ok
task_taskintf_traj_control_status=ok

补充回归:

task_taskintf_subset_source_reuse=ok
task_source_reuse_drift_docs_status=ok
task_hal_readiness_contract_status=ok
task_taskintf_motion_bridge_status=ok
linuxcnc_task_hal_sdk=ok
motion_hal_sync_smoke=ok

结论

T-034 通过。taskintf.cc traj control 子集已接入 lcmot,并通过 smoke 证明 pause/step/resume 不回退readiness 仍保持未 promoted。

2026-07-08 01:00 EDT taskintf motion bridge 验收

验收对象

T-033。

本轮验收目标是证明:

  • emcMotionInit() 通过 taskintf_wasm_subset 的 motion bridge 初始化 lcmot
  • emcMotionUpdate() 通过 bridge 读取 status/config/error而不是 task wrapper 直接读取 motion snapshot。
  • emcMotionAbort() 通过 bridge 生成 abort command。
  • lcmot_read_config_snapshot()lcmot_read_error_message() 已作为窄 runtime-edge ABI 存在。
  • task cycle snapshot smoke 继续通过readiness 不提升。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
./tools/verify_task_taskintf_motion_bridge.sh

实际输出摘要

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_status_updates_from_cycle_snapshot=ok
motion_abort_drives_task_error=ok
motion_error_drives_task_error=ok
motion_soft_limit_drives_task_error=ok
task_top_level_rcs_status_aggregation=ok
taskintf_subset_source_reuse_status=ok
taskintf_motion_bridge_status=ok

./tools/verify_task_taskintf_motion_bridge.sh

task_taskintf_motion_bridge_upstream_taskintf=ok
task_taskintf_motion_bridge_upstream_usrmot=ok
task_taskintf_motion_bridge_subset_source=ok
task_taskintf_motion_bridge_subset_header=ok
task_taskintf_motion_bridge_lcmot_header=ok
task_taskintf_motion_bridge_lcmot_source=ok
task_taskintf_motion_bridge_task_wrapper=ok
task_taskintf_motion_bridge_wasm_test=ok
task_taskintf_motion_bridge_build_script=ok
task_taskintf_motion_bridge_matrix=ok
task_taskintf_motion_bridge_subset_has_motion_init=ok
task_taskintf_motion_bridge_subset_has_motion_update=ok
task_taskintf_motion_bridge_subset_has_motion_abort=ok
task_taskintf_motion_bridge_lcmot_has_config_read=ok
task_taskintf_motion_bridge_lcmot_has_error_read=ok
task_taskintf_motion_bridge_wrapper_status_exports_bridge=ok
task_taskintf_motion_bridge_wasm_test_prints_bridge=ok
task_taskintf_motion_bridge_matrix_t033_done=ok
task_taskintf_motion_bridge_matrix_next_t034=ok
task_taskintf_motion_bridge_status=ok

补充回归:

task_taskintf_subset_source_reuse=ok
task_source_reuse_drift_docs_status=ok
task_hal_readiness_contract_status=ok
task_usrmot_shim_design_status=ok
linuxcnc_task_hal_sdk=ok
task_hal_sdk_status_snapshot=ok

结论

T-033 通过。task cycle 的 motion init/update/abort 已经走 taskintf.cc 窄 motion bridgeconfig/error read 有窄 lcmot_* ABI完整 native usrmot/shared-memory/NML 拓扑仍未 promoted。

2026-07-08 00:52 EDT taskintf usrmot shim 设计验收

验收对象

T-032。

本轮验收目标是证明:

  • 已明确 taskintf.cc 侧 usrmot shim 不直接复用完整 usrmotintf.cc
  • command write 映射到 lcmot_write_command_json()
  • status read 映射到 lcmot_read_status_snapshot(),并保持不推进 servo、不消费队列、不反解析 JSON。
  • config read 明确需要新增 lcmot_read_config_snapshot(),当前不能声明已支持。
  • error read 明确需要新增 lcmot_read_error_message(),当前不能把 boolean error flag 当作错误队列。
  • T-032 已完成,下一步进入 T-033。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_usrmot_shim_design.sh

实际输出摘要

task_usrmot_shim_design_doc=ok
task_usrmot_shim_design_matrix=ok
task_usrmot_shim_design_upstream_header=ok
task_usrmot_shim_design_upstream_source=ok
task_usrmot_shim_design_upstream_taskintf=ok
task_usrmot_shim_design_lcmot_header=ok
task_usrmot_shim_design_lcmot_source=ok
task_usrmot_shim_design_taskintf_subset_header=ok
task_usrmot_shim_design_lcmot_has_command_write=ok
task_usrmot_shim_design_lcmot_has_status_snapshot=ok
task_usrmot_shim_design_lcmot_has_init=ok
task_usrmot_shim_design_lcmot_has_reset=ok
task_usrmot_shim_design_doc_command_write=ok
task_usrmot_shim_design_doc_command_maps_lcmot=ok
task_usrmot_shim_design_doc_status_read=ok
task_usrmot_shim_design_doc_status_maps_lcmot=ok
task_usrmot_shim_design_doc_config_read=ok
task_usrmot_shim_design_doc_config_gap=ok
task_usrmot_shim_design_doc_error_read=ok
task_usrmot_shim_design_doc_error_gap=ok
task_usrmot_shim_design_doc_no_json_status_parse=ok
task_usrmot_shim_design_doc_no_hal_config=ok
task_usrmot_shim_design_doc_no_readiness_promotion=ok
task_usrmot_shim_design_readme_lists_doc=ok
task_usrmot_shim_design_matrix_t032_done=ok
task_usrmot_shim_design_matrix_next_t033=ok
task_usrmot_shim_design_status=ok

补充回归:

task_taskintf_subset_source_reuse=ok
task_source_reuse_drift_docs_status=ok
task_hal_readiness_contract_status=ok
linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_top_level_rcs_status_aggregation=ok
taskintf_subset_source_reuse_status=ok

结论

T-032 通过。taskintf.cc usrmot shim 的四类核心边界已经设计闭合command write/status read 有当前 lcmot_* 落点config read/error read 作为 T-033 之前必须补齐的底层 ABI 缺口被明确记录。

2026-07-08 00:43 EDT source reuse / drift 文档验收

验收对象

T-030。

本轮验收目标是证明:

  • docs/source-reuse-map.md 反映 T-027/T-028/T-029 后的 task 主循环迁移阶段。
  • docs/drift-report.md 记录 task/motion/HAL WASM runtime-edge 和 emc_nml.hh status container 边界。
  • docs/compatibility-validation.md 记录 task-HAL WASM/SDK、readiness、emc_nml 复用评估和文档一致性验证 gate。
  • readiness 仍保持未 promoted不出现 nativeTaskReady=truenativeHalSyncReady=true

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_source_reuse_drift_docs.sh

实际输出摘要

task_source_reuse_drift_docs_source_reuse=ok
task_source_reuse_drift_docs_drift=ok
task_source_reuse_drift_docs_compatibility=ok
task_source_reuse_drift_docs_matrix=ok
task_source_reuse_drift_docs_source_task_row=ok
task_source_reuse_drift_docs_source_readiness_promoted=ok
task_source_reuse_drift_docs_source_native_task_false=ok
task_source_reuse_drift_docs_source_native_hal_false=ok
task_source_reuse_drift_docs_source_full_program_false=ok
task_source_reuse_drift_docs_source_rcs_aggregation=ok
task_source_reuse_drift_docs_source_emc_nml_decision=ok
task_source_reuse_drift_docs_source_readiness_gate=ok
task_source_reuse_drift_docs_source_emc_nml_gate=ok
task_source_reuse_drift_docs_source_docs_gate=ok
task_source_reuse_drift_docs_source_native_task_true=absent
task_source_reuse_drift_docs_source_native_hal_true=absent
task_source_reuse_drift_docs_drift_task_boundary=ok
task_source_reuse_drift_docs_drift_emc_nml_boundary=ok
task_source_reuse_drift_docs_drift_rcs_aggregation=ok
task_source_reuse_drift_docs_drift_readiness_false=ok
task_source_reuse_drift_docs_drift_runtime_promoted_false=ok
task_source_reuse_drift_docs_drift_no_promotion=ok
task_source_reuse_drift_docs_compat_task_hal_wasm=ok
task_source_reuse_drift_docs_compat_task_hal_sdk=ok
task_source_reuse_drift_docs_compat_readiness_gate=ok
task_source_reuse_drift_docs_compat_emc_nml_gate=ok
task_source_reuse_drift_docs_compat_docs_gate=ok
task_source_reuse_drift_docs_compat_rcs_status=ok
task_source_reuse_drift_docs_compat_readiness_false=ok
task_source_reuse_drift_docs_matrix_t030_done=ok
task_source_reuse_drift_docs_status=ok

补充回归:

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_hal_readiness_contract_status=ok
task_emc_nml_reuse_plan_status=ok

未完成验证:

./tests/docs/node/verify_project_release_handoff_docs.sh

该 docs gate 当前因 /home/mes123456/cnc_wams/PROJECT_COMPLETION_TRACKER.md 缺失而失败,失败发生在读取 tracker 文件阶段,未进入本轮修改的 source reuse / drift / compatibility 断言。

结论

T-030 通过。source reuse、drift、compatibility 文档已同步当前 task 主循环迁移阶段、readiness false 口径、RCS 聚合和 emc_nml.hh 复用决策。

2026-07-08 00:36 EDT emc_nml 复用评估验收

验收对象

T-029。

本轮验收目标是证明:

  • 已评估上游 emc_nml.hh 的直接 include 依赖。
  • 已明确当前 vendor tree 未包含完整 emc_nml.hh
  • 已形成选择记录:当前不直接 include 完整 emc_nml.hh,先走分阶段 typedef / 窄 StandaloneEmcStatus
  • 已记录后续 T-007/T-030/T-032/T-033/T-038 入口。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_emc_nml_reuse_plan.sh

实际输出摘要

task_emc_nml_reuse_plan_upstream=ok
task_emc_nml_reuse_plan_doc=ok
task_emc_nml_reuse_plan_matrix=ok
task_emc_nml_reuse_plan_vendor_emc_nml_hh=absent
task_emc_nml_reuse_plan_upstream_has_emc_stat=ok
task_emc_nml_reuse_plan_upstream_has_task_stat=ok
task_emc_nml_reuse_plan_upstream_has_motion_stat=ok
task_emc_nml_reuse_plan_upstream_has_io_stat=ok
task_emc_nml_reuse_plan_doc_choice=ok
task_emc_nml_reuse_plan_doc_strategy=ok
task_emc_nml_reuse_plan_doc_standalone=ok
task_emc_nml_reuse_plan_doc_dependency_nml=ok
task_emc_nml_reuse_plan_doc_dependency_rs274=ok
task_emc_nml_reuse_plan_doc_boundary=ok
task_emc_nml_reuse_plan_doc_next_t032=ok
task_emc_nml_reuse_plan_matrix_t029_done=ok
task_emc_nml_reuse_plan_status=ok

结论

T-029 通过。当前阶段选择分阶段 typedef / 窄 StandaloneEmcStatus,不直接 include 完整 emc_nml.hh;完整 NML/CMS 依赖和 vendor 提升留给后续 T-032+ 以及 source reuse map 更新。

2026-07-08 00:33 EDT top-level RCS_STATUS 聚合验收

验收对象

T-028。

本轮验收目标是证明:

  • task/motion/io 三方状态聚合顺序与 emctaskmain.cc 的顶层 status write 口径一致。
  • JSON status 明确导出 rcsStatus.top/task/motion/iotask.status
  • task/motion/io 任一 ERROR 会驱动 top/task ERROR
  • task exec done、interp idle、pending 为空、motion done、io done 时 top/task 为 DONE
  • 其它运行中状态为 EXEC

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh

实际输出摘要

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_status_from_linuxcnc_runtime=ok
task_commands_drive_motion_runtime=ok
mdi_jog_task_motion_hal_sync=ok
pause_freezes_motion_queue=ok
resume_restores_interp_resume_state=ok
step_returns_to_paused=ok
task_status_updates_from_cycle_snapshot=ok
mdi_jog_home_motion_issue_from_execute=ok
task_waits_on_motion_snapshot_queue=ok
motion_abort_drives_task_error=ok
motion_error_drives_task_error=ok
motion_soft_limit_drives_task_error=ok
io_error_drives_task_error=ok
task_top_level_rcs_status_aggregation=ok
pause_resume_step_motion_issue_from_execute=ok
task_hal_readiness_status_contract=ok
emctask_subset_source_reuse_status=ok
taskintf_subset_source_reuse_status=ok
emccanon_subset_source_reuse_status=ok

结论

T-028 通过。status JSON 现在导出 top/task/motion/io 四个 RCS 聚合状态,聚合顺序与上游 emctaskmain.cc 的 ERROR -> DONE -> EXEC 口径一致。

2026-07-08 00:22 EDT motion error/soft-limit 注入验收

验收对象

T-027。

本轮验收目标是证明:

  • motion runtime 可以通过测试命令注入独立 motion ERROR。
  • motion runtime 可以通过测试命令注入 soft-limit。
  • task 周期内的 subordinate sync 会消费 motion snapshot把上述状态转成 task ERROR
  • 最小 taskTopLevelStatus 会同步反映 motion ERROR 和 soft-limit 的 ERROR 状态。
  • 用户主动 task abort cleanup 语义不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_sdk.sh
node tests/wasm/node/verify_task_state_matrix.mjs
./tests/native/verify_task_hal_phase0.sh
./tools/verify_task_hal_readiness_contract.sh

实际输出摘要

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_status_from_linuxcnc_runtime=ok
task_commands_drive_motion_runtime=ok
mdi_jog_task_motion_hal_sync=ok
pause_freezes_motion_queue=ok
resume_restores_interp_resume_state=ok
step_returns_to_paused=ok
task_status_updates_from_cycle_snapshot=ok
mdi_jog_home_motion_issue_from_execute=ok
task_waits_on_motion_snapshot_queue=ok
motion_abort_drives_task_error=ok
motion_error_drives_task_error=ok
motion_soft_limit_drives_task_error=ok
io_error_drives_task_error=ok
pause_resume_step_motion_issue_from_execute=ok
task_hal_readiness_status_contract=ok
emctask_subset_source_reuse_status=ok
taskintf_subset_source_reuse_status=ok
emccanon_subset_source_reuse_status=ok

补充回归:

motion_hal_sync_smoke=ok
linuxcnc_task_hal_sdk=ok
task_state_matrix=ok
task_hal_phase0_native_probe_gate=ok
task_hal_readiness_contract_status=ok

结论

T-027 通过。motion ERROR 和 soft-limit 现在都有独立注入路径、snapshot 字段和 task subordinate sync 覆盖,均能驱动 task 进入 ERROR,并让最小 taskTopLevelStatus 反映 ERROR。新增 snapshot 字段追加在 LcmotStatusSnapshot 尾部,保留已有 C ABI struct offset既有 abort/io/wait/readiness smoke 未回退。

2026-07-08 00:13 EDT readiness contract 验收

验收对象

T-015。

本轮验收目标是证明:

  • nativeTaskReadynativeHalSyncReadyfullLinuxCncProgramExecutionReady 与当前能力边界一致,均保持 false。
  • task_hal_runtime_promoted=0 仍是 task-HAL source manifest 的真实口径。
  • docs/source-reuse-map.md 不再声称 task/motion/HAL Web simulation runtime 已 promoted 或 readiness 为 true。
  • WASM smoke 明确断言 fullLinuxCncProgramExecutionReady=false

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_hal_readiness_contract.sh
./tests/wasm/node/verify_task_hal_wasm.sh
./tests/native/verify_task_hal_phase0.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_task_hal_sdk.sh
SKIP_TASK_HAL_BUILD=1 ./tests/wasm/node/verify_motion_hal_sync.sh

实际输出摘要

task_hal_readiness_task_hal_runtime_promoted=0
task_hal_readiness_nativeTaskReady=false
task_hal_readiness_nativeHalSyncReady=false
task_hal_readiness_doc_runtime_promoted_false=ok
task_hal_readiness_doc_native_task_false=ok
task_hal_readiness_doc_native_hal_false=ok
task_hal_readiness_doc_full_program_false=ok
task_hal_readiness_doc_unpromoted_classification=ok
task_hal_readiness_doc_native_task_true=absent
task_hal_readiness_doc_native_hal_true=absent
task_hal_readiness_doc_full_boundary_promoted_claim=absent
task_hal_readiness_doc_complete_claim=absent
task_hal_readiness_runtime_native_task_false=ok
task_hal_readiness_runtime_native_hal_false=ok
task_hal_readiness_runtime_full_program_false=ok
task_hal_readiness_wasm_test_full_program_false=ok
task_hal_readiness_contract_status=ok

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_status_from_linuxcnc_runtime=ok
task_commands_drive_motion_runtime=ok
mdi_jog_task_motion_hal_sync=ok
pause_freezes_motion_queue=ok
resume_restores_interp_resume_state=ok
step_returns_to_paused=ok
task_status_updates_from_cycle_snapshot=ok
mdi_jog_home_motion_issue_from_execute=ok
task_waits_on_motion_snapshot_queue=ok
motion_abort_drives_task_error=ok
io_error_drives_task_error=ok
pause_resume_step_motion_issue_from_execute=ok
task_hal_readiness_status_contract=ok
emctask_subset_source_reuse_status=ok
taskintf_subset_source_reuse_status=ok
emccanon_subset_source_reuse_status=ok

补充回归:

task_hal_phase0_native_probe_gate=ok
linuxcnc_task_hal_sdk=ok
motion_hal_sync_smoke=ok

结论

T-015 通过。readiness 的文档、manifest、runtime、WASM test 口径已经统一为未 promoteddocs/source-reuse-map.md 不再与代码中的 false readiness 状态矛盾。

2026-07-07 23:59 EDT emccanon 可编译子集验收

验收对象

T-014。

本轮验收目标是证明:

  • task-HAL WASM build 已纳入 vendored emccanon_wasm_subset.cc
  • 该子集有明确上游 source path 和锚点:src/emc/task/emccanon.ccgenerate_fast_move()generate_move()STRAIGHT_TRAVERSE()STRAIGHT_FEED()
  • task runtime 的 linear motion 生成先通过 emccanon canonical linear-move envelope再进入 taskintf command envelope 和 lcmot_* runtime edge。
  • 完整 emccanon.ccCanonConfig_tinterp_list、offset/unit conversion、NURBS、spindle/tool 等边界仍未 promotedreadiness 保持保守。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_emccanon_subset.sh
./tests/wasm/node/verify_task_hal_wasm.sh

实际输出摘要

./tools/verify_task_emccanon_subset.sh

task_emccanon_subset_upstream=ok
task_emccanon_subset_source=ok
task_emccanon_subset_header=ok
task_emccanon_subset_upstream_generate_fast_move=ok
task_emccanon_subset_origin_generate_fast_move=ok
task_emccanon_subset_upstream_generate_move=ok
task_emccanon_subset_origin_generate_move=ok
task_emccanon_subset_upstream_STRAIGHT_TRAVERSE=ok
task_emccanon_subset_origin_STRAIGHT_TRAVERSE=ok
task_emccanon_subset_upstream_STRAIGHT_FEED=ok
task_emccanon_subset_origin_STRAIGHT_FEED=ok
task_emccanon_subset_origin_path=ok
task_emccanon_subset_build_included=ok
task_emccanon_subset_source_reuse=ok

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_status_from_linuxcnc_runtime=ok
task_commands_drive_motion_runtime=ok
mdi_jog_task_motion_hal_sync=ok
pause_freezes_motion_queue=ok
resume_restores_interp_resume_state=ok
step_returns_to_paused=ok
task_status_updates_from_cycle_snapshot=ok
mdi_jog_home_motion_issue_from_execute=ok
task_waits_on_motion_snapshot_queue=ok
motion_abort_drives_task_error=ok
io_error_drives_task_error=ok
pause_resume_step_motion_issue_from_execute=ok
emctask_subset_source_reuse_status=ok
taskintf_subset_source_reuse_status=ok
emccanon_subset_source_reuse_status=ok

结论

T-014 通过。task-HAL WASM build 已编译 vendored emccanon_wasm_subset.cclinear motion 生成现在经由 emccanon canonical envelope再经 taskintf envelope issue 到 standalone motion runtime。完整 emccanon.cc 仍未 promoted。

2026-07-07 23:51 EDT taskintf 可编译子集验收

验收对象

T-013。

本轮验收目标是证明:

  • task-HAL WASM build 已纳入 vendored taskintf_wasm_subset.cc
  • 该子集有明确上游 source path 和锚点:src/emc/task/taskintf.cc 的 traj control、linear move、jog、home、aout 函数族。
  • task runtime 的 motion command issuing 已通过该子集生成 command envelope再转交现有 lcmot_* runtime edge。
  • 完整 taskintf.cc 的 usrmot/NML/INI/native motion process 仍未 promotedreadiness 保持保守。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_taskintf_subset.sh
./tests/wasm/node/verify_task_hal_wasm.sh

实际输出摘要

./tools/verify_task_taskintf_subset.sh

task_taskintf_subset_upstream=ok
task_taskintf_subset_source=ok
task_taskintf_subset_header=ok
task_taskintf_subset_upstream_emcTrajAbort=ok
task_taskintf_subset_origin_emcTrajAbort=ok
task_taskintf_subset_upstream_emcTrajPause=ok
task_taskintf_subset_origin_emcTrajPause=ok
task_taskintf_subset_upstream_emcTrajStep=ok
task_taskintf_subset_origin_emcTrajStep=ok
task_taskintf_subset_upstream_emcTrajResume=ok
task_taskintf_subset_origin_emcTrajResume=ok
task_taskintf_subset_upstream_emcTrajLinearMove=ok
task_taskintf_subset_origin_emcTrajLinearMove=ok
task_taskintf_subset_upstream_emcJogIncr=ok
task_taskintf_subset_origin_emcJogIncr=ok
task_taskintf_subset_upstream_emcJointHome=ok
task_taskintf_subset_origin_emcJointHome=ok
task_taskintf_subset_upstream_emcMotionSetAout=ok
task_taskintf_subset_origin_emcMotionSetAout=ok
task_taskintf_subset_origin_path=ok
task_taskintf_subset_build_included=ok
task_taskintf_subset_source_reuse=ok

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_status_from_linuxcnc_runtime=ok
task_commands_drive_motion_runtime=ok
mdi_jog_task_motion_hal_sync=ok
pause_freezes_motion_queue=ok
resume_restores_interp_resume_state=ok
step_returns_to_paused=ok
task_status_updates_from_cycle_snapshot=ok
mdi_jog_home_motion_issue_from_execute=ok
task_waits_on_motion_snapshot_queue=ok
motion_abort_drives_task_error=ok
io_error_drives_task_error=ok
pause_resume_step_motion_issue_from_execute=ok
emctask_subset_source_reuse_status=ok
taskintf_subset_source_reuse_status=ok

结论

T-013 通过。task-HAL WASM build 已编译 vendored taskintf_wasm_subset.cc,当前 motion command issuing 经由该子集生成 task-to-motion command envelope再序列化到 standalone lcmot_* runtime edge。完整 taskintf.cc 仍未 promoted。

2026-07-07 23:42 EDT emctask 可编译子集验收

验收对象

T-012。

本轮验收目标是证明:

  • task-HAL WASM build 已纳入 vendored emctask_wasm_subset.cc
  • 该子集有明确上游 source path 和锚点:src/emc/task/emctask.ccdetermineMode()determineState()emcTaskUpdate()
  • task runtime 在 wasm_emcTaskUpdate() 阶段实际调用该子集,并把 source reuse 证据写入 status JSON。
  • readiness 仍保持保守 false该子集不代表完整 emctask.cc、interpreter/NML/native process 已迁移完成。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_emctask_subset.sh
./tests/wasm/node/verify_task_hal_wasm.sh
node tests/wasm/node/verify_task_state_matrix.mjs

实际输出摘要

./tools/verify_task_emctask_subset.sh

task_emctask_subset_upstream=ok
task_emctask_subset_source=ok
task_emctask_subset_header=ok
task_emctask_subset_upstream_determine_mode=ok
task_emctask_subset_upstream_determine_state=ok
task_emctask_subset_upstream_update=ok
task_emctask_subset_origin_path=ok
task_emctask_subset_origin_determine_mode=ok
task_emctask_subset_origin_determine_state=ok
task_emctask_subset_origin_update=ok
task_emctask_subset_build_included=ok
task_emctask_subset_source_reuse=ok

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_status_from_linuxcnc_runtime=ok
task_commands_drive_motion_runtime=ok
mdi_jog_task_motion_hal_sync=ok
pause_freezes_motion_queue=ok
resume_restores_interp_resume_state=ok
step_returns_to_paused=ok
task_status_updates_from_cycle_snapshot=ok
mdi_jog_home_motion_issue_from_execute=ok
task_waits_on_motion_snapshot_queue=ok
motion_abort_drives_task_error=ok
io_error_drives_task_error=ok
pause_resume_step_motion_issue_from_execute=ok
emctask_subset_source_reuse_status=ok

node tests/wasm/node/verify_task_state_matrix.mjs

task_state_matrix=ok
run_gate_estop_rejected=ok
run_gate_estop_reset_rejected=ok
run_gate_manual_rejected=ok
run_gate_unhomed_rejected=ok
run_gate_homing_rejected=ok
run_gate_program_open_required=ok
run_gate_interpreter_plan_required=ok
run_gate_accepts_homed_open_plan=ok
task_command_send_queues_until_cycle=ok
task_command_json_host_boundary=ok

结论

T-012 通过。task-HAL WASM build 已编译 vendored emctask_wasm_subset.ccruntime update 阶段实际调用该子集并在 status JSON 中暴露 source reuse 证据。该子集只覆盖 emctask.cc 的状态推导锚点;完整 task 源码迁移和 readiness promotion 仍保持后续任务。

2026-07-07 23:34 EDT JSON command host boundary 验收

验收对象

T-011。

本轮验收目标是证明:

  • lctask_send_command_json() 只解析 host JSON command envelope 并入队内部 TaskCommand
  • wasm_emcTaskPlan() 直接处理内部 command不再通过递归调用 C ABI send 函数执行 task 语义。
  • 未知 host JSON command 在 C ABI 边界被拒绝,不进入 pending command queue。
  • 现有 task/motion/HAL smoke 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
node tests/wasm/node/verify_task_state_matrix.mjs
./tests/native/verify_task_hal_phase0.sh

实际输出摘要

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_status_from_linuxcnc_runtime=ok
task_commands_drive_motion_runtime=ok
mdi_jog_task_motion_hal_sync=ok
pause_freezes_motion_queue=ok
resume_restores_interp_resume_state=ok
step_returns_to_paused=ok
task_status_updates_from_cycle_snapshot=ok
mdi_jog_home_motion_issue_from_execute=ok
task_waits_on_motion_snapshot_queue=ok
motion_abort_drives_task_error=ok
io_error_drives_task_error=ok
pause_resume_step_motion_issue_from_execute=ok

node tests/wasm/node/verify_task_state_matrix.mjs

task_state_matrix=ok
run_gate_estop_rejected=ok
run_gate_estop_reset_rejected=ok
run_gate_manual_rejected=ok
run_gate_unhomed_rejected=ok
run_gate_homing_rejected=ok
run_gate_program_open_required=ok
run_gate_interpreter_plan_required=ok
run_gate_accepts_homed_open_plan=ok
task_command_send_queues_until_cycle=ok
task_command_json_host_boundary=ok

./tests/native/verify_task_hal_phase0.sh

task_hal_phase0_native_probe_gate=ok

结论

T-011 通过。host JSON command 已被限制在 C ABI 边界解析pending command queue 保存内部 TaskCommandplan 阶段不再回调 lctask_send_command_json() 执行 task 语义。未知 host command 会被拒绝且不污染 command queue。

2026-07-07 23:10 EDT phase0 native probe 与 pause/resume/step 验收

验收对象

T-016、T-010。

本轮验收目标是证明:

  • verify_task_hal_phase0.sh 不再因为缺失 xyzac-trt_cmds.hal 失败。
  • 缺失文件来源有明确修复路径native probe 使用运行目录 overlay优先引用只读上游 ../linuxcnc,仅对缺失顶层条目从 wasm-port/vendor/linuxcnc 补齐。
  • pause/resume/step 不在 command send 时直接 issue motion command而是在 task cycle 的 execute 阶段发给 motion runtime。
  • 现有 task/motion/HAL smoke 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/native/probe_trt_task_hal_runtime.sh
./tests/native/verify_task_hal_phase0.sh
./tests/wasm/node/verify_task_hal_wasm.sh
node tests/wasm/node/verify_task_state_matrix.mjs
./tests/wasm/node/verify_task_hal_sdk.sh
./tests/wasm/node/verify_motion_hal_sync.sh
./tools/verify_task_hal_source_manifest.sh

实际输出摘要

./tests/native/probe_trt_task_hal_runtime.sh

trt_task_hal_source_proof_ready=1
trt_task_hal_probe_result=ready_disabled_by_default

./tests/native/verify_task_hal_phase0.sh

task_hal_phase0_native_probe_gate=ok

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_status_from_linuxcnc_runtime=ok
task_commands_drive_motion_runtime=ok
mdi_jog_task_motion_hal_sync=ok
pause_freezes_motion_queue=ok
resume_restores_interp_resume_state=ok
step_returns_to_paused=ok
task_status_updates_from_cycle_snapshot=ok
mdi_jog_home_motion_issue_from_execute=ok
task_waits_on_motion_snapshot_queue=ok
motion_abort_drives_task_error=ok
io_error_drives_task_error=ok
pause_resume_step_motion_issue_from_execute=ok

node tests/wasm/node/verify_task_state_matrix.mjs

task_state_matrix=ok
run_gate_estop_rejected=ok
run_gate_estop_reset_rejected=ok
run_gate_manual_rejected=ok
run_gate_unhomed_rejected=ok
run_gate_homing_rejected=ok
run_gate_program_open_required=ok
run_gate_interpreter_plan_required=ok
run_gate_accepts_homed_open_plan=ok
task_command_send_queues_until_cycle=ok

./tests/wasm/node/verify_task_hal_sdk.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_hal_sdk=ok
task_hal_sdk_status_snapshot=ok
task_hal_feed_timed_motion_plan=ok
task_hal_comment_source_line_numbers=ok

./tests/wasm/node/verify_motion_hal_sync.sh

linuxcnc_task_hal_wasm_build=ok
motion_hal_servo_cycle=ok
motion_program_line_hal_sync=ok
switchkins_type_hal_sync=ok
jog_motion_status_sync=ok
motion_status_snapshot_struct=ok
motion_hal_sync_smoke=ok

./tools/verify_task_hal_source_manifest.sh

task_hal_source_manifest_status=ok
task_hal_source_manifest_ready=1
task_hal_runtime_promoted=0
nativeTaskReady=false
nativeHalSyncReady=false

结论

T-016、T-010 通过。phase0 native probe 的 xyzac-trt_cmds.hal 缺失问题已通过运行目录 overlay 闭合,未修改只读上游 ../linuxcnc。pause/resume/step 已与 MDI/JOG/HOME 一样进入 execute 阶段 motion issue 队列,并由周期 snapshot 断言证明 send command 本身不直接改变 motion 状态。

2026-07-07 21:32 EDT wait/error subordinate sync 验收

验收对象

T-008、T-009。

本轮验收目标是证明:

  • WAITING_FOR_MOTION_QUEUE 由周期 motion_snapshot.queue_full 驱动。
  • queueFull 时 task 不继续向 motion runtime issue execute motion command。
  • queueFull 解除后 task 由 WAITING_FOR_MOTION_QUEUE 回到 WAITING_FOR_MOTION
  • motion queue/active depth 清空且 in-position 后task 由 WAITING_FOR_MOTION 收敛到 DONE
  • 外部 motion abort/error 通过 subordinate sync 驱动 task ERROR
  • IO runtime-edge 注入错误通过 subordinate sync 驱动 task ERROR
  • task 自己发起的 abort 保持 cleanup 到 DONE,不误报为外部 motion error。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
node tests/wasm/node/verify_task_state_matrix.mjs
./tests/wasm/node/verify_task_hal_sdk.sh
./tests/wasm/node/verify_motion_hal_sync.sh
./tools/verify_task_hal_source_manifest.sh
git diff --check -- wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.h wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.c wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp wasm-port/tools/build_task_hal_wasm.sh wasm-port/tests/wasm/node/verify_motion_hal_sync.mjs wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs wasm-port/tests/wasm/node/verify_task_state_matrix.mjs wasm-port/working

实际输出摘要

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_status_from_linuxcnc_runtime=ok
task_commands_drive_motion_runtime=ok
mdi_jog_task_motion_hal_sync=ok
pause_freezes_motion_queue=ok
resume_restores_interp_resume_state=ok
step_returns_to_paused=ok
task_status_updates_from_cycle_snapshot=ok
mdi_jog_home_motion_issue_from_execute=ok
task_waits_on_motion_snapshot_queue=ok
motion_abort_drives_task_error=ok
io_error_drives_task_error=ok

node tests/wasm/node/verify_task_state_matrix.mjs

task_state_matrix=ok
run_gate_estop_rejected=ok
run_gate_estop_reset_rejected=ok
run_gate_manual_rejected=ok
run_gate_unhomed_rejected=ok
run_gate_homing_rejected=ok
run_gate_program_open_required=ok
run_gate_interpreter_plan_required=ok
run_gate_accepts_homed_open_plan=ok
task_command_send_queues_until_cycle=ok

./tests/wasm/node/verify_task_hal_sdk.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_hal_sdk=ok
task_hal_sdk_status_snapshot=ok
task_hal_feed_timed_motion_plan=ok
task_hal_comment_source_line_numbers=ok

./tests/wasm/node/verify_motion_hal_sync.sh

linuxcnc_task_hal_wasm_build=ok
motion_hal_servo_cycle=ok
motion_program_line_hal_sync=ok
switchkins_type_hal_sync=ok
jog_motion_status_sync=ok
motion_status_snapshot_struct=ok
motion_hal_sync_smoke=ok

./tools/verify_task_hal_source_manifest.sh

task_hal_source_manifest_status=ok
task_hal_source_manifest_ready=1
task_hal_runtime_promoted=0
nativeTaskReady=false
nativeHalSyncReady=false

git diff --check -- ...:无输出,表示无空白错误。

./tests/native/verify_task_hal_phase0.sh:本条为 21:32 时的历史失败记录23:10 已通过上方 phase0 native probe 验收闭合。

trt_task_hal_source_proof_ready expected 1, got 0
from /home/mes123456/cnc_wams/wasm-port/build/task-hal/probe_trt_task_hal_runtime.stdout.log

结论

T-008、T-009 通过。task 的 WAITING_FOR_MOTION / WAITING_FOR_MOTION_QUEUE 已依赖周期 motion snapshotqueueFull 场景会阻止 execute 阶段继续 issue motion command并在 motion queue 可用后恢复等待、最终收敛到 DONE。外部 motion abort 和 IO shim error 均能通过 subordinate sync 驱动 task ERRORtask 自己发起的 abort cleanup 仍保持 DONE

2026-07-07 21:21 EDT task 周期阶段拆分验收

验收对象

T-006、T-023、T-024、T-025。

本轮验收目标是证明:

  • lctask_run_cycles() 已拆成 LinuxCNC emctaskmain.cc 式周期阶段。
  • command read、plan、execute、motion update、subordinate sync、task update、top-level status、status write 在代码中有明确函数边界。
  • state/mode/home/run gate 由 task cycle 消费 command 后触发,不由 send API 直接触发。
  • MDI/JOG/HOME 的 motion issue 从 plan command handler 移到 execute 阶段队列。
  • 现有 task/motion/HAL smoke 不回退。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tests/wasm/node/verify_task_hal_wasm.sh
node tests/wasm/node/verify_task_state_matrix.mjs
./tests/wasm/node/verify_task_hal_sdk.sh
./tests/wasm/node/verify_motion_hal_sync.sh

实际输出摘要

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_status_from_linuxcnc_runtime=ok
task_commands_drive_motion_runtime=ok
mdi_jog_task_motion_hal_sync=ok
pause_freezes_motion_queue=ok
resume_restores_interp_resume_state=ok
step_returns_to_paused=ok
task_status_updates_from_cycle_snapshot=ok
mdi_jog_home_motion_issue_from_execute=ok

node tests/wasm/node/verify_task_state_matrix.mjs

task_state_matrix=ok
run_gate_estop_rejected=ok
run_gate_estop_reset_rejected=ok
run_gate_manual_rejected=ok
run_gate_unhomed_rejected=ok
run_gate_homing_rejected=ok
run_gate_program_open_required=ok
run_gate_interpreter_plan_required=ok
run_gate_accepts_homed_open_plan=ok
task_command_send_queues_until_cycle=ok

./tests/wasm/node/verify_task_hal_sdk.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_hal_sdk=ok
task_hal_sdk_status_snapshot=ok
task_hal_feed_timed_motion_plan=ok
task_hal_comment_source_line_numbers=ok

./tests/wasm/node/verify_motion_hal_sync.sh

linuxcnc_task_hal_wasm_build=ok
motion_hal_servo_cycle=ok
motion_program_line_hal_sync=ok
switchkins_type_hal_sync=ok
jog_motion_status_sync=ok
motion_status_snapshot_struct=ok
motion_hal_sync_smoke=ok

结论

T-006、T-023、T-024、T-025 通过。lctask_run_cycles() 已形成可继续替换上游源码的周期骨架。MDI/JOG/HOME motion issue 已通过 pending_execute_motion_commandswasm_emcTaskExecute() 阶段发出。

2026-07-07 21:01 EDT task 周期 motion snapshot 与 status buffer 验收

验收对象

T-002、T-003、T-004、T-005、T-018、T-019、T-020、T-021、T-022、T-026。

本轮验收目标是证明:

  • 当前 task/motion/HAL 基线已重新固定。
  • motion runtime 已提供结构化 LcmotStatusSnapshottask 周期不再解析 motion JSON。
  • lctask_run_cycles() 会刷新 task 持有的 motion snapshot。
  • lctask_read_status_json() 只导出最后一次 task status write不因读取而同步最新 low-level motion。
  • lctask_send_command_json() 只入队 command不调用 runCycles() 时 task 语义状态不变化。

证据命令

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_hal_source_manifest.sh
./tests/wasm/node/verify_motion_hal_sync.sh
./tests/wasm/node/verify_task_hal_wasm.sh
./tests/wasm/node/verify_task_hal_sdk.sh
node tests/wasm/node/verify_task_state_matrix.mjs
./tests/native/verify_task_hal_phase0.sh

实际输出摘要

./tools/verify_task_hal_source_manifest.sh

task_hal_source_manifest_status=ok
task_hal_source_manifest_ready=1
task_hal_source_count=20
task_source_count=7
hal_source_count=4
motion_source_count=6
task_hal_reference_source_ready=1
task_hal_vendor_source_ready=0
task_hal_runtime_promoted=0
nativeTaskReady=false
nativeHalSyncReady=false

./tests/wasm/node/verify_motion_hal_sync.sh

linuxcnc_task_hal_wasm_build=ok
motion_hal_servo_cycle=ok
motion_program_line_hal_sync=ok
switchkins_type_hal_sync=ok
jog_motion_status_sync=ok
motion_status_snapshot_struct=ok
motion_hal_sync_smoke=ok

./tests/wasm/node/verify_task_hal_wasm.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_status_from_linuxcnc_runtime=ok
task_commands_drive_motion_runtime=ok
mdi_jog_task_motion_hal_sync=ok
pause_freezes_motion_queue=ok
resume_restores_interp_resume_state=ok
step_returns_to_paused=ok
task_status_updates_from_cycle_snapshot=ok

./tests/wasm/node/verify_task_hal_sdk.sh

linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_hal_sdk=ok
task_hal_sdk_status_snapshot=ok
task_hal_feed_timed_motion_plan=ok
task_hal_comment_source_line_numbers=ok

node tests/wasm/node/verify_task_state_matrix.mjs

task_state_matrix=ok
run_gate_estop_rejected=ok
run_gate_estop_reset_rejected=ok
run_gate_manual_rejected=ok
run_gate_unhomed_rejected=ok
run_gate_homing_rejected=ok
run_gate_program_open_required=ok
run_gate_interpreter_plan_required=ok
run_gate_accepts_homed_open_plan=ok
task_command_send_queues_until_cycle=ok

./tests/native/verify_task_hal_phase0.sh:本条为 21:01 时的历史失败记录23:10 已通过上方 phase0 native probe 验收闭合。

trt_task_hal_source_proof_ready expected 1, got 0
from /home/mes123456/cnc_wams/wasm-port/build/task-hal/probe_trt_task_hal_runtime.stdout.log

对应 stdout log 关键内容:

trt_task_hal_missing_source_xyzac_trt_cmds_hal=/home/mes123456/cnc_wams/wasm-port/../linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal
trt_task_hal_source_proof_ready=0
trt_task_hal_runtime_ready=1
nativeTaskReady=false
nativeHalSyncReady=false
native_probe_status=blocked_missing_source

结论

T-002、T-003、T-004、T-005、T-018、T-019、T-020、T-021、T-022、T-026 通过。task status 的 motion 部分已经来自 task 周期写入的结构化 snapshotlow-level motion 单独 step 后task status 不会自动同步,必须等待下一次 lctask_run_cycles()。task command 发送也已改为入队,状态变化必须等待 task cycle 消费 command。

T-016 在 21:01 时仍阻塞;后续 23:10 已通过运行目录 overlay 修复 xyzac-trt_cmds.hal 缺失输入并闭合。

2026-07-07 19:45 EDT 上游 task 源码替换分解验收

验收对象

emctask.cctaskintf.ccemccanon.cc 的具体实施步骤拆解到函数族、shim、验收和任务矩阵。

证据命令

find wasm-port/working -maxdepth 1 -type f | sort
rg -n "T-031|D-007|emctask.cc|taskintf.cc|emccanon.cc|B1|B6" wasm-port/working
git diff --check -- wasm-port/working

实际输出摘要

find wasm-port/working -maxdepth 1 -type f | sort

wasm-port/working/01-项目功能内容.md
wasm-port/working/02-项目程序开发详细步骤.md
wasm-port/working/03-推进台账.md
wasm-port/working/04-任务矩阵.md
wasm-port/working/05-验收证据.md
wasm-port/working/06-决策记录.md
wasm-port/working/07-emctaskmain周期对标蓝图.md
wasm-port/working/08-上游task源码替换分解.md
wasm-port/working/README.md

rg -n "T-031|D-007|emctask.cc|taskintf.cc|emccanon.cc|B1|B6" wasm-port/working 命中摘要:

wasm-port/working/04-任务矩阵.md: T-031
wasm-port/working/06-决策记录.md: D-007
wasm-port/working/08-上游task源码替换分解.md: emctask.cc
wasm-port/working/08-上游task源码替换分解.md: taskintf.cc
wasm-port/working/08-上游task源码替换分解.md: emccanon.cc
wasm-port/working/08-上游task源码替换分解.md: B1
wasm-port/working/08-上游task源码替换分解.md: B6

git diff --check -- wasm-port/working:无输出,表示无空白错误。

结论

T-031 通过。后续源码替换不再只停留在泛泛“引入上游文件”,而是按 taskintf.cc minimal bridge、emctask.cc state/update/plan、emccanon.cc straight/spindle/tool/io 子集逐批实施。

2026-07-07 19:29 EDT 实施文档细化验收

验收对象

继续完善 wasm-port/working 实施文档,使其完全对标“把 emctaskmain.cc 周期结构迁到 wasm-port”这一目标。

证据命令

find wasm-port/working -maxdepth 1 -type f | sort
rg -n "T-017|D-005|emctaskmain 周期对标蓝图|LcmotStatusSnapshot|command read" wasm-port/working
git status --short wasm-port/working

实际输出摘要

find wasm-port/working -maxdepth 1 -type f | sort

wasm-port/working/01-项目功能内容.md
wasm-port/working/02-项目程序开发详细步骤.md
wasm-port/working/03-推进台账.md
wasm-port/working/04-任务矩阵.md
wasm-port/working/05-验收证据.md
wasm-port/working/06-决策记录.md
wasm-port/working/07-emctaskmain周期对标蓝图.md
wasm-port/working/README.md

rg -n "T-017|D-005|emctaskmain 周期对标蓝图|LcmotStatusSnapshot|command read" wasm-port/working 命中摘要:

wasm-port/working/04-任务矩阵.md: T-017
wasm-port/working/04-任务矩阵.md: LcmotStatusSnapshot
wasm-port/working/06-决策记录.md: D-005
wasm-port/working/07-emctaskmain周期对标蓝图.md: command read

git status --short wasm-port/working

?? wasm-port/working/

结论

T-017 通过。实施文档已新增独立周期对标蓝图,并把后续实现拆分到 T-018 到 T-030。后续代码实施应从 T-002 基线证据开始,再进入 snapshot/status buffer/command buffer 周期骨架。

2026-07-07 19:17 EDT 文档创建验收

验收对象

创建 wasm-port/working 推进文档,用于后续推进 LinuxCNC emctaskmain.cc task 主循环完全对标。

证据命令

find wasm-port/working -maxdepth 1 -type f | sort
git status --short wasm-port/working

实际输出摘要

find wasm-port/working -maxdepth 1 -type f | sort

wasm-port/working/01-项目功能内容.md
wasm-port/working/02-项目程序开发详细步骤.md
wasm-port/working/03-推进台账.md
wasm-port/working/04-任务矩阵.md
wasm-port/working/05-验收证据.md
wasm-port/working/06-决策记录.md
wasm-port/working/README.md

git status --short wasm-port/working

?? wasm-port/working/

结论

T-001 通过。README 和 01-06 号推进文档均已创建;任务矩阵、推进台账、验收证据和决策记录具备初始内容。git status 显示 wasm-port/working/ 为新增未跟踪目录,符合本轮只创建文档的预期。

当前已知基线命令

后续 T-002 需要正式运行并记录完整输出:

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_task_hal_source_manifest.sh
./tests/wasm/node/verify_motion_hal_sync.sh
./tests/wasm/node/verify_task_hal_wasm.sh
./tests/wasm/node/verify_task_hal_sdk.sh
./tests/native/verify_task_hal_phase0.sh

已知结果口径

上一轮分析已确认:

  • verify_task_hal_source_manifest.sh 可通过,但显示 task_hal_runtime_promoted=0nativeTaskReady=falsenativeHalSyncReady=false
  • verify_motion_hal_sync.sh 可通过。
  • verify_task_hal_wasm.sh 可通过。
  • verify_task_hal_phase0.sh 当前失败,原因是缺少 linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal

正式推进时,以每轮重新运行结果为准,不沿用旧输出冒充新证据。

待补证据类型

  • 命令输出。
  • Node/WASM 测试报告。
  • Browser smoke 页面或截图。
  • 如后续接入 CI/job 系统,记录 job_id
  • 如后续生成对标报告,记录 report_id 和报告路径。
  • 如后续生成 PDF 或截图,记录文件路径。