项目整体完成情况与后续执行计划 生成时间:2026-06-11 CST 本文件接替 `text4.txt`。后续工作按 `text5.txt` 执行;除非本文件被更新, 不要再回到 `text1/text2/text3/text4` 的旧计划扩展范围。 一、项目纪律 1. LinuxCNC 仍是唯一 CNC 语义来源。 G-code、remap、tool、parameter、planner、kinematics、user-M、tool DB、 Python remap 等语义必须来自 LinuxCNC upstream 或 vendored LinuxCNC C/C++/配置/脚本源码。 2. 本项目允许实现的范围是: build、source sync、runtime shim、filesystem staging、OPFS、WASM/browser boundary、测试胶水、文档、机器可读 gate/artifact。 3. 禁止事项: - 不在 JS 中重写 G-code 或 CNC 语义。 - 不修改 vendored LinuxCNC 源文件来让测试通过。 - 不把 full-process/HAL/UI/Python/tool DB 依赖伪装成 standalone pass。 - 不把 expected failure 硬改成 pass,除非已经有 LinuxCNC-owned runtime proof,并且 native、Node、browser gate 都按顺序通过。 4. browser 不能依赖目录枚举。Node/browser staging 继续使用 `tools/source-manifest.txt`、INI 文本和 SDK staging helper 生成计划。 二、当前整体完成情况 1. WASM port 基础架构已成型。 `wasm-port` 已按独立移植工作区组织,包含 vendor、runtime/core、 runtime/sdk、runtime/opfs、runtime/ui、native/wasm/browser tests、docs 和 tools。`linuxcnc/` 作为 upstream source tree 使用,不在原地修改。 2. G-code file execution 状态输出已完成第一阶段。 已有 `run_step` 机器可解析输出: - 当前 line; - 当前 statement_uri; - read/execute phase 与 step; - X/Y/Z/A/B/C/U/V/W 轴位置; - UI 优先解析 run_step,fallback 到 canonical motion event。 3. `linuxcnc/nc_files` 基础测试已固化。 当前 Layer 1 基线: - 命令:`wasm-port/tests/native/verify_nc_files.sh` - 结果:`total 107, pass 101, expected_fail 6, unexpected_fail 0` - `3D_Chips.ngc` 等代表程序已纳入 context-aware smoke。 4. `linuxcnc/configs/sim` native strict harness 已建立。 当前 Layer 2 基线: - 命令:`wasm-port/tests/native/verify_sim_configs.sh` - 结果:`total 159, pass 151, expected_fail 8, unexpected_fail 0` - class 统计: - `main 48` - `macro_load 46` - `remap_subroutine 65` - 8 个 expected failure 当前归因清楚: - `axis/foam/foam.ngc`:native standalone 缺 U/V axis context; - bridge-mill `5axisgui.ngc`:native standalone 缺 W axis context; - `axis/geometry/xyzc.ngc`:native standalone 缺 M110 USER_M_PATH runtime; - `axis/external_offsets/*.ngc`:native standalone 缺 M111 USER_M_PATH runtime; - `incremental_repetition_g533.ngc`:保留 upstream demo edge。 5. `configs/sim` 覆盖矩阵已完成当前定义。 已有 tracked matrix: - `wasm-port/docs/sim-configs-coverage-matrix.md` 已有 native generated artifacts: - `wasm-port/build/native/sim-configs/summary.tsv` - `wasm-port/build/native/sim-configs/class-summary.tsv` - `wasm-port/build/native/sim-configs/path-matrix.tsv` 159 条记录已映射到 class、native status、expected failure、Layer 3/4 coverage、blocked dependency 或非目标分类。 6. INI-context staging helper 已制度化。 `planIniFileContextStaging()` 和 `planSimConfigStaging()` 已负责根据 INI 与 manifest 收集: - `[DISPLAY]OPEN_FILE` - `[EMCIO]TOOL_TABLE` - `[RS274NGC]PARAMETER_FILE` - `[RS274NGC]SUBROUTINE_PATH` - `[RS274NGC]USER_M_PATH` - remap-NGC files 这些 helper 只做 host/filesystem staging plan,不读写 CNC 语义。 7. Node WASM sim-config inventory 已完成当前阶段。 当前 Node inventory: - `executed 28` - `passed 28` - `skipped 131` - `unexpected_fail 0` 当前 skip/block 汇总: - `ASSET-ONLY 65` - `L4-PYTHON-REMAP 53` - `L4-TOOL-DB 1` - `L4-USER-M-PROCESS 1` - `NON_MAIN_CLASS 10` - `UPSTREAM-DEMO 1` 8. HAL/UI/full-process boundary classifier 与 gate 已完成当前阶段。 SDK 已能识别并记录: - HAL/HALUI/UI process declarations; - Python UI/DB/remap declarations; - `[EMCIO]DB_PROGRAM` tool DB process; - `[RS274NGC]USER_M_PATH` 与 unstaged external user-M process calls; - L4 hard blocked recommendation。 9. 当前三个 hard blocked runtime family 已有非执行 proof/gate/artifact。 仍 blocked,不允许 promotion: - `L4-USER-M-PROCESS`: `axis/vismach/millturn/example.ngc` - `L4-TOOL-DB`: `axis/db_demo/base.ngc` - `L4-PYTHON-REMAP`: `axis/remap/stop-lookahead/nc_files` 作为最小生命周期 fixture 10. blocked runtime host readiness 当前状态。 当前 host 不具备执行 blocked runtime opt-in probes 的条件: - 缺 `halcmd` - 缺 `halrun` - 缺 `linuxcnc` - 缺 `milltask` 当前 rollup: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 11. 当前工作区状态说明。 已有未提交改动: - `text4.txt` - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/tests/browser/verify_interp_browser.sh` - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` 本文件只新增 `text5.txt`,不回退这些既有改动。 三、当前必须保持通过的验证入口 每一批后续改动后,至少运行: ```bash git diff --check wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 涉及 native baseline 或大范围 source/staging 改动时,再运行: ```bash wasm-port/tests/native/verify_nc_files.sh wasm-port/tests/native/verify_sim_configs.sh wasm-port/tests/native/verify_native_probes.sh ``` 通过条件: - `git diff --check` clean。 - vendor sync 通过。 - no-standalone-CNC-semantics guard 通过。 - Node/browser smoke 通过。 - Layer 1 保持 `107 / 101 / expected_fail 6 / unexpected_fail 0`。 - Layer 2 保持 `159 / 151 / expected_fail 8 / unexpected_fail 0`,除非有新的 LinuxCNC-owned proof 和文档同步说明。 - Node inventory 保持 `unexpected_fail 0`。 - blocked runtime rows 保持 `execution_enabled=0` 和 `promotion_allowed=0`, 直到 gate 明确允许。 四、后续执行顺序 1. 先稳定当前大批改动,形成可审查状态 目标: - 不继续扩大测试面。 - 先确认当前 23 个 boundary/gate 批次、browser smoke 改动和 Node inventory 改动可以稳定复跑。 - 把当前工作集整理成可审查边界。 执行命令: ```bash git diff --check git status --short git diff --stat git diff --name-only wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 产出: - 记录当前所有改动文件。 - 按审查 batch 归类: - Batch A:browser smoke gate/schema 扩展; - Batch B:Node sim-config inventory artifact/gate 扩展; - Batch C:`text4.txt` 边界记录; - Batch D:`text5.txt` 后续执行计划。 - 如果某个验证失败,优先修当前批次的 test/gate drift,不新增功能。 2. 对 `text4` 后半段新增 gate 做文档对账 目标: - 确认 `text4.txt` 中 Batch 15 到 Batch 23 的新增 artifact,都在 `docs/compatibility-validation.md` 或 `docs/sim-configs-coverage-matrix.md` 中有对应说明。 - 文档不能只记录“生成了文件”,还要记录该 artifact 的 promotion 含义: non-executing、non-promoting、blocked until host/runtime/native proof。 重点对账 artifact: ```text runtime-boundary-host-preflight.tsv runtime-boundary-host-requirement-summary.tsv runtime-boundary-host-unblock-plan.tsv runtime-boundary-family-host-readiness.tsv runtime-boundary-host-readiness-rollup.tsv runtime-boundary-opt-in-probe-dispatch-plan.tsv runtime-boundary-opt-in-probe-dispatch-rollup.tsv runtime-boundary-opt-in-probe-skip-evidence-contract.tsv runtime-boundary-opt-in-probe-skip-evidence-rollup.tsv ``` 验证: ```bash wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 3. 固化 blocked runtime host preflight 的人工检查流程 目标: - 后续换到具备 LinuxCNC host runtime 的机器时,可以先跑 preflight/rollup, 再决定是否允许执行 opt-in native probes。 - 当前机器继续保持 blocked,不运行 opt-in probe。 当前缺失: ```text halcmd halrun linuxcnc milltask ``` 当前禁止直接执行: ```bash ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_millturn_user_m_runtime.sh ENABLE_TOOL_DB_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_tool_db_runtime.sh ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_python_remap_runtime.sh ``` 只有当对应 gate 显示 `runtime_ready=1`,并且 dispatch plan 显示 `dispatch_allowed=1` 时,才允许人工 opt-in 执行。 执行时仍然不能自动 promotion。native pass 后还必须经过: 1. native pass evidence contract; 2. Node inventory gate; 3. browser smoke gate; 4. manual promotion lock update; 5. 文档和 coverage matrix 同步。 4. 第一个可推进 blocked runtime:millturn M128/M129 前置条件: - host 具备 `tclsh`、`halrun`、`halcmd`、`linuxcnc`。 - `user-m-process-native-runtime-probe-gate.tsv` 报告 `runtime_ready=1`。 - `runtime-boundary-opt-in-probe-dispatch-plan.tsv` 对 `L4-USER-M-PROCESS` 报告可 dispatch。 执行目标: - 用 LinuxCNC-owned Tcl/HAL runtime 证明 `M128/M129` 过程脚本真实更新 `ini.[xyz].*` HAL pins。 - 证明 `M428 -> M128` 和 `M429 -> M129` transition contract。 - 不把该行为降级成 canonical user-M event。 允许执行的 opt-in 命令: ```bash ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_millturn_user_m_runtime.sh ``` native pass 期望: ```text runtime_state_probe_passed millturn_user_m_M128_runtime_state_ok=1 millturn_user_m_M129_runtime_state_ok=1 ``` 后续要求: - 更新 native evidence artifact。 - 更新 Node inventory gate。 - 只在 Node proof 通过后,再考虑 browser/sdkwasm narrow boundary。 - 不声明 full LinuxCNC task/HAL/UI process coverage。 5. 第二个可推进 blocked runtime:tool DB process 前置条件: - host 具备 `python3`、`linuxcnc`、`milltask`、`halcmd`。 - `tool-db-process-native-runtime-probe-gate.tsv` 报告 `runtime_ready=1`。 - dispatch plan 对 `L4-TOOL-DB` 报告可 dispatch。 执行目标: - 证明 LinuxCNC `DB_PROGRAM` v2.1 protocol: - startup handshake; - `g` get-all; - `p` put/update; - `l` load; - `u` unload; - persistence state。 - 禁止用 `.tbl` fallback 冒充 DB_PROGRAM coverage。 允许执行的 opt-in 命令: ```bash ENABLE_TOOL_DB_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_tool_db_runtime.sh ``` native pass 期望: ```text runtime_protocol_probe_passed tool_db_protocol_version=v2.1 tool_db_runtime_protocol_probe_ok=1 tool_db_persistence_state_ok=1 ``` 6. 第三个可推进 blocked runtime:Python remap lifecycle 前置条件: - host 具备 `python3` 和 `linuxcnc`。 - `python-remap-native-runtime-probe-gate.tsv` 报告 `runtime_ready=1`。 - dispatch plan 对 `L4-PYTHON-REMAP` 报告可 dispatch。 执行目标: - 先只做最小 fixture: `axis/remap/stop-lookahead/nc_files` - 证明 LinuxCNC Python remap runtime lifecycle: - demo.ini path/toplevel import; - callable lookup; - generator return; - first `INTERP_EXECUTE_FINISH` yield。 - 不把 53 个 Python-remap family 直接提升到 browser/full inventory。 允许执行的 opt-in 命令: ```bash ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_python_remap_runtime.sh ``` native pass 期望: ```text runtime_lifecycle_probe_passed python_remap_lifecycle_generator_first_yield=2 python_remap_runtime_lifecycle_probe_ok=1 ``` 7. native pass 后的 promotion 顺序 任何 blocked runtime family 即使 native opt-in probe 通过,也必须按下面顺序推进: 1. pass evidence contract 变为 ready; 2. `runtime-probe-gate-alignment.tsv` 对齐; 3. `runtime-boundary-promotion-readiness.tsv` 更新; 4. Node inventory 新增 narrow proof,但 blocked row 不能直接变成 broad REP; 5. browser smoke 只补 narrow boundary proof; 6. 手动更新 promotion lock; 7. 更新: - `docs/compatibility-validation.md` - `docs/full-process-boundary-design.md` - `docs/sim-configs-coverage-matrix.md` - `text5.txt` 8. 继续 upstream intake 的条件 只有当前工作集稳定,并且 blocked runtime gate 没有 drift 后,才允许继续小批量 引入 upstream `tests/interp/*` 或 `tests/ccomp/*`。 候选原则: - 优先 pure interpreter file execution。 - 需要 INI/tool/parameter/subroutine/user-M context 的,必须通过 staging helper。 - Python remap、MDI/UI/full-process、HAL/task/linuxcncrsh 默认 blocked。 - 每个 intake 必须先 native,再 Node WASM,再 browser。 - 每次只做小批量,不用新增测试面掩盖当前 gate 问题。 五、近期不要做的事 1. 不继续扩大 browser 全量 inventory。 browser 保持 class representative smoke,不追求一次性跑完 159 个 sim-config rows。 2. 不在当前 host 上执行 blocked opt-in probes。 当前 host 缺 `halcmd/halrun/linuxcnc/milltask`,dispatch rollup 已显示全部 blocked。 3. 不把 `axis/db_demo/base.ngc` 降级成 tool-table fallback。 4. 不把 `axis/vismach/millturn/example.ngc` 降级成 user-M canonical event。 5. 不把 Python remap family 降级成 JS/Python stub 语义。 6. 不把 `incremental_repetition_g533.ngc` 改成 pass。 这是保留 upstream demo edge,不修改 G-code 或 runner 语义。 六、下一次开始执行时的第一条命令 从这里继续: ```bash git diff --check git status --short git diff --stat wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 如果这些不通过,先修验证 drift;不要新增功能。 如果这些通过,优先做“第四部分第 2 步:对 `text4` 后半段新增 gate 做文档对账”。 七、2026-06-11 执行记录 本轮按“六、下一次开始执行时的第一条命令”继续执行。 1. 初始稳定性检查完成。 执行: ```bash git diff --check git status --short git diff --stat wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - 当前工作区仍有既有改动,并新增/更新本轮文档: - `text4.txt` - `text5.txt` - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/tests/browser/verify_interp_browser.sh` - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` - `wasm-port/docs/full-process-boundary-design.md` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` 2. 第四部分第 2 步完成:`text4` 后半段新增 gate 文档对账。 更新: - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 已补齐以下 artifact 的路径和 non-executing/non-promoting 语义说明: ```text runtime-boundary-host-preflight.tsv runtime-boundary-host-requirement-summary.tsv runtime-boundary-host-unblock-plan.tsv runtime-boundary-family-host-readiness.tsv runtime-boundary-host-readiness-rollup.tsv runtime-boundary-opt-in-probe-dispatch-plan.tsv runtime-boundary-opt-in-probe-dispatch-rollup.tsv runtime-boundary-opt-in-probe-skip-evidence-contract.tsv runtime-boundary-opt-in-probe-skip-evidence-rollup.tsv ``` 验证: ```bash wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果全部通过。 3. 第四部分第 3 步完成:blocked runtime host preflight 人工检查流程固化。 更新: - `wasm-port/docs/full-process-boundary-design.md` 新增 `Host Preflight Runbook`,明确: - 必须先检查 host preflight、family readiness、host readiness rollup、 dispatch plan、dispatch rollup。 - 当前 host 缺 `halcmd`、`halrun`、`linuxcnc`、`milltask`。 - 当前 host 对所有 blocked runtime opt-in native probes 都保持 blocked。 - 以下命令当前仍禁止执行: ```bash ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_millturn_user_m_runtime.sh ENABLE_TOOL_DB_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_tool_db_runtime.sh ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_python_remap_runtime.sh ``` - 只有对应 family 的 `runtime_ready=1` 且 `dispatch_allowed=1` 后,才允许 人工 opt-in。 - native opt-in probe pass 仍不等于 promotion;还必须经过 evidence contract、 gate alignment、Node proof、browser proof 和 manual promotion lock update。 验证: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 第四部分第 4 步当前 blocked,不能执行。 原因: - `runtime-boundary-host-readiness-rollup.tsv` 当前仍为 `host_blocked_for_all_opt_in_native_probes`。 - `runtime-boundary-opt-in-probe-dispatch-plan.tsv` 对 `L4-USER-M-PROCESS` 仍为 `dispatch_allowed=0`。 - 当前缺失 `halrun`、`halcmd`、`linuxcnc`,因此不能运行 millturn `M128/M129` opt-in native runtime probe。 下一步: - 暂停 blocked runtime promotion 执行。 - 若继续在当前 host 工作,只能做不需要 host runtime 的文档、对账、 source/gate consistency、或小批量 pure interpreter intake。 - 若要推进第四部分第 4 步,需要先切换到具备 LinuxCNC host runtime 的环境, 重新跑 host preflight/dispatch artifacts,确认 `runtime_ready=1` 和 `dispatch_allowed=1`。 八、2026-06-11 继续执行记录:source/gate consistency 对账 本轮从第七部分记录的 blocker 继续执行。由于当前 host 仍缺 LinuxCNC runtime, 第四部分第 4 步的 millturn `M128/M129` opt-in probe 继续保持 blocked; 本轮只做不需要 host runtime 的 source/gate consistency 对账。 1. 当前 blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 结论: - 不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 - 继续保持 blocked runtime promotion 暂停。 2. 生成 artifact 与文档引用对账完成。 执行: ```bash find wasm-port/build/wasm/sim-configs-inventory -maxdepth 1 -type f -name '*.tsv' -printf '%f\n' | sort > /tmp/generated.tsvs rg -o "[A-Za-z0-9_.-]+\\.tsv" \ wasm-port/docs/compatibility-validation.md \ wasm-port/docs/sim-configs-coverage-matrix.md \ wasm-port/docs/full-process-boundary-design.md \ text5.txt | sed 's/^.*://' | sort -u > /tmp/documented.tsvs comm -23 /tmp/generated.tsvs /tmp/documented.tsvs ``` 初始发现 4 个已生成但未被当前文档集合引用的 artifact: ```text native-runtime-probe-execution-plan.tsv next-boundary-recommendations.tsv runtime-boundary-native-evidence-acceptance-gate.tsv runtime-boundary-promotion-blockers.tsv ``` 已更新: - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` - `wasm-port/docs/full-process-boundary-design.md` 补充说明: - `native-runtime-probe-execution-plan.tsv` 是 guarded opt-in execution plan, 记录 exact command、required proof、runtime readiness、expected pass status 和 promotion prerequisites;它不是 probe runner,也不允许 promotion。 - `next-boundary-recommendations.tsv` 是 generated priority handoff,不是执行 许可。 - `runtime-boundary-native-evidence-acceptance-gate.tsv` 决定 native pass evidence 是否可被接受;当前因 host runtime 缺失仍 blocked。 - `runtime-boundary-promotion-blockers.tsv` 展开 promotion blocker keys: host runtime 缺失、native probe 未通过、native evidence 未 ready、 Node/browser gate 未完成、promotion lock active、manual lock update required。 复查结果: - `comm -23 /tmp/generated.tsvs /tmp/documented.tsvs` 现在无输出。 - `sim-configs-inventory` 下当前生成的 TSV artifact 都已被文档集合引用。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 `text5.txt` 的 blocked runtime 执行仍不能继续,因为 host readiness 没有变化。下一步有两个合法方向: - 切换到具备 `halcmd`、`halrun`、`linuxcnc`、`milltask` 的 LinuxCNC host runtime 环境,然后重新跑 preflight/dispatch,再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的工作:文档对账、gate consistency、 source proof consistency,或小批量 pure interpreter intake。 九、2026-06-11 继续执行记录:blocked runtime 跨 artifact guard 本轮继续按当前 host 可执行范围推进。blocked runtime host readiness 仍未变化, 不执行任何 opt-in native runtime probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - 当前 host 仍为: - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 新增 Node inventory 跨 artifact consistency guard。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` 新增 `verifyBlockedRuntimeOptInGateConsistency()`,在每次 Node inventory 运行时检查以下 artifact 的 blocked runtime opt-in target 是否一致: ```text next-boundary-recommendations.tsv native-runtime-probe-execution-plan.tsv runtime-boundary-promotion-readiness.tsv runtime-boundary-promotion-blockers.tsv runtime-boundary-post-native-pass-gates.tsv runtime-boundary-host-preflight.tsv runtime-boundary-family-host-readiness.tsv runtime-boundary-opt-in-probe-dispatch-plan.tsv runtime-boundary-opt-in-probe-skip-evidence-contract.tsv runtime-boundary-native-evidence-acceptance-gate.tsv ``` 检查内容: - 3 个 opt-in target 的 class/order 必须一致: - `L4-USER-M-PROCESS` - `L4-TOOL-DB` - `L4-PYTHON-REMAP` - boundary kind、target、blocked kind 必须一致。 - required native/Node/browser proof 必须与 recommendation 对齐。 - opt-in env 和 execution command 必须一致。 - current probe status 必须一致。 - missing host/runtime requirements 必须一致。 - dispatch 必须保持 `dispatch_allowed=0`。 - evidence acceptance 必须保持 blocked。 - promotion lock、manual lock、host runtime blocker 必须仍然存在。 - 所有相关 artifact 必须保持 `execution_enabled=0` 和 `promotion_allowed=0`。 第一次运行时发现 guard 对 `native-runtime-probe-execution-plan.tsv` 的 schema 假设过严:该 artifact 使用 `boundary_class` 表示 blocked kind,没有单独 `blocked` 字段。已按实际 schema 修正为: ```text row.blocked ?? row.boundary_class ``` 修正后 Node inventory 通过。 3. 文档同步。 更新: - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 已记录 Node inventory 现在会执行 blocked runtime opt-in target 的跨 artifact 一致性检查,防止 recommendations、execution plan、host preflight、dispatch、 skip/evidence、native evidence acceptance、promotion readiness/blockers 和 post-native-pass gates 之间发生 drift。 4. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 5. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 *** End of File 十、2026-06-11 继续执行记录:artifact 文档覆盖 completion criteria 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 将 artifact 文档覆盖加入 boundary phase completion summary。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` 新增到 `boundary-phase-completion-summary.tsv` 的 criterion: ```text wasm_inventory_artifact_documentation_coverage native_artifact_documentation_coverage ``` 当前生成结果: ```text wasm_inventory_artifact_documentation_coverage passed=1 count=54 native_artifact_documentation_coverage passed=1 count=8 ``` 含义: - WASM sim-config inventory 生成的 TSV artifact 必须被 compatibility、matrix 或 full-process boundary docs 引用。 - native generated TSV artifact 必须按相对路径被 compatibility、matrix 或 full-process boundary docs 引用。 - 这两个检查原本已经作为硬断言存在;本轮把它们也写入机器可读 completion summary,方便后续 review/CI 对账。 3. 文档同步。 更新: - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 已记录 `boundary-phase-completion-summary.tsv` 现在包含: - WASM sim-config inventory artifact 文档覆盖; - native generated TSV artifact 文档覆盖。 4. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 5. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 十一、2026-06-11 继续执行记录:native TSV 文档覆盖 guard 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 新增 native generated TSV 文档覆盖自动检查。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` 新增: - `generatedTsvArtifactTokens()` - `verifyNativeGeneratedArtifactDocumentationCoverage()` 检查内容: - `build/native/` 下生成的所有 TSV artifact,必须按相对路径被以下文档至少 引用一次: - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` - `wasm-port/docs/full-process-boundary-design.md` - 使用相对路径检查,避免 `summary.tsv` 这类 basename 在 `nc-files` 与 `sim-configs` 之间重名导致误判。 当前被纳入检查的 native TSV: ```text build/native/source-probes.tsv build/native/native-source-proof-summary.tsv build/native/native-runtime-probe-summary.tsv build/native/nc-files/summary.tsv build/native/sim-configs/summary.tsv build/native/sim-configs/class-summary.tsv build/native/sim-configs/path-matrix.tsv build/native/sim-configs/skipped.tsv ``` 3. 文档同步。 更新: - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 已补充 native generated TSV artifact 列表和检查说明,包括: - native source proof summary; - native runtime probe summary; - native `nc_files` baseline summary; - native sim-config summary/class/path/skipped artifacts; - `source-probes.tsv`。 4. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 5. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 十二、2026-06-11 继续执行记录:native source proof consistency guard 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 新增 native source proof consistency guard。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` 新增 `verifyNativeSourceProofRuntimeProbeConsistency()`,在每次 Node inventory 运行时检查: - `native-proof-alignment-summary.tsv` - `native-runtime-probe-summary.tsv` - `runtime-probe-gate-alignment.tsv` 检查内容: - 三者必须覆盖同一组 blocked class: - `L4-USER-M-PROCESS` - `L4-TOOL-DB` - `L4-PYTHON-REMAP` - native source proof alignment 必须为 `alignment_ok=1`。 - native runtime probe summary 的 `source_proof_ready` 必须与 source proof alignment 一致。 - runtime probe gate alignment 的 native/gate source proof readiness 必须与 source proof alignment 一致。 - source proof、runtime probe、gate alignment 都必须保持 `execution_enabled=0` / `promotion_allowed=0`。 - runtime probe gate alignment 必须保持 `alignment_ok=1`。 这样可以防止 native source proof summary、native runtime probe summary 与 runtime probe gate alignment 之间发生 drift。 3. 文档同步。 更新: - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 已记录 Node inventory 现在会检查 native source proof consistency,确保 source proof alignment、native runtime probe summary 和 runtime probe gate alignment 一致,且不启用 execution/promotion。 4. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 5. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 十三、2026-06-11 继续执行记录:生成 artifact 文档覆盖 guard 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 新增生成 artifact 文档覆盖自动检查。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` 新增: - `generatedSimConfigInventoryArtifactPaths` - `verifyGeneratedArtifactDocumentationCoverage()` 检查内容: - `build/wasm/sim-configs-inventory/` 下由 Node inventory 生成的每一个 TSV artifact,都必须被以下文档至少引用一次: - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` - `wasm-port/docs/full-process-boundary-design.md` - 如果新增 gate artifact 但没有文档说明,`verify_sim_configs_inventory_wasm.sh` 会失败。 执行该检查前,docs-only 对账发现还缺 2 个引用: ```text python-remap-native-runtime-probe-gate.tsv tool-db-process-native-runtime-probe-gate.tsv ``` 已补充到: - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 同时补充了该自动检查本身的文档说明。 3. 验证完成。 执行: ```bash find wasm-port/build/wasm/sim-configs-inventory -maxdepth 1 -type f -name '*.tsv' -printf '%f\n' | sort > /tmp/generated.tsvs rg -o "[A-Za-z0-9_.-]+\\.tsv" \ wasm-port/docs/compatibility-validation.md \ wasm-port/docs/sim-configs-coverage-matrix.md \ wasm-port/docs/full-process-boundary-design.md | sed 's/^.*://' | sort -u > /tmp/documented-docs-only.tsvs comm -23 /tmp/generated.tsvs /tmp/documented-docs-only.tsvs git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - docs-only `comm` 对账无输出。 - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 十四、2026-06-11 继续执行记录:completion summary consistency criteria 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 将已有 consistency guard 暴露到 completion summary。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 新增到 `boundary-phase-completion-summary.tsv` 的 criterion: ```text blocked_runtime_opt_in_gate_consistency native_source_proof_runtime_probe_consistency ``` 当前生成结果: ```text blocked_runtime_opt_in_gate_consistency passed=1 count=3 native_source_proof_runtime_probe_consistency passed=1 count=3 ``` 含义: - blocked runtime opt-in target 的 recommendations、execution plan、host preflight、dispatch、skip/evidence、native evidence acceptance、promotion readiness/blockers 和 post-native-pass gates 必须保持同一 class/order、 target、proof key、opt-in command、host blocking、dispatch blocking、 evidence blocking 和 promotion lock 状态。 - native source proof alignment、native runtime probe summary 和 runtime probe gate alignment 必须覆盖同一 blocked class set,并保持 `execution_enabled=0` 和 `promotion_allowed=0`。 - 这只是把已有硬断言写入机器可读 completion summary;不执行 native runtime probe,也不允许 promotion。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 十五、2026-06-11 继续执行记录:blocked runtime rollup consistency 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 新增 blocked runtime rollup consistency guard。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 新增: - `verifyBlockedRuntimeRollupConsistency()` - `boundary-phase-completion-summary.tsv` criterion: ```text blocked_runtime_rollup_consistency ``` 当前生成结果: ```text blocked_runtime_rollup_consistency passed=1 count=3 ``` 检查内容: - `runtime-boundary-host-readiness-rollup.tsv` - `runtime-boundary-opt-in-probe-dispatch-rollup.tsv` - `runtime-boundary-opt-in-probe-skip-evidence-rollup.tsv` 三类 rollup 必须一致: - family/probe count; - blocked family set; - missing host requirements; - blocked/allowed opt-in commands; - host readiness、dispatch、skip/evidence 状态; - `execution_enabled=0`; - `promotion_allowed=0`。 该检查只做生成 artifact 一致性验证,不执行 native runtime probe,也不允许 promotion。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 十六、2026-06-11 继续执行记录:blocked runtime host requirement consistency 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 新增 blocked runtime host requirement consistency guard。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 新增: - `verifyBlockedRuntimeHostRequirementConsistency()` - `boundary-phase-completion-summary.tsv` criterion: ```text blocked_runtime_host_requirement_consistency ``` 当前生成结果: ```text blocked_runtime_host_requirement_consistency passed=1 count=3 ``` 检查内容: - `runtime-boundary-host-requirement-summary.tsv` - `runtime-boundary-host-unblock-plan.tsv` - `runtime-boundary-family-host-readiness.tsv` 三类 host requirement artifact 必须一致: - 缺失 requirement set 与 unblock plan set; - 每个 family 的 missing/available requirement set; - 每个缺失 requirement 影响的 blocked family、target 和 opt-in command; - 移除单个 requirement 后仍剩余的 missing requirements; - `execution_enabled=0`; - `promotion_allowed=0`。 该检查只做生成 artifact 一致性验证,不执行 native runtime probe,也不允许 promotion。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 十七、2026-06-11 继续执行记录:blocked runtime promotion gate consistency 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 新增 blocked runtime promotion gate consistency guard。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 新增: - `verifyBlockedRuntimePromotionGateConsistency()` - `boundary-phase-completion-summary.tsv` criterion: ```text blocked_runtime_promotion_gate_consistency ``` 当前生成结果: ```text blocked_runtime_promotion_gate_consistency passed=1 count=3 ``` 检查内容: - `blocked-runtime-promotion-lock.tsv` - `runtime-boundary-promotion-readiness.tsv` - `runtime-boundary-promotion-blockers.tsv` - `runtime-boundary-post-native-pass-gates.tsv` - `runtime-boundary-native-evidence-acceptance-gate.tsv` - `native-runtime-probe-pass-evidence-contract.tsv` 这些 promotion gate artifacts 必须一致: - target、blocked class、current probe status、expected pass status; - native pass/evidence readiness; - Node/browser promotion gate status; - promotion lock 和 manual lock 状态; - blocker keys; - evidence acceptance 仍 blocked; - `execution_enabled=0`; - `promotion_allowed=0`。 该检查只做生成 artifact 一致性验证,不执行 native runtime probe,也不允许 promotion。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 十八、2026-06-11 继续执行记录:blocked runtime worklist recommendation consistency 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 新增 blocked runtime worklist recommendation consistency guard。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 新增: - `verifyBlockedRuntimeWorklistRecommendationConsistency()` - `boundary-phase-completion-summary.tsv` criterion: ```text blocked_runtime_worklist_recommendation_consistency ``` 当前生成结果: ```text blocked_runtime_worklist_recommendation_consistency passed=1 count=3 ``` 检查内容: - `next-boundary-worklist.tsv` - `boundary-proof-gates.tsv` - `next-boundary-recommendations.tsv` - `blocked-runtime-promotion-lock.tsv` - `runtime-boundary-contract-summary.tsv` 这些 worklist/recommendation artifacts 必须一致: - recommendation target 必须有对应 worklist row; - recommendation target 必须有 native/node/browser proof gates; - recommendation 的 Node/browser proof 必须与 worklist/proof-gate 对齐; - promotion lock 必须仍 active; - runtime contract summary 必须仍 `contract_ok=1`; - `execution_enabled=0`; - `promotion_allowed=0`。 该检查只做生成 artifact 一致性验证,不执行 native runtime probe,也不允许 promotion。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 十九、2026-06-12 继续执行记录:runtime family contract/alignment consistency 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 runtime family contract/alignment consistency guard。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 新增: - `verifyRuntimeFamilyContractAlignmentConsistency()` - `boundary-phase-completion-summary.tsv` criterion: ```text runtime_family_contract_alignment_consistency ``` 当前生成结果: ```text runtime_family_contract_alignment_consistency passed=1 count=3 ``` 检查内容: - `L4-USER-M-PROCESS`: - `user-m-process-transition-plan.tsv` - `user-m-process-native-runtime-state-plan.tsv` - `user-m-process-native-runtime-readiness.tsv` - `user-m-process-native-runtime-probe-gate.tsv` - `runtime-boundary-contract-summary.tsv` - `runtime-boundary-native-alignment-summary.tsv` - `L4-TOOL-DB`: - `tool-db-process-transaction-plan.tsv` - `tool-db-process-native-runtime-readiness.tsv` - `tool-db-process-native-runtime-probe-gate.tsv` - `runtime-boundary-contract-summary.tsv` - `runtime-boundary-native-alignment-summary.tsv` - `L4-PYTHON-REMAP`: - `python-remap-runtime-contract.tsv` - `python-remap-native-runtime-readiness.tsv` - `python-remap-native-runtime-state-plan.tsv` - `python-remap-native-runtime-fixture-plan.tsv` - `python-remap-native-runtime-probe-gate.tsv` - `runtime-boundary-contract-summary.tsv` - `runtime-boundary-native-alignment-summary.tsv` 这些 family-specific artifacts 必须与 aggregate runtime contract/native alignment summaries 一致: - contract artifact、row count、runtime alignment artifact、alignment row count; - user-M transition/state-plan/probe-gate M128/M129 字段; - tool DB transaction/probe-gate protocol transaction set; - Python family runtime contract/state-plan/fixture/probe-gate fields; - missing host requirements; - `source_proof_ready=1`; - `proof_status=pending`; - `execution_enabled=0`; - `promotion_allowed=0`。 该检查只做生成 artifact 一致性验证,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - `boundary-phase-completion-summary.tsv` 现在包含 `runtime_family_contract_alignment_consistency`。 - 该 criterion 用于确保 user-M、tool DB、Python 三个 blocked runtime family 的 contract/readiness/probe/fixture/state-plan artifacts 与 `runtime-boundary-contract-summary.tsv` 和 `runtime-boundary-native-alignment-summary.tsv` 对齐。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 二十、2026-06-12 继续执行记录:browser completion summary parity 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 browser completion summary parity 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - Node inventory 的 `boundary-phase-completion-summary.tsv` 已包含新增 consistency criteria: - `blocked_runtime_worklist_recommendation_consistency` - `blocked_runtime_probe_execution_consistency` - `blocked_runtime_promotion_gate_consistency` - `blocked_runtime_host_requirement_consistency` - `blocked_runtime_rollup_consistency` - `blocked_runtime_opt_in_gate_consistency` - `native_source_proof_runtime_probe_consistency` - `runtime_family_contract_alignment_consistency` - `wasm_inventory_artifact_documentation_coverage` - `native_artifact_documentation_coverage` - browser smoke 已读取 `boundary-phase-completion-summary.tsv`,但 `expectedCriteria` 列表落后于 Node verifier。 本轮补齐 browser 侧 criterion 顺序,使 browser smoke 与 Node inventory 对同一组 boundary-phase completion criteria 做 drift 检查。 该检查只读取 generated summary,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在会镜像 `boundary-phase-completion-summary.tsv` criterion 列表; - 如果 Node inventory 新增 completion criterion 但 browser smoke 未同步, browser smoke 会因 criterion drift 失败; - 该检查是 browser-side parity check,不改变 blocked runtime 状态。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 二十一、2026-06-12 继续执行记录:browser runtime contract/native alignment parity 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 browser runtime contract/native alignment summary parity 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - Node inventory 已通过 `runtime_family_contract_alignment_consistency` 检查 family-specific contract/readiness/probe artifacts 与 aggregate runtime contract/native alignment summaries 的一致性。 - browser smoke 已分别检查 runtime contract summary 和 native alignment summary,但没有直接确认两者之间的 artifact/count/kind 对齐。 本轮新增 browser-side parity: - `verifyBrowserRuntimeBoundaryContractSummary()` 现在返回 parsed rows; - 新增 `verifyBrowserRuntimeContractNativeAlignmentParity()`; - browser smoke 会检查: - `boundary_kind` 一致; - `runtime_alignment_artifact` 与 native alignment `artifact` 一致; - `runtime_alignment_row_count` 与 native alignment `row_count` 一致; - `runtime_alignment_ok` 与 native alignment `summary_ok` 一致; - contract/native alignment summary 均保持 OK; - execution/promotion disabled counts 与各自 row counts 一致。 该检查只读取 generated artifacts,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在会检查 `runtime-boundary-contract-summary.tsv` 与 `runtime-boundary-native-alignment-summary.tsv` 的 browser-side parity; - 该检查确保 browser 侧看到的 aggregate contract/native alignment summary 与 Node inventory 生成的 boundary gate 状态一致。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 二十二、2026-06-12 继续执行记录:browser native source proof/runtime probe parity 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 browser native source proof/runtime probe/gate parity 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - Node inventory 已通过 `native_source_proof_runtime_probe_consistency` 检查: - `native-proof-alignment-summary.tsv` - `native-runtime-probe-summary.tsv` - `runtime-probe-gate-alignment.tsv` - browser smoke 已分别检查这三个 artifact,但没有直接确认三者之间的 source-proof/runtime/gate 对齐。 本轮新增 browser-side parity: - `verifyBrowserNativeProofAlignment()` 现在返回 parsed rows; - `verifyBrowserNativeRuntimeProbeSummary()` 现在返回 parsed rows; - `verifyBrowserRuntimeProbeGateAlignment()` 现在返回 parsed rows; - 新增 `verifyBrowserNativeSourceProofRuntimeProbeParity()`; - browser smoke 会检查: - 三个 artifact 覆盖同一 blocked class 顺序; - `boundary_kind` 一致; - proof/runtime target 一致,Python wildcard proof 例外; - runtime/gate target 一致; - native source proof alignment 为 ready; - runtime `source_proof_ready` 与 gate source proof readiness 一致; - required native proof 一致; - runtime readiness、missing requirements、status compatibility 一致; - execution/promotion disabled 状态一致。 该检查只读取 generated artifacts,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在会交叉检查 `native-proof-alignment-summary.tsv`、 `native-runtime-probe-summary.tsv` 和 `runtime-probe-gate-alignment.tsv`; - 该检查确保 browser 侧看到的 source proof readiness、runtime readiness、 required native proof、target 和 disabled execution/promotion 状态与 Node inventory 一致。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 二十三、2026-06-12 继续执行记录:browser blocked runtime probe execution parity 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 browser blocked runtime probe execution parity 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - Node inventory 已通过 `blocked_runtime_probe_execution_consistency` 检查: - `native-runtime-probe-execution-plan.tsv` - `native-runtime-probe-pass-evidence-contract.tsv` - `runtime-boundary-host-preflight.tsv` - `runtime-boundary-opt-in-probe-dispatch-plan.tsv` - `runtime-boundary-opt-in-probe-skip-evidence-contract.tsv` - browser smoke 已分别检查这些 artifact,但没有直接确认 probe execution、 pass evidence、host preflight、dispatch 和 skip-evidence 之间的对齐。 本轮新增 browser-side parity: - `verifyBrowserNativeRuntimeProbeExecutionPlan()` 现在返回 parsed rows; - `verifyBrowserNativeRuntimeProbePassEvidenceContract()` 现在返回 parsed rows; - `verifyBrowserRuntimeBoundaryHostPreflight()` 现在返回 parsed rows; - `verifyBrowserRuntimeBoundaryOptInProbeDispatchPlan()` 现在返回 parsed rows; - `verifyBrowserRuntimeBoundaryOptInProbeSkipEvidenceContract()` 现在返回 parsed rows; - 新增 `verifyBrowserBlockedRuntimeProbeExecutionParity()`; - browser smoke 会检查: - 五个 artifact 覆盖同一 blocked class 顺序; - `boundary_kind`、target、blocked class 一致; - runtime probe、expected pass status、required native proof 一致; - opt-in env 和 exact execution command 一致; - current probe status 一致; - runtime readiness、source proof readiness、missing requirements 一致; - 当前 host 仍保持 `runtime_ready=0`、`skipped_missing_host_runtime`、 `blocked_missing_host_runtime`、`dispatch_allowed=0`; - pass/skip evidence 仍未 required/ready; - execution/promotion disabled 状态一致。 该检查只读取 generated artifacts,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在会交叉检查 native runtime probe execution plan、pass evidence contract、host preflight、dispatch plan 和 skip-evidence contract; - 该检查确保 browser 侧看到的 host-blocked opt-in command、missing requirements、evidence status 和 disabled execution/promotion 状态与 Node inventory 一致。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 二十四、2026-06-12 继续执行记录:browser blocked runtime rollup parity 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 browser blocked runtime rollup parity 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - Node inventory 已通过 `blocked_runtime_rollup_consistency` 检查: - `runtime-boundary-host-readiness-rollup.tsv` - `runtime-boundary-opt-in-probe-dispatch-rollup.tsv` - `runtime-boundary-opt-in-probe-skip-evidence-rollup.tsv` - browser smoke 已分别检查这三个 rollup,但没有直接确认 host readiness、 dispatch 和 skip-evidence rollup 之间的对齐。 本轮新增 browser-side parity: - `verifyBrowserRuntimeBoundaryFamilyHostReadiness()` 现在返回 parsed rows; - `verifyBrowserRuntimeBoundaryHostReadinessRollup()` 现在返回 parsed rows; - `verifyBrowserRuntimeBoundaryOptInProbeDispatchRollup()` 现在返回 parsed rows; - `verifyBrowserRuntimeBoundaryOptInProbeSkipEvidenceRollup()` 现在返回 parsed rows; - 新增 `verifyBrowserBlockedRuntimeRollupParity()`; - browser smoke 会检查: - host family count、dispatch probe count、skip evidence probe count 一致; - ready/blocked family count 与 dispatch allowed/blocked count 一致; - dispatch blocked count 与 skip count 一致; - blocked families 一致; - missing host requirements 一致; - ready/blocked opt-in commands 一致; - host readiness、dispatch、evidence rollup status 一致; - current probe/native evidence/skip evidence status 保持 blocked; - execution/promotion disabled 状态一致。 该检查只读取 generated artifacts,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在会交叉检查 host-readiness、dispatch 和 skip-evidence rollups; - 该检查确保 browser 侧看到的 counts、blocked families、missing requirements、blocked commands、host/dispatch/evidence status 和 disabled execution/promotion 状态与 Node inventory 一致。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 二十五、2026-06-12 继续执行记录:browser blocked runtime promotion/opt-in gate parity 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 browser blocked runtime promotion/opt-in gate parity 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - Node inventory 已通过: - `blockedRuntimePromotionGateConsistency` - `blockedRuntimeOptInGateConsistency` - browser smoke 已分别检查 promotion lock、promotion readiness、promotion blockers、post-native-pass gates、native evidence acceptance gate、 recommendations、host preflight、family readiness、dispatch plan 和 skip-evidence contract,但此前没有直接确认这些 artifact 之间的 promotion gate 与 opt-in gate 对齐。 本轮新增 browser-side parity: - `verifyBrowserBlockedRuntimePromotionLock()` 现在返回 parsed rows; - `verifyBrowserRuntimeBoundaryPromotionReadiness()` 现在返回 parsed rows; - `verifyBrowserRuntimeBoundaryPromotionBlockers()` 现在返回 parsed rows; - `verifyBrowserRuntimeBoundaryPostNativePassGates()` 现在返回 parsed rows; - `verifyBrowserRuntimeBoundaryNativeEvidenceAcceptanceGate()` 现在返回 parsed rows; - `verifyBrowserNextBoundaryRecommendations()` 现在返回 parsed rows; - 新增 `verifyBrowserBlockedRuntimePromotionGateParity()`; - 新增 `verifyBrowserBlockedRuntimeOptInGateParity()`。 browser smoke 会检查: - promotion lock、promotion readiness、promotion blockers、 post-native-pass gates、native evidence acceptance gate 和 pass-evidence contract 对齐; - recommendation、execution plan、promotion readiness/blockers、 post-native-pass gates、host preflight、family readiness、dispatch plan、 skip-evidence contract 和 evidence acceptance gate 对齐; - target、boundary kind、blocked class、proof key、opt-in env、exact command、 current probe status、missing requirements 一致; - 当前 host 仍保持 host-blocked、dispatch disabled、evidence acceptance blocked、promotion lock active、manual lock update required; - execution/promotion disabled 状态一致。 该检查只读取 generated artifacts,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在会交叉检查 promotion lock、promotion readiness、 promotion blockers、post-native-pass gates、native evidence acceptance gate 和 pass-evidence contract; - browser smoke 现在会交叉检查 recommendations、execution plans、host preflight、family readiness、dispatch plans、skip-evidence contracts 和 evidence acceptance gates; - 该检查确保 browser 侧看到的 locked promotion state、opt-in command、 proof、missing requirements 和 disabled execution/promotion 状态与 Node inventory 一致。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 二十六、2026-06-12 继续执行记录:browser boundary phase completion count parity 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 browser boundary phase completion count parity 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - browser smoke 已检查 `boundary-phase-completion-summary.tsv` 的 criterion 顺序、`passed=1`、count 格式和 evidence 非空; - 但 browser 侧没有直接确认该 completion summary 中的 blocked-runtime criterion count 与浏览器已经读取的 generated artifact row 数一致。 本轮新增 browser-side parity: - `verifyBrowserBoundaryPhaseCompletion()` 现在返回 parsed rows; - `verifyBrowserRuntimeBoundaryHostRequirementSummary()` 现在返回 parsed rows; - `verifyBrowserRuntimeBoundaryHostUnblockPlan()` 现在返回 parsed rows; - 新增 `verifyBrowserBoundaryPhaseCompletionCountParity()`; - browser smoke 会检查 selected blocked-runtime completion criteria 的 `count` 与对应 browser artifact row 数一致,包括: - native proof alignment; - runtime/native alignment summary; - native runtime probe summary; - runtime probe gate alignment; - native runtime execution/pass-evidence artifacts; - promotion readiness/blockers/post-native-pass gates; - host preflight、host requirement summary、host unblock plan、family readiness; - dispatch/skip-evidence plan 与 rollup; - native evidence acceptance gate; - runtime contract summary; - blocked runtime consistency criteria。 该检查只读取 generated artifacts,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在会把 completion summary 的 selected blocked-runtime criterion count 与已加载 artifact row 数对齐; - 该检查确保 browser 侧看到的 machine-readable completion summary 不会与 实际 generated gate artifact 计数漂移。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 二十七、2026-06-12 继续执行记录:browser family-specific completion count parity 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 扩展 browser boundary phase completion count parity 覆盖面。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 二十六已让 browser smoke 校验 selected blocked-runtime completion criteria 的 `count` 与已加载 generated artifact row 数一致; - 但 user-M、tool DB、Python runtime 的 family-specific contract/readiness/ probe criteria 还没有进入 browser count parity。 本轮扩展 browser-side count parity: - 让以下 verifier 返回 parsed rows: - `verifyBrowserUserMTransitionPlan()` - `verifyBrowserUserMNativeRuntimeStatePlan()` - `verifyBrowserUserMNativeRuntimeReadiness()` - `verifyBrowserUserMNativeRuntimeProbeGate()` - `verifyBrowserToolDbTransactionPlan()` - `verifyBrowserToolDbNativeRuntimeReadiness()` - `verifyBrowserToolDbNativeRuntimeProbeGate()` - `verifyBrowserPythonRuntimeContract()` - `verifyBrowserPythonNativeRuntimeReadiness()` - `verifyBrowserPythonNativeRuntimeProbeGate()` - `verifyBrowserPythonNativeRuntimeStatePlan()` - `verifyBrowserPythonNativeRuntimeFixturePlan()` - `verifyBrowserBoundaryPhaseCompletionCountParity()` 现在还会检查: - `user_m_transition_contract` - `user_m_native_runtime_state_plan` - `user_m_native_runtime_readiness` - `user_m_native_runtime_probe_gate` - `tool_db_transaction_contract` - `tool_db_native_runtime_readiness` - `tool_db_native_runtime_probe_gate` - `python_runtime_contract` - `python_native_runtime_readiness` - `python_native_runtime_probe_gate` - `python_native_runtime_state_plan` - `python_native_runtime_fixture_plan` 该检查只读取 generated artifacts,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 的 completion-summary count parity 现在覆盖 blocked-runtime 和 family-specific artifact rows; - 该检查确保 machine-readable completion summary 不会与 browser 已读取的 user-M、tool DB、Python runtime contract/readiness/probe artifacts 计数 漂移。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 二十八、2026-06-12 继续执行记录:browser runtime family contract alignment parity 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 browser runtime family contract alignment parity 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - Node inventory 已通过 `runtimeFamilyContractAlignmentConsistency`; - browser smoke 已逐个检查 user-M、tool DB、Python runtime family-specific contract/readiness/probe/state/fixture artifacts,并在二十七中把这些 artifact count 纳入 completion summary parity; - 但 browser 侧此前没有直接把这些 family-specific artifacts 与 `runtime-boundary-contract-summary.tsv` 做跨 artifact 对齐。 本轮新增 browser-side parity: - 新增 `verifyBrowserRuntimeFamilyContractAlignmentParity()`; - browser smoke 会检查: - `runtime-boundary-contract-summary.tsv` 的 contract artifact、row count、 pending/disabled/promotion-disabled 状态与 family artifacts 一致; - user-M transition plan、native runtime state plan、readiness、probe gate 在 remap code、user-M code、switchkins、G5x、work offset、expected state pins、missing requirements 和 proof key 上一致; - tool DB transaction plan、runtime readiness、probe gate 在 DB_PROGRAM、 protocol transactions、missing requirements 和 proof key 上一致; - Python runtime contract、state plan、readiness、fixture plan、probe gate 在 family、runtime phases、modules、callables、process assumptions、 missing requirements 和 proof key 上一致; - 所有相关 rows 继续保持 `proof_status=pending`、`execution_enabled=0` 和 `promotion_allowed=0`。 该检查只读取 generated artifacts,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在会把 user-M、tool DB、Python family-specific contract/readiness/probe artifacts 与 `runtime-boundary-contract-summary.tsv` 交叉对齐; - 该检查确保 browser 侧看到的 runtime-family contract alignment 与 Node inventory 一致,同时仍保持 non-executing、non-promoting。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 二十九、2026-06-12 继续执行记录:browser next-boundary recommendation count parity 本轮继续在当前 host 可执行范围内推进。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 browser next-boundary recommendation count parity 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - browser smoke 已检查 `next-boundary-recommendations.tsv` 的 priority、 target、blocked kind、recommendation、primary artifact、proof fields 和 disabled execution/promotion 状态; - 但 browser 侧此前只确认 `artifact_row_count` 是正数,没有直接确认它与 生成该 recommendation 的 source artifact row 数一致; - 当前 generated recommendation 中 tool DB 的 primary artifact 是 `tool-db-process-native-runtime-probe-gate.tsv`,browser 期望同步为该 artifact。 本轮新增 browser-side parity: - 修正 tool DB recommendation primary artifact 期望为 `tool-db-process-native-runtime-probe-gate.tsv`; - 新增 `verifyBrowserNextBoundaryRecommendationCountParity()`; - browser smoke 会检查: - user-M recommendation `artifact_row_count` 等于 `user-m-process-native-runtime-probe-gate.tsv` row 数; - tool DB recommendation `artifact_row_count` 等于 `tool-db-process-native-runtime-probe-gate.tsv` row 数; - Python recommendation `artifact_row_count` 等于 `python-remap-runtime-contract.tsv` row 数; - recommendation `source_artifacts` 包含对应 source artifact; - recommendation rows 继续保持 `execution_enabled=0` 和 `promotion_allowed=0`。 该检查只读取 generated artifacts,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在会把 `next-boundary-recommendations.tsv` 的 artifact row count 与 user-M probe-gate、tool DB probe-gate、Python runtime-contract source rows 对齐; - 该检查确保 priority handoff 不会与 visible source artifacts 计数漂移。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 三十、2026-06-12 继续执行记录:browser host requirement artifact parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 browser host requirement artifact parity 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - browser smoke 已分别检查 host preflight、host requirement summary、 host unblock plan、family host readiness、host readiness rollup; - 但 browser 侧此前没有直接把 requirement summary / unblock plan / family readiness / preflight 做逐 requirement 归属对齐; - 该 drift 会影响 future host 上是否错误判断 opt-in native probe 可执行。 本轮新增 browser-side parity: - 新增 `verifyBrowserBlockedRuntimeHostRequirementParity()`; - browser smoke 会检查: - 每个 family host readiness row 与对应 host preflight row 的 target、 blocked kind、required runtime、opt-in env、execution command、 current probe status、preflight status 和 missing requirements 一致; - family missing/available requirement count 与列表长度一致; - 每个 missing requirement 在 requirement summary 中为 unavailable、 阻塞对应 family,并记录对应 opt-in env; - 每个 missing requirement 在 unblock plan 中记录 affected target、 affected execution command,并且 remaining list 不再包含该 requirement; - 每个 available prerequisite 在 requirement summary 中为 available、 不产生 missing block,并仍能追溯到对应 family 与 opt-in env; - 所有相关 rows 继续保持 `execution_enabled=0` 和 `promotion_allowed=0`。 该检查只读取 generated artifacts,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在会把 `runtime-boundary-host-requirement-summary.tsv`、 `runtime-boundary-host-unblock-plan.tsv`、 `runtime-boundary-family-host-readiness.tsv` 与 `runtime-boundary-host-preflight.tsv` 交叉对齐; - 该检查覆盖 missing/available host requirement ownership、affected opt-in env 和 exact probe command traceability。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 三十一、2026-06-12 继续执行记录:browser artifact documentation coverage parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 browser generated artifact documentation coverage 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - Node inventory 已通过 `wasm_inventory_artifact_documentation_coverage` 和 `native_artifact_documentation_coverage`; - browser smoke 已检查 completion summary criteria 和 count parity; - 但 browser 侧此前没有直接 fetch 文档并确认 generated artifact names / native artifact tokens 被文档引用。 本轮新增 browser-side parity: - 新增 `verifyBrowserGeneratedArtifactDocumentationCoverage()`; - browser smoke 会 fetch: - `docs/compatibility-validation.md` - `docs/sim-configs-coverage-matrix.md` - `docs/full-process-boundary-design.md` - browser smoke 会检查: - 54 个 `build/wasm/sim-configs-inventory/*.tsv` artifact name 均在当前 文档中出现; - 8 个 `build/native/**/*.tsv` relative artifact token 均在当前文档中出现; - `boundary-phase-completion-summary.tsv` 中 `wasm_inventory_artifact_documentation_coverage` 的 count 等于 54; - `native_artifact_documentation_coverage` 的 count 等于 8。 该检查只读取 generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在会直接镜像 Node artifact documentation coverage gate; - 该检查确保 generated gate artifact 出现时不会只更新 Node inventory,而漏掉 browser 可见的文档覆盖验证。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 三十二、2026-06-12 继续执行记录:browser recommendation source artifact coverage parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 browser recommendation source artifact coverage 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - browser smoke 已检查 `next-boundary-recommendations.tsv` 的 priority、 target、blocked kind、recommendation、primary artifact、proof fields、 artifact row count 和 disabled execution/promotion 状态; - browser smoke 也已能看到 generated WASM inventory artifact name set; - 但 browser 侧此前没有确认 recommendation 的每个 `source_artifacts` token 都属于 browser 可见的 generated artifact set。 本轮新增 browser-side parity: - 新增 `verifyBrowserNextBoundaryRecommendationSourceArtifactCoverage()`; - browser smoke 会检查: - 每条 recommendation 都有 source artifact 列表; - source artifact 列表没有重复项; - `primary_artifact` 必须出现在 `source_artifacts` 中; - `primary_artifact` 和每个 `source_artifacts` token 都存在于 browser generated WASM inventory artifact set; - recommendation rows 继续保持 `execution_enabled=0` 和 `promotion_allowed=0`。 该检查只读取 generated artifacts,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在会把 recommendation primary/source artifacts 与 generated WASM inventory artifact set 对齐; - 该检查防止 priority handoff 引用不存在、重复或未追踪的 machine-readable source artifact。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 三十三、2026-06-12 继续执行记录:browser recommendation exact source artifact set parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 收紧 browser recommendation source artifact coverage 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 三十二中 browser smoke 已确认 recommendation 的 `primary_artifact` 和 `source_artifacts` 都属于 browser 可见的 generated WASM inventory artifact set; - 但该检查允许 source artifact 列表增加额外 artifact; - priority handoff 的 source artifact 应该是每个 blocked family 的精确来源集合。 本轮扩展 browser-side parity: - `verifyBrowserNextBoundaryRecommendationSourceArtifactCoverage()` 现在会检查 每个 recommendation 的 exact `source_artifacts` 顺序和集合: - user-M: `next-boundary-worklist.tsv`, `blocked-runtime-promotion-lock.tsv`, `user-m-process-transition-plan.tsv`, `user-m-process-native-runtime-state-plan.tsv`, `user-m-process-native-runtime-probe-gate.tsv` - tool DB: `next-boundary-worklist.tsv`, `blocked-runtime-promotion-lock.tsv`, `tool-db-process-transaction-plan.tsv`, `tool-db-process-native-runtime-readiness.tsv`, `tool-db-process-native-runtime-probe-gate.tsv` - Python remap: `next-boundary-worklist.tsv`, `blocked-runtime-promotion-lock.tsv`, `python-remap-runtime-contract.tsv`, `python-remap-native-runtime-fixture-plan.tsv`, `python-remap-native-runtime-probe-gate.tsv` - 检查仍保留: - source artifact 列表非空; - 无重复 source artifact; - `primary_artifact` 出现在 source artifact 列表中; - 所有 source artifact 都存在于 browser generated WASM inventory artifact set; - recommendation rows 继续保持 `execution_enabled=0` 和 `promotion_allowed=0`。 该检查只读取 generated artifacts,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在会把 recommendation primary/source artifacts 与 generated WASM inventory artifact set 和 exact per-family source artifact set 对齐; - 该检查防止 priority handoff 引用额外、错误、重复或未追踪的 machine-readable source artifact。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 三十四、2026-06-12 继续执行记录:Node recommendation exact source artifact set parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 将 recommendation exact source artifact set 检查补到 Node inventory。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 三十三中 browser smoke 已检查每个 recommendation 的 exact `source_artifacts` 顺序和集合; - Node inventory 此前只要求 recommendation source artifacts 包含 `next-boundary-worklist.tsv` 和 `blocked-runtime-promotion-lock.tsv`; - 生成端也应阻止 extra / wrong / duplicated source artifact。 本轮新增 Node-side parity: - `verifyNextBoundaryRecommendationRows()` 现在会检查: - 每个 recommendation 的 exact `source_artifacts` 顺序和集合; - source artifact 列表无重复; - `primary_artifact` 出现在 source artifact 列表中; - 原有 priority、target、blocked kind、recommendation、primary artifact、 proof fields、promotion lock、contract、disabled execution/promotion 检查保持不变。 该检查只校验 generated TSV rows,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - Node inventory 和 browser smoke 现在都校验 recommendation exact per-family source artifact set; - recommendation priority handoff 的 machine-readable source trace 在生成端 和 browser 端保持一致。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 三十五、2026-06-12 继续执行记录:Node recommendation generated source artifact existence 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 收紧 Node recommendation source artifact trace 检查。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 三十四中 Node inventory 已检查每个 recommendation 的 exact `source_artifacts` 顺序和集合; - 但还可以进一步确认这些 source artifact token 实际对应 `build/wasm/sim-configs-inventory/` 下的 generated artifact 文件。 本轮新增 Node-side parity: - `verifyNextBoundaryRecommendationRows()` 现在会检查: - `primary_artifact` 文件存在于 generated sim-config inventory artifact directory; - 每个 `source_artifacts` token 对应的 generated artifact 文件存在; - 原有 exact source set、无重复、primary traceability、proof fields、 promotion lock、contract、disabled execution/promotion 检查保持不变。 该检查只校验 generated TSV rows 和 artifact 文件存在性,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - Node inventory 现在要求 recommendation source trace 不仅语义上精确, 还必须指向实际生成的 machine-readable artifact; - browser 端仍继续校验 browser-visible generated artifact set、exact source set 和 disabled execution/promotion 状态。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 三十六、2026-06-12 继续执行记录:browser generated artifact fetchability parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 browser generated artifact fetchability 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 三十一中 browser smoke 已 fetch 文档并确认 generated artifact names / native artifact tokens 被文档引用; - 三十五中 Node inventory 已确认 recommendation source trace 指向实际生成 artifact; - browser 侧也应确认文档覆盖对象在 browser HTTP smoke 中实际可 fetch。 本轮新增 browser-side parity: - `verifyBrowserGeneratedArtifactDocumentationCoverage()` 现在会检查: - 54 个 `build/wasm/sim-configs-inventory/*.tsv` artifact 都能通过 browser smoke fetch; - 8 个 `build/native/**/*.tsv` artifact token 都能通过 browser smoke fetch; - 每个 fetched TSV 有非空 header 且包含 TSV delimiter; - 原有文档覆盖和 completion-summary count parity 保持不变。 该检查只读取 generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在不仅检查文档覆盖,也检查 generated WASM/native TSV artifact 在浏览器 smoke 中可读取; - 该检查是 artifact fetchability parity,不改变 blocked runtime 状态。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 三十七、2026-06-12 继续执行记录:browser generated artifact list uniqueness parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 收紧 browser generated artifact fetchability 检查。 更新: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 三十六中 browser smoke 已 fetch generated WASM/native TSV artifacts; - 如果 browser expected artifact list 中出现重复项,同时漏掉另一个 artifact, 单纯 fetch 和 count parity 不够直接暴露 expected list drift; - browser 侧应显式检查 expected artifact/token list 唯一性和固定数量。 本轮新增 browser-side parity: - `verifyBrowserGeneratedArtifactDocumentationCoverage()` 现在会检查: - expected WASM inventory artifact list 固定为 54 项; - expected WASM inventory artifact list 无重复; - expected native artifact token list 固定为 8 项; - expected native artifact token list 无重复; - 原有 fetchability、non-empty TSV header、文档覆盖和 completion-summary count parity 保持不变。 该检查只读取 generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - browser smoke 现在不仅检查 generated artifact fetchability,也检查 expected artifact/token list duplicate-free 和 fixed count; - 该检查是 artifact list parity,不改变 blocked runtime 状态。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 三十八、2026-06-12 继续执行记录:Node/browser native skipped artifact empty allowance 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 将 generated artifact fetchability 检查补到 Node,并同步 browser 空文件例外。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 三十六/三十七中 browser smoke 已检查 generated artifact fetchability、 fixed count 和 duplicate-free expected artifact list; - Node documentation coverage gate 此前只检查文档引用; - 本轮先把 Node coverage gate 收紧为文件存在性和 TSV header 检查; - 复跑时发现 `build/native/sim-configs/skipped.tsv` 当前为 0 字节,这是 native strict sim-config baseline 没有 skipped rows 时的合法 artifact。 本轮新增/修正: - `verifyGeneratedArtifactDocumentationCoverage()` 现在会检查每个 generated WASM sim-config inventory artifact 文件存在,且有非空 TSV header; - `verifyNativeGeneratedArtifactDocumentationCoverage()` 现在会检查每个 native generated TSV artifact 文件存在; - native generated TSV artifact 除 `build/native/sim-configs/skipped.tsv` 外必须有非空 TSV header; - browser generated artifact fetchability 使用同一个空文件例外: `build/native/sim-configs/skipped.tsv` 可以为空; - 文档明确该空文件只表示 native strict sim-config baseline 当前没有 skipped rows,不是 runtime promotion 证据。 该检查只读取 generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - Node 和 browser 都检查 generated artifact 可见性; - `build/native/sim-configs/skipped.tsv` 是唯一允许为空的 native TSV artifact。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 三十九、2026-06-12 继续执行记录:Node generated artifact list fixed-count parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 将 generated artifact list fixed-count parity 补到 Node。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 三十七中 browser smoke 已检查 expected WASM/native artifact list 的固定数量 和无重复; - 三十八中 Node coverage gate 已检查 generated artifact 文件存在性和 TSV header; - Node 端也应明确锁定 generated artifact list 的当前数量,防止生成端新增或 丢失 artifact 时只靠 browser hardcoded list 才暴露。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在要求 generated WASM sim-config inventory artifact list: - 无重复; - 固定为 54 项; - 每个 artifact 文件存在; - 每个 artifact 有非空 TSV header。 - `verifyNativeGeneratedArtifactDocumentationCoverage()` 现在要求 native generated TSV token list: - 无重复; - 固定为 8 项; - 每个 artifact 文件存在; - 除 `build/native/sim-configs/skipped.tsv` 外必须有非空 TSV header。 该检查只读取 generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - Node 和 browser 都锁定当前 artifact list 数量: - WASM inventory artifacts:54; - native TSV artifacts:8; - generated artifact list drift 必须通过 gate 和文档审查处理。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 四十、2026-06-12 继续执行记录:Node native artifact exact token set parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 将 native generated TSV artifact list 从 fixed-count 收紧为 exact set。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 三十九中 Node coverage gate 已检查 native generated TSV token list 固定为 8 项且无重复; - 但如果 8 项中替换了一个 token,单纯 fixed-count 不能表达 intended baseline; - Node 端应直接锁定当前 native generated TSV token exact set。 本轮新增 Node-side parity: - `verifyNativeGeneratedArtifactDocumentationCoverage()` 现在要求 native generated TSV token list 精确等于: - `build/native/native-runtime-probe-summary.tsv` - `build/native/native-source-proof-summary.tsv` - `build/native/nc-files/summary.tsv` - `build/native/sim-configs/class-summary.tsv` - `build/native/sim-configs/path-matrix.tsv` - `build/native/sim-configs/skipped.tsv` - `build/native/sim-configs/summary.tsv` - `build/native/source-probes.tsv` - 原有无重复、fixed count、文件存在性、header/empty-skipped 例外、文档覆盖 检查保持不变。 该检查只读取 generated native artifacts 和文档,不执行 native runtime probe, 也不允许 promotion。 2. 文档同步。 已记录: - Node coverage gate 的 native generated TSV token list 是 exact duplicate-free 8-token baseline; - native generated artifact drift 必须通过 gate 和文档审查处理。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 四十一、2026-06-12 继续执行记录:Node WASM inventory artifact exact set parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 将 WASM inventory artifact list 从 fixed-count 收紧为 exact set。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 三十九中 Node coverage gate 已检查 generated WASM inventory artifact list 固定为 54 项且无重复; - 但如果 54 项中替换了一个 artifact,单纯 fixed-count 不能表达 intended baseline; - browser smoke 已有 hardcoded expected list,Node 端也应锁定 exact set。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在要求 generated WASM sim-config inventory artifact list 精确等于当前 54-entry baseline; - 原有无重复、fixed count、文件存在性、非空 TSV header、文档覆盖检查保持 不变; - native generated TSV token exact set 检查继续保持。 该检查只读取 generated WASM inventory artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - Node coverage gate 的 generated WASM inventory artifact list 是 exact duplicate-free 54-entry baseline; - WASM inventory artifact drift 必须通过 gate 和文档审查处理。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 四十二、2026-06-12 继续执行记录:Node/browser artifact token surface parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 新增 Node 对 browser smoke artifact token 列表的 cross-surface 检查。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 四十/四十一中 Node 已锁定 native exact 8-token baseline 和 WASM exact 54-entry baseline; - browser smoke 也有 hardcoded expected artifact list 并执行 fetchability; - 但如果 Node exact set 更新而 browser hardcoded list 漏同步,需要在 Node 侧直接暴露 cross-surface drift。 本轮新增 Node-side parity: - 新增 `browserInterpSmokePath`; - `verifyGeneratedArtifactDocumentationCoverage()` 现在会检查 browser smoke source 中包含全部 54 个 generated WASM inventory artifact names; - `verifyNativeGeneratedArtifactDocumentationCoverage()` 现在会检查 browser smoke source 中包含全部 8 个 native generated TSV artifact tokens; - 原有 exact set、fixed count、无重复、文件存在性、header/empty-skipped 例外、 文档覆盖检查保持不变。 该检查只读取 Node/browser test source、generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - Node coverage gate 现在会检查 browser smoke source 中列出同一批 WASM/native artifact tokens; - generated artifact coverage 的 Node/browser surface 必须同步。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 四十三、2026-06-12 继续执行记录:Node/browser artifact fixed-count guard surface parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 收紧 Node 对 browser smoke artifact coverage surface 的检查。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 四十二中 Node 已检查 browser smoke source 中列出同一批 WASM/native artifact tokens; - 但如果 browser smoke 保留 token 列表、移除 fixed-count guard,browser 侧仍 可能少一层 expected list drift 检查; - Node 应确认 browser smoke 保留同一组 fixed-count guards。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 `wasmArtifactNames.length !== 54` guard; - `verifyNativeGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 `nativeArtifactTokens.length !== 8` guard; - 原有 exact set、fixed count、无重复、文件存在性、header/empty-skipped 例外、 文档覆盖和 browser token surface 检查保持不变。 该检查只读取 Node/browser test source、generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - Node coverage gate 现在确认 browser smoke 不仅列出同一批 artifact tokens, 也保留对应 fixed-count guards; - generated artifact coverage 的 Node/browser surface 必须同步。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 四十四、2026-06-12 继续执行记录:Node/browser artifact duplicate-free guard surface parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 继续收紧 Node 对 browser smoke artifact coverage surface 的检查。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 四十三中 Node 已确认 browser smoke 保留 WASM/native artifact fixed-count guards; - 但 browser smoke 的 duplicate-free guards 也属于 expected artifact list drift 防线; - Node 应确认 browser smoke 同时保留 duplicate-free guards。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 `new Set(wasmArtifactNames).size !== wasmArtifactNames.length` guard; - `verifyNativeGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 `new Set(nativeArtifactTokens).size !== nativeArtifactTokens.length` guard; - 原有 exact set、fixed count、无重复、文件存在性、header/empty-skipped 例外、 文档覆盖、browser token surface 和 browser fixed-count guard 检查保持不变。 该检查只读取 Node/browser test source、generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - Node coverage gate 现在确认 browser smoke 不仅列出同一批 artifact tokens、 保留 fixed-count guards,也保留 duplicate-free guards; - generated artifact coverage 的 Node/browser surface 必须同步。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 四十五、2026-06-12 继续执行记录:Node/browser artifact fetchability guard surface parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 继续收紧 Node 对 browser smoke artifact coverage surface 的检查。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 四十二到四十四中 Node 已确认 browser smoke 保留同一批 artifact tokens、 fixed-count guards 和 duplicate-free guards; - browser smoke 的 fetchability/header guards 和 native skipped 空文件例外也是 artifact surface contract 的一部分; - Node 应确认 browser smoke 保留这些 guard,防止 browser 侧只保留 token list。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 `browser_generated_artifact_fetchability` guard; - `verifyNativeGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 `browser_native_artifact_fetchability` guard; - `verifyNativeGeneratedArtifactDocumentationCoverage()` 还检查 browser smoke source 中保留 `emptyNativeArtifactTokensAllowed.has(artifactToken)`,确保 `build/native/sim-configs/skipped.tsv` 的合法空文件例外同步存在; - 原有 exact set、fixed count、无重复、文件存在性、header/empty-skipped 例外、 文档覆盖、browser token surface、fixed-count guard 和 duplicate-free guard 检查保持不变。 该检查只读取 Node/browser test source、generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - Node coverage gate 现在确认 browser smoke 保留 token list、fixed-count guards、 duplicate-free guards、fetchability/header guards,以及 native skipped 空文件 例外; - generated artifact coverage 的 Node/browser surface 必须同步。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 4. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 四十六、2026-06-12 继续执行记录:Node/browser artifact documentation guard surface parity 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 继续收紧 Node 对 browser smoke artifact coverage surface 的检查。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 四十二到四十五中 Node 已确认 browser smoke 保留同一批 artifact tokens、 fixed-count guards、duplicate-free guards、fetchability/header guards,以及 native skipped 空文件例外; - browser smoke 对文档覆盖的 missing-artifact guard 也是 artifact surface contract 的一部分; - Node 应确认 browser smoke 保留这些 guard,防止 browser 侧只保留 token 和 fetchability 检查。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 `browser_generated_artifact_documentation_coverage: missing` guard; - `verifyNativeGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 `browser_native_artifact_documentation_coverage: missing` guard; - 原有 exact set、fixed count、无重复、文件存在性、header/empty-skipped 例外、 文档覆盖、browser token surface、fixed-count guard、duplicate-free guard 和 fetchability/header guard 检查保持不变。 该检查只读取 Node/browser test source、generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 3. 文档同步。 已记录: - Node coverage gate 现在确认 browser smoke 保留 token list、fixed-count guards、 duplicate-free guards、fetchability/header guards、documentation-missing guards, 以及 native skipped 空文件例外; - generated artifact coverage 的 Node/browser surface 必须同步。 4. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` 5. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 四十七、2026-06-12 继续执行记录:Node/browser artifact completion count-parity surface guard 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 继续收紧 Node 对 browser smoke artifact coverage surface 的检查。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 四十二到四十六中 Node 已确认 browser smoke 保留同一批 artifact tokens、 fixed-count guards、duplicate-free guards、fetchability/header guards、 documentation-missing guards,以及 native skipped 空文件例外; - browser smoke 还会把 `boundary-phase-completion-summary.tsv` 中的 artifact documentation coverage count 与 browser 已加载的 token list 长度对齐; - Node 应确认 browser smoke 保留该 completion count-parity 调用。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 `wasm_inventory_artifact_documentation_coverage` 使用 `generatedArtifactDocumentationCoverage.wasmArtifactNames.length` 的 count parity guard; - `verifyNativeGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 `native_artifact_documentation_coverage` 使用 `generatedArtifactDocumentationCoverage.nativeArtifactTokens.length` 的 count parity guard; - 原有 exact set、fixed count、无重复、文件存在性、header/empty-skipped 例外、 文档覆盖、browser token surface、fixed-count guard、duplicate-free guard、 fetchability/header guard 和 documentation-missing guard 检查保持不变。 该检查只读取 Node/browser test source、generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 3. 文档同步。 已记录: - Node coverage gate 现在确认 browser smoke 保留 token list、fixed-count guards、 duplicate-free guards、fetchability/header guards、documentation-missing guards、 completion count-parity guards,以及 native skipped 空文件例外; - generated artifact coverage 的 Node/browser surface 必须同步。 4. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` 5. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 四十八、2026-06-12 继续执行记录:Node/browser artifact review-document fetch surface guard 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 继续收紧 Node 对 browser smoke artifact coverage surface 的检查。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 四十二到四十七中 Node 已确认 browser smoke 保留同一批 artifact tokens、 fixed-count guards、duplicate-free guards、fetchability/header guards、 documentation-missing guards、completion count-parity guards,以及 native skipped 空文件例外; - browser smoke 的 artifact documentation coverage 必须实际 fetch 三份 review docs,而不是只检查内联 token list; - Node 应确认 browser smoke 保留 review-document fetch surface。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留以下 fetch token: - `../../docs/compatibility-validation.md` - `../../docs/sim-configs-coverage-matrix.md` - `../../docs/full-process-boundary-design.md` - 原有 exact set、fixed count、无重复、文件存在性、header/empty-skipped 例外、 文档覆盖、browser token surface、fixed-count guard、duplicate-free guard、 fetchability/header guard、documentation-missing guard 和 completion count-parity guard 检查保持不变。 该检查只读取 Node/browser test source、generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 3. 文档同步。 已记录: - Node coverage gate 现在确认 browser smoke 保留 token list、fixed-count guards、 duplicate-free guards、fetchability/header guards、documentation-missing guards、 completion count-parity guards、review-document fetches,以及 native skipped 空文件例外; - generated artifact coverage 的 Node/browser surface 必须同步。 4. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` 5. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 四十九、2026-06-12 继续执行记录:Node/browser artifact review-document join surface guard 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 继续收紧 Node 对 browser smoke artifact coverage surface 的检查。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 四十八中 Node 已确认 browser smoke 保留三份 review-document fetch token; - 仅保留 token 还不够,browser smoke 必须把 fetch 结果收集成 `documentationText`,并在 missing-reference 检查前 join; - Node 应确认 browser smoke 保留这个 review-document join surface。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 `const documentationText = [`; - 同一检查还要求 browser smoke 保留 `].join("\\n");`; - 这保证 browser smoke 的 artifact documentation coverage 仍使用三份 review docs 的合并文本,而不是只保留内联 artifact token list。 原有 exact set、fixed count、无重复、文件存在性、header/empty-skipped 例外、 文档覆盖、browser token surface、fixed-count guard、duplicate-free guard、 fetchability/header guard、documentation-missing guard、completion count-parity guard 和 review-document fetch token 检查保持不变。 该检查只读取 Node/browser test source、generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 3. 文档同步。 已记录: - Node coverage gate 现在确认 browser smoke 保留 review-document fetches,并把 fetched docs join 成用于 missing-reference 检查的 review text; - generated artifact coverage 的 Node/browser surface 必须同步。 4. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` 5. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 五十、2026-06-12 继续执行记录:completion-summary artifact documentation count baseline guard 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 收紧 Node completion-summary artifact documentation count。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - Node 已锁定 generated WASM artifact list 是 54 项,native generated TSV token list 是 8 项; - browser smoke 已把 documentation coverage completion count 与 browser 已加载 token list 长度做 count-parity; - Node 自身也应直接检查 `boundary-phase-completion-summary.tsv` 中这两个 documentation coverage criterion 的 count 与当前 baseline 一致。 本轮新增 Node-side guard: - `verifyBoundaryPhaseCompletionSummaryRows()` 现在要求 `wasm_inventory_artifact_documentation_coverage.count === "54"`; - 同一函数要求 `native_artifact_documentation_coverage.count === "8"`; - 这样可以防止 completion summary 的 documentation coverage count 与生成的 artifact baseline 脱节。 该检查只读取生成的 completion rows,不执行 native runtime probe,也不允许 promotion。 3. 文档同步。 已记录: - Node coverage gate 现在锁定 `boundary-phase-completion-summary.tsv` 中 artifact documentation coverage 的两个 baseline count: - WASM sim-config inventory artifact count `54` - native generated TSV artifact count `8` 4. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` 5. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 五十一、2026-06-12 继续执行记录:browser completion evidence reviewability surface guard 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 收紧 browser completion count parity 的 evidence surface。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - browser smoke 已检查 artifact documentation coverage completion count 与 browser 已加载 token list 一致; - 该 count parity 还必须保留 reviewable evidence 检查,避免 completion summary 只给出 count 而没有可审查 evidence; - Node 应确认 browser smoke 源码保留该 evidence reviewability guard。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 `row.evidence === "-" || row.evidence.length < 12`; - 同一检查还要求保留 `completion evidence is not reviewable` 错误文本; - 这样可以防止 browser-side completion count parity 去掉 evidence 可审查性约束。 该检查只读取 Node/browser test source、generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 3. 文档同步。 已记录: - Node coverage gate 现在确认 browser smoke 在 completion count parity 中保留 reviewable evidence 检查; - generated artifact coverage 的 Node/browser surface 必须同步。 4. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` 5. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 五十二、2026-06-12 继续执行记录:browser completion count-parity invocation guard 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 收紧 browser completion count parity 调用面。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - 五十一中 Node 已确认 browser smoke 的 count-parity helper 保留 reviewable evidence 检查; - 仅保留 helper 内容还不够,browser smoke 必须实际用 generated `boundaryPhaseCompletionRows` 调用该 helper; - Node 应确认 browser smoke 保留这个调用面。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留: `verifyBrowserBoundaryPhaseCompletionCountParity(\n boundaryPhaseCompletionRows,` - 这样可以防止 browser smoke 只保留 helper 定义或字符串,但不再用实际生成的 completion rows 进行 count parity。 该检查只读取 Node/browser test source、generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 3. 文档同步。 已记录: - Node coverage gate 现在确认 browser smoke 实际用 generated completion rows 调用 completion count-parity helper; - generated artifact coverage 的 Node/browser surface 必须同步。 4. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` 5. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 五十三、2026-06-12 继续执行记录:browser artifact documentation coverage invocation guard 本轮继续选择当前 host 可执行的非 runtime 方向。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. blocker 复查。 执行: ```bash git diff --check git status --short cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv ``` 结果: - `git diff --check` clean。 - `runtime-boundary-host-readiness-rollup.tsv` 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` 2. 收紧 browser artifact documentation coverage 调用面。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - Node 已确认 browser smoke 保留 artifact documentation coverage helper 的 token list、review-document fetch、join、missing guard 和 count parity; - 仅保留 helper 内容还不够,browser smoke 必须实际 await 执行该 helper; - Node 应确认 browser smoke 保留这个调用面。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 `await verifyBrowserGeneratedArtifactDocumentationCoverage();`; - 这样可以防止 browser smoke 只保留 helper 定义,但不再实际执行 generated artifact documentation coverage。 该检查只读取 Node/browser test source、generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 3. 文档同步。 已记录: - Node coverage gate 现在确认 browser smoke 实际执行 artifact documentation coverage helper; - generated artifact coverage 的 Node/browser surface 必须同步。 4. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` 5. 下一步状态。 当前 host 仍不能推进第四部分第 4 步。后续继续有两个合法方向: - 切换到具备 LinuxCNC host runtime 的环境,重新跑 preflight/dispatch, 再决定是否执行 opt-in probe。 - 留在当前 host,继续做不需要 runtime 的 source proof/gate consistency, 或小批量 pure interpreter intake。 五十四、2026-06-12 继续执行记录:当前 gate 复跑与下一步建议 本轮按当前 `text5.txt` 最新状态继续执行。blocked runtime host readiness 仍为 blocked,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 基础 gate 复跑。 执行: ```bash git diff --check wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_wasm.sh wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `vendor sync up to date` - `standalone CNC semantics guard complete` - `sim_configs_wasm_node_smoke=ok` - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` 2. host preflight artifact 复查。 读取: ```bash cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-preflight.tsv cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-requirement-summary.tsv cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-unblock-plan.tsv cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-opt-in-probe-dispatch-plan.tsv ``` 当前结论: - `L4-USER-M-PROCESS` 仍缺 `halrun,halcmd,linuxcnc`。 - `L4-TOOL-DB` 仍缺 `linuxcnc,milltask,halcmd`。 - `L4-PYTHON-REMAP` 仍缺 `linuxcnc`。 - rollup 仍为: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `host_readiness_status=host_blocked_for_all_opt_in_native_probes` - `execution_enabled=0` - `promotion_allowed=0` - dispatch plan 对三个 blocked family 均为 `dispatch_allowed=0`。 3. 下一步工作建议。 当前最推荐的下一步不是继续扩 runtime,而是在当前 host 上继续做 non-runtime gate consistency,优先级如下: 1. 继续收紧 Node/browser 对 generated artifact 文档覆盖的双向一致性: 确认新增 artifact 不仅出现在文档 token list,也在 browser smoke 中被实际 读取和断言,并由 Node gate 检查调用面。 2. 若需要更接近 coverage 增量,则做小批量 pure interpreter intake: 只选不依赖 HAL/task/Python remap/tool DB/user-M process 的 upstream `tests/interp/*` fixture,严格按 native -> Node WASM -> browser representative 顺序推进。 3. blocked runtime 的 millturn/tool DB/Python remap opt-in probe 暂不推进; 只有切换到具备 `halcmd/halrun/linuxcnc/milltask` 的 host,并重新跑 preflight/dispatch 确认 `runtime_ready=1` 与 `dispatch_allowed=1` 后, 才能人工执行对应 `ENABLE_*_RUNTIME_PROBE=1` 命令。 本轮建议优先执行第 1 项。它不需要 LinuxCNC host runtime,风险低,且能继续 防止 artifact/gate 文档与 browser 实际检查面漂移。 五十五、2026-06-12 继续执行记录:browser generated artifact fetch invocation guard 本轮继续执行五十四建议的第 1 项:在当前 host 上做 non-runtime gate consistency,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 收紧 browser artifact fetch 调用面。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - browser smoke 已经会执行 `verifyBrowserGeneratedArtifactDocumentationCoverage()`; - Node gate 也已经确认 browser 保留 artifact list、fixed count、duplicate-free、 fetchability/header、documentation-missing 和 completion count-parity guard; - 但 Node 还应显式锁定 browser 必须按 artifact name/token 动态 fetch 生成的 TSV,而不是只保留错误标签或静态字符串。 本轮新增 Node-side parity: - 对 WASM inventory artifacts,Node 现在检查 browser smoke source 中保留: `await fetchText(\`../../build/wasm/sim-configs-inventory/${artifactName}\`)` - 对 native generated TSV artifacts,Node 现在检查 browser smoke source 中保留: `await fetchText(\`../../${artifactToken}\`)` 该检查只读取 Node/browser test source、generated artifacts 和文档,不执行 native runtime probe,也不允许 promotion。 2. 文档同步。 已记录: - Node coverage gate 现在确认 browser smoke 按 artifact name fetch generated WASM TSV; - Node coverage gate 现在确认 browser smoke 按 relative artifact token fetch native TSV; - 这仍是 documentation/artifact fetchability parity,不是 runtime proof。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` 4. 下一步工作建议。 当前 host 仍不能推进 blocked runtime opt-in probe。下一步继续优先做 non-runtime consistency: 1. 检查 Node/browser 是否都锁定 generated artifact coverage 的 documentation source set,也就是 compatibility、matrix、full-process 三份文档 必须都被读取并合并后再做 missing-reference check。 2. 若该面已经足够稳,再考虑小批量 pure interpreter intake;仍需避免 HAL/task/Python remap/tool DB/user-M process 依赖。 3. blocked runtime 只有在具备 `halcmd/halrun/linuxcnc/milltask` 的 host 上重新跑 preflight/dispatch 并确认可 dispatch 后,才允许人工 opt-in。 五十六、2026-06-12 继续执行记录:browser documentation source-set invocation guard 本轮继续执行五十五建议的第 1 项:检查并收紧 generated artifact coverage 的 documentation source set。仍不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 收紧 browser documentation source-set 调用面。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - browser smoke 已读取三份 review docs: - `../../docs/compatibility-validation.md` - `../../docs/sim-configs-coverage-matrix.md` - `../../docs/full-process-boundary-design.md` - Node gate 已逐个检查这些 token,也检查了 `const documentationText = [` 和 `].join("\\n");`; - 但为了防止 token 分散存在却不再作为同一个 missing-reference source set 使用, Node 应锁定完整 fetch-and-join 片段。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留完整三文档 fetch-and-join source set: - compatibility validation; - sim-configs coverage matrix; - full-process boundary design; - `].join("\\n");` 该检查只读取 Node/browser test source 和文档,不执行 native runtime probe,也不 允许 promotion。 2. 文档同步。 已记录: - Node coverage gate 现在确认 browser smoke fetches and joins the exact compatibility/matrix/full-process boundary review-document set; - 该 source set 用于 generated artifact missing-reference checks; - 这仍是 documentation/artifact parity,不是 runtime proof。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` 4. 下一步工作建议。 当前 host 仍不能推进 blocked runtime opt-in probe。下一步有两个高效方向: 1. 继续 non-runtime consistency:检查 Node/browser 是否都锁定 generated artifact coverage 的 missing-reference loop 必须遍历 `wasmArtifactNames` 和 `nativeArtifactTokens`,并且使用同一个 joined `documentationText`。 2. 如果不继续收紧 artifact 文档 gate,则切换到小批量 pure interpreter intake; 仍只选不依赖 HAL/task/Python remap/tool DB/user-M process 的 fixture。 五十七、2026-06-12 继续执行记录:browser documentation missing-reference loop guard 本轮继续执行五十六建议的第 1 项:收紧 generated artifact coverage 的 missing-reference loop。仍不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 收紧 browser missing-reference loop 调用面。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - browser smoke 已经 fetch/join 三份 review docs 到同一个 `documentationText`; - browser smoke 也已经遍历 `wasmArtifactNames` 和 `nativeArtifactTokens` 做 missing-reference checks; - Node gate 需要明确锁定这两个 loop 使用同一个 joined `documentationText`, 防止只保留错误标签或列表 token 而不再实际做覆盖检查。 本轮新增 Node-side parity: - 对 WASM inventory artifacts,Node 现在检查 browser smoke source 中保留: `for (const artifactName of wasmArtifactNames) {` 和 `if (!documentationText.includes(artifactName)) {` - 对 native generated TSV artifacts,Node 现在检查 browser smoke source 中保留: `for (const artifactToken of nativeArtifactTokens) {` 和 `if (!documentationText.includes(artifactToken)) {` 该检查只读取 Node/browser test source 和文档,不执行 native runtime probe,也不 允许 promotion。 2. 文档同步。 已记录: - Node coverage gate 现在确认 browser missing-reference loops 遍历 `wasmArtifactNames` 和 `nativeArtifactTokens`; - 两个 loop 都必须 against joined `documentationText`; - 这仍是 documentation/artifact parity,不是 runtime proof。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` 4. 下一步工作建议。 当前 host 仍不能推进 blocked runtime opt-in probe。下一步建议: 1. artifact documentation coverage 的 Node/browser 调用面已经较完整;优先考虑 做一次小批量 pure interpreter intake,但必须先筛 fixture,排除 HAL/task、 Python remap、tool DB、user-M process、UI/full-process 依赖。 2. 如果继续做 non-runtime consistency,可检查 browser 和 Node 对 `boundary-phase-completion-summary.tsv` 的 artifact documentation count parity 是否都绑定到同一组 returned artifact arrays,而不是硬编码独立计数。 3. blocked runtime 仍只在具备 `halcmd/halrun/linuxcnc/milltask` 的 host 上重新跑 preflight/dispatch 并确认可 dispatch 后,才允许人工 opt-in。 五十八、2026-06-12 继续执行记录:small pure interpreter intake - do-while-break bug fixture 本轮执行五十七建议的第 1 项:小批量 pure interpreter intake。仍不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. fixture 筛选。 候选: - `wasm-port/vendor/linuxcnc/tests/interp/do-while-break/bug.ngc` 筛选结论: - 同目录 `test.ngc` 已在 Node/browser 覆盖; - `bug.ngc` 是一个更小的 `do` / `break` / `while` 回归 fixture; - 不依赖 INI、tool table、HAL/task、Python remap、tool DB、user-M process、 UI/full-process; - 只通过 vendored LinuxCNC interpreter 执行,不引入 JS CNC 语义。 2. 探测。 用 SDK 直接运行 `bug.ngc`,确认当前 WASM output: - `file_open=0` - `file_read_count=7` - `file_execute_count=7` - `file_saw_error=0` - `canon_event=PROGRAM_END` - `@start of do-while-loop` 出现在 print output; - `@end of do-while-loop` 不出现,证明 `break` 后不会执行 loop 尾部 print。 3. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` 新增检查: - Node fixture name:`interp_do_while_break_bug_wasm` - Browser fixture name:`browser_interp_do_while_break_bug` - 两侧都断言: - `file_open=0` - `file_read_count=7` - `file_execute_count=7` - `file_saw_error=0` - `canon_event=PROGRAM_END` - `absent=@end of do-while-loop` - `absent=file_saw_error=1` 4. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_interp_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `interp_wasm_node_smoke=ok` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - Host aggregate 中 Node inventory 仍保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` 5. 下一步工作建议。 继续小批量 pure interpreter intake,但每次只加 1-2 个 fixture,避免扩大 review 面。下一步优先做覆盖对账后选择: 1. `do-while-break/bug.ngc` 已完成;继续找未被 Node/browser 双侧覆盖的 pure interpreter `.ngc`。 2. 候选应优先来自 upstream `tests/interp/good` 或 `tests/interp/bad` 中不依赖 INI/tool/remap/HAL/task 的单文件 arc/error fixture。 3. 若候选需要 INI、tool table、subroutine path 或 remap,必须先走 staging helper 和 blocked dependency 分类,不要直接纳入 pure interpreter intake。 五十九、2026-06-12 继续执行记录:good/bad pure interpreter fixture coverage guard 本轮继续执行五十八建议,优先从 upstream `tests/interp/good` 和 `tests/interp/bad` 做 pure interpreter intake 对账。仍不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 覆盖对账。 对账结果: - `tests/interp/good` 当前 6 个 `.ngc` 全部已在 Node/browser 覆盖; - `tests/interp/bad` 当前 21 个 `.ngc` 全部已在 Node/browser 覆盖; - 因此本轮不重复添加 fixture,而是把“已全覆盖”变成可执行 guard。 2. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - `interpRegressionNgcFiles(name)` 枚举 upstream `tests/interp/` 下的 `.ngc`; - `badInterpFixtures` 必须与 vendored `tests/interp/bad/*.ngc` 完全一致; - `goodArcFixtures` 必须与 vendored `tests/interp/good/*.ngc` 完全一致; - 如果 upstream good/bad 新增 `.ngc`,Node smoke 会失败,要求显式纳入或分类。 Browser 新增: - `badInterpFixtures` 固定 `length=21` 且 file list duplicate-free; - `goodArcFixtures` 固定 `length=6` 且 file list duplicate-free; - browser representative 不枚举目录,但会防止代表列表被静默删减或重复。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_interp_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `interp_wasm_node_smoke=ok` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - Host aggregate 中 Node inventory 仍保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` 4. 下一步工作建议。 继续小批量 pure interpreter intake,但不要再从 `good` / `bad` 目录找增量, 这两个目录已有 coverage guard。下一步建议: 1. 对 `tests/interp/m98m99` 做同类覆盖对账,优先确认已覆盖文件、未覆盖文件、 以及哪些需要 fanuc-mode INI 或 expected-error 分类; 2. 只纳入 1 个明确 pure interpreter 且 Node/browser 都可稳定断言的未覆盖 fixture; 3. 如果 `m98m99` 已经足够完整,则回到 non-runtime consistency,检查 `boundary-phase-completion-summary.tsv` 的 count parity 是否完全绑定到返回的 artifact arrays。 六十、2026-06-12 继续执行记录:m98m99 pure interpreter fixture coverage guard 本轮执行五十九建议,对 upstream `tests/interp/m98m99` 做覆盖对账。仍不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 覆盖对账。 对账结果: - `tests/interp/m98m99` 当前 24 个 `.ngc` 已全部在 Node/browser 覆盖; - 覆盖包含: - basic Fanuc and RS274 sub calls; - variable scope; - M98 expected errors; - mixed sub-style expected errors; - nested/sub-follow-main; - fanuc-mode INI enable/disable cases; - main-program O-word legal and expected-error cases; - named/numbered program and O-expression call cases; - 因此本轮不重复添加 fixture,而是把“已全覆盖”变成可执行 guard。 2. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - `interpRegressionNgcFilesRecursive(name)` 递归枚举 upstream `tests/interp//**/*.ngc`; - `m98m99RegressionFiles` 固定 24 个当前 upstream `.ngc`; - Node smoke 要求该 manifest 与 vendored `tests/interp/m98m99/**/*.ngc` 完全一致; - 如果 upstream m98m99 新增 `.ngc`,Node smoke 会失败,要求显式纳入或分类。 Browser 新增: - `m98m99RegressionFiles` 固定 `length=24` 且 duplicate-free; - browser representative 不枚举目录,但会防止 m98m99 manifest 被静默删减或重复。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_interp_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `interp_wasm_node_smoke=ok` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` - Host aggregate 中 Node inventory 仍保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` 4. 下一步工作建议。 `good`、`bad`、`m98m99` 三个 pure interpreter fixture family 已有覆盖 guard。 下一步建议回到 non-runtime consistency: 1. 检查 `boundary-phase-completion-summary.tsv` 的 artifact documentation count parity 是否完全绑定到 `verifyBrowserGeneratedArtifactDocumentationCoverage()` 返回的 `wasmArtifactNames` / `nativeArtifactTokens`,以及 Node 是否锁定这个 调用面; 2. 如果还要继续 interpreter intake,优先对 `magic_comments` 或 `rotation` 这类 已有少量代表的纯解释器 family 做覆盖对账,不要碰 HAL/task/remap/tool DB/ user-M process; 3. blocked runtime 仍只在具备 `halcmd/halrun/linuxcnc/milltask` 的 host 上重新跑 preflight/dispatch 并确认可 dispatch 后,才允许人工 opt-in。 六十一、2026-06-12 继续执行记录:artifact documentation count parity returned-array guard 本轮执行六十建议的第 1 项,回到 non-runtime consistency,检查 `boundary-phase-completion-summary.tsv` 的 artifact documentation count parity 是否绑定到 `verifyBrowserGeneratedArtifactDocumentationCoverage()` 返回的 arrays。 仍不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 收紧 browser count-parity 调用面。 更新: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` 背景: - browser smoke 已执行 `verifyBrowserGeneratedArtifactDocumentationCoverage()`; - `verifyBrowserBoundaryPhaseCompletionCountParity()` 已用 generated completion rows; - WASM documentation count 已使用 `generatedArtifactDocumentationCoverage.wasmArtifactNames.length`; - native documentation count 已使用 `generatedArtifactDocumentationCoverage.nativeArtifactTokens.length`; - 但 Node gate 应锁定这两个 entries 同时位于同一个 count-parity Map 中,防止 后续被拆成独立硬编码计数。 本轮新增 Node-side parity: - `verifyGeneratedArtifactDocumentationCoverage()` 现在检查 browser smoke source 中保留 compound count-parity snippet: - `wasm_inventory_artifact_documentation_coverage` - `generatedArtifactDocumentationCoverage.wasmArtifactNames.length` - `native_artifact_documentation_coverage` - `generatedArtifactDocumentationCoverage.nativeArtifactTokens.length` 该检查只读取 Node/browser test source 和文档,不执行 native runtime probe,也不 允许 promotion。 2. 文档同步。 已记录: - browser documentation-coverage completion counts 必须绑定到 returned `wasmArtifactNames` 和 `nativeArtifactTokens` arrays; - 这仍是 documentation/artifact count-parity,不是 runtime proof。 3. 验证完成。 执行: ```bash git diff --check wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `sim_configs_wasm_node_inventory=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` 4. 下一步工作建议。 当前 artifact documentation coverage 的 Node/browser 调用面已较完整。下一步建议: 1. 继续 interpreter family coverage 对账,优先 `magic_comments` 或 `rotation`; 只加 coverage guard 或 1 个明确 pure interpreter fixture; 2. 如果不继续 intake,则做一次当前大工作集整理:`git diff --stat`、 `git diff --name-only`,按 browser gate、Node inventory、interp intake、 docs/text 归 batch,准备 review; 3. blocked runtime 仍只在具备 `halcmd/halrun/linuxcnc/milltask` 的 host 上重新跑 preflight/dispatch 并确认可 dispatch 后,才允许人工 opt-in。 六十二、2026-06-12 继续执行记录:magic_comments/rotation pure interpreter fixture coverage guard 本轮执行六十一建议的第 1 项,对 `magic_comments` 和 `rotation` 做 pure interpreter family coverage 对账。仍不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 覆盖对账。 对账结果: - `tests/interp/magic_comments` 当前只有 1 个 `.ngc`: `param_format_printing/test.ngc`; - `tests/interp/rotation` 当前有 3 个 `.ngc`: `abs-pts/test.ngc`、`g28/g28.ngc`、`g53/g53.ngc`; - 这 4 个文件此前已在 Node/browser 中执行覆盖; - 因此本轮不新增 fixture,只把“已全覆盖”变成可执行 guard。 2. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - `rotationRegressionFiles` 固定 3 个当前 upstream `.ngc`; - `magicCommentsRegressionFiles` 固定 1 个当前 upstream `.ngc`; - Node smoke 要求这两个 manifest 与 vendored upstream 递归 `.ngc` 列表完全一致。 Browser 新增: - `rotationRegressionFiles` 固定 `length=3` 且 duplicate-free; - `magicCommentsRegressionFiles` 固定 `length=1` 且 duplicate-free; - browser representative 不枚举目录,但会防止这两个 manifest 被静默删减或重复。 3. 下一步工作建议。 验证通过后,下一步优先做当前大工作集整理: 1. `git diff --stat`、`git diff --name-only`; 2. 按 browser gate、Node inventory、interp intake、docs/text 归 batch; 3. 只补 review 边界说明,不继续扩大 interpreter intake; 4. blocked runtime 仍只在具备 `halcmd/halrun/linuxcnc/milltask` 的 host 上重新跑 preflight/dispatch 并确认可 dispatch 后,才允许人工 opt-in。 六十三、2026-06-12 继续执行记录:当前大工作集 review batch 整理 本轮执行六十二建议的第 1 到第 3 项,只整理当前工作集的 review 边界,不新增 interpreter fixture,不扩大 browser inventory,也不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 当前工作区。 当前 tracked 改动: ```text text4.txt wasm-port/docs/compatibility-validation.md wasm-port/docs/full-process-boundary-design.md wasm-port/docs/sim-configs-coverage-matrix.md wasm-port/tests/browser/interp_smoke.html wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/wasm/node/verify_interp_wasm.mjs wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs ``` 当前 untracked 文件: ```text text5.txt ``` `git diff --stat` 当前不包含 untracked `text5.txt`,review/提交时必须单独把 `text5.txt` 纳入范围。 2. Review batch 划分。 Batch A:browser gate/schema 扩展。 - 文件: - `wasm-port/tests/browser/interp_smoke.html` - `wasm-port/tests/browser/verify_interp_browser.sh` - 内容边界: - browser 端校验 generated artifact 文档覆盖、fetchability、唯一性和固定数量; - browser 端校验 boundary phase completion count parity; - browser 端校验 blocked runtime host readiness、dispatch、skip-evidence、 promotion/opt-in gate parity; - browser 端补 pure interpreter representative 的 fixed-count/duplicate-free guard; - browser 仍不枚举目录,不跑 full 159 sim-config inventory。 - 非目标: - 不执行 blocked runtime probe; - 不声明 full-process/HAL/task/UI coverage; - 不把 blocked row promotion 成 pass。 Batch B:Node inventory / generated artifact gate 扩展。 - 文件: - `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` - 内容边界: - 生成并校验 runtime host preflight、requirement summary、unblock plan、 family readiness、host readiness rollup; - 生成并校验 opt-in probe dispatch plan/rollup、skip-evidence contract/rollup; - 校验 generated artifact exact set、documentation coverage、review document fetch/join surface; - 锁定 Node/browser artifact token surface parity 和 completion count parity。 - 当前预期状态: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - blocked runtime 仍保持 `execution_enabled=0`、`promotion_allowed=0`。 Batch C:pure interpreter intake / coverage guard。 - 文件: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` - 内容边界: - 新增 `do-while-break/bug.ngc` 作为小批量 pure interpreter fixture; - `good`、`bad`、`m98m99`、`magic_comments`、`rotation` 已有覆盖变成 executable coverage guard; - Node 对可递归 family 使用 upstream `.ngc` manifest 完全对账; - browser 对 representative list 做固定数量和 duplicate-free guard。 - 非目标: - 不继续 intake `HAL/task/remap/tool DB/user-M process`; - 不用 JS 重写 G-code 语义; - 不修改 vendored LinuxCNC 源文件或 fixture 内容。 Batch D:docs/text review 边界。 - 文件: - `text4.txt` - `text5.txt` - `wasm-port/docs/compatibility-validation.md` - `wasm-port/docs/full-process-boundary-design.md` - `wasm-port/docs/sim-configs-coverage-matrix.md` - 内容边界: - 记录 Batch 16 到 Batch 23 的 blocked runtime host/dispatch/skip evidence artifacts; - 说明这些 artifacts 是 non-executing、non-promoting proof/gate; - 明确当前 host 缺 `halcmd`、`halrun`、`linuxcnc`、`milltask`; - 记录 native/Node/browser promotion 顺序和禁止事项。 3. 本轮不处理事项。 - 不运行: ```bash ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_millturn_user_m_runtime.sh ENABLE_TOOL_DB_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_tool_db_runtime.sh ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_python_remap_runtime.sh ``` - 不继续扩大 interpreter intake; - 不新增 browser 全量 inventory; - 不修改 `wasm-port/vendor/linuxcnc/`; - 不把 expected failure 或 blocked runtime row 改成 pass。 4. 下一步工作建议。 先复跑最小 review gate: ```bash git diff --check wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/wasm/node/verify_interp_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 如果全部通过,下一步只做 review 准备: 1. 确认 `text5.txt` 是否需要加入版本控制; 2. 按 Batch A/B/C/D 分开审查 diff; 3. 暂停新增 coverage,除非 review 发现 drift 或 gate 失败。 5. 验证完成。 执行: ```bash git diff --check wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/wasm/node/verify_interp_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `vendor sync up to date` - `standalone CNC semantics guard complete` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `interp_wasm_node_smoke=ok` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` 6. 下一步工作建议。 当前工作集已经进入 review 准备状态。下一步建议不要继续新增测试面,改为: 1. 确认 `text5.txt` 加入版本控制; 2. 按 Batch A/B/C/D 顺序做人工 review; 3. review 时优先检查: - generated artifact list 是否有重复/遗漏; - completion count parity 是否仍绑定 generated arrays; - blocked runtime 是否始终 `execution_enabled=0`、`promotion_allowed=0`; - pure interpreter coverage guard 是否只覆盖 upstream `.ngc` manifest; 4. review 通过后再考虑提交或拆分提交。 六十四、2026-06-12 继续执行记录:review risk audit 静态核查 本轮执行六十三建议的 review 重点检查,只做静态核查和生成物读取,不新增 coverage,不扩大 browser inventory,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. Artifact list 精确集合核查。 核查内容: - browser `wasmArtifactNames` 与当前 `wasm-port/build/wasm/sim-configs-inventory/*.tsv` 精确一致; - browser `nativeArtifactTokens` 与当前 `wasm-port/build/native/**/*.tsv` 精确一致; - 当前 WASM generated artifact 数量仍为 54; - 当前 native TSV artifact token 数量仍为 8。 结果: ```text browser_wasm_artifact_exact_set=ok count=54 browser_native_artifact_exact_set=ok count=8 ``` 2. Completion count parity 绑定核查。 核查内容: - browser `verifyBrowserGeneratedArtifactDocumentationCoverage()` 返回 `wasmArtifactNames` / `nativeArtifactTokens`; - browser `verifyBrowserBoundaryPhaseCompletionCountParity()` 的 `wasm_inventory_artifact_documentation_coverage` 使用 `generatedArtifactDocumentationCoverage.wasmArtifactNames.length`; - `native_artifact_documentation_coverage` 使用 `generatedArtifactDocumentationCoverage.nativeArtifactTokens.length`; - Node gate 仍锁定这段 compound snippet,防止后续改成硬编码独立计数。 结果: - count parity 仍绑定 generated arrays; - 未发现独立硬编码计数替代 returned arrays 的 drift。 3. Blocked runtime 禁止提升核查。 读取当前 rollup: ```bash cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-opt-in-probe-dispatch-rollup.tsv cat wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-opt-in-probe-skip-evidence-rollup.tsv ``` 结果: - `family_count=3` - `host_ready_family_count=0` - `host_blocked_family_count=3` - `missing_host_requirements=halcmd,halrun,linuxcnc,milltask` - `ready_opt_in_command_count=0` - `dispatch_allowed_count=0` - `dispatch_blocked_count=3` - `skip_count=3` - `execution_enabled=0` - `promotion_allowed=0` 源码静态检索也未发现 `node:child_process`、`spawn()`、`execFile()` 或 `exec()` 用于自动执行 opt-in probe。 4. Pure interpreter manifest guard 核查。 核查内容: - Node `badInterpFixtures` 对账 `interpRegressionNgcFiles("bad")`; - Node `goodArcFixtures` 对账 `interpRegressionNgcFiles("good")`; - Node `m98m99RegressionFiles` 对账 `interpRegressionNgcFilesRecursive("m98m99")`; - Node `magicCommentsRegressionFiles` 对账 `interpRegressionNgcFilesRecursive("magic_comments")`; - Node `rotationRegressionFiles` 对账 `interpRegressionNgcFilesRecursive("rotation")`; - browser 对上述 representative list 保持 fixed-count 和 duplicate-free guard。 结果: - pure interpreter coverage guard 仍只绑定 upstream `.ngc` manifest; - 未发现对 HAL/task/remap/tool DB/user-M process 的新增 intake。 5. 下一步工作建议。 当前 review risk audit 通过。下一步建议: 1. 复跑一次最小 review gate; 2. 如果通过,停止继续修改代码,进入人工 review/提交准备; 3. `text5.txt` 仍为 untracked,提交前需要明确加入或有意排除; 4. 如果要拆分提交,优先按 Batch A/B/C/D 拆: - A:browser gate/schema; - B:Node inventory/generated artifact gate; - C:pure interpreter intake/coverage guard; - D:docs/text。 6. 验证完成。 执行: ```bash git diff --check wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/wasm/node/verify_interp_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `vendor sync up to date` - `standalone CNC semantics guard complete` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `ASSET-ONLY=65` - `L4-PYTHON-REMAP=53` - `L4-TOOL-DB=1` - `L4-USER-M-PROCESS=1` - `NON_MAIN_CLASS=10` - `UPSTREAM-DEMO=1` - `interp_wasm_node_smoke=ok` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` 7. 下一步工作建议。 当前工作集已满足 review 前置条件。下一步建议停止继续修改代码,进入人工 review/提交准备: 1. 明确 `text5.txt` 是否加入版本控制; 2. 如果提交,按 Batch A/B/C/D 拆分或至少按该顺序 review; 3. 提交前最后复核 `git status --short`,确认没有遗漏 untracked 文件; 4. 除非 review 发现 gate drift,不再继续新增 coverage。 六十五、2026-06-12 继续执行记录:提交拆分准备 本轮执行“进入 review/提交准备”的建议,只做提交边界判断,不修改功能代码, 不新增 coverage,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 当前提交候选状态。 当前工作区包含 9 个文件: ```text text4.txt text5.txt wasm-port/docs/compatibility-validation.md wasm-port/docs/full-process-boundary-design.md wasm-port/docs/sim-configs-coverage-matrix.md wasm-port/tests/browser/interp_smoke.html wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/wasm/node/verify_interp_wasm.mjs wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs ``` `text5.txt` 已用 `git add --intent-to-add text5.txt` 纳入 `git status` 视图, 但当前没有实际 staged 内容,`git diff --cached --stat` 为空。 2. 拆分风险判断。 原计划的 Batch A/B/C/D 是 review 顺序,不是天然的文件级提交边界: - Batch A 和 Batch C 都修改 `wasm-port/tests/browser/interp_smoke.html`; - Batch A/B/D 的 docs 与 generated artifact documentation coverage gate 相互依赖; - 若强行按 4 个提交拆,需要交互式 hunk staging,容易把 browser smoke 的 runtime gate 和 pure interpreter guard 拆错; - 其中部分中间提交可能无法单独通过 browser documentation coverage gate。 因此当前低风险提交策略是: 1. 做人工 review 时继续按 Batch A/B/C/D 顺序看; 2. 实际提交优先采用 2 个文件级提交,避免交互式 hunk 拆分风险; 3. 如必须拆成更细提交,再单独做 hunk-level staging,并在每个提交后复跑 browser/inventory gate。 3. 推荐提交拆分。 推荐 Commit 1:runtime/browser/Node/interpreter gate code。 文件: ```text wasm-port/tests/browser/interp_smoke.html wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/wasm/node/verify_interp_wasm.mjs wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs ``` 建议 message: ```text Expand WASM runtime boundary review gates ``` 注意:这个提交如果不同时带 docs,browser documentation coverage 可能依赖后续 提交,因此更适合作为 review unit;若要求每个提交都独立通过 gate,应把相关 docs 一并放入 Commit 1。 推荐 Commit 2:documentation and execution log。 文件: ```text text4.txt text5.txt wasm-port/docs/compatibility-validation.md wasm-port/docs/full-process-boundary-design.md wasm-port/docs/sim-configs-coverage-matrix.md ``` 建议 message: ```text Document blocked runtime gate review state ``` 4. 更稳妥的一提交方案。 如果要求提交后立即可复跑全部 gate,当前最稳妥方案是单提交包含全部 9 个文件: ```text Add blocked runtime gate review coverage ``` 理由: - browser generated artifact documentation coverage 与 docs 同步提交; - Node/browser artifact surface parity 与 docs 同步提交; - pure interpreter guard 与 browser smoke 同步提交; - `text5.txt` 执行记录不会遗漏。 5. 下一步工作建议。 当前建议优先选择: 1. 若目标是“可 bisect、每个提交都通过 gate”:做单提交; 2. 若目标是“review 逻辑更清楚”:按上面的 2 个 review unit 审查,但提交时 可以合并为单提交; 3. 不建议现在做 4 个 hunk-level 提交,除非明确愿意承担拆分和重复验证成本。 六十六、2026-06-12 继续执行记录:g10 pure interpreter fixture coverage guard 本轮在提交 `dcab5ea Add blocked runtime gate review coverage` 后继续推进。当前 host 仍缺 `halcmd`、`halrun`、`linuxcnc`、`milltask`,因此不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 候选选择。 由于 blocked runtime 仍不能推进,本轮选择不需要 host runtime 的 pure interpreter coverage guard。对账发现 `tests/interp/g10` 当前 5 个 `.ngc` 已在 Node/browser 中执行覆盖,但尚未像 `good`、`bad`、`m98m99`、`magic_comments`、 `rotation` 那样锁定 upstream manifest。 当前 upstream `tests/interp/g10/**/*.ngc`: ```text g10-l1-l10/test.ngc g10-l11/test.ngc g10-l2-while-active/test.ngc g10-l20-while-active/test.ngc g10-with-g92/test.ngc ``` 2. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - `g10RegressionFiles` 固定 5 个当前 upstream `.ngc`; - Node smoke 要求该 manifest 与 `interpRegressionNgcFilesRecursive("g10")` 完全一致。 Browser 新增: - `g10RegressionFiles` 固定 `length=5` 且 duplicate-free; - browser representative 不枚举目录,但会防止 g10 manifest 被静默删减或重复。 3. 下一步工作建议。 先复跑: ```bash git diff --check wasm-port/tests/wasm/node/verify_interp_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 如果通过,做一个小提交,建议 message: ```text Guard g10 interpreter fixture coverage ``` 提交后再复跑同一组 gate。 六十七、2026-06-12 继续执行记录:INI subroutine staging manifest guard 本轮继续沿当前 host 可执行路线推进。提交后守门已通过: ```text vendor sync up to date standalone CNC semantics guard complete ``` 当前 host 仍缺 `halcmd`、`halrun`、`linuxcnc`、`milltask`,因此不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 候选选择。 选择已有 Node/browser 执行覆盖、且依赖 `[RS274NGC]SUBROUTINE_PATH` staging 的 两个 pure interpreter family: - `tests/interp/sub-call-from-sub` - `tests/interp/nested-sub-in-file-error` 这两个 family 不需要 HAL/task/tool DB/user-M process,只需要确认 staging helper 不会遗漏 INI subroutine 文件。 2. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - `subCallFromSubNgcFiles` 固定: - `test.ngc` - `subs/caller.ngc` - `subs/helper.ngc` - `nestedSubInFileErrorNgcFiles` 固定: - `test.ngc` - `subs/sequential.ngc` - Node 对上述列表分别与 `interpRegressionNgcFilesRecursive("sub-call-from-sub")` 和 `interpRegressionNgcFilesRecursive("nested-sub-in-file-error")` 精确对账; - Node 还检查 `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合 与上述列表一致。 Browser 新增: - 对上述两个 fixed list 做 count 和 duplicate-free guard; - 检查 browser `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合 与 fixed list 一致; - browser 仍不枚举目录。 3. 下一步工作建议。 先复跑: ```bash git diff --check wasm-port/tests/wasm/node/verify_interp_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 如果通过,做小提交,建议 message: ```text Guard INI subroutine staging manifests ``` 六十八、2026-06-12 继续执行记录:native baseline post-guard verification 本轮按建议先做更完整的 native baseline 验证,确认最近 smoke/manifest guard 提交 没有影响 native 基线。不新增代码,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 执行命令。 ```bash wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh wasm-port/tests/native/verify_nc_files.sh wasm-port/tests/native/verify_sim_configs.sh wasm-port/tests/native/verify_native_probes.sh ``` 2. 结果。 - `vendor sync up to date` - `standalone CNC semantics guard complete` - `verify_sim_configs.sh` 保持: - `total=159` - `pass=151` - `expected_fail=8` - `unexpected_fail=0` - `verify_native_probes.sh` 通过,并在聚合中保持: - sim-configs `159 / 151 / expected_fail 8 / unexpected_fail 0` - nc-files `107 / 101 / expected_fail 6 / unexpected_fail 0` - `verify_nc_files.sh` 首次单跑出现一次 transient unexpected failure: - `comp-g1.ngc` - error:`Requested tool 4 not found in the tool table` - 随后 `verify_native_probes.sh` 聚合内 nc-files 正常; - 立即复跑 `verify_nc_files.sh` 后恢复正常: - `total=107` - `pass=101` - `expected_fail=6` - `unexpected_fail=0` - `comp-g1.ngc` summary row 为 `PASS` 3. 结论。 - 当前 native baseline 最终状态正常; - `comp-g1.ngc` 单次 unexpected failure 未复现,按 transient harness/build-state drift 记录; - 不修改 expected failure、不改 fixture、不改 vendored LinuxCNC; - 当前 blocked runtime 仍保持 host blocked,不运行 opt-in probes。 4. 下一步工作建议。 继续当前 host 可执行路线时,优先做小范围 non-runtime guard: 1. 可继续做 `oword-unwind` 这类已有 INI-context family 的 staging manifest guard; 2. 或暂停新增 coverage,保持当前 native/Node/browser gate 绿色; 3. 若 `verify_nc_files.sh` 再次出现 `comp-g1.ngc` unexpected failure,再单独调查 tool-table staging/build cache 顺序,而不是改 expected baseline。 六十九、2026-06-12 继续执行记录:oword-unwind staging manifest guard 本轮继续当前 host 可执行路线,选择已有 INI-context 覆盖的 `tests/interp/oword-unwind` 做小范围 staging manifest guard。不新增 runtime 面, 不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 覆盖对账。 `tests/interp/oword-unwind` 当前 upstream `.ngc` 文件: ```text fail.ngc test.ngc ``` 该 family 已通过 `stageInterpIniContext("oword-unwind")` 在 Node/browser 中执行 覆盖,并依赖 `[RS274NGC]SUBROUTINE_PATH=.` staging `fail.ngc`。 2. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - `owordUnwindNgcFiles` 固定 `fail.ngc` 和 `test.ngc`; - 与 `interpRegressionNgcFilesRecursive("oword-unwind")` 精确对账; - 检查 `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合与该 fixed list 一致。 Browser 新增: - fixed-count 和 duplicate-free guard; - 检查 browser `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合 与 fixed list 一致; - browser 仍不枚举目录。 3. 下一步工作建议。 先复跑: ```bash git diff --check wasm-port/tests/wasm/node/verify_interp_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 如果通过,做小提交,建议 message: ```text Guard oword-unwind staging manifest ``` 七十、2026-06-12 继续执行记录:sequence/nested subroutine staging manifest guard 本轮继续当前 host 可执行路线。提交后轻量守门通过: ```text vendor sync up to date standalone CNC semantics guard complete ``` 当前 host 仍缺 `halcmd`、`halrun`、`linuxcnc`、`milltask`,因此不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 候选选择。 选择已有 Node/browser 执行覆盖、且依赖 `[RS274NGC]SUBROUTINE_PATH` staging 的 两个 INI-context family: - `tests/interp/sequence-number` - `tests/interp/nested-sub-error` 这两个 family 不需要 HAL/task/tool DB/user-M process,只需要确认 staging helper 不会遗漏 INI subroutine 文件。 2. 覆盖对账。 `tests/interp/sequence-number` 当前 upstream `.ngc` 文件: ```text rm400.ngc test.ngc ``` `tests/interp/nested-sub-error` 当前 upstream `.ngc` 文件: ```text subs/nested.ngc test.ngc ``` 3. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - `sequenceNumberNgcFiles` 固定 `rm400.ngc` 和 `test.ngc`; - `nestedSubErrorNgcFiles` 固定 `subs/nested.ngc` 和 `test.ngc`; - 分别与 `interpRegressionNgcFilesRecursive(...)` 精确对账; - 检查 `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合与 fixed list 一致。 Browser 新增: - fixed-count 和 duplicate-free guard; - 检查 browser `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合 与 fixed list 一致; - browser 仍不枚举目录。 4. 下一步工作建议。 先复跑: ```bash git diff --check wasm-port/tests/wasm/node/verify_interp_wasm.sh wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 如果通过,做小提交,建议 message: ```text Guard sequence subroutine staging manifests ``` 七十一、2026-06-13 继续执行记录:abort-hot-comment/m19 INI-context staging manifest guard 本轮继续按“小批已有 Node/browser 执行覆盖 + 不扩大测试面”的路线推进。当前 host 仍按 blocked runtime 规则处理,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 候选选择。 选择已有 Node/browser 执行覆盖、且通过 `stageInterpIniContext()` staging INI-context 的两个 interpreter regression family: - `tests/interp/abort-hot-comment` - `tests/interp/m19` 这两个 family 都不需要 HAL/task/tool DB/Python remap/user-M process runtime。 本轮只固定 host/filesystem staging manifest 对账,不新增 CNC 语义。 2. 覆盖对账。 `tests/interp/abort-hot-comment` 当前 upstream `.ngc` 文件: ```text test.ngc ``` `tests/interp/m19` 当前 upstream `.ngc` 文件: ```text test.ngc ``` 3. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - `abortHotCommentNgcFiles` 固定 `test.ngc`; - `m19NgcFiles` 固定 `test.ngc`; - 分别与 `interpRegressionNgcFilesRecursive(...)` 精确对账; - 检查 `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合与 fixed list 一致。 Browser 新增: - fixed-count 和 duplicate-free guard; - 检查 browser `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合 与 fixed list 一致; - browser 仍不枚举目录。 4. 已执行验证。 ```bash git diff --check wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `vendor sync up to date` - `standalone CNC semantics guard complete` - `interp_wasm_node_smoke=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` 5. 下一步工作建议。 当前工作集已稳定。建议先做小提交,message: ```text Guard abort and m19 staging manifests ``` 提交后再继续下一批已有 INI-context fixture 的 staging manifest guard;仍保持每批 只选少量 pure interpreter/INI-context case,并按 native/Node/browser gate 顺序 复核,不推进 blocked runtime promotion。 七十二、2026-06-13 继续执行记录:iniparam staging manifest guard 本轮先按上一节建议提交稳定批次: ```text 4680639 Guard abort and m19 staging manifests ``` 随后继续当前 host 可执行路线。当前 host 仍按 blocked runtime 规则处理,不执行 任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 候选选择。 选择已有 Node/browser 执行覆盖、且通过 `stageInterpIniContext()` staging INI-context 的两个 interpreter regression family: - `tests/interp/iniparam` - `tests/interp/iniparam-failassign` 这两个 family 只验证 INI variable expansion/read-only assignment 相关解释器行为, 不需要 HAL/task/tool DB/Python remap/user-M process runtime。本轮只固定 host/filesystem staging manifest 对账,不新增 CNC 语义。 2. 覆盖对账。 `tests/interp/iniparam` 当前 upstream `.ngc` 文件: ```text test.ngc ``` `tests/interp/iniparam-failassign` 当前 upstream `.ngc` 文件: ```text test.ngc ``` 3. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - `iniparamNgcFiles` 固定 `test.ngc`; - `iniparamFailassignNgcFiles` 固定 `test.ngc`; - 分别与 `interpRegressionNgcFilesRecursive(...)` 精确对账; - 检查 `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合与 fixed list 一致。 Browser 新增: - fixed-count 和 duplicate-free guard; - 检查 browser `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合 与 fixed list 一致; - browser 仍不枚举目录。 4. 已执行验证。 ```bash git diff --check wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `vendor sync up to date` - `standalone CNC semantics guard complete` - `interp_wasm_node_smoke=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` 5. 下一步工作建议。 当前工作集已稳定。建议先做小提交,message: ```text Guard iniparam staging manifests ``` 提交后继续下一小批已有 interpreter fixture 的 staging manifest guard。优先选择 仍已具备 Node/browser coverage、且不依赖 HAL/task/tool DB/Python remap/user-M process 的 case;不推进 blocked runtime promotion。 七十三、2026-06-13 继续执行记录:magic_comments staging path guard 本轮继续当前 host 可执行路线。当前 host 仍按 blocked runtime 规则处理,不执行 任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 候选选择。 选择已有 Node/browser 执行覆盖、且 fixture 范围很小的 interpreter regression family: - `tests/interp/magic_comments` 该 family 当前只覆盖 `param_format_printing/test.ngc`,不需要 INI/HAL/task/tool DB/Python remap/user-M process runtime。本轮只固定 direct file staging path 与 fixed `.ngc` manifest 的一致性,不新增 CNC 语义。 2. 覆盖对账。 `tests/interp/magic_comments` 当前 upstream `.ngc` 文件: ```text param_format_printing/test.ngc ``` 3. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - 复用既有 `magicCommentsRegressionFiles` fixed list; - 继续与 `interpRegressionNgcFilesRecursive("magic_comments")` 精确对账; - 检查 `writeInterpRegressionFile(...)` 返回的 staged wasm path 与 fixed list 推导出的 `/work/interp/magic_comments/...` path 一致。 Browser 新增: - 复用既有 fixed-count 和 duplicate-free guard; - 检查 browser `writeInterpRegressionFile(...)` 返回的 staged wasm path 去掉 `/work/browser-interp/magic_comments/` 前缀后,与 fixed list 一致; - browser 仍不枚举目录。 4. 已执行验证。 ```bash git diff --check wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `vendor sync up to date` - `standalone CNC semantics guard complete` - `interp_wasm_node_smoke=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` 5. 下一步工作建议。 当前工作集已稳定。建议先做小提交,message: ```text Guard magic comments staging path ``` 提交后继续下一小批已有 interpreter fixture 的 staging manifest guard。下一步可以 开始拆 `m98m99`,但不要一次性扩全量;优先选择其中已经在 Node/browser 单独执行、 且每个子目录只需 direct file staging 的小组,按 2 到 3 个子 case 一批推进。 七十四、2026-06-13 继续执行记录:m98m99 initial direct-file staging path guard 本轮继续当前 host 可执行路线。当前 host 仍按 blocked runtime 规则处理,不执行 任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 候选选择。 开始拆 `tests/interp/m98m99`,但不一次性扩大 guard 范围。本轮只选择前三个 已经在 Node/browser 单独执行、且每个子目录只需 direct file staging 的 case: - `m98m99/01-basics/test.ngc` - `m98m99/02-variables/test.ngc` - `m98m99/03-error-M98-no-P-word/test.ngc` 这些 case 不需要 INI/HAL/task/tool DB/Python remap/user-M process runtime。本轮 只固定 direct file staging path 与既有 fixed `.ngc` manifest 前三项的一致性, 不新增 CNC 语义。 2. 覆盖对账。 `tests/interp/m98m99` 当前 upstream `.ngc` manifest 已由既有 fixed list 覆盖, 本轮新增对账的前三项为: ```text 01-basics/test.ngc 02-variables/test.ngc 03-error-M98-no-P-word/test.ngc ``` 3. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - 在创建前三个 `writeInterpRegressionFile(...)` staged path 后,检查实际 path 与 `m98m99RegressionFiles.slice(0, 3)` 推导出的 `/work/interp/m98m99/...` path 一致。 Browser 新增: - 在创建前三个 browser staged path 后,去掉 `/work/browser-interp/m98m99/` 前缀; - 检查结果与 `m98m99RegressionFiles.slice(0, 3)` 一致; - browser 仍不枚举目录。 4. 已执行验证。 ```bash git diff --check wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `vendor sync up to date` - `standalone CNC semantics guard complete` - `interp_wasm_node_smoke=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` 5. 下一步工作建议。 当前工作集已稳定。建议先做小提交,message: ```text Guard initial m98m99 staging paths ``` 提交后继续拆 `m98m99`,下一小批建议选择: ```text 04-M98-but-no-sub/test.ngc 05-M98-loops/test.ngc 06-error-mixed-sub-styles/*.ngc ``` 其中 `06-error-mixed-sub-styles` 有 4 个 `.ngc`,仍已在 Node/browser 分别执行; 本批只做 direct file staged path 与 fixed manifest 对账,不扩大到 blocked runtime。 七十五、2026-06-13 继续执行记录:m98m99 mixed direct-file staging path guard 本轮继续拆 `tests/interp/m98m99`,仍保持小批量 direct file staging guard。当前 host 仍按 blocked runtime 规则处理,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 候选选择。 选择上一节建议的第二小批: - `m98m99/04-M98-but-no-sub/test.ngc` - `m98m99/05-M98-loops/test.ngc` - `m98m99/06-error-mixed-sub-styles/O...-called-with-O..._call.ngc` - `m98m99/06-error-mixed-sub-styles/O...-ended-with-O..._endsub.ngc` - `m98m99/06-error-mixed-sub-styles/O...-sub-called-with-M98.ngc` - `m98m99/06-error-mixed-sub-styles/O...-sub-ended-with-M99.ngc` 这些 case 已在 Node/browser 单独执行,不需要 INI/HAL/task/tool DB/Python remap/user-M process runtime。本轮只固定 direct file staged path 与既有 fixed `.ngc` manifest 第 4 到第 9 项的一致性,不新增 CNC 语义。 2. 覆盖对账。 `tests/interp/m98m99` 当前 upstream `.ngc` manifest 已由既有 fixed list 覆盖, 本轮新增对账的 manifest slice 为: ```text 04-M98-but-no-sub/test.ngc 05-M98-loops/test.ngc 06-error-mixed-sub-styles/O...-called-with-O..._call.ngc 06-error-mixed-sub-styles/O...-ended-with-O..._endsub.ngc 06-error-mixed-sub-styles/O...-sub-called-with-M98.ngc 06-error-mixed-sub-styles/O...-sub-ended-with-M99.ngc ``` 3. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - 收集 `06-error-mixed-sub-styles` 循环中 4 个 `writeInterpRegressionFile(...)` 返回的 staged path; - 与 `04`、`05` 的 staged path 一起检查,确保实际 path 与 `m98m99RegressionFiles.slice(3, 9)` 推导出的 `/work/interp/m98m99/...` path 一致。 Browser 新增: - 收集 browser `06-error-mixed-sub-styles` 循环中 4 个 staged path; - 与 `04`、`05` 的 staged path 一起去掉 `/work/browser-interp/m98m99/` 前缀; - 检查结果与 `m98m99RegressionFiles.slice(3, 9)` 一致; - browser 仍不枚举目录。 4. 已执行验证。 ```bash git diff --check wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `vendor sync up to date` - `standalone CNC semantics guard complete` - `interp_wasm_node_smoke=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` 5. 下一步工作建议。 当前工作集已稳定。建议先做小提交,message: ```text Guard mixed m98m99 staging paths ``` 提交后继续拆 `m98m99`,下一小批建议选择: ```text 07-nested-subs/test.ngc 08-sub-follows-main/test.ngc 09-disable-fanuc-subs/test-fanuc.ngc 09-disable-fanuc-subs/test-rs274ngc.ngc ``` 其中 `09-disable-fanuc-subs` 用 `writeInterpRegressionFiles(...)` staging 同一目录 下两个 `.ngc` 和两个 `.ini`。本批仍只做 staged path 与 fixed manifest 对账, 不扩大到 blocked runtime。 七十六、2026-06-13 继续执行记录:m98m99 nested/disable-fanuc staging path guard 本轮继续拆 `tests/interp/m98m99`,仍保持小批量 staging guard。当前 host 仍按 blocked runtime 规则处理,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 候选选择。 选择上一节建议的第三小批: - `m98m99/07-nested-subs/test.ngc` - `m98m99/08-sub-follows-main/test.ngc` - `m98m99/09-disable-fanuc-subs/test-fanuc.ngc` - `m98m99/09-disable-fanuc-subs/test-rs274ngc.ngc` 其中 `09-disable-fanuc-subs` 同时 staging: ```text test-fanuc.ini test-no-fanuc.ini test-fanuc.ngc test-rs274ngc.ngc ``` `.ini` 文件继续作为运行上下文 staging;本轮 `.ngc` manifest 对账只覆盖上述 两个 `.ngc`。这些 case 已在 Node/browser 单独执行,不需要 HAL/task/tool DB/Python remap/user-M process runtime。 2. 覆盖对账。 `tests/interp/m98m99` 当前 upstream `.ngc` manifest 已由既有 fixed list 覆盖, 本轮新增对账的 manifest slice 为: ```text 07-nested-subs/test.ngc 08-sub-follows-main/test.ngc 09-disable-fanuc-subs/test-fanuc.ngc 09-disable-fanuc-subs/test-rs274ngc.ngc ``` 3. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - 将 `09-disable-fanuc-subs` 的 staged file list 提成 `m98m99DisableFanucSubsFiles`; - 检查 `07`、`08` direct-file staged path,加上 `09` staged `.ngc` path, 与 `m98m99RegressionFiles.slice(9, 13)` 推导出的 `/work/interp/m98m99/...` path 一致。 Browser 新增: - 同步提取 `m98m99DisableFanucSubsFiles`; - 检查 `07`、`08` 和 `09` staged `.ngc` path 去掉 `/work/browser-interp/m98m99/` 前缀后,与 `m98m99RegressionFiles.slice(9, 13)` 一致; - browser 仍不枚举目录。 4. 已执行验证。 ```bash git diff --check wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `vendor sync up to date` - `standalone CNC semantics guard complete` - `interp_wasm_node_smoke=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` 5. 下一步工作建议。 当前工作集已稳定。建议先做小提交,message: ```text Guard nested m98m99 staging paths ``` 提交后继续拆 `m98m99`,下一小批建议选择: ```text 10-M98-P001/test.ngc 11-main-program-oword/*.ngc ``` `11-main-program-oword` 有 7 个 `.ngc`,已在 Node/browser 分组执行;下一批仍只 做 staged path 与 fixed manifest 对账,不扩大到 blocked runtime。 七十七、2026-06-13 继续执行记录:m98m99 main-program staging path guard 本轮继续拆 `tests/interp/m98m99`,仍保持小批量 staging guard。当前 host 仍按 blocked runtime 规则处理,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 1. 候选选择。 选择上一节建议的第四小批: - `m98m99/10-M98-P001/test.ngc` - `m98m99/11-main-program-oword/test-illegal-end-main-with-eof.ngc` - `m98m99/11-main-program-oword/test-illegal-no-m30-before-osub.ngc` - `m98m99/11-main-program-oword/test-illegal-sub-after-percent.ngc` - `m98m99/11-main-program-oword/test-legal-end-main-with-m02.ngc` - `m98m99/11-main-program-oword/test-legal-end-main-with-m2.ngc` - `m98m99/11-main-program-oword/test-legal-end-main-with-m30.ngc` - `m98m99/11-main-program-oword/test-legal-end-main-with-percent.ngc` 这些 case 已在 Node/browser 单独执行,不需要 INI/HAL/task/tool DB/Python remap/user-M process runtime。本轮只固定 staged path 与既有 fixed `.ngc` manifest 第 14 到第 21 项的一致性,不新增 CNC 语义。 2. 覆盖对账。 `tests/interp/m98m99` 当前 upstream `.ngc` manifest 已由既有 fixed list 覆盖, 本轮新增对账的 manifest slice 为: ```text 10-M98-P001/test.ngc 11-main-program-oword/test-illegal-end-main-with-eof.ngc 11-main-program-oword/test-illegal-no-m30-before-osub.ngc 11-main-program-oword/test-illegal-sub-after-percent.ngc 11-main-program-oword/test-legal-end-main-with-m02.ngc 11-main-program-oword/test-legal-end-main-with-m2.ngc 11-main-program-oword/test-legal-end-main-with-m30.ngc 11-main-program-oword/test-legal-end-main-with-percent.ngc ``` 3. 更新。 更新: - `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` - `wasm-port/tests/browser/interp_smoke.html` Node 新增: - 将 `11-main-program-oword` staged file list 提成 `m98m99MainProgramOwordFiles`,并按 fixed manifest 顺序排列; - 检查 `10-M98-P001` direct-file staged path,加上 `11` staged `.ngc` path, 与 `m98m99RegressionFiles.slice(13, 21)` 推导出的 `/work/interp/m98m99/...` path 一致。 Browser 新增: - 同步提取 `m98m99MainProgramOwordFiles`; - 检查 `10` 和 `11` staged `.ngc` path 去掉 `/work/browser-interp/m98m99/` 前缀后,与 `m98m99RegressionFiles.slice(13, 21)` 一致; - browser 仍不枚举目录。 4. 已执行验证。 ```bash git diff --check wasm-port/tools/verify_vendor_sync.sh wasm-port/tools/verify_no_standalone_cnc_semantics.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh wasm-port/tests/host/verify_host_smokes.sh ``` 结果: - `git diff --check` clean。 - `vendor sync up to date` - `standalone CNC semantics guard complete` - `interp_wasm_node_smoke=ok` - Node inventory 保持: - `executed=28` - `passed=28` - `skipped=131` - `unexpected_fail=0` - `browser_interp_smoke=ok` - `host_wasm_opfs_browser_smokes=ok` 5. 下一步工作建议。 当前工作集已稳定。建议先做小提交,message: ```text Guard main-program m98m99 staging paths ``` 提交后继续拆 `m98m99`,下一小批建议选择: ```text 13-named-program/test-named.ngc 13-named-program/test-numbered.ngc 14-o-expression-call/test.ngc ``` 这将覆盖 `m98m99` fixed manifest 的最后 3 个 `.ngc`。本批仍只做 staged path 与 fixed manifest 对账,不扩大到 blocked runtime。