Files
cnc_wams/完善wasm/working/05-验收证据.md
2026-07-10 21:26:42 -04:00

82 KiB
Raw Permalink Blame History

05-验收证据

本文件记录可复验证据。所有命令必须写明工作目录、命令、关键输出、结论。截图、PDF、页面、job_id、report_id、日志文件路径也应记录在对应任务下。

证据等级

等级 证据类型 用途
P0 LinuxCNC 上游源码、上游测试、nc_filesconfigs/sim 定义真实行为
P1 vendored 字节同步、source manifest、source reuse map 证明行为来源
P2 Native probe 或 native rs274 输出对比 证明脱离浏览器后与 LinuxCNC 一致
P3 WASM Node 测试 证明 WASM 编译后语义未漂移
P4 真实浏览器测试 证明 OPFS、Worker、UI、C ABI 集成后仍一致
P5 截图、录屏、人工 UI 检查 只能补充,不单独证明核心语义

记录模板

## YYYY-MM-DD HH:MM 时区 ACC-XXX 标题

### 验收对象

### 证据等级

### 命令或证据路径

### 实际输出摘要

### 结论

### 后续处理

2026-07-10 11:17 EDT ACC-038 04 HAL Component P1 源码同步与哈希 Gate 证据

验收对象

04 4.7-4.11 五个基础 HAL .comp 的 P1 source manifest、vendored 字节一致和固定哈希 gate不包含组件生成或运行。

证据等级

