项目接续文件: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 复核。 ```