2118 lines
82 KiB
Markdown
2118 lines
82 KiB
Markdown
# 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-D;generated 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 分层合同。
|
||
|
||
### 证据等级
|
||
|
||
P0:LinuxCNC `emctask.cc`、`emctaskmain.cc`、`tooldata_db.cc`、RTAPI/HAL/motion 和 driver 源码。
|
||
|
||
P2:native probe summary、runtime-boundary host readiness/dispatch/evidence/promotion TSV。
|
||
|
||
P3/P4:project 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 gate;host 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 落地合同。
|
||
|
||
### 证据等级
|
||
|
||
P0:LinuxCNC 五个 `.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 manifest,WASM 构建无组件 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 buffer;Web 只能按结构化 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 协议 proof;Python 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 readiness:Native 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 状态边界 proof,Node/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 为 false,Python 单 fixture proof 为 true;blocked 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
|
||
```
|