P0锁定 LinuxCNC commit 和 linuxcnc/src/hal/components/*.comp

P1双 manifest、wasm-port/vendor/linuxcnc/src/hal/components/*.comp、专项验证脚本。

命令或证据路径

cd wasm-port
./tools/extract_sources.sh
./tools/verify_upstream_baseline.sh
./tools/verify_vendor_sync.sh
./tools/verify_task_hal_source_manifest.sh
./tools/verify_hal_component_source_sync.sh
bash -n tools/verify_hal_component_source_sync.sh
./tests/native/verify_native_probes.sh
./tests/wasm/node/verify_hal_runtime.sh
./tests/sdk/node/verify_sdk_surface.sh
node tests/host/verify_project_release_readiness_artifact.mjs
npm --prefix ../web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node

实施记录:

完善wasm/working/26-04-HAL-Component-P1源码同步与哈希Gate实施记录.md

实际输出摘要

copied src/hal/components/and2.comp
copied src/hal/components/or2.comp
copied src/hal/components/not.comp
copied src/hal/components/mux2.comp
copied src/hal/components/scale.comp
extraction complete
upstream baseline validation complete
hal_component_source=and2 ... vendor_match=1
hal_component_source=or2 ... vendor_match=1
hal_component_source=not ... vendor_match=1
hal_component_source=mux2 ... vendor_match=1
hal_component_source=scale ... vendor_match=1
hal_component_upstream_commit=60597ee0718873d2449058c824262a275e5e4bad
hal_component_source_count=5
hal_component_source_sync=ok
task_hal_source_manifest_status=ok
task_hal_reference_source_ready=1
task_hal_vendor_source_ready=0
task_hal_vendor_hash_match_ready=1
task_hal_runtime_promoted=0
nativeHalSyncReady=false

全量 vendor gate 的实际失败:

vendor files not listed in manifest:
configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal

该文件是前序 native TRT phase0 overlay fallback不在锁定 LinuxCNC commit本轮保留并如实记录未把它加入上游 source manifest。

修复后重跑:

vendor generated overlay validation complete: 1
vendor sync validation complete

修复方式为新增独立 tools/vendor-overlay-manifest.tsv 并按 path/hash/provenance 校验;没有把生成文件加入严格上游 source manifest。

native probes 首次复验期间存在两个并发会话,第二个会话的 rs274 Bus error 造成 unexpected_fail=1。确认进程全部退出后串行重跑,最终结果为:

sim_configs: total=159 pass=151 expected_fail=8 unexpected_fail=0
nc_files: total=107 pass=101 expected_fail=6 unexpected_fail=0
native probe validation complete
hal_runtime_wasm_node_smoke=ok
standalone CNC semantics guard complete
sdk_surface_node_smoke=ok
project_release_readiness_artifact_node_smoke=ok
xyzbc_trt_web_app_smoke=ok

结论

五个基础组件的专项 P1 source/hash gate 已通过,全量 vendor/overlay gate 也恢复通过。整个 task-HAL vendor 清单、组件 halcompile 生成、WASM symbol、真实执行和 truth-table/thread-net 均未晋级。

后续处理

执行 24 的阶段 B-Dgenerated overlay 继续保持独立 provenance不能改写为上游源码。

2026-07-10 10:58 EDT ACC-037 04 Host Runtime Opt-In Promotion Evidence Gate 落地蓝图证据

验收对象

宿主 User-M、Tool DB、Python remap、Linux realtime、硬件和完整 native process topology 的 opt-in、evidence acceptance、manual lock 和 promotion 分层合同。

证据等级

P0LinuxCNC emctask.ccemctaskmain.cctooldata_db.cc、RTAPI/HAL/motion 和 driver 源码。

P2native probe summary、runtime-boundary host readiness/dispatch/evidence/promotion TSV。

P3/P4project release readiness、目标 Web full execution boundary 和 native task-HAL audit。

命令或证据路径

新增蓝图:

完善wasm/working/25-04-Host-Runtime-Opt-In-Promotion-Evidence-Gate落地蓝图.md

关键现有状态:

host_readiness_status=host_ready_for_all_opt_in_native_probes
dispatch_status=dispatch_allowed_for_all_opt_in_native_probes
L4-USER-M-PROCESS=ready_disabled_by_default,promotion_allowed=0
L4-TOOL-DB=ready_disabled_by_default,promotion_allowed=0
L4-PYTHON-REMAP(stop-lookahead)=runtime_lifecycle_probe_passed,evidence_accepted=1,promotion_allowed=0
project_release_ready=true
promotedRuntimeFamilies=[]
promotionScope=web_simulation_only
hostRealtimeKernel=false
hardwareDrive=false

本轮执行 gate

awk 'BEGIN{FS="\t"; c=0} /^[0-9]+\.[0-9]+\t/ {c++} END{print "w04_numbered_items=" c}' 完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
awk '/^\| [0-9]+\.[0-9]+ \|/ {c++} END{print "binding_rows=" c}' 完善wasm/working/14-04-125项逐项源码证据绑定表.md
cd wasm-port && ./tests/docs/node/verify_host_runtime_boundary_docs.sh
cd wasm-port && node tests/host/verify_project_release_readiness_artifact.mjs
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_full_execution_boundary.mjs
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_native_task_hal_audit.mjs
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
git diff --check -- 完善wasm/working gptlog-process/gpdlog.md

本轮不执行三个 ENABLE_*_RUNTIME_PROBE=1 命令;它们按上游 handoff 规则只允许人工显式 opt-in不能作为普通文档复验隐式启动。

实际输出摘要

w04_numbered_items=125
binding_rows=125
host_runtime_boundary_docs_node_smoke=ok
project_release_readiness_artifact_node_smoke=ok
full_execution_boundary_smoke=ok
native_task_hal_source_artifact_audit=ok
task_hal_web_simulation_boundary_consistent=1
native_task_hal_host_probe_status=ready_disabled_by_default
hardware_drive=0
host_realtime_kernel=0
external_user_m_process_ready=1
tool_db_process_ready=1
host_external_user_m_process_ready=0
host_tool_db_process_ready=0
promotion_scope=web_simulation_only
xyzbc_trt_web_app_smoke=ok

上述 external_user_m_process_ready=1tool_db_process_ready=1 必须与 promotion_scope=web_simulation_only 一起解释;对应 host 字段仍为 0

结论

现有 artifacts 足以证明 Web simulation promotion 和 host blocked 状态并存,但尚未形成统一 host_runtime_opt_in_evidence 和 release/promotion separation gate。ACC-037/INT-024 只代表落地合同完成,不代表任何新的 host family 已晋级。

后续处理

25 实现 schema/state-machine/separation gatehost realtime/hardware 必须另建专用安全任务。

2026-07-10 10:47 EDT ACC-036 04 HAL Component Precompile Manifest / Truth-Table Gate 落地蓝图证据

验收对象

04 中 4.7-4.114.16 的 HAL 基础组件源码同步、预编译 manifest、真实执行链和 truth-table/formula gate 落地合同。

证据等级

P0LinuxCNC 五个 .comp 源码、halcompile.g、锁定 commit 和源码 SHA-256。

P1 缺口证据:wasm-port/vendor/linuxcnc/srctools/source-manifest.txttools/task-hal-source-manifest.txt 当前不含五个 .comp

P3 实现边界证据:build_task_hal_wasm.shlinuxcnc_hal_runtime.cppverify_hal_runtime.mjs

命令或证据路径

新增蓝图:

完善wasm/working/24-04-HAL-Component-Precompile-Manifest-Truth-Table-Gate落地蓝图.md

关键源码哈希:

and2  29f02d1342bae24d138bbb1387b006b97f592967b8688ccb1c6c0af451cae419
or2   c27663ce45f9562d7a5dc1b542da50ec2cc60802ef591ee729222002083a3c08
not   9fd9522627db9926d037dc0c116badce7dc880f190c6f8b85c690cbb8b638332
mux2  b75e3eeb74297d09d13052e812de53a38613ea8287522c371cc2fdaf76be3284
scale d6830d74fd3462c7b7285a9e0b37cbcd2c53d2243007a198e3f19bfed9817f4f

本轮执行 gate

awk 'BEGIN{FS="\t"; c=0} /^[0-9]+\.[0-9]+\t/ {c++} END{print "w04_numbered_items=" c}' 完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
awk '/^\| [0-9]+\.[0-9]+ \|/ {c++} END{print "binding_rows=" c}' 完善wasm/working/14-04-125项逐项源码证据绑定表.md
git -C linuxcnc rev-parse HEAD
sha256sum linuxcnc/src/hal/components/{and2,or2,not,mux2,scale}.comp
cd wasm-port && ./tools/verify_upstream_baseline.sh
cd wasm-port && ./tests/wasm/node/verify_hal_runtime.sh
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
git diff --check -- 完善wasm/working gptlog-process/gpdlog.md

实际输出摘要

w04_numbered_items=125
binding_rows=125
linuxcnc_head=60597ee0718873d2449058c824262a275e5e4bad
upstream baseline validation complete
linuxcnc_task_hal_wasm_build=ok
hal_runtime_registry=ok
hal_net_signal_propagation=ok
hal_thread_scheduler=ok
loadusr_blocked_evidence=ok
hal_runtime_wasm_node_smoke=ok
xyzbc_trt_web_app_smoke=ok

五个 .compsha256sum 与本节登记值逐项一致。

结论

静态实物复核已证明当前组件仍停在 P0五个 .comp 未进入 P1 vendor/source manifestWASM 构建无组件 symbolloadrt/addf/servo-step 无真实函数调用。ACC-036/INT-023 只代表落地合同完成,不代表组件实现完成。

后续处理

24 先补 source sync/hash gate再补 LinuxCNC 派生生成、precompile manifest、truth-table/formula、thread/net execution 和 Web evidence。

2026-07-10 10:20 EDT ACC-035 04 HAL Meter/Scope JSON Evidence Gate 落地蓝图证据

验收对象

04基于Web的LinuxCNC兼容数控仿真平台.txt4.13 HAL Scope4.14 HAL Meter10.6 HAL 信号监视10.7 HAL Scope 的实际 JSON evidence gate 落地合同。

证据等级

P0 静态源码证据LinuxCNC src/hal/utils/meter.csrc/hal/utils/scope.cscope_rt.cscope_shm.hscope_usr.hdocs/src/hal/halscope.adocdocs/src/man/man1/halmeter.1.adocdocs/src/man/man1/halscope.1.adoc

P3/P4 现有 Web/WASM 证据:wasm-port HAL runtime snapshot gate、目标 Web 项目 gmoccapy HAL model gate、目标 Web 项目 evidence JSON 顶层字段检查。

命令或证据路径

新增结构化蓝图文件:

完善wasm/working/23-04-HAL-Meter-Scope-JSON-Evidence-Gate落地蓝图.md

本轮复核引用的关键实现路径:

wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_hal_runtime.cpp
wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_hal_runtime.hh
wasm-port/tests/wasm/node/verify_hal_runtime.mjs
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime/gmoccapy-hal-model.js
web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs
web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/web-xyzbc-trt-evidence.json
web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/compare-xyzbc-trt-evidence.json

字段存在性检查:

node - <<'NODE'
const fs=require('fs');
for (const p of [
  'web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/web-xyzbc-trt-evidence.json',
  'web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/compare-xyzbc-trt-evidence.json'
]) {
  const j=JSON.parse(fs.readFileSync(p,'utf8'));
  console.log(p);
  console.log('has_hal_meter_evidence', Object.prototype.hasOwnProperty.call(j,'hal_meter_evidence'));
  console.log('has_hal_scope_waveform_evidence', Object.prototype.hasOwnProperty.call(j,'hal_scope_waveform_evidence'));
}
NODE

实际输出摘要:

web-xyzbc-trt-evidence.json: has_hal_meter_evidence false
web-xyzbc-trt-evidence.json: has_hal_scope_waveform_evidence false
compare-xyzbc-trt-evidence.json: has_hal_meter_evidence false
compare-xyzbc-trt-evidence.json: has_hal_scope_waveform_evidence false

计划/本轮执行 gate

awk 'BEGIN{FS="\t"; c=0} /^[0-9]+\.[0-9]+\t/ {c++} END{print "w04_numbered_items=" c}' 完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
awk '/^\| [0-9]+\.[0-9]+ \|/ {c++} END{print "binding_rows=" c}' 完善wasm/working/14-04-125项逐项源码证据绑定表.md
cd wasm-port && ./tests/wasm/node/verify_hal_runtime.sh
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
git diff --check -- 完善wasm/working gptlog-process/gpdlog.md web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md

实际输出摘要

w04_numbered_items=125
binding_rows=125
linuxcnc_task_hal_wasm_build=ok
hal_runtime_registry=ok
hal_net_signal_propagation=ok
hal_thread_scheduler=ok
loadusr_blocked_evidence=ok
hal_runtime_wasm_node_smoke=ok
gmoccapy_hal_model_smoke=ok
xyzbc_trt_web_app_smoke=ok

结论

HAL Meter/Scope JSON Evidence Gate 落地蓝图已闭合到 23ACC-035/INT-022 可标为完成;当前仍不能把 HAL Scope/Meter 宣称为完整通过,后续必须按 23 补实际 JSON evidence、Node gate、Web evidence 和 compare 字段。

后续处理

下一轮优先实现 hal_meter_evidencehal_scope_waveform_evidence 生成与校验脚本,或继续补 HAL component precompile manifest/truth-table gate。

2026-07-10 09:51 EDT ACC-034 04 Full-Process Realtime Runtime Proof 实现缺口证据

验收对象

04基于Web的LinuxCNC兼容数控仿真平台.txt 中 Task、Motion、HAL servo-thread、五轴代表运行和 full-process/realtime 相关条目的实现 proof 状态。

证据等级

P0 静态源码证据LinuxCNC src/emc/tasksrc/emc/motionsrc/emc/tpsrc/halconfigs/sim/axis/vismach/5axis

P3/P4 现有 Web/WASM 证据:wasm-port task/HAL WASM gate、目标 Web 项目 full execution boundary、task/HAL runtime、native task/HAL readiness audit 和 browser shell smoke。

命令或证据路径

新增结构化复核文件:

完善wasm/working/22-04-Full-Process-Realtime-Runtime-Proof实现缺口复核.md

本轮复核引用的关键实现路径:

wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp
wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_motion_runtime.c
wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_hal_runtime.cpp
wasm-port/runtime/core/linuxcnc_task_subset/emctask_wasm_subset.cc
wasm-port/runtime/sdk/src/linuxcnc-task-hal.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime/full-execution-boundary.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime/linuxcnc-task-hal-runtime.js
web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_full_execution_boundary.mjs
web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs
web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_native_task_hal_audit.mjs

源码/实现复核:

rg -n "lctask_|EMC_TASK|emcTask|servoCycle|halSyncReady|hostRealtimeKernel|hardwareDrive|promotion_scope" \
  wasm-port/runtime/core wasm-port/runtime/sdk \
  web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime \
  web-rtcp-5axis-xyzbc-trt-sim-plan/tests

实际输出摘要:

lctask_init_session/lctask_stage_file/lctask_open_program/lctask_send_command_json/lctask_run_cycles/lctask_read_status_json present
full-execution-boundary exposes linuxcnc_task_motion_hal_wasm_simulation_runtime
hardwareDrive=false
hostRealtimeKernel=false
hostExternalUserMProcessReady=false
hostToolDbProcessReady=false
native task/HAL audit checks promotion_scope=web_simulation_only

计划/本轮执行 gate

awk 'BEGIN{FS="\t"; c=0} /^[0-9]+\.[0-9]+\t/ {c++} END{print "w04_numbered_items=" c}' 完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
awk '/^\| [0-9]+\.[0-9]+ \|/ {c++} END{print "binding_rows=" c}' 完善wasm/working/14-04-125项逐项源码证据绑定表.md
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_full_execution_boundary.mjs
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_native_task_hal_audit.mjs
cd wasm-port && ./tests/wasm/node/verify_task_hal_wasm.sh
cd wasm-port && ./tests/native/verify_task_hal_phase0.sh
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:browser
git diff --check -- 完善wasm/working gptlog-process/gpdlog.md

实际输出摘要

w04_numbered_items=125
binding_rows=125
full_execution_boundary_smoke=ok
xyzbc_trt_web_app_smoke=ok
linuxcnc_task_hal_wasm_build=ok
linuxcnc_task_runtime_smoke=ok
task_commands_drive_motion_runtime=ok
pause_resume_step_motion_issue_from_execute=ok
task_hal_readiness_status_contract=ok
linuxcnc_task_hal_runtime_smoke=ok
task_hal_machine_file_smoke=ok
switchkins_remap_hal_sync_smoke=ok
browser_task_hal_worker_smoke=ok

首次运行 native readiness audit 失败:

trt_task_hal_source_proof_ready expected 1, got 0
trt_task_hal_missing_source_xyzac_trt_cmds_hal=/home/mes123456/cnc_wams/wasm-port/build/native/trt-task-hal-runtime/machine/xyzac-trt_cmds.hal
native_probe_status=blocked_missing_source

处理方式:

恢复文件wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal
来源web-rtcp-5axis-xyzbc-trt-sim-plan/app/dist/wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal
说明:未修改只读上游 linuxcnc仅恢复 wasm-port vendor fallback使 probe_trt_task_hal_runtime.sh 的 RUN_DIR/machine overlay 可闭合 source proof。

重跑输出:

task_hal_phase0_native_probe_gate=ok
native_task_hal_source_artifact_audit=ok
native_task_hal_readiness_artifact=web-rtcp-5axis-xyzbc-trt-sim-plan/build/readiness/native-task-hal-readiness.json
task_hal_web_simulation_boundary_consistent=1
native_task_hal_host_probe_status=ready_disabled_by_default
hardware_drive=0
host_realtime_kernel=0
external_user_m_process_ready=1
tool_db_process_ready=1
host_external_user_m_process_ready=0
host_tool_db_process_ready=0
promotion_scope=web_simulation_only
xyzbc_trt_browser_smoke=ok
git diff --check: no output

结论

Full-process/realtime runtime proof 实现缺口已闭合到 22ACC-034/INT-021 可标为完成;当前只允许把 Web/WASM 仿真运行时晋级为 linuxcnc_task_motion_hal_wasm_simulation_runtime,不能把宿主实时内核、硬件驱动、完整 native process topology 或任意宿主外部进程宣称为无条件完成。

后续处理

下一轮优先补实际 hal_meter_evidence/hal_scope_waveform_evidence gate、HAL component precompile manifest/truth-table gate 和宿主实时/硬件/外部进程 opt-in proof。

2026-07-10 09:34 EDT ACC-033 04 HAL Component Precompile Manifest 实现缺口证据

验收对象

04基于Web的LinuxCNC兼容数控仿真平台.txt4.7 and24.8 or24.9 not4.10 mux24.11 scale4.16 loadrt 的预编译组件 manifest 和 truth-table/formula gate 实现状态。

证据等级

P0 静态源码证据LinuxCNC src/hal/components/and2.compor2.compnot.compmux2.compscale.comp

P3/P4 现有 Web/WASM 证据:wasm-port HAL runtime gate、目标 Web 项目 native evidence 中的 loadrt mux2/loadrt scale HAL 文件行。

命令或证据路径

新增结构化复核文件:

完善wasm/working/21-04-HAL-Component-Precompile-Manifest实现缺口复核.md

本轮复核引用的 LinuxCNC 源码路径:

linuxcnc/src/hal/components/and2.comp
linuxcnc/src/hal/components/or2.comp
linuxcnc/src/hal/components/not.comp
linuxcnc/src/hal/components/mux2.comp
linuxcnc/src/hal/components/scale.comp

组件源码复核:

find linuxcnc/src/hal/components -maxdepth 1 \( -name 'and2.comp' -o -name 'or2.comp' -o -name 'not.comp' -o -name 'mux2.comp' -o -name 'scale.comp' \) -print | sort
rg -n "^(component|pin|param|function|FUNCTION|option|license|description)|out =|out=" \
  linuxcnc/src/hal/components/and2.comp \
  linuxcnc/src/hal/components/or2.comp \
  linuxcnc/src/hal/components/not.comp \
  linuxcnc/src/hal/components/mux2.comp \
  linuxcnc/src/hal/components/scale.comp

实际输出摘要:

and2.comp: out = in0 && in1
or2.comp: out = in0 || in1
not.comp: out = ! in
mux2.comp: if(sel) out = in1; else out = in0
scale.comp: out = in * gain + offset
all five components declare function _ and option period no

实现缺口复核:

find wasm-port -path '*/node_modules' -prune -o -path '*/build' -prune -o -type f \
  \( -name '*hal_component*' -o -name '*component_precompile*' -o -name '*component*manifest*' -o -name '*truth*table*' \) -print | sort
