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

2118 lines
82 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 05-验收证据
本文件记录可复验证据。所有命令必须写明工作目录、命令、关键输出、结论。截图、PDF、页面、job_id、report_id、日志文件路径也应记录在对应任务下。
## 证据等级
| 等级 | 证据类型 | 用途 |
| --- | --- | --- |
| P0 | LinuxCNC 上游源码、上游测试、`nc_files``configs/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 检查 | 只能补充,不单独证明核心语义 |
## 记录模板
```text
## 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`、专项验证脚本。
### 命令或证据路径
```bash
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
```
实施记录:
```text
完善wasm/working/26-04-HAL-Component-P1源码同步与哈希Gate实施记录.md
```
### 实际输出摘要
```text
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 的实际失败:
```text
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。
修复后重跑:
```text
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`。确认进程全部退出后串行重跑,最终结果为:
```text
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.cc``emctaskmain.cc``tooldata_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。
### 命令或证据路径
新增蓝图:
```text
完善wasm/working/25-04-Host-Runtime-Opt-In-Promotion-Evidence-Gate落地蓝图.md
```
关键现有状态:
```text
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
```bash
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不能作为普通文档复验隐式启动。
### 实际输出摘要
```text
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=1``tool_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.11``4.16` 的 HAL 基础组件源码同步、预编译 manifest、真实执行链和 truth-table/formula gate 落地合同。
### 证据等级
P0LinuxCNC 五个 `.comp` 源码、`halcompile.g`、锁定 commit 和源码 SHA-256。
P1 缺口证据:`wasm-port/vendor/linuxcnc/src``tools/source-manifest.txt``tools/task-hal-source-manifest.txt` 当前不含五个 `.comp`
P3 实现边界证据:`build_task_hal_wasm.sh``linuxcnc_hal_runtime.cpp``verify_hal_runtime.mjs`
### 命令或证据路径
新增蓝图:
```text
完善wasm/working/24-04-HAL-Component-Precompile-Manifest-Truth-Table-Gate落地蓝图.md
```
关键源码哈希:
```text
and2 29f02d1342bae24d138bbb1387b006b97f592967b8688ccb1c6c0af451cae419
or2 c27663ce45f9562d7a5dc1b542da50ec2cc60802ef591ee729222002083a3c08
not 9fd9522627db9926d037dc0c116badce7dc880f190c6f8b85c690cbb8b638332
mux2 b75e3eeb74297d09d13052e812de53a38613ea8287522c371cc2fdaf76be3284
scale d6830d74fd3462c7b7285a9e0b37cbcd2c53d2243007a198e3f19bfed9817f4f
```
本轮执行 gate
```bash
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
```
### 实际输出摘要
```text
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
```
五个 `.comp``sha256sum` 与本节登记值逐项一致。
### 结论
静态实物复核已证明当前组件仍停在 P0五个 `.comp` 未进入 P1 vendor/source manifestWASM 构建无组件 symbol`loadrt/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兼容数控仿真平台.txt``4.13 HAL Scope``4.14 HAL Meter``10.6 HAL 信号监视``10.7 HAL Scope` 的实际 JSON evidence gate 落地合同。
### 证据等级
P0 静态源码证据LinuxCNC `src/hal/utils/meter.c``src/hal/utils/scope.c``scope_rt.c``scope_shm.h``scope_usr.h``docs/src/hal/halscope.adoc``docs/src/man/man1/halmeter.1.adoc``docs/src/man/man1/halscope.1.adoc`
P3/P4 现有 Web/WASM 证据:`wasm-port` HAL runtime snapshot gate、目标 Web 项目 gmoccapy HAL model gate、目标 Web 项目 evidence JSON 顶层字段检查。
### 命令或证据路径
新增结构化蓝图文件:
```text
完善wasm/working/23-04-HAL-Meter-Scope-JSON-Evidence-Gate落地蓝图.md
```
本轮复核引用的关键实现路径:
```text
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
```
字段存在性检查:
```bash
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
```
实际输出摘要:
```text
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
```bash
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
```
### 实际输出摘要
```text
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 落地蓝图已闭合到 `23``ACC-035/INT-022` 可标为完成;当前仍不能把 HAL Scope/Meter 宣称为完整通过,后续必须按 `23` 补实际 JSON evidence、Node gate、Web evidence 和 compare 字段。
### 后续处理
下一轮优先实现 `hal_meter_evidence``hal_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/task``src/emc/motion``src/emc/tp``src/hal``configs/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。
### 命令或证据路径
新增结构化复核文件:
```text
完善wasm/working/22-04-Full-Process-Realtime-Runtime-Proof实现缺口复核.md
```
本轮复核引用的关键实现路径:
```text
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
```
源码/实现复核:
```bash
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
```
实际输出摘要:
```text
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
```bash
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
```
### 实际输出摘要
```text
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 失败:
```text
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
```
处理方式:
```text
恢复文件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。
```
重跑输出:
```text
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 实现缺口已闭合到 `22``ACC-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兼容数控仿真平台.txt``4.7 and2``4.8 or2``4.9 not``4.10 mux2``4.11 scale``4.16 loadrt` 的预编译组件 manifest 和 truth-table/formula gate 实现状态。
### 证据等级
P0 静态源码证据LinuxCNC `src/hal/components/and2.comp``or2.comp``not.comp``mux2.comp``scale.comp`
P3/P4 现有 Web/WASM 证据:`wasm-port` HAL runtime gate、目标 Web 项目 native evidence 中的 `loadrt mux2`/`loadrt scale` HAL 文件行。
### 命令或证据路径
新增结构化复核文件:
```text
完善wasm/working/21-04-HAL-Component-Precompile-Manifest实现缺口复核.md
```
本轮复核引用的 LinuxCNC 源码路径:
```text
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
```
组件源码复核:
```bash
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
```
实际输出摘要:
```text
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
```
实现缺口复核:
```bash
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
```
实际输出摘要:
```text
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
```
计数检查:
```bash
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
```bash
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
```
实际输出摘要:
```text
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_manifest``verify_hal_component_precompile_manifest.mjs``verify_hal_component_truth_tables.mjs`
- 当前 HAL runtime gate 可证明 pin/signal/param/net/thread 和 `loadrt` 事件边界,但不能证明 `and2/or2/not/mux2/scale` 组件函数执行。
- 目标 Web native evidence 中存在 `loadrt mux2``loadrt scale``addf` 行,说明 LinuxCNC 原生配置使用这些组件,但不能替代 WASM/Web truth-table/formula gate。
### 结论
HAL component precompile manifest 实现缺口已闭合到 `21``ACC-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兼容数控仿真平台.txt``4.13 HAL Scope``4.14 HAL Meter``10.6 HAL 信号监视``10.7 HAL Scope` 的 JSON gate 实现状态。
### 证据等级
P0 静态源码证据LinuxCNC `src/hal/utils/meter.c``src/hal/utils/scope*.c``scope_shm.h``scope_usr.h``docs/src/man/man1/halmeter.1.adoc``docs/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` 字段。
### 命令或证据路径
新增结构化复核文件:
```text
完善wasm/working/20-04-HAL-Scope-Meter-JSON-Gate实现缺口复核.md
```
本轮复核引用的 LinuxCNC 源码/文档路径:
```text
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
```
实现缺口复核:
```bash
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'))"
```
实际输出摘要:
```text
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
```
计数检查:
```bash
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
```bash
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
```
实际输出摘要:
```text
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.mjs``verify_hal_scope_waveform_evidence.mjs`
- 当前目标 Web evidence 未见 `hal_meter_evidence``hal_scope_waveform_evidence` 顶层字段。
- `verify_gmoccapy_hal_model.mjs` 可以证明 gmoccapy HAL model、pin group、core/spindle/postgui net 和硬按钮映射,但不能替代 HAL Meter/Scope JSON gate。
- `halGraph``halNets``pyvcpPostgui` 可作为 HAL 监视模型证据,不能作为 `halscope` waveform 或 `halmeter` 当前值完整证据。
### 结论
HAL Scope/Meter JSON gate 实现缺口已闭合到 `20``ACC-032/INT-019` 可标为完成;后续若要把 04 的 `4.13``4.14``10.7` 从条件通过/待实现 gate 晋级,必须新增并通过 `hal_meter_evidence``hal_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兼容数控仿真平台.txt``4.7 and2``4.8 or2``4.9 not``4.10 mux2``4.11 scale``4.16 loadrt``6.5 自定义运动学``6.6 并联运动学`
### 证据等级
P0 静态源码证据LinuxCNC `src/hal/components/*.comp``src/hal/hal_lib.c``src/rtapi``src/emc/kinematics`
P1/P3 现有 Web/WASM 证据:`wasm-port/tools/source-manifest.txt``wasm-port/docs/source-reuse-map.md``verify_hal_runtime.sh``verify_kinematics_wasm.sh`
### 命令或证据路径
新增结构化复核文件:
```text
完善wasm/working/19-04动态加载与预编译Manifest复核.md
```
本轮复核引用的 LinuxCNC 源码路径:
```text
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 复核:
```bash
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
```
实际输出摘要:
```text
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
```
计数检查:
```bash
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
```bash
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
```
实际输出摘要:
```text
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
```
### 实际输出摘要
- `and2``or2``not``mux2``scale` 的 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 复核已闭合到 `19``ACC-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兼容数控仿真平台.txt``2.8 五轴联动专项` 的范围差异,重点覆盖 `8.1``8.2``8.3``8.6``8.7``8.8``8.9``8.10`
### 证据等级
P0 静态源码/配置证据LinuxCNC `configs/sim/axis/vismach/5axis``src/emc/kinematics/xyzbc-trt-kins.c``xyzac-trt-kins.c``trtfuncs.c``xyzbc-trt.ini``xyzac-trt.ini``xyzab-tdr.ini` 和五轴 demo G-code。
P3 运行证据:`xyzbc-trt` Node smoke、profile boundary、real LinuxCNC five-axis program cases、impeller feed/task-HAL gate。
### 命令或证据路径
新增结构化复核文件:
```text
完善wasm/working/18-04五轴范围差异与代表应用复核.md
```
本轮复核引用的 LinuxCNC 源码/配置路径:
```text
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
```
计数检查:
```bash
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
```
实际输出:
```text
w04_numbered_items=125
binding_rows=125
```
基线和默认代表应用:
```bash
cd wasm-port && ./tools/verify_upstream_baseline.sh
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
```
实际输出摘要:
```text
upstream baseline validation complete
xyzbc_trt_web_app_smoke=ok
```
五轴范围专项 gate
```bash
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
```
实际输出摘要:
```text
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
```
格式检查:
```bash
git diff --check -- 完善wasm/working gptlog-process/gpdlog.md
```
实际输出:无输出。
### 实际输出摘要
- 默认 `xyzbc-trt` 代表应用覆盖 `XYZBC`、B/C 轴、`xyzbc_switchkins.ngc``boat-xyzbc.ngc` 和相关 task-HAL/semantic path。
- `xyzac-trt``gmoccapy-xyzac-trt``gmoccapy-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.ngc`8.8 需要修订为存在的上游 G-code 或补充 fixture 来源。
- 04 写的 A 轴 `±120°` 未在 `xyzac-trt.ini``xyzab-tdr.ini` 中得到证实,需要修订或指定真实配置。
### 结论
五轴范围差异复核已闭合到 `18``ACC-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兼容数控仿真平台.txt``4.13 HAL Scope``4.14 HAL Meter``10.7 HAL Scope` 的 LinuxCNC 源码归属、Web 等效边界和结构化 evidence 要求。
### 证据等级
P0 静态源码/文档证据LinuxCNC `src/hal/utils/scope*``docs/src/hal/halscope.adoc``docs/src/man/man1/halscope.1.adoc``docs/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。
### 命令或证据路径
新增结构化复核文件:
```text
完善wasm/working/17-04-HAL-Scope-Meter结构化证据复核.md
```
本轮复核引用的 LinuxCNC 源码/文档路径:
```text
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 证据入口:
```text
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
```
计数检查:
```bash
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
```
实际输出:
```text
w04_numbered_items=125
binding_rows=125
```
基线和代表应用 smoke
```bash
cd wasm-port && ./tools/verify_upstream_baseline.sh
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
```
实际输出摘要:
```text
upstream baseline validation complete
xyzbc_trt_web_app_smoke=ok
```
格式检查:
```bash
git diff --check -- 完善wasm/working gptlog-process/gpdlog.md
```
实际输出:无输出。
### 实际输出摘要
- `4.13 HAL Scope`LinuxCNC 原生 `halscope` 为用户态 GUI 加 `scope_rt` 实时 HAL 组件,具备采样周期、记录长度、触发和多通道 waveform bufferWeb 只能按结构化 waveform evidence 条件对标。
- `4.14 HAL Meter`LinuxCNC 原生 `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 的源码边界复核已闭合到 `17``ACC-029/INT-016` 可标为完成;后续实现层仍需补 `hal_meter_evidence``hal_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 证据索引。
### 命令或证据路径
```bash
git -C /home/mes123456/cnc_wams/linuxcnc rev-parse HEAD
```
实际输出:
```text
60597ee0718873d2449058c824262a275e5e4bad
```
代表 Web 应用 Node smoke
```bash
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
```
实际输出摘要:
```text
xyzbc_trt_web_app_smoke=ok
```
新增证据文件:
```text
完善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
```
引用的底层证据入口:
```text
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-port``xyzbc-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:browser``smoke:buttons``evidence:web``evidence:compare`
## 2026-07-10 05:56 EDT ACC-025 04 验收文档任务纳入对标矩阵证据
### 验收对象
`完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt``完善wasm/working` 任务体系的对齐。
### 证据等级
P0-P1 静态证据04 文档内容、LinuxCNC commit、working 文档映射。
### 命令或证据路径
```bash
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
```
关键输出摘要:
```text
15602 完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
60597ee0718873d2449058c824262a275e5e4bad
04 文档包含系统体系结构、2.1 到 2.10 模块、125 个功能项、3 个受限项和最终验收结论。
```
补充验证命令:
```bash
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
```
补充验证输出:
```text
upstream baseline validation complete
xyzbc_trt_web_app_smoke=ok
git diff --check: no output, exit 0
```
新增证据文件:
```text
完善wasm/working/13-04验收文档任务对标矩阵.md
```
### 实际输出摘要
- 04 文档已补齐,不再是空文件。
- 04 文档中的功能模块已转换为 `W04-ARCH``W04-INTP``W04-TASK``W04-MOTION``W04-HAL``W04-MULTI``W04-KINS``W04-SPINDLE-TOOL``W04-5AXIS``W04-OPFS``W04-UI` 任务包。
- 04 的 3 个受限项 `loadrt` 动态加载、自定义运动学运行时加载、并联运动学已在 `13` 中保持条件通过或 Blocked 口径。
- `INT-013` 已登记为后续逐项 evidence 绑定任务。
### 结论
04 文档已纳入 working 任务体系,但其“通过/100%”表述不能单独作为最终验收证据。后续必须完成 125 项逐行绑定后,才能将 W04 任务升级为完成。
### 后续处理
继续执行:
```text
INT-013: 04 文档 125 项逐项 evidence 绑定
```
## 2026-07-10 07:54 EDT ACC-026 04 文档 125 项逐项源码证据绑定表证据
### 验收对象
04 文档中 125 个编号功能项的逐项源码/证据绑定。
### 证据等级
P0-P1 静态证据04 文档编号行、LinuxCNC 源码/资产路径、working 逐项绑定表。
### 命令或证据路径
```bash
awk 'BEGIN{FS="\t"} /^[0-9]+\.[0-9]+\t/ {print NR ":" $0}' \
/home/mes123456/cnc_wams/完善wasm/04基于Web的LinuxCNC兼容数控仿真平台.txt
```
关键输出摘要:
```text
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 项
```
一致性与最小验证:
```bash
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
```
输出:
```text
w04_numbered_items=125
binding_rows=125
upstream baseline validation complete
xyzbc_trt_web_app_smoke=ok
git diff --check: no output, exit 0
```
新增证据文件:
```text
完善wasm/working/14-04-125项逐项源码证据绑定表.md
```
### 实际输出摘要
- `14` 已为 04 的 125 个功能项逐项记录 LinuxCNC 源码/资产归属、最小 gate/evidence 和严格状态。
- `INT-013` 已从“待复验”更新为“已有证据”,但不是无条件 125/125 通过。
- 缺口项已集中为04 语法口径需复核、full-process/realtime、HAL Scope/Meter、动态加载/预编译、多通道、五轴范围差异。
### 结论
逐项绑定表已完成。下一步是按 `14` 的缺口汇总补运行证据,而不是继续创建索引。
### 后续处理
优先补充:
```text
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 复核文件。
### 命令或证据路径
```bash
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
```
关键输出摘要:
```text
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 速度模式证据
```
新增证据文件:
```text
完善wasm/working/15-04语法口径源码复核.md
```
### 结论
04 语法口径首轮复核已完成。1.40、1.41 需修订7.3、8.4、8.5 为部分成立。后续不能按 04 原文把 `G68/G69``G51.1/G50.1``G43.4``M18` 速度模式宣称为本地 LinuxCNC 已支持项。
### 本轮最小验证
```bash
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
```
输出:
```text
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。
### 命令或证据路径
```bash
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
```
关键输出摘要:
```text
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
```
新增证据文件:
```text
完善wasm/working/16-04多通道源码边界复核.md
```
### 结论
04 多通道首轮源码边界复核已完成。5.1、5.3、5.5 可作为 multi-session 条件目标5.2 的“三通道”数量口径未被本地 LinuxCNC 源码证实5.4 需要新增每 session 独立倍率 gate。后续不得按 04 原文把多通道 5/5 宣称为当前无条件通过。
### 本轮最小验证
```bash
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
```
输出:
```text
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-001``ACC-023` 的继续复验,重点覆盖 `configs/sim` WASM inventory、User-M 外部进程边界审计、真实浏览器和 host 聚合验收。
### 证据等级
P1-P5 综合证据vendor 同步、自研语义 guard、Native、WASM Node、OPFS、UI Node、真实浏览器、host 聚合和专项边界 proof。
### 命令或证据路径
工作目录:
```bash
cd /home/mes123456/cnc_wams/wasm-port
```
本轮实际执行命令:
```bash
./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
```
失败修复证据:
```text
首次失败: 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 通过
```
生成审计文件:
```text
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
```
### 实际输出摘要
```text
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-001``ACC-023` 的完成后复验。
### 证据等级
P1-P5 综合复验证据vendor 同步、自研语义 guard、Native、WASM Node、OPFS、UI Node、真实浏览器、host 聚合和专项补充验证。
### 命令或证据路径
工作目录:
```bash
cd /home/mes123456/cnc_wams/wasm-port
```
本轮实际执行命令:
```bash
./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
```
### 实际输出摘要
```text
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=0``ACC-001``ACC-023` 的完成/条件通过结论仍成立。
### 后续处理
保持 Python remap、User M 外部进程、硬件驱动、实时内核等条件边界,不把这些项宣称为无条件 full-process 支持。
## 必跑命令清单
发布前至少需要补齐以下命令证据:
```bash
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-001``ACC-023`
### 证据等级
P0-P5 综合证据LinuxCNC 上游基线、vendor 同步、Native probe、WASM Node、真实浏览器、OPFS/UI/Host 聚合。
### 命令或证据路径
工作目录:
```bash
cd /home/mes123456/cnc_wams/wasm-port
```
关键命令:
```bash
./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
```
### 实际输出摘要
```text
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-001``ACC-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-001``ACC-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.sh`validation cache 指纹加入 opt-in 环境变量,避免 default 与 opt-in native runtime summary 串状态。
- `verify_sim_configs_inventory_wasm.mjs`Python remap row proof 默认只作为证据,不提升 inventory只有显式 `ENABLE_PYTHON_REMAP_INVENTORY_PROMOTION=1` 才允许 promotion。
- Python remap WASM/browser proof改为幂等校验允许已有 proof artifact 重复运行,同时继续要求 `execution_enabled=0``manual_promotion_lock`
- `verify_python_remap_runtime_browser.sh`cleanup 对 Chrome profile 删除竞态增加重试。
- `verify_project_release_readiness_artifact.mjs`:同步当前 sim-config inventory artifact hash、promotion candidate 行数和 29/29/130/0 baseline。
### 最终验证输出摘要
```text
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=0`Python 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.sh`User 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=true`summary detail 显示 `native=ready`
- `tests/host/verify_project_release_gate.sh`:发布门禁中的 native probe 阶段改为启用 `ENABLE_TOOL_DB_RUNTIME_PROBE=1``ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1`,不启用 User M promotion。
### 最终验证输出摘要
```text
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_passed``promotion_allowed=0`
- `L4-PYTHON-REMAP`: `runtime_lifecycle_probe_passed``promotion_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_passed``tool_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-DB``native_pass_ready=1``native_evidence_ready=1` 时视为 Node/Browser proof chain complete`promotion_ready``execution_enabled``promotion_allowed` 仍全部保持 `0`,阻断原因转为 `promotion_lock_active_manual_review_required`
### 最终验证输出摘要
```text
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_limit``ini.[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.mjs`User M 在 native pass/evidence ready 后消费已有 SDK/UI/browser virtual HAL 状态边界 proofNode/Browser gate 标记完成;三类边界都保持 `promotion_ready=0``execution_enabled=0``promotion_allowed=0`
- `tests/wasm/node/verify_sim_configs_inventory_wasm.mjs`remaining skipped-main audit 区分 `not_promotable_runtime_proof_incomplete``not_promotable_manual_promotion_lock_active`
- `tests/wasm/node/verify_sim_configs_inventory_wasm.mjs``next-boundary-recommendations.tsv` 根据 readiness 输出 `manual_promotion_lock_review`,不再推荐已完成的 native probe。
- `tests/host/verify_project_release_gate.sh`native opt-in 阶段加入 `ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1`,并在 native probes 后重刷 sim-config inventory再写 release readiness artifact。
### 最终验证输出摘要
```text
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_passed`native/node/browser proof gate 全部为 `1`,只剩 `promotion_lock_active=1``manual_lock_update_required=1`
- `L4-TOOL-DB`: `runtime_protocol_probe_passed`native/node/browser proof gate 全部为 `1`,只剩人工锁。
- `L4-PYTHON-REMAP`: `runtime_lifecycle_probe_passed`native/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=0``promotion_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
执行命令:
```bash
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
```
关键输出:
```text
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.json``wasm-port/build/evidence/hal-component-truth-table-evidence.json``wasm-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
关键通过输出:
```text
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.json``hal-scope-waveform-evidence.json``host-runtime-opt-in-evidence.json`,以及目标 Web `working/evidence` 下同名文件、`web-xyzbc-trt-evidence.json``compare-xyzbc-trt-evidence.json`
## ACC-042 Remaining Runtime Cases
```text
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 最终缺口与收口审计
```text
motion_ferror_threshold_pair=ok
virtual_mpg_count_delta_response=ok
motion_hal_sync_smoke=ok
linuxcnc_task_runtime_smoke=ok
```
## ACC-045 Native 全量回归最终收口
执行:
```bash
cd /home/mes123456/cnc_wams/wasm-port
./tests/native/verify_native_probes.sh
```
实际输出摘要:
```text
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
执行:
```bash
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
```
输出:
```text
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.cc``m-code.adoc``xyzac-trt.ini``xyzbc_switchkins.ngc``boat-xyzbc.ngc``boat-xyzac.ngc`。04 原文功能项数量仍保持 125。
## ACC-047 三解释器同步、Wrapped Rotary 与角轴限速 Gate
关键输出:
```text
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: 2``vendor sync validation complete`。G93 timing 修复同时通过 `linear_unit_conversion_smoke=ok`
## ACC-048 Web Software Parity Release Gate 与 Host 分离
```text
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.json``ready=true``missing=[]``14/14 passed``web-software-parity` 使用 expected-output evidence。Tool DB proof 为 falsePython 单 fixture proof 为 trueblocked families 为 `L4-USER-M-PROCESS``L4-PYTHON-REMAP`promoted family 为空。修复后的 release 脚本不含任何 `ENABLE_*_RUNTIME_PROBE=1`
## ACC-049 Wrapped Rotary 静态发布资产 Gate
```text
gmoccapy_static_build=ok
wrapped_rotary_ini_semantics=ok
wrapped_rotary_static_assets=ok
web_software_parity_gate=ok
```
主 vendor、`dist/configs``dist/wasm-port/vendor` 下三个 `wrapped_rotary.ini` 文件逐字节一致。
## ACC-050 Web Software Parity 自包含构建 Gate
```text
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
```text
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
```text
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 完整移植
```text
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
```