结论:L4-USER-M-PROCESS 已按 Web/virtual HAL 数控仿真主线完成接入,native LinuxCNC runtime 不再作为 Web 仿真阻塞;新增 text31.txt 接续剩余 77 个 SKIP 的 main-program promotion 复核。
228 lines
6.2 KiB
Plaintext
228 lines
6.2 KiB
Plaintext
项目接续文件:L4-USER-M-PROCESS 完成后的剩余 SKIP 复核推进
|
||
|
||
生成时间:2026-06-20 CST
|
||
|
||
本文件接替当前关于 `L4-USER-M-PROCESS` 的推进记录,用于后续继续执行:
|
||
|
||
```text
|
||
主要未完成点曾是剩余:
|
||
L4-USER-M-PROCESS=1,对应 axis/vismach/millturn/example.ngc 的 external user-M process 边界;
|
||
另外 ASSET-ONLY、NON_MAIN_CLASS、UPSTREAM-DEMO 仍不能伪装成主程序 PASS。
|
||
|
||
先做 L4-USER-M-PROCESS,完全接入 Web 数控仿真。
|
||
完成它以后,再重新评估剩余 77 个 SKIP 中哪些是真正可 promotion 的 main-program row。
|
||
```
|
||
|
||
一、当前结论
|
||
|
||
```text
|
||
L4-USER-M-PROCESS 已按当前 Web/virtual HAL 数控仿真主线完成接入。
|
||
```
|
||
|
||
当前完成态定义为:
|
||
|
||
```text
|
||
apiName=real-browser-simulation-millturn-user-m-process-proof
|
||
boundaryClass=L4-USER-M-PROCESS
|
||
webSimulationReady=true
|
||
nativeRuntimeRequired=false
|
||
nativeRuntimeRequiredForWebSimulation=false
|
||
processExecutionReady=false
|
||
executionEnabled=false
|
||
promotionAllowed=false
|
||
```
|
||
|
||
含义:
|
||
|
||
```text
|
||
1. Web/virtual HAL 已接入 millturn M429 -> M129 -> turn;
|
||
2. Web/virtual HAL 已接入 millturn M428 -> M128 -> mill;
|
||
3. 已覆盖 motion.switchkins-type、motion.analog-out-03、
|
||
kinstype.is-0 / kinstype.is-1、ini.x.* / ini.z.* limit pins;
|
||
4. 当前 Web 数控仿真不再依赖原生 LinuxCNC runtime;
|
||
5. 仍不执行 arbitrary external user-M process;
|
||
6. 仍不把 external user-M process 伪装成 native inventory promotion。
|
||
```
|
||
|
||
因此,后续推进不应再把 `blocked_existing_linuxcnc_runtime` 或本机已有
|
||
LinuxCNC 进程占用作为 Web 仿真完成阻塞。
|
||
|
||
二、下一步主任务
|
||
|
||
```text
|
||
重新评估当前剩余 77 个 SKIP 中,哪些是真正可 promotion 的 main-program row。
|
||
```
|
||
|
||
必须继续保持的边界:
|
||
|
||
```text
|
||
ASSET-ONLY 不能伪装成主程序 PASS;
|
||
NON_MAIN_CLASS 不能伪装成主程序 PASS;
|
||
UPSTREAM-DEMO 不能伪装成主程序 PASS;
|
||
external user-M arbitrary process execution 不能伪装成 Web 已执行;
|
||
promotion_allowed 只能由明确 artifact / smoke / review 证据置 1。
|
||
```
|
||
|
||
三、建议执行顺序
|
||
|
||
1. 重新生成并读取当前 sim-config inventory artifact。
|
||
|
||
优先查看:
|
||
|
||
```text
|
||
wasm-port/build/wasm/sim-configs-inventory/summary.tsv
|
||
wasm-port/build/wasm/sim-configs-inventory/skip-summary.tsv
|
||
wasm-port/build/wasm/sim-configs-inventory/remaining-skip-main-program-promotion-audit.tsv
|
||
wasm-port/build/wasm/sim-configs-inventory/promotion-candidates.tsv
|
||
wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-promotion-readiness.tsv
|
||
wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-promotion-blockers.tsv
|
||
```
|
||
|
||
推荐命令:
|
||
|
||
```bash
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
```
|
||
|
||
2. 先按分类复核 77 个 SKIP。
|
||
|
||
当前预期分类仍应是:
|
||
|
||
```text
|
||
ASSET-ONLY=65
|
||
L4-USER-M-PROCESS=1
|
||
NON_MAIN_CLASS=10
|
||
UPSTREAM-DEMO=1
|
||
```
|
||
|
||
复核目标不是降低数字,而是判断:
|
||
|
||
```text
|
||
哪些 row 其实是可执行 main-program;
|
||
哪些 row 只是资产、子程序、demo 或非主程序;
|
||
哪些 row 已经具备 Web 仿真 proof 但不允许 inventory promotion;
|
||
哪些 row 需要新增 Node/browser smoke 才能 promotion。
|
||
```
|
||
|
||
3. 对 `remaining-skip-main-program-promotion-audit.tsv` 做逐 row 判断。
|
||
|
||
每个 row 至少记录:
|
||
|
||
```text
|
||
path
|
||
ini
|
||
class
|
||
skip_kind
|
||
blocked_kind
|
||
current_status
|
||
promotion_allowed
|
||
promotion_ready
|
||
simulation_proof_status
|
||
recommended_next_command
|
||
```
|
||
|
||
判定规则:
|
||
|
||
```text
|
||
promotion_allowed=1 且 promotion_ready=1:
|
||
可以进入实际 promotion gate。
|
||
|
||
promotion_allowed=0:
|
||
只能记录阻塞原因,不能强行 PASS。
|
||
|
||
class != main:
|
||
不能作为 main-program promotion 对象。
|
||
|
||
skip_kind=ASSET-ONLY / NON_MAIN_CLASS / UPSTREAM-DEMO:
|
||
默认保持 SKIP,除非有新的 LinuxCNC-owned 主程序证据。
|
||
|
||
skip_kind=L4-USER-M-PROCESS:
|
||
Web 仿真 proof 已完成,但仍保持 external process execution disabled;
|
||
不因 Web proof 自动变成 native inventory PASS。
|
||
```
|
||
|
||
4. 若发现真正可 promotion 的 main-program row,按证据链推进。
|
||
|
||
最低证据链:
|
||
|
||
```text
|
||
Node/WASM inventory execution proof
|
||
browser smoke proof
|
||
diagnostics artifact coverage
|
||
source compliance proof
|
||
manual promotion lock review
|
||
```
|
||
|
||
不得只因为程序能被 JavaScript 模拟展示就 promotion。
|
||
|
||
四、首轮复核建议
|
||
|
||
优先检查:
|
||
|
||
```text
|
||
1. remaining-skip-main-program-promotion-audit.tsv 中 class=main 的 row;
|
||
2. promotion-candidates.tsv 中 candidate_kind=inventory-ready 的 row;
|
||
3. runtime-boundary-promotion-readiness.tsv 中 promotion_ready=1 的 row;
|
||
4. skip-summary.tsv 中 L4-USER-M-PROCESS 是否仍只剩 1;
|
||
5. ASSET-ONLY / NON_MAIN_CLASS / UPSTREAM-DEMO 是否有误分类。
|
||
```
|
||
|
||
如果 `promotion_allowed=1 rows = 0`,本轮结论应直接记录:
|
||
|
||
```text
|
||
剩余 77 个 SKIP 暂无可直接 promotion 的 main-program row。
|
||
下一步应继续补 artifact,而不是强行改 PASS。
|
||
```
|
||
|
||
如果发现 `promotion_allowed=1` 的 row,则下一步应为:
|
||
|
||
```text
|
||
1. 明确 row path / ini / gcode;
|
||
2. 补 Node inventory proof;
|
||
3. 补 browser smoke proof;
|
||
4. 补 docs/tracker;
|
||
5. 运行 release gate;
|
||
6. 再更新 baseline。
|
||
```
|
||
|
||
五、推荐验证命令
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/sdk/node/verify_sdk_surface.sh
|
||
wasm-port/tests/ui/node/verify_real_simulation_programs.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||
```
|
||
|
||
必要时再运行:
|
||
|
||
```bash
|
||
wasm-port/tests/browser/verify_interp_browser.sh
|
||
wasm-port/tests/host/verify_project_release_gate.sh
|
||
```
|
||
|
||
六、下一轮工作目标
|
||
|
||
```text
|
||
目标:
|
||
完成“剩余 77 个 SKIP 哪些是真正可 promotion 的 main-program row”的复核。
|
||
|
||
输出:
|
||
1. 当前 77 SKIP 分类确认;
|
||
2. 可 promotion row 列表;
|
||
3. 不可 promotion row 阻塞原因;
|
||
4. 下一批应实现的 Node/browser smoke;
|
||
5. 是否允许 baseline 从 PASS=82 / SKIP=77 继续变化的明确结论。
|
||
```
|
||
|
||
七、当前行动建议
|
||
|
||
```text
|
||
下一轮不要再继续纠缠 L4-USER-M-PROCESS 是否接入 Web 仿真。
|
||
它已经完成当前 Web 仿真接入。
|
||
|
||
下一轮直接进入:
|
||
remaining-skip-main-program-promotion-audit.tsv 逐 row 复核。
|
||
```
|