rg -n "loadrt mux2|loadrt scale|addf .*mux|addf .*rpm|J0_mux|rpm_rps|mux2|scale" \
  web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/native-xyzbc-trt-evidence.json

实际输出摘要:

no hal_component_precompile_manifest or truth-table gate files found in wasm-port
native evidence includes loadrt mux2 names=J0_mux,J1_mux,J2_mux,J3_mux,J4_mux
native evidence includes loadrt scale names=rpm_rps
native evidence includes addf J0_mux/J1_mux/J2_mux/J3_mux/J4_mux servo-thread
native evidence includes addf rpm_rps servo-thread

计数检查:

awk 'BEGIN{FS="\t"; c=0} /^[0-9]+\.[0-9]+\t/ {c++} END{print "w04_numbered_items=" c}' 完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
awk '/^\| [0-9]+\.[0-9]+ \|/ {c++} END{print "binding_rows=" c}' 完善wasm/working/14-04-125项逐项源码证据绑定表.md

计划/本轮执行 gate

cd wasm-port && ./tools/verify_upstream_baseline.sh
cd wasm-port && ./tests/wasm/node/verify_hal_runtime.sh
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
git diff --check -- 完善wasm/working gptlog-process/gpdlog.md

实际输出摘要:

w04_numbered_items=125
binding_rows=125
upstream baseline validation complete
linuxcnc_task_hal_wasm_build=ok
hal_runtime_registry=ok
hal_net_signal_propagation=ok
hal_thread_scheduler=ok
loadusr_blocked_evidence=ok
hal_runtime_wasm_node_smoke=ok
xyzbc_trt_web_app_smoke=ok
git diff --check: no output

实际输出摘要

  • 当前 wasm-port 未见 hal_component_precompile_manifestverify_hal_component_precompile_manifest.mjsverify_hal_component_truth_tables.mjs
  • 当前 HAL runtime gate 可证明 pin/signal/param/net/thread 和 loadrt 事件边界,但不能证明 and2/or2/not/mux2/scale 组件函数执行。
  • 目标 Web native evidence 中存在 loadrt mux2loadrt scaleaddf 行,说明 LinuxCNC 原生配置使用这些组件,但不能替代 WASM/Web truth-table/formula gate。

结论

HAL component precompile manifest 实现缺口已闭合到 21ACC-033/INT-020 可标为完成;后续若要把 04 的 4.7-4.11 从待实现 manifest/truth-table gate 晋级,必须新增并通过 manifest、WASM symbol、truth-table/formula、thread/net propagation 和未知组件 blocked gate。

后续处理

下一轮优先补实际 hal_meter_evidence/hal_scope_waveform_evidence gate、HAL component precompile manifest/truth-table gate 和 full-process/realtime runtime proof。

2026-07-10 09:21 EDT ACC-032 04 HAL Scope/Meter JSON Gate 实现缺口证据

验收对象

04基于Web的LinuxCNC兼容数控仿真平台.txt4.13 HAL Scope4.14 HAL Meter10.6 HAL 信号监视10.7 HAL Scope 的 JSON gate 实现状态。

证据等级

P0 静态源码证据LinuxCNC src/hal/utils/meter.csrc/hal/utils/scope*.cscope_shm.hscope_usr.hdocs/src/man/man1/halmeter.1.adocdocs/src/hal/halscope.adoc

P3/P4 现有 Web/WASM 证据:wasm-port HAL runtime gate、目标 Web 项目 gmoccapy HAL model gate、web-xyzbc-trt-evidence.json 中的 halGraph/halNets/taskHal*/pyvcpPostgui 字段。

命令或证据路径

新增结构化复核文件:

完善wasm/working/20-04-HAL-Scope-Meter-JSON-Gate实现缺口复核.md

本轮复核引用的 LinuxCNC 源码/文档路径:

linuxcnc/src/hal/utils/meter.c
linuxcnc/src/hal/utils/scope.c
linuxcnc/src/hal/utils/scope_rt.c
linuxcnc/src/hal/utils/scope_shm.h
linuxcnc/src/hal/utils/scope_usr.h
linuxcnc/docs/src/man/man1/halmeter.1.adoc
linuxcnc/docs/src/man/man1/halscope.1.adoc
linuxcnc/docs/src/hal/halscope.adoc

实现缺口复核:

find wasm-port/tests -maxdepth 4 -type f | sort | rg 'hal|scope|meter|runtime|evidence'
rg -n "hal_meter|hal_scope|scope_waveform|meter_evidence|waveform_evidence|halscope|halmeter" \
  wasm-port web-rtcp-5axis-xyzbc-trt-sim-plan -g '!**/node_modules/**' -g '!**/build/**' -g '!**/.git/**'
node -e "const fs=require('fs'); const j=JSON.parse(fs.readFileSync('web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/web-xyzbc-trt-evidence.json','utf8')); console.log(Object.keys(j).sort().join('\n'))"

实际输出摘要:

wasm-port/tests/wasm/node/verify_hal_runtime.mjs
wasm-port/tests/wasm/node/verify_hal_runtime.sh
wasm-port/tests/wasm/node/verify_motion_hal_sync.mjs
wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs
web evidence includes halGraph, halNets, taskHalEquivalence, taskHalFullState, pyvcpPostgui, visualEvidence
web evidence does not include hal_meter_evidence or hal_scope_waveform_evidence

计数检查:

awk 'BEGIN{FS="\t"; c=0} /^[0-9]+\.[0-9]+\t/ {c++} END{print "w04_numbered_items=" c}' 完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
awk '/^\| [0-9]+\.[0-9]+ \|/ {c++} END{print "binding_rows=" c}' 完善wasm/working/14-04-125项逐项源码证据绑定表.md

计划/本轮执行 gate

cd wasm-port && ./tools/verify_upstream_baseline.sh
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
git diff --check -- 完善wasm/working gptlog-process/gpdlog.md

实际输出摘要:

w04_numbered_items=125
binding_rows=125
upstream baseline validation complete
gmoccapy_hal_model_smoke=ok
xyzbc_trt_web_app_smoke=ok
git diff --check: no output

实际输出摘要

  • 当前 wasm-port 未见 verify_hal_meter_evidence.mjsverify_hal_scope_waveform_evidence.mjs
  • 当前目标 Web evidence 未见 hal_meter_evidencehal_scope_waveform_evidence 顶层字段。
  • verify_gmoccapy_hal_model.mjs 可以证明 gmoccapy HAL model、pin group、core/spindle/postgui net 和硬按钮映射,但不能替代 HAL Meter/Scope JSON gate。
  • halGraphhalNetspyvcpPostgui 可作为 HAL 监视模型证据,不能作为 halscope waveform 或 halmeter 当前值完整证据。

结论

HAL Scope/Meter JSON gate 实现缺口已闭合到 20ACC-032/INT-019 可标为完成;后续若要把 04 的 4.134.1410.7 从条件通过/待实现 gate 晋级,必须新增并通过 hal_meter_evidencehal_scope_waveform_evidence 的实际 Node/Browser gate。

后续处理

下一轮优先补 hal_meter_evidence/hal_scope_waveform_evidence 实际 gate、HAL component precompile manifest/truth-table gate 和 full-process/realtime runtime proof。

2026-07-10 09:02 EDT ACC-031 04 动态加载与预编译 Manifest 证据

验收对象

04基于Web的LinuxCNC兼容数控仿真平台.txt4.7 and24.8 or24.9 not4.10 mux24.11 scale4.16 loadrt6.5 自定义运动学6.6 并联运动学

证据等级

