99 KiB
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 不再输出 taskTopLevelStatus、rcsStatus、顶层 task、servoCycle、顶层 motionStatus;测试读取路径均从 emcStatus 取值,并对旧字段做负向断言。
2026-07-08 09:30 EDT 目标文件 11/12 全部工作复核
验收对象
11-WASM核心状态机边界与后续完善路线.md12-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 退出。
结论
目标文件 11 和 12 当前定义的全部可执行工作已闭合。后续新增状态或 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导出 LinuxCNCEMC_TRAJ_STAT风格字段,并与兼容motionStatus同源。emcStatus.task.currentLine/readLine/motionLine/callLevel从StandaloneEmcStatus导出,并与task兼容视图同源。emcStatus.motion.axis[]和joint[]导出结构化数组,旧motionStatus.axis、joint0与其一致。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 与 WASMStandaloneEmcStatus -> 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 从该容器导出
taskTopLevelStatus、rcsStatus、task、motionStatus和emcStatus。 - 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.shsmoke 不再调用lctask_load_program_motion_plan_json()。 - staged program RUN 可通过
emcTaskPlanRead()、emcTaskPlanCommand()、emcTaskPlanExecute()、emccanon.cccommand envelope 和taskintf.ccmotion issue 完成。 - 主状态保持
motionPlanLoaded=false、planId=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 + taskintf;loadProgramMotionPlan() 仍保留为兼容/调试入口。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_WAITappend 到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 evidence;M428-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 M3、M5、T7 M6、M61 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 evidence,readiness 仍未提升。
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_CONDappend 到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 evidence,readiness 仍未提升。
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。
emccanonSourceReusestatus 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 evidence;T-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/Command 与 interp_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 已接入
lcmotruntime 状态。 - 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 bridge;config/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.hhstatus container 边界。docs/compatibility-validation.md记录 task-HAL WASM/SDK、readiness、emc_nml复用评估和文档一致性验证 gate。- readiness 仍保持未 promoted,不出现
nativeTaskReady=true或nativeHalSyncReady=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/io和task.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。
本轮验收目标是证明:
nativeTaskReady、nativeHalSyncReady、fullLinuxCncProgramExecutionReady与当前能力边界一致,均保持 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 口径已经统一为未 promoted;docs/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.cc的generate_fast_move()、generate_move()、STRAIGHT_TRAVERSE()、STRAIGHT_FEED()。 - task runtime 的 linear motion 生成先通过 emccanon canonical linear-move envelope,再进入 taskintf command envelope 和
lcmot_*runtime edge。 - 完整
emccanon.cc的CanonConfig_t、interp_list、offset/unit conversion、NURBS、spindle/tool 等边界仍未 promoted,readiness 保持保守。
证据命令
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.cc,linear 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 仍未 promoted,readiness 保持保守。
证据命令
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.cc的determineMode()、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.cc,runtime 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 保存内部 TaskCommand,plan 阶段不再回调 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 snapshot;queueFull 场景会阻止 execute 阶段继续 issue motion command,并在 motion queue 可用后恢复等待、最终收敛到 DONE。外部 motion abort 和 IO shim error 均能通过 subordinate sync 驱动 task ERROR,task 自己发起的 abort cleanup 仍保持 DONE。
2026-07-07 21:21 EDT task 周期阶段拆分验收
验收对象
T-006、T-023、T-024、T-025。
本轮验收目标是证明:
lctask_run_cycles()已拆成 LinuxCNCemctaskmain.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_commands 在 wasm_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 已提供结构化
LcmotStatusSnapshot,task 周期不再解析 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 周期写入的结构化 snapshot;low-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.cc、taskintf.cc、emccanon.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=0、nativeTaskReady=false、nativeHalSyncReady=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 或截图,记录文件路径。