P0 静态源码证据LinuxCNC src/hal/components/*.compsrc/hal/hal_lib.csrc/rtapisrc/emc/kinematics

P1/P3 现有 Web/WASM 证据:wasm-port/tools/source-manifest.txtwasm-port/docs/source-reuse-map.mdverify_hal_runtime.shverify_kinematics_wasm.sh

命令或证据路径

新增结构化复核文件:

完善wasm/working/19-04动态加载与预编译Manifest复核.md

本轮复核引用的 LinuxCNC 源码路径:

linuxcnc/src/hal/components/and2.comp
linuxcnc/src/hal/components/or2.comp
linuxcnc/src/hal/components/not.comp
linuxcnc/src/hal/components/mux2.comp
linuxcnc/src/hal/components/scale.comp
linuxcnc/src/emc/kinematics/pumakins.c
linuxcnc/src/emc/kinematics/genserkins.c
linuxcnc/src/emc/kinematics/genhexkins.c
linuxcnc/src/emc/kinematics/pentakins.c

源码/manifest 复核:

find linuxcnc/src/hal/components -maxdepth 1 \( -name 'and2.comp' -o -name 'or2.comp' -o -name 'not.comp' -o -name 'mux2.comp' -o -name 'scale.comp' \) -print | sort
rg -n "src/emc/kinematics/(genhex|genser|puma|pentakins|xyzbc|xyzac|switchkins|trtfuncs)|verify_kinematics_wasm|verify_hal_runtime" \
  wasm-port/tools/source-manifest.txt wasm-port/docs/source-reuse-map.md \
  wasm-port/tests/wasm/node/verify_hal_runtime.mjs wasm-port/tests/wasm/node/verify_kinematics_wasm.mjs

实际输出摘要:

linuxcnc/src/hal/components/and2.comp
linuxcnc/src/hal/components/mux2.comp
linuxcnc/src/hal/components/not.comp
linuxcnc/src/hal/components/or2.comp
linuxcnc/src/hal/components/scale.comp
source-manifest includes switchkins, trtfuncs, xyzac-trt, xyzbc-trt, pumakins, genhexkins, genserkins, genserfuncs, pentakins
source-reuse-map includes HAL runtime phase 2 minimal boundary and verify_hal_runtime.sh
verify_kinematics_wasm.mjs expects 17 precompiled kinematics modules

计数检查:

awk 'BEGIN{FS="\t"; c=0} /^[0-9]+\.[0-9]+\t/ {c++} END{print "w04_numbered_items=" c}' 完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
awk '/^\| [0-9]+\.[0-9]+ \|/ {c++} END{print "binding_rows=" c}' 完善wasm/working/14-04-125项逐项源码证据绑定表.md

计划/本轮执行 gate

cd wasm-port && ./tools/verify_upstream_baseline.sh
cd wasm-port && ./tests/wasm/node/verify_hal_runtime.sh
cd wasm-port && ./tests/wasm/node/verify_kinematics_wasm.sh
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
git diff --check -- 完善wasm/working gptlog-process/gpdlog.md

实际输出摘要:

w04_numbered_items=125
binding_rows=125
upstream baseline validation complete
linuxcnc_task_hal_wasm_build=ok
hal_runtime_registry=ok
hal_net_signal_propagation=ok
hal_thread_scheduler=ok
loadusr_blocked_evidence=ok
hal_runtime_wasm_node_smoke=ok
kinematics_wasm_node_smoke=ok
xyzbc_trt_web_app_smoke=ok

实际输出摘要

  • and2or2notmux2scale 的 LinuxCNC 源码已定位为 .comp,但当前 wasm-port 尚未登记 HAL component precompile manifest。
  • 当前 HAL runtime 的 loadrt 只记录事件,不能宣称动态链接或动态加载任意 LinuxCNC realtime module。
  • 预编译 kinematics 已有 source manifest 和 WASM Node gate可支撑已列入模块的条件通过。
  • 04 中 4.7-4.11 需要后续新增 component manifest、WASM symbol、pin/param/function、truth-table 和 thread/net gate。

结论

动态加载与预编译 Manifest 复核已闭合到 19ACC-031/INT-018 可标为完成;后续不得把 HAL runtime 的 loadrt:<name> 事件记录或 kinematics 预编译 gate 扩展为任意组件/任意自定义模块的运行时动态加载能力。

后续处理

下一轮优先补 HAL Scope/Meter JSON gate、HAL component precompile manifest/truth-table gate 和 full-process/realtime runtime proof。

2026-07-10 08:53 EDT ACC-030 04 五轴范围差异与代表应用证据

验收对象

04基于Web的LinuxCNC兼容数控仿真平台.txt2.8 五轴联动专项 的范围差异,重点覆盖 8.18.28.38.68.78.88.98.10

证据等级

P0 静态源码/配置证据LinuxCNC configs/sim/axis/vismach/5axissrc/emc/kinematics/xyzbc-trt-kins.cxyzac-trt-kins.ctrtfuncs.cxyzbc-trt.inixyzac-trt.inixyzab-tdr.ini 和五轴 demo G-code。

P3 运行证据:xyzbc-trt Node smoke、profile boundary、real LinuxCNC five-axis program cases、impeller feed/task-HAL gate。

命令或证据路径

新增结构化复核文件:

完善wasm/working/18-04五轴范围差异与代表应用复核.md

本轮复核引用的 LinuxCNC 源码/配置路径:

linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini
linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini
linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini
linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc
linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc
linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc
linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c
linuxcnc/src/emc/kinematics/xyzac-trt-kins.c
linuxcnc/src/emc/kinematics/trtfuncs.c

计数检查:

awk 'BEGIN{FS="\t"; c=0} /^[0-9]+\.[0-9]+\t/ {c++} END{print "w04_numbered_items=" c}' 完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
awk '/^\| [0-9]+\.[0-9]+ \|/ {c++} END{print "binding_rows=" c}' 完善wasm/working/14-04-125项逐项源码证据绑定表.md

实际输出:

w04_numbered_items=125
binding_rows=125

基线和默认代表应用:

cd wasm-port && ./tools/verify_upstream_baseline.sh
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node

实际输出摘要:

upstream baseline validation complete
xyzbc_trt_web_app_smoke=ok

五轴范围专项 gate

node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_profile_boundary.mjs
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_real_linuxcnc_5axis_program_cases.mjs
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_impeller_feed_task_hal_run.mjs

实际输出摘要:

profile_boundary_smoke=ok
linuxcnc_source_program_case_count=8
real_linuxcnc_5axis_program_cases_smoke=ok
impeller_motion_count=4492
impeller_feed_segments=4306
impeller_low_feed_duration_seconds=3.5305747775737895
impeller_high_feed_duration_seconds=0.00952414211289918
impeller_feed_task_hal_run=ok

格式检查:

git diff --check -- 完善wasm/working gptlog-process/gpdlog.md

实际输出:无输出。

实际输出摘要

  • 默认 xyzbc-trt 代表应用覆盖 XYZBC、B/C 轴、xyzbc_switchkins.ngcboat-xyzbc.ngc 和相关 task-HAL/semantic path。
  • xyzac-trtgmoccapy-xyzac-trtgmoccapy-xyzab 已有 profile/source boundary但 promotion 状态和 UI 发布范围必须单独标识。
  • impeller-7bl-xyzac.ngc 叶轮程序有专项 Node gate输出 4492 个 motion 和 4306 个 feed segment可作为 8.9/8.10 的代表证据。
  • 本地未发现 04 写的 nc_files/5axis/sphere.ngc8.8 需要修订为存在的上游 G-code 或补充 fixture 来源。
  • 04 写的 A 轴 ±120° 未在 xyzac-trt.inixyzab-tdr.ini 中得到证实,需要修订或指定真实配置。

结论

五轴范围差异复核已闭合到 18ACC-030/INT-017 可标为完成;后续不得把默认 xyzbc-trt 的通过证据扩展为所有 A/C、XYZAB、sphere、impeller、TRSRN、max5 等五轴族全部无条件完成。

后续处理

下一轮优先补 HAL Scope/Meter JSON gate、动态加载/预编译 manifest 和 full-process/realtime runtime proof。

2026-07-10 08:44 EDT ACC-029 04 HAL Scope/Meter 结构化证据

验收对象

04基于Web的LinuxCNC兼容数控仿真平台.txt4.13 HAL Scope4.14 HAL Meter10.7 HAL Scope 的 LinuxCNC 源码归属、Web 等效边界和结构化 evidence 要求。

证据等级

P0 静态源码/文档证据LinuxCNC src/hal/utils/scope*docs/src/hal/halscope.adocdocs/src/man/man1/halscope.1.adocdocs/src/man/man1/halmeter.1.adoc

P3/P4 现有参考证据:wasm-port virtual HAL registry/snapshot/read-write gate、OPFS virtual HAL snapshot、xyzbc-trt gmoccapy HAL model gate。

命令或证据路径

新增结构化复核文件:

完善wasm/working/17-04-HAL-Scope-Meter结构化证据复核.md

本轮复核引用的 LinuxCNC 源码/文档路径:

linuxcnc/src/hal/utils/scope.c
linuxcnc/src/hal/utils/scope_rt.c
linuxcnc/src/hal/utils/scope_shm.h
linuxcnc/src/hal/utils/scope_usr.h
linuxcnc/docs/src/hal/halscope.adoc
linuxcnc/docs/src/man/man1/halscope.1.adoc
linuxcnc/docs/src/man/man1/halmeter.1.adoc

本轮复核引用的 Web/WASM 证据入口:

wasm-port/tests/ui/node/verify_real_simulation_programs.mjs
wasm-port/runtime/opfs/snapshot-store.js
web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs

计数检查:

awk 'BEGIN{FS="\t"; c=0} /^[0-9]+\.[0-9]+\t/ {c++} END{print "w04_numbered_items=" c}' 完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
awk '/^\| [0-9]+\.[0-9]+ \|/ {c++} END{print "binding_rows=" c}' 完善wasm/working/14-04-125项逐项源码证据绑定表.md

实际输出:

w04_numbered_items=125
binding_rows=125

基线和代表应用 smoke

cd wasm-port && ./tools/verify_upstream_baseline.sh
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node

实际输出摘要:

upstream baseline validation complete
xyzbc_trt_web_app_smoke=ok

格式检查:

git diff --check -- 完善wasm/working gptlog-process/gpdlog.md

实际输出:无输出。

实际输出摘要

  • 4.13 HAL ScopeLinuxCNC 原生 halscope 为用户态 GUI 加 scope_rt 实时 HAL 组件,具备采样周期、记录长度、触发和多通道 waveform bufferWeb 只能按结构化 waveform evidence 条件对标。
  • 4.14 HAL MeterLinuxCNC 原生 halmeter 观察 HAL pin/signal/parameter 当前值;当前 Web/WASM virtual HAL snapshot/read-write 证据可支撑 meter-like JSON但不代表运行原生 GTK halmeter
  • 10.7 HAL Scope:必须补 hal_scope_waveform_evidence JSON/Node gate 和 Browser evidence截图或 canvas 画面不能作为核心语义证据。

结论

HAL Scope/Meter 的源码边界复核已闭合到 17ACC-029/INT-016 可标为完成;后续实现层仍需补 hal_meter_evidencehal_scope_waveform_evidence gate 后才能把对应 Web 功能从条件通过/待实现 gate 晋级。

后续处理

下一轮优先补五轴范围差异说明、HAL Scope/Meter JSON gate、动态加载/预编译 manifest 和 full-process/realtime runtime proof。

2026-07-10 05:16 EDT ACC-024 双项目总控对标文件证据

验收对象

/home/mes123456/cnc_wams/wasm-port/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan 的统一 LinuxCNC 源码对标工作文件。

证据等级

P0-P1 静态证据LinuxCNC commit、源码/配置路径、既有 source reuse map、目标 Web 项目 source reference 和 working 证据索引。

命令或证据路径

git -C /home/mes123456/cnc_wams/linuxcnc rev-parse HEAD

实际输出:

60597ee0718873d2449058c824262a275e5e4bad

代表 Web 应用 Node smoke

npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node

实际输出摘要:

xyzbc_trt_web_app_smoke=ok

新增证据文件:

完善wasm/working/07-双项目LinuxCNC源码对标总览.md
完善wasm/working/08-源码资产映射与证据索引.md
完善wasm/working/09-联合任务矩阵.md
完善wasm/working/10-联合验证命令清单.md
完善wasm/working/11-缺口风险与边界锁定.md
完善wasm/working/12-交付文件索引.md

引用的底层证据入口:

wasm-port/docs/source-reuse-map.md
wasm-port/docs/compatibility-validation.md
wasm-port/docs/linuxcnc-test-porting-tracker.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/07-全量对标追踪矩阵.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/11-LinuxCNC源码与真实执行严格对标任务.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/native-xyzbc-trt-evidence.json
web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/web-xyzbc-trt-evidence.json
web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/compare-xyzbc-trt-evidence.json

实际输出摘要

  • linuxcnc HEAD 与验收标准 baseline 一致。
  • 完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt 在 ACC-024 执行时为空已作为当时输入缺口登记ACC-025 已复核补齐后的 04 文档并纳入 13-04验收文档任务对标矩阵.md
  • wasm-portxyzbc-trt Web 项目均已有独立 working/证据体系,本轮新增的是总控映射和联合 gate不改写底层完成结论。
  • INT-006 已刷新 Node smoke 证据,代表 Web 应用基础 profile/runtime 检查通过。

结论

双项目总控对标文件已创建,且 xyzbc-trt Node smoke 已通过。更高层 browser、按钮、native/Web evidence 和完整 wasm-port gate 需按后续改动范围继续执行并追加。

后续处理

如后续改动影响 xyzbc-trt UI、OPFS、按钮或 evidence 字段,应继续执行 smoke:browsersmoke:buttonsevidence:webevidence:compare

2026-07-10 05:56 EDT ACC-025 04 验收文档任务纳入对标矩阵证据

验收对象

完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt完善wasm/working 任务体系的对齐。

证据等级

P0-P1 静态证据04 文档内容、LinuxCNC commit、working 文档映射。

命令或证据路径

wc -c /home/mes123456/cnc_wams/完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
git -C /home/mes123456/cnc_wams/linuxcnc rev-parse HEAD
rg -n '^[一二三四五六七八九十]+、|^[0-9]+\\.[0-9]+|验收结论|覆盖率|源码位置' \
  /home/mes123456/cnc_wams/完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt

关键输出摘要:

15602 完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
60597ee0718873d2449058c824262a275e5e4bad
04 文档包含系统体系结构、2.1 到 2.10 模块、125 个功能项、3 个受限项和最终验收结论。

补充验证命令:

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

cd /home/mes123456/cnc_wams
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
git diff --check -- 完善wasm/working gptlog-process/gpdlog.md

补充验证输出:

upstream baseline validation complete
xyzbc_trt_web_app_smoke=ok
git diff --check: no output, exit 0

新增证据文件:

完善wasm/working/13-04验收文档任务对标矩阵.md

实际输出摘要

  • 04 文档已补齐,不再是空文件。
  • 04 文档中的功能模块已转换为 W04-ARCHW04-INTPW04-TASKW04-MOTIONW04-HALW04-MULTIW04-KINSW04-SPINDLE-TOOLW04-5AXISW04-OPFSW04-UI 任务包。
  • 04 的 3 个受限项 loadrt 动态加载、自定义运动学运行时加载、并联运动学已在 13 中保持条件通过或 Blocked 口径。
  • INT-013 已登记为后续逐项 evidence 绑定任务。

结论

04 文档已纳入 working 任务体系,但其“通过/100%”表述不能单独作为最终验收证据。后续必须完成 125 项逐行绑定后,才能将 W04 任务升级为完成。

后续处理

继续执行:

INT-013: 04 文档 125 项逐项 evidence 绑定

2026-07-10 07:54 EDT ACC-026 04 文档 125 项逐项源码证据绑定表证据

验收对象

04 文档中 125 个编号功能项的逐项源码/证据绑定。

证据等级

P0-P1 静态证据04 文档编号行、LinuxCNC 源码/资产路径、working 逐项绑定表。

命令或证据路径

awk 'BEGIN{FS="\t"} /^[0-9]+\.[0-9]+\t/ {print NR ":" $0}' \
  /home/mes123456/cnc_wams/完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt

关键输出摘要:

04 文档编号功能项共 125 行:
2.1 G 代码解释器 41 项
2.2 Task 12 项
2.3 Motion 11 项
2.4 HAL 16 项
2.5 多通道 5 项
2.6 运动学 6 项
2.7 主轴与刀具 7 项
2.8 五轴联动 10 项
2.9 OPFS 文件系统 6 项
2.10 用户界面与交互 11 项

一致性与最小验证:

awk 'BEGIN{FS="\t"; c=0} /^[0-9]+\.[0-9]+\t/ {c++} END{print "w04_numbered_items=" c}' \
  完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
awk '/^\| [0-9]+\.[0-9]+ \|/ {c++} END{print "binding_rows=" c}' \
  完善wasm/working/14-04-125项逐项源码证据绑定表.md
cd /home/mes123456/cnc_wams/wasm-port && ./tools/verify_upstream_baseline.sh
cd /home/mes123456/cnc_wams && npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
git diff --check -- 完善wasm/working gptlog-process/gpdlog.md

输出:

w04_numbered_items=125
binding_rows=125
upstream baseline validation complete
xyzbc_trt_web_app_smoke=ok
git diff --check: no output, exit 0

新增证据文件:

完善wasm/working/14-04-125项逐项源码证据绑定表.md

实际输出摘要

  • 14 已为 04 的 125 个功能项逐项记录 LinuxCNC 源码/资产归属、最小 gate/evidence 和严格状态。
  • INT-013 已从“待复验”更新为“已有证据”,但不是无条件 125/125 通过。
  • 缺口项已集中为04 语法口径需复核、full-process/realtime、HAL Scope/Meter、动态加载/预编译、多通道、五轴范围差异。

结论

逐项绑定表已完成。下一步是按 14 的缺口汇总补运行证据,而不是继续创建索引。

后续处理

优先补充:

04 语法口径复核
多通道 gate
HAL Scope/Meter 结构化 evidence
五轴范围差异说明

2026-07-10 08:06 EDT ACC-027 04 语法口径源码复核证据

验收对象

14 中标记为 04 语法口径需复核的 1.40、1.41、7.3、8.4、8.5。

证据等级

P0-P1 静态源码证据:本地 LinuxCNC 解释器源码、G-code 文档、working 复核文件。

命令或证据路径

rg -n "G_68|G_69|G_43_4|G_51_1|G_50_1|G_43_1|G_43_2|G_50|G_51|M19|ORIENT_SPINDLE|SET_XY_ROTATION|rotation_xy" \
  linuxcnc/src/emc/rs274ngc linuxcnc/docs/src \
  linuxcnc/configs/sim/axis/vismach/5axis/table-rotary_spindle-rotary-nutating
rg -n "G43\.4|G68|G69|G51\.1|G50\.1|M18" \
  linuxcnc/docs/src/gcode linuxcnc/src/emc/rs274ngc || true

关键输出摘要:

interp_internal.hh:237-242: G_43, G_43_1, G_43_2, G_49, G_50, G_51
interp_convert.cc:2406-2429: rotation_xy + SET_XY_ROTATION
interp_convert.cc:4938-4940: G10/G5x R rotation_xy update
interp_convert.cc:4063-4077: M19 enqueue_ORIENT_SPINDLE / WAIT_ORIENT_SPINDLE_COMPLETE
interp_convert.cc:6273-6284: G43.1 dynamic tool length offset
interp_convert.cc:6234-6236: G49 cancel tool length offset
docs/src/gcode/m-code.adoc:213-234: M19 Orient Spindle
未检索到本地 G68/G69、G51.1/G50.1、G43.4、M18 速度模式证据

新增证据文件:

完善wasm/working/15-04语法口径源码复核.md

结论

04 语法口径首轮复核已完成。1.40、1.41 需修订7.3、8.4、8.5 为部分成立。后续不能按 04 原文把 G68/G69G51.1/G50.1G43.4M18 速度模式宣称为本地 LinuxCNC 已支持项。

本轮最小验证

awk 'BEGIN{FS="\t"; c=0} /^[0-9]+\.[0-9]+\t/ {c++} END{print "w04_numbered_items=" c}' \
  完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
awk '/^\| [0-9]+\.[0-9]+ \|/ {c++} END{print "binding_rows=" c}' \
  完善wasm/working/14-04-125项逐项源码证据绑定表.md
cd /home/mes123456/cnc_wams/wasm-port && ./tools/verify_upstream_baseline.sh
cd /home/mes123456/cnc_wams && npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
git diff --check -- 完善wasm/working gptlog-process/gpdlog.md

输出:

w04_numbered_items=125
binding_rows=125
upstream baseline validation complete
xyzbc_trt_web_app_smoke=ok
git diff --check: no output, exit 0

2026-07-10 08:13 EDT ACC-028 04 多通道源码边界复核证据

验收对象

04 文档 2.5 多通道支持 的 5.1、5.2、5.3、5.4、5.5。

证据等级

P0-P1 静态源码证据:本地 LinuxCNC task、rs274ngc、NML、sim config 资产P2-P4 后续需要专门 multi-session gate。

命令或证据路径

awk 'BEGIN{show=0} /2\.5 多通道|多通道/{show=1} show{print NR ":" $0} /2\.6 运动学/{if(show){exit}}' \
  完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
rg -n "makeInterp\\(|InterpBase|interp_list|NML_INTERP_LIST|emcTaskPlan|SET_SCALE|SET_SPINDLE_SCALE|M6[2678]|M100-M199|PARAMETER_FILE|SPINDLES" \
  linuxcnc/src/emc linuxcnc/docs/src linuxcnc/configs/sim

关键输出摘要:

04 多通道 5 项5.1 双通道并行、5.2 三通道并行、5.3 通道同步握手、5.4 独立倍率控制、5.5 独立坐标系
emctask.cc:47-49: single global pinterp / interp macro
emctask.cc:433-455: emcTaskPlanInit initializes one interpreter
emctaskmain.cc:100-109: single command/status/error NML channel set and global EMC_STAT
emctaskmain.cc:443-446: single mdi_execute_queue and mdi_input_queue
emctaskmain.cc:645-668: MDI queue appends into single interp_list
interp_convert.cc:3819-3940: M62-M68/M66 HAL IO synchronization primitives
docs/src/gcode/m-code.adoc:703-728: M100-M199 external program mechanism
emc_nml.hh:585-628: feed/rapid scale are traj-level, spindle scale is per spindle
emc_nml.hh:1459-1462: task status has one active g5x_offset/g5x_index/rotation_xy
configs/sim/axis/lathe_multispindle: multi-spindle example, not multi CNC channel evidence

新增证据文件:

完善wasm/working/16-04多通道源码边界复核.md

结论

04 多通道首轮源码边界复核已完成。5.1、5.3、5.5 可作为 multi-session 条件目标5.2 的“三通道”数量口径未被本地 LinuxCNC 源码证实5.4 需要新增每 session 独立倍率 gate。后续不得按 04 原文把多通道 5/5 宣称为当前无条件通过。

本轮最小验证

awk 'BEGIN{FS="\t"; c=0} /^[0-9]+\.[0-9]+\t/ {c++} END{print "w04_numbered_items=" c}' \
  完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
awk '/^\| [0-9]+\.[0-9]+ \|/ {c++} END{print "binding_rows=" c}' \
  完善wasm/working/14-04-125项逐项源码证据绑定表.md
cd /home/mes123456/cnc_wams/wasm-port && ./tools/verify_upstream_baseline.sh
cd /home/mes123456/cnc_wams && npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node

输出:

w04_numbered_items=125
binding_rows=125
upstream baseline validation complete
xyzbc_trt_web_app_smoke=ok

2026-07-10 03:13 EDT ACC-023 继续复验与 User-M 审计修复证据

验收对象

ACC-001ACC-023 的继续复验,重点覆盖 configs/sim WASM inventory、User-M 外部进程边界审计、真实浏览器和 host 聚合验收。

证据等级

P1-P5 综合证据vendor 同步、自研语义 guard、Native、WASM Node、OPFS、UI Node、真实浏览器、host 聚合和专项边界 proof。

命令或证据路径

工作目录:

cd /home/mes123456/cnc_wams/wasm-port

本轮实际执行命令:

./tools/verify_upstream_baseline.sh && ./tools/verify_vendor_sync.sh && ./tools/verify_no_standalone_cnc_semantics.sh && ./tests/native/verify_native_probes.sh && ./tests/native/verify_nc_files.sh && ./tests/native/verify_sim_configs.sh && ./tests/wasm/node/verify_ini_wasm.sh && ./tests/wasm/node/verify_interp_wasm.sh && ./tests/wasm/node/verify_sim_configs_wasm.sh && ./tests/wasm/node/verify_sim_configs_inventory_wasm.sh && ./tests/wasm/node/verify_nc_files_wasm.sh && ./tests/wasm/node/verify_tp_wasm.sh && ./tests/opfs/node/verify_file_service.sh && ./tests/ui/node/verify_ui_node_smokes.sh
./tests/browser/verify_ini_panel_browser.sh && ./tests/browser/verify_interp_browser.sh && ./tests/host/verify_host_smokes.sh && ./tests/wasm/node/verify_python_remap_runtime_port_wasm.sh && ./tests/sdk/node/verify_python_remap_runtime_port.sh && ./tests/sdk/node/verify_tool_db_node_runtime_adapter.sh && ./tests/browser/verify_python_remap_runtime_browser.sh

失败修复证据:

首次失败: AssertionError: axis/vismach/millturn/example.ngc: user-M Node proof status drift
修复文件: wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs
修复后单测: ./tests/wasm/node/verify_sim_configs_inventory_wasm.sh 通过

生成审计文件:

build/wasm/sim-configs-inventory/remaining-skip-main-program-promotion-audit.tsv
axis/vismach/millturn/example.ngc ... ready_disabled_by_default:native=0:node=0:browser=0 ... not_promotable_runtime_proof_incomplete

实际输出摘要

upstream baseline validation complete
vendor sync up to date
standalone CNC semantics guard complete
native probe validation up to date
nc_files harness summary: total=107 pass=101 expected_fail=6 unexpected_fail=0
sim config harness summary: total=159 pass=151 expected_fail=8 unexpected_fail=0
ini_wasm_node_smoke=ok
interp_wasm_node_smoke=ok
sim_configs_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=29
sim_configs_wasm_node_inventory_passed=29
sim_configs_wasm_node_inventory_skipped=130
sim_configs_wasm_node_inventory_unexpected_fail=0
nc_files_wasm_node_smoke=ok
tp_wasm_node_smoke=ok
tp_pause_resume_smoke=ok
opfs_file_service_node_smoke=ok
ui_node_smokes=ok
browser_ini_opfs_smoke=ok
browser_ini_control_page_smoke=ok
browser_ini_launch_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
browser_interp_smoke=ok
browser_real_simulation_page_smoke=ok
axis_screenshot_browser_smoke=ok
browser_opfs_session_workflow_smoke=ok
host_wasm_opfs_browser_smokes=ok
python_remap_runtime_port_wasm=ok
python_remap_wasm_node_row_proof=ok
tool_db_node_runtime_adapter=ok
browser_python_remap_runtime_smoke=ok
python_remap_browser_row_proof=ok

结论

本轮复验通过。User-M 外部进程边界审计已按当前 host opt-in 状态正确记录,未把 ready_disabled_by_default 误判为 Node/browser proof 缺失导致的测试失败;所有必跑命令和专项补充命令均通过,unexpected_fail=0

后续处理

继续保持 Python remap、User M 外部进程、硬件驱动、实时内核等条件边界。millturn User-M 如需晋级,必须先通过显式 opt-in native runtime probe 并补齐后续 promotion gate。

2026-07-09 21:01 EDT ACC-001 到 ACC-023 复验证据

验收对象

/home/mes123456/cnc_wams/完善wasm/working 总体验收矩阵 ACC-001ACC-023 的完成后复验。

证据等级

P1-P5 综合复验证据vendor 同步、自研语义 guard、Native、WASM Node、OPFS、UI Node、真实浏览器、host 聚合和专项补充验证。

命令或证据路径

工作目录:

cd /home/mes123456/cnc_wams/wasm-port

本轮实际执行命令:

./tools/verify_upstream_baseline.sh && ./tools/verify_vendor_sync.sh && ./tools/verify_no_standalone_cnc_semantics.sh
./tests/native/verify_native_probes.sh && ./tests/native/verify_nc_files.sh && ./tests/native/verify_sim_configs.sh
./tests/wasm/node/verify_ini_wasm.sh && ./tests/wasm/node/verify_interp_wasm.sh && ./tests/wasm/node/verify_sim_configs_wasm.sh && ./tests/wasm/node/verify_sim_configs_inventory_wasm.sh && ./tests/wasm/node/verify_nc_files_wasm.sh && ./tests/wasm/node/verify_tp_wasm.sh && ./tests/opfs/node/verify_file_service.sh && ./tests/ui/node/verify_ui_node_smokes.sh
./tests/browser/verify_ini_panel_browser.sh && ./tests/browser/verify_interp_browser.sh && ./tests/host/verify_host_smokes.sh
./tests/wasm/node/verify_python_remap_runtime_port_wasm.sh && ./tests/sdk/node/verify_python_remap_runtime_port.sh && ./tests/sdk/node/verify_tool_db_node_runtime_adapter.sh && ./tests/browser/verify_python_remap_runtime_browser.sh

实际输出摘要

upstream baseline validation complete
vendor sync up to date
standalone CNC semantics guard complete
native probe validation up to date
nc_files harness summary: total=107 pass=101 expected_fail=6 unexpected_fail=0
sim config harness summary: total=159 pass=151 expected_fail=8 unexpected_fail=0
ini_wasm_node_smoke=ok
interp_wasm_node_smoke=ok
sim_configs_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=29
sim_configs_wasm_node_inventory_passed=29
sim_configs_wasm_node_inventory_skipped=130
sim_configs_wasm_node_inventory_unexpected_fail=0
nc_files_wasm_node_smoke=ok
tp_wasm_node_smoke=ok
tp_pause_resume_smoke=ok
opfs_file_service_node_smoke=ok
ui_node_smokes=ok
browser_ini_opfs_smoke=ok
browser_ini_control_page_smoke=ok
browser_ini_launch_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
browser_interp_smoke=ok
axis_screenshot_browser_smoke=ok
browser_opfs_session_workflow_smoke=ok
host_wasm_opfs_browser_smokes=ok
python_remap_runtime_port_wasm=ok
python_remap_wasm_node_row_proof=ok
tool_db_node_runtime_adapter=ok
browser_python_remap_runtime_smoke=ok
python_remap_browser_row_proof=ok

verify_sim_configs_inventory_wasm.sh 仍输出 4 行 /work/sim-inventory/axis/db_demo/base.inc: Cannot open ini-file 诊断;命令以 0 退出,最终 inventory 计数稳定为 29/29/130/0

结论

本轮复验通过。发布前必跑命令和专项补充命令均通过,unexpected_fail=0ACC-001ACC-023 的完成/条件通过结论仍成立。

后续处理

保持 Python remap、User M 外部进程、硬件驱动、实时内核等条件边界,不把这些项宣称为无条件 full-process 支持。

必跑命令清单

发布前至少需要补齐以下命令证据:

cd /home/mes123456/cnc_wams/wasm-port
./tools/verify_upstream_baseline.sh
./tools/verify_vendor_sync.sh
./tools/verify_no_standalone_cnc_semantics.sh
./tests/native/verify_native_probes.sh
./tests/native/verify_nc_files.sh
./tests/native/verify_sim_configs.sh
./tests/wasm/node/verify_ini_wasm.sh
./tests/wasm/node/verify_interp_wasm.sh
./tests/wasm/node/verify_sim_configs_wasm.sh
./tests/wasm/node/verify_sim_configs_inventory_wasm.sh
./tests/wasm/node/verify_nc_files_wasm.sh
./tests/wasm/node/verify_tp_wasm.sh
./tests/opfs/node/verify_file_service.sh
./tests/ui/node/verify_ui_node_smokes.sh
./tests/browser/verify_ini_panel_browser.sh
./tests/browser/verify_interp_browser.sh
./tests/host/verify_host_smokes.sh

2026-07-09 20:24 EDT ACC-001 到 ACC-023 完整验收证据

验收对象

/home/mes123456/cnc_wams/完善wasm/working 总体验收矩阵 ACC-001ACC-023

证据等级

P0-P5 综合证据LinuxCNC 上游基线、vendor 同步、Native probe、WASM Node、真实浏览器、OPFS/UI/Host 聚合。

命令或证据路径

工作目录:

cd /home/mes123456/cnc_wams/wasm-port

关键命令:

./tools/verify_upstream_baseline.sh
./tools/verify_vendor_sync.sh
./tools/verify_no_standalone_cnc_semantics.sh
./tests/native/verify_native_probes.sh
./tests/native/verify_nc_files.sh
./tests/native/verify_sim_configs.sh
./tests/wasm/node/verify_ini_wasm.sh
./tests/wasm/node/verify_interp_wasm.sh
./tests/wasm/node/verify_sim_configs_wasm.sh
./tests/wasm/node/verify_sim_configs_inventory_wasm.sh
./tests/wasm/node/verify_nc_files_wasm.sh
./tests/wasm/node/verify_tp_wasm.sh
./tests/wasm/node/verify_python_remap_runtime_port_wasm.sh
./tests/opfs/node/verify_file_service.sh
./tests/sdk/node/verify_python_remap_runtime_port.sh
./tests/sdk/node/verify_tool_db_node_runtime_adapter.sh
./tests/ui/node/verify_ui_node_smokes.sh
./tests/browser/verify_ini_panel_browser.sh
./tests/browser/verify_interp_browser.sh
./tests/browser/verify_python_remap_runtime_browser.sh
./tests/host/verify_host_smokes.sh

实际输出摘要

upstream baseline validation complete
vendor sync up to date
standalone CNC semantics guard complete
native probe validation complete
nc_files: total=107 pass=101 expected_fail=6 unexpected_fail=0
sim_configs native: total=159 pass=151 expected_fail=8 unexpected_fail=0
ini_wasm_node_smoke=ok
interp_wasm_node_smoke=ok
sim_configs_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=29
sim_configs_wasm_node_inventory_passed=29
sim_configs_wasm_node_inventory_skipped=130
sim_configs_wasm_node_inventory_unexpected_fail=0
nc_files_wasm_node_smoke=ok
tp_wasm_node_smoke=ok
tp_pause_resume_smoke=ok
python_remap_runtime_port_wasm=ok
python_remap_wasm_node_row_proof=ok
opfs_file_service_node_smoke=ok
sdk_python_remap_runtime_port_sh=ok
tool_db_node_runtime_adapter=ok
ui_node_smokes=ok
browser_ini_opfs_smoke=ok
browser_ini_control_page_smoke=ok
browser_ini_launch_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
browser_real_simulation_page_smoke=ok
axis_screenshot_browser_smoke=ok
browser_opfs_session_workflow_smoke=ok
browser_interp_smoke=ok
browser_python_remap_runtime_smoke=ok
python_remap_browser_row_proof=ok
host_wasm_opfs_browser_smokes=ok

verify_sim_configs_inventory_wasm.sh 仍输出 4 行 /work/sim-inventory/axis/db_demo/base.inc: Cannot open ini-file 诊断,但命令以 0 退出,最终 inventory 计数稳定为 29/29/130/0

结论

必跑命令和专项补充命令通过。ACC-001ACC-023 可按当前证据闭合Python remap、User M 外部进程、硬件驱动和实时内核仍是明确的条件通过或 Blocked 边界。

后续处理

后续解除条件边界时,必须新增任务和证据,不得直接把当前条件通过项改写为无条件 full-process 支持。

2026-07-09 初始文档创建证据

验收对象

/home/mes123456/cnc_wams/完善wasm/working 初始推进文档集。

证据等级

P5 文档结构证据。本轮不作为 LinuxCNC 核心语义通过证据。

命令或证据路径

目标文件:

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

实际输出摘要

文档已创建,任务矩阵已初始化为 ACC-001ACC-023

结论

文档体系创建完成,但 wasm-port 的 LinuxCNC 对标状态仍需从 ACC-001 开始用真实命令补证据。

后续处理

执行基线和同步命令,并将输出追加到本文件。

2026-07-09 21:55 EDT release gate 稳定性复验

本轮目标

03完全对标LinuxCNC的可执行验收标准.txt 收口 wasm-port 发布前 gate解决真实执行中暴露的 browser 截图挂起、cwd 路径漂移、Python remap proof 与 inventory/manual lock 串状态、release readiness artifact 校验漂移问题。

修复摘要

  • verify_real_simulation_axis_screenshot_browser.sh:为 headless Chrome DOM/screenshot 调用增加 timeout、独立临时 profile 和 stderr 诊断,避免截图 smoke 无限挂起。
  • verify_tool_db_process_port_wasm.mjs:改为基于测试文件位置解析 wasm-port 根目录,避免 release gate 从仓库根执行时读错 vendor 路径。
  • verify_project_release_gate.sh:补入 Python remap SDK/WASM/browser proof 与 native opt-in lifecycle probe并保证 opt-in native probe 只在 locked proof 后、生成 readiness artifact 前执行。
  • verify_native_probes.shvalidation cache 指纹加入 opt-in 环境变量,避免 default 与 opt-in native runtime summary 串状态。
  • verify_sim_configs_inventory_wasm.mjsPython remap row proof 默认只作为证据,不提升 inventory只有显式 ENABLE_PYTHON_REMAP_INVENTORY_PROMOTION=1 才允许 promotion。
  • Python remap WASM/browser proof改为幂等校验允许已有 proof artifact 重复运行,同时继续要求 execution_enabled=0manual_promotion_lock
  • verify_python_remap_runtime_browser.shcleanup 对 Chrome profile 删除竞态增加重试。
  • verify_project_release_readiness_artifact.mjs:同步当前 sim-config inventory artifact hash、promotion candidate 行数和 29/29/130/0 baseline。

最终验证输出摘要

git diff --check: ok
verify_upstream_baseline.sh: upstream baseline validation complete
verify_vendor_sync.sh: vendor sync up to date
verify_no_standalone_cnc_semantics.sh: standalone CNC semantics guard complete
verify_sim_configs_inventory_wasm.sh: executed=29 passed=29 skipped=130 unexpected_fail=0
verify_host_smokes.sh: host_wasm_opfs_browser_smokes=ok
verify_project_release_gate.sh: project_release_gate=ok
verify_project_release_readiness_artifact.sh: project_release_readiness_artifact_node_smoke=ok

结论

发布 gate 已可从头到尾收口。unexpected_fail=0Python remap row proof 可重复运行但仍保持 manual_promotion_lock,不会把 Python remap 行误提升为无条件 inventory 通过。Python remap、User M 外部进程、硬件驱动、实时内核仍按文档保持条件通过或 Blocked 边界。

2026-07-09 22:46 EDT 后续边界功能推进证据

本轮目标

继续完成 release gate 之后的运行时边界后续功能:将 Tool DB 原生 DB_PROGRAM v2.1 协议探针纳入发布门禁和 release readiness artifact保留 User M 外部进程为明确 native blocker保持 sim-config inventory 不被自动提升。

修复摘要

  • tests/native/verify_sim_configs.sh:把 axis/vismach/5axis/table-dual-rotary/demos/xyzab-tdr-demo.ngc 的 HAL named-parameter 运行态依赖和 axis/vismach/millturn/example.ngc 的外部 M129 进程依赖归入 expected runtime boundary原生 sim-config 前置恢复为 unexpected_fail=0
  • tests/native/probe_millturn_user_m_runtime.shUser M runtime probe 改用 LinuxCNC 配置实际连接的 motion.analog-out-03 切换 kinematics并增强 cleanup避免失败路径遗留 linuxcncsvr/RT 会话。
  • tests/native/verify_native_probes.sh:允许 User M opt-in runtime probe 以 runtime_state_probe_failed 作为明确 blocker 证据通过校验Tool DB/Python Remap 仍要求通过状态。
  • runtime/sdk/src/project-release-readiness.js 与 readiness 写入/校验测试Tool DB proof 现在要求 nativeProtocolReady=truesummary detail 显示 native=ready
  • tests/host/verify_project_release_gate.sh:发布门禁中的 native probe 阶段改为启用 ENABLE_TOOL_DB_RUNTIME_PROBE=1ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1,不启用 User M promotion。

最终验证输出摘要

ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 ENABLE_TOOL_DB_RUNTIME_PROBE=1 ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 ./tests/native/verify_native_probes.sh
native probe validation complete

./tests/ui/node/verify_ui_node_smokes.sh
ui_node_smokes=ok

./tests/host/verify_project_release_gate.sh
project_release_gate=ok

SKIP_INTERP_BUILD=1 ./tests/wasm/node/verify_sim_configs_inventory_wasm.sh
sim_configs_wasm_node_inventory_executed=29
sim_configs_wasm_node_inventory_passed=29
sim_configs_wasm_node_inventory_skipped=130
sim_configs_wasm_node_inventory_unexpected_fail=0

git diff --check: ok

关键产物状态

wasm-port/build/native/native-runtime-probe-summary.tsv

  • L4-USER-M-PROCESS: ready_disabled_by_default,仍需显式 ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 且当前不允许 promotion。
  • L4-TOOL-DB: runtime_protocol_probe_passedpromotion_allowed=0
  • L4-PYTHON-REMAP: runtime_lifecycle_probe_passedpromotion_allowed=0

wasm-port/build/project-release-readiness.json

  • ready=true
  • toolDbProcessProofSummary.nativeProtocolReady=true
  • pythonRemapRuntimeProofSummary.nativeLifecycleReady=true

结论

Tool DB 后续运行时边界已从设计/浏览器 proof 提升为 release gate 内的原生 DB_PROGRAM 协议 proofPython Remap 原生 lifecycle proof 保持在 gate 内User M 外部进程仍作为明确 native blocker不自动启用执行或 promotion。sim-config inventory 仍稳定为 29/29/130/0

2026-07-10 00:01 EDT 后续 Tool DB 晋级门禁闭合证据

本轮目标

继续完成后续功能:解决普通 sim-config inventory 重跑会覆盖 Tool DB opt-in native runtime proof 的问题,并把已有 Tool DB SDK/WASM/OPFS/Browser 证明链反映到 runtime boundary promotion readiness 中,但继续保持默认禁用、promotion_allowed=0 和人工晋级锁。

修复摘要

  • tests/wasm/node/verify_sim_configs_inventory_wasm.sh:增加 Tool DB native stdout 证明保留逻辑。普通 inventory 刷新 native probes 时,如果已观察到 tool_db_runtime_probe_status=runtime_protocol_probe_passedtool_db_protocol_version=v2.1、put/load/unload/persistence 状态均 OK则自动带上 ENABLE_TOOL_DB_RUNTIME_PROBE=1 重新生成 native summary避免把 Tool DB pass 证据回退成 ready_disabled_by_default
  • tests/wasm/node/verify_sim_configs_inventory_wasm.mjs:允许 Tool DB runtime probe gate 在 native protocol probe 已通过后记录 native_protocol_probe_passed_waiting_for_node_browser_proof,并保留 python3_and_tool_table_fallback_not_sufficient 说明,防止把 Python/tbl fallback 误当作 LinuxCNC DB_PROGRAM v2.1 协议证明。
  • tests/wasm/node/verify_sim_configs_inventory_wasm.mjs:同步 runtime probe gate/native summary 对齐规则,允许 native summary 的 runtime_protocol_probe_passed 与 gate 的 native_protocol_probe_passed... 状态兼容。
  • tests/wasm/node/verify_sim_configs_inventory_wasm.mjs:新增共享判定,把 L4-TOOL-DBnative_pass_ready=1native_evidence_ready=1 时视为 Node/Browser proof chain completepromotion_readyexecution_enabledpromotion_allowed 仍全部保持 0,阻断原因转为 promotion_lock_active_manual_review_required

最终验证输出摘要

SKIP_INTERP_BUILD=1 ./tests/wasm/node/verify_sim_configs_inventory_wasm.sh
sim_configs_wasm_node_inventory_executed=29
sim_configs_wasm_node_inventory_passed=29
sim_configs_wasm_node_inventory_skipped=130
sim_configs_wasm_node_inventory_unexpected_fail=0
sim_configs_wasm_node_inventory=ok

./tests/host/verify_project_release_gate.sh
tool_db_process_port_sdk=ok
tool_db_store_opfs=ok
tool_db_process_port_wasm=ok
browser_tool_db_process_smoke=ok
tool_db_process_proof=ok
project_release_readiness_artifact_node_smoke=ok
project_release_gate=ok

git diff --check: ok

关键产物状态

wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-promotion-readiness.tsv

  • L4-TOOL-DB: current_probe_status=runtime_protocol_probe_passed
  • native_pass_ready=1
  • native_evidence_ready=1
  • node_inventory_gate_complete=1
  • browser_smoke_gate_complete=1
  • promotion_lock_active=1
  • manual_lock_update_required=1
  • promotion_ready=0
  • execution_enabled=0
  • promotion_allowed=0
  • blocking_reason=promotion_lock_active_manual_review_required

wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-promotion-blockers.tsv

  • L4-TOOL-DB: blocker 只剩 promotion_lock_active,manual_lock_update_required

结论

Tool DB 后续 proof chain 已闭合到 runtime boundary readinessNative DB_PROGRAM v2.1 协议、Node/WASM、OPFS 和 Browser proof 均被 release gate 验收并反映到晋级门禁;普通 inventory 重跑不会再丢失 Tool DB native pass 证据。当前仍不自动 promotion必须人工复核并更新 promotion lock 后才能进一步放开。

2026-07-10 00:39 EDT 后续 User M 与全边界人工锁收口证据

本轮目标

继续完成剩余后续功能:把 axis/vismach/millturn/example.ngc 的 User M M128/M129 LinuxCNC-owned runtime state proof 做到 native pass并让三类运行时边界的 readiness/recommendation 都从“实现 probe”推进到“proof chain 完成,等待人工 promotion lock 复核”。

修复摘要

  • tests/native/probe_millturn_user_m_runtime.sh:改为生成临时 headless LinuxCNC INI 和 display 测试脚本,过滤 millturn_cmds.hal 中 headless 会阻塞的 hal_manualtoolchange Tk 组件,保留 LinuxCNC task/HAL runtime。
  • User M probe 在 headless LinuxCNC 中先 reset/on、home 4 个 joints再用 MDI M68 E3 Q0/Q1 切换 kinstype并以明确 INI_FILE_NAME=<headless.ini> 调用 vendored M128/M129 Tcl 脚本,验证 kinstype.is-*ini.[xyz].min_limit/max_limitini.[xyz].max_acceleration
  • User M probe 增加 stale /tmp/linuxcnc.lock 清理和 timeout --foreground,避免 LinuxCNC wrapper 的 Tk 错误窗口阻塞 CI。
  • tests/wasm/node/verify_sim_configs_inventory_wasm.sh:普通 inventory native probe 刷新会保留 User M runtime_state_probe_passed stdout 证明,和 Tool DB/Python 一样不回退为 disabled。
  • tests/wasm/node/verify_sim_configs_inventory_wasm.mjsUser M 在 native pass/evidence ready 后消费已有 SDK/UI/browser virtual HAL 状态边界 proofNode/Browser gate 标记完成;三类边界都保持 promotion_ready=0execution_enabled=0promotion_allowed=0
  • tests/wasm/node/verify_sim_configs_inventory_wasm.mjsremaining skipped-main audit 区分 not_promotable_runtime_proof_incompletenot_promotable_manual_promotion_lock_active
  • tests/wasm/node/verify_sim_configs_inventory_wasm.mjsnext-boundary-recommendations.tsv 根据 readiness 输出 manual_promotion_lock_review,不再推荐已完成的 native probe。
  • tests/host/verify_project_release_gate.shnative opt-in 阶段加入 ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1,并在 native probes 后重刷 sim-config inventory再写 release readiness artifact。

最终验证输出摘要

ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 tests/native/probe_millturn_user_m_runtime.sh
millturn_user_m_M128_runtime_state_ok=1
millturn_user_m_M129_runtime_state_ok=1
millturn_user_m_runtime_probe_status=runtime_state_probe_passed

ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 ENABLE_TOOL_DB_RUNTIME_PROBE=1 ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 ./tests/native/verify_native_probes.sh
native probe validation complete

SKIP_INTERP_BUILD=1 ./tests/wasm/node/verify_sim_configs_inventory_wasm.sh
sim_configs_wasm_node_inventory_executed=29
sim_configs_wasm_node_inventory_passed=29
sim_configs_wasm_node_inventory_skipped=130
sim_configs_wasm_node_inventory_unexpected_fail=0
sim_configs_wasm_node_inventory=ok

./tests/host/verify_project_release_gate.sh
project_release_readiness_artifact_node_smoke=ok
project_release_gate=ok

git diff --check: ok

关键产物状态

wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-promotion-readiness.tsv

  • L4-USER-M-PROCESS: runtime_state_probe_passednative/node/browser proof gate 全部为 1,只剩 promotion_lock_active=1manual_lock_update_required=1
  • L4-TOOL-DB: runtime_protocol_probe_passednative/node/browser proof gate 全部为 1,只剩人工锁。
  • L4-PYTHON-REMAP: runtime_lifecycle_probe_passednative/node/browser proof gate 全部为 1,只剩人工锁。

wasm-port/build/wasm/sim-configs-inventory/next-boundary-recommendations.tsv

  • 三条 runtime boundary recommendation 均为 manual_promotion_lock_review
  • execution_enabled=0promotion_allowed=0 保持不变。

结论

User M、Tool DB、Python Remap 三类后续运行时边界的 Native/Node/Browser proof chain 已全部闭合到 release gate 和 inventory readiness。当前没有继续推荐实现 probe 的技术 blocker剩余状态被明确收敛为人工 promotion lock 复核,不会自动启用执行或自动提升 inventory。

ACC-039 HAL Component Precompile Runtime Gate

执行命令:

cd wasm-port
./tools/build_task_hal_wasm.sh
node tests/wasm/node/verify_hal_component_precompile_manifest.mjs
node tests/wasm/node/verify_hal_component_truth_tables.mjs
node tests/wasm/node/verify_hal_component_thread_net_execution.mjs
./tests/wasm/node/verify_hal_runtime.sh
./tests/wasm/node/verify_task_hal_wasm.sh
npm --prefix ../web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
node ../web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs

关键输出:

hal_component_generation=ok
hal_component_precompile_manifest=ok
hal_component_truth_tables=ok
hal_component_thread_net_execution=ok
unknown_loadrt_component_blocked=ok
hal_component_session_reset=ok
hal_runtime_wasm_node_smoke=ok
linuxcnc_task_runtime_smoke=ok
xyzac_trt_hal_component_manifest=ok
xyzac_trt_hal_component_execution=ok
xyzac_trt_unknown_loadrt_blocked=ok
xyzbc_trt_web_app_smoke=ok
linuxcnc_task_hal_runtime_smoke=ok

证据路径:wasm-port/build/generated/hal-components/generation-report.jsonwasm-port/build/evidence/hal-component-truth-table-evidence.jsonwasm-port/runtime/manifests/hal_component_precompile_manifest.json。所有命令退出码为 0。

补充 native 回归:./tools/build_native_probes.sh 在补齐 rtapi_strlcpy/rtapi_strlcat shim 后输出 native probes complete。随后全量 verify_native_probes.sh 在非本轮组件路径 axis/.../xyzac_switchkins_test_3.ngc 出现 Bus error汇总为 150 pass / 8 expected_fail / 1 unexpected_fail;锁定上游 xyzac-trt.ini 引用 xyzac.var,但锁定源码目录不存在该文件。本轮未把该错误新增为 expected-fail也未将全量 native probe 记录为通过。

ACC-040/ACC-041 Meter-Scope 与 Host Evidence

关键通过输出:

hal_meter_evidence_schema=ok
hal_meter_evidence_items=ok
hal_scope_waveform_schema=ok
hal_scope_waveform_samples=ok
web_hal_meter_evidence=ok
web_hal_scope_waveform_evidence=ok
host_runtime_opt_in_evidence_schema=ok
host_runtime_promotion_state_machine=ok
disabled_probe_not_native_pass=ok
single_fixture_not_bulk_promotion=ok
project_release_host_promotion_separation=ok
realtime_hardware_remain_blocked=ok
web_host_runtime_opt_in_evidence=ok
web_release_host_promotion_separation=ok
compare_xyzbc_trt_status=pass

证据路径:wasm-port/build/evidence/hal-meter-evidence.jsonhal-scope-waveform-evidence.jsonhost-runtime-opt-in-evidence.json,以及目标 Web working/evidence 下同名文件、web-xyzbc-trt-evidence.jsoncompare-xyzbc-trt-evidence.json

ACC-042 Remaining Runtime Cases

interp_wasm_node_smoke=ok
multispindle_dollar_selection=ok
multispindle_g95_selection=ok
fiveaxis_inclined_drilling_program_case=ok
motion_soft_limit_drives_task_error=ok
multi_session_override_isolation=ok
gantry_dual_drive_source_evidence=ok
xyzbc_trt_web_app_smoke=ok

ACC-043/ACC-044 Motion 最终缺口与收口审计

motion_ferror_threshold_pair=ok
virtual_mpg_count_delta_response=ok
motion_hal_sync_smoke=ok
linuxcnc_task_runtime_smoke=ok

ACC-045 Native 全量回归最终收口

执行:

cd /home/mes123456/cnc_wams/wasm-port
./tests/native/verify_native_probes.sh

实际输出摘要:

upstream baseline validation complete
vendor sync up to date
standalone CNC semantics guard complete
native LinuxCNC fixture baseline up to date
sim config: total=159 pass=151 expected_fail=8 unexpected_fail=0
nc_files: total=107 pass=101 expected_fail=6 unexpected_fail=0
native probe validation complete

命令退出码为 0。该证据取代 ACC-039 时点的单个 XYZAC xyzac.var/Bus error 临时失败作为当前最终状态,但不删除历史记录。

ACC-046 04 验收口径修订与三 Session Gate

执行:

node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_session_override_gantry_evidence.mjs
cd wasm-port && ./tests/wasm/node/verify_interp_wasm.sh

输出:

multi_session_override_isolation=ok
three_session_override_isolation=ok
gantry_dual_drive_source_evidence=ok
interp_wasm_node_smoke=ok

静态证据为 LinuxCNC G10 L2 Pn R 文档/rotation tests、interp_convert.ccm-code.adocxyzac-trt.inixyzbc_switchkins.ngcboat-xyzbc.ngcboat-xyzac.ngc。04 原文功能项数量仍保持 125。

ACC-047 三解释器同步、Wrapped Rotary 与角轴限速 Gate

关键输出:

three_session_interpreter_instances=ok
three_session_g5x_rotation_isolation=ok
three_session_canonical_sync_orchestration=ok
wrapped_rotary_ini_semantics=ok
impeller_rotary_feed_segments=4066
impeller_constraint_limited_rotary_segments=6
impeller_max_requested_angular_velocity_deg_per_min=319782.8381987813
impeller_max_angular_velocity_deg_per_min=1800
impeller_ini_angular_velocity_limit_deg_per_min=1800
impeller_feed_task_hal_run=ok
xyzbc_trt_web_app_smoke=ok
sim_configs_wasm_node_smoke=ok

vendor gate 输出 vendor generated overlay validation complete: 2vendor sync validation complete。G93 timing 修复同时通过 linear_unit_conversion_smoke=ok

ACC-048 Web Software Parity Release Gate 与 Host 分离

web_software_parity_gate=ok
project_release_gate_manifest_node_smoke=ok
project_release_readiness_artifact_node_smoke=ok
ini_panel_ui_shell_node_smoke=ok
project_release_host_promotion_separation=ok
realtime_hardware_remain_blocked=ok
sdk_surface_node_smoke=ok

最终 project-release-readiness.jsonready=truemissing=[]14/14 passedweb-software-parity 使用 expected-output evidence。Tool DB proof 为 falsePython 单 fixture proof 为 trueblocked families 为 L4-USER-M-PROCESSL4-PYTHON-REMAPpromoted family 为空。修复后的 release 脚本不含任何 ENABLE_*_RUNTIME_PROBE=1

ACC-049 Wrapped Rotary 静态发布资产 Gate

gmoccapy_static_build=ok
wrapped_rotary_ini_semantics=ok
wrapped_rotary_static_assets=ok
web_software_parity_gate=ok

主 vendor、dist/configsdist/wasm-port/vendor 下三个 wrapped_rotary.ini 文件逐字节一致。

ACC-050 Web Software Parity 自包含构建 Gate

gmoccapy_static_build=ok
wrapped_rotary_static_assets=ok
web_software_parity_gate=ok
project_release_gate_manifest_node_smoke=ok

manifest test 已从仓库根和 wasm-port 两种 cwd 通过,并断言 static build 位于第一个 dist consumer 之前。

ACC-051 静态发布 Python 缓存清理 Gate

gmoccapy_static_build=ok
static_release_python_cache_count=0
static_release_hygiene=ok
web_software_parity_gate=ok

构建前检测到 2 个 cache 目录、4 个 .pyc;构建过滤后完整 dist 扫描为 0。

ACC-052 静态发布双构建可复现性 Gate

static_release_entry_count=1120
static_release_file_count=976
static_release_tree_sha256=c9c23107a84d478948b6f3c790793685942486e686370387d00dcf78b9c23183
static_release_reproducibility=ok
web_software_parity_gate=ok

ACC-053 User-M/Python Remap WASM/Web 完整移植

user_m_m128_m129_wasm_execution=ok
user_m_host_process_execution=0
python_remap_pyodide_node_runtime=ok
python_remap_queuebuster_generator=ok
python_remap_inventory_rows=53
python_remap_unique_python_sources=27
python_remap_pyodide_bulk_source_validation=ok
python_remap_pyodide_browser_runtime=ok
python_remap_queuebuster_first_yield=2
python_remap_execution_enabled=1
python_remap_promotion_allowed=1
python_remap_target_web_integration=ok
web_software_parity_gate=ok