7750 lines
247 KiB
Plaintext
7750 lines
247 KiB
Plaintext
项目整体完成情况与后续执行计划
|
||
|
||
生成时间: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/<name>` 下的
|
||
`.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/<name>/**/*.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。
|
||
|
||
七十八、2026-06-13 继续执行记录:m98m99 final direct-file staging path guard
|
||
|
||
本轮完成 `tests/interp/m98m99` fixed manifest 的最后一小批 staging guard。当前
|
||
host 仍按 blocked runtime 规则处理,不执行任何 `ENABLE_*_RUNTIME_PROBE=1`
|
||
opt-in native probe。
|
||
|
||
1. 候选选择。
|
||
|
||
选择上一节建议的最后 3 个 `.ngc`:
|
||
|
||
- `m98m99/13-named-program/test-named.ngc`
|
||
- `m98m99/13-named-program/test-numbered.ngc`
|
||
- `m98m99/14-o-expression-call/test.ngc`
|
||
|
||
这些 case 已在 Node/browser 单独执行,不需要 INI/HAL/task/tool DB/Python
|
||
remap/user-M process runtime。本轮只固定 staged path 与既有 fixed `.ngc`
|
||
manifest 最后 3 项的一致性,不新增 CNC 语义。
|
||
|
||
2. 覆盖对账。
|
||
|
||
`tests/interp/m98m99` 当前 upstream `.ngc` manifest 已由既有 fixed list 覆盖,
|
||
本轮新增对账的 manifest slice 为:
|
||
|
||
```text
|
||
13-named-program/test-named.ngc
|
||
13-named-program/test-numbered.ngc
|
||
14-o-expression-call/test.ngc
|
||
```
|
||
|
||
3. 更新。
|
||
|
||
更新:
|
||
|
||
- `wasm-port/tests/wasm/node/verify_interp_wasm.mjs`
|
||
- `wasm-port/tests/browser/interp_smoke.html`
|
||
|
||
Node 新增:
|
||
|
||
- 在创建 `13` 两个 direct-file staged path 和 `14` direct-file staged path 后,
|
||
检查实际 path 与 `m98m99RegressionFiles.slice(21, 24)` 推导出的
|
||
`/work/interp/m98m99/...` path 一致。
|
||
|
||
Browser 新增:
|
||
|
||
- 同步检查 `13` 和 `14` staged `.ngc` path 去掉
|
||
`/work/browser-interp/m98m99/` 前缀后,与
|
||
`m98m99RegressionFiles.slice(21, 24)` 一致;
|
||
- 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 final m98m99 staging paths
|
||
```
|
||
|
||
提交后 `m98m99` 的 24 条 fixed `.ngc` manifest 已完成分批 staged path guard。
|
||
下一步建议转向下一个已有 Node/browser 覆盖、且不依赖 blocked runtime 的 fixture
|
||
family,例如 `g10`。先从 `g10` 现有 fixed manifest 和 staging helper 对账开始,
|
||
仍保持每批只做 host/filesystem staging guard,不新增 CNC 语义。
|
||
|
||
七十九、2026-06-13 继续执行记录:g10 initial staging path guard
|
||
|
||
本轮转向 `tests/interp/g10`,仍保持小批量 staging guard。当前 host 仍按 blocked
|
||
runtime 规则处理,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。
|
||
|
||
1. 候选选择。
|
||
|
||
选择 `g10` fixed manifest 的前三个 `.ngc`:
|
||
|
||
- `g10/g10-l1-l10/test.ngc`
|
||
- `g10/g10-l11/test.ngc`
|
||
- `g10/g10-l2-while-active/test.ngc`
|
||
|
||
其中 `g10-l1-l10` 和 `g10-l11` 同时 staging `test.tbl`,并由
|
||
`writeG10RegressionFiles(...)` 生成 synthetic `test.ini` 作为运行上下文;这些
|
||
上下文文件不进入 `.ngc` manifest 对账。本轮只固定 staged `.ngc` path 与既有
|
||
fixed manifest 前三项的一致性,不新增 CNC 语义。
|
||
|
||
2. 覆盖对账。
|
||
|
||
`tests/interp/g10` 当前 upstream `.ngc` manifest 已由既有 fixed list 覆盖,本轮
|
||
新增对账的 manifest slice 为:
|
||
|
||
```text
|
||
g10-l1-l10/test.ngc
|
||
g10-l11/test.ngc
|
||
g10-l2-while-active/test.ngc
|
||
```
|
||
|
||
3. 更新。
|
||
|
||
更新:
|
||
|
||
- `wasm-port/tests/wasm/node/verify_interp_wasm.mjs`
|
||
- `wasm-port/tests/browser/interp_smoke.html`
|
||
|
||
Node 新增:
|
||
|
||
- 检查前三个 `writeG10RegressionFiles(...)` 返回目录中的 `.ngc` staged path,
|
||
与 `g10RegressionFiles.slice(0, 3)` 推导出的 `/work/interp/g10/...` path
|
||
一致。
|
||
|
||
Browser 新增:
|
||
|
||
- 检查前三个 browser staged `.ngc` path 去掉 `/work/browser-interp/g10/`
|
||
前缀后,与 `g10RegressionFiles.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 g10 staging paths
|
||
```
|
||
|
||
提交后继续 `g10` 最后一小批:
|
||
|
||
```text
|
||
g10-l20-while-active/test.ngc
|
||
g10-with-g92/test.ngc
|
||
```
|
||
|
||
`g10-with-g92` 同时 staging `test.tbl` 并生成 synthetic `test.ini`;下一批仍只做
|
||
staged `.ngc` path 与 fixed manifest 对账,不扩大到 blocked runtime。
|
||
|
||
八十、2026-06-13 继续执行记录:g10 final staging path guard
|
||
|
||
本轮完成 `tests/interp/g10` fixed manifest 的最后一小批 staging guard,并清理
|
||
上一节重复记录。当前 host 仍按 blocked runtime 规则处理,不执行任何
|
||
`ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。
|
||
|
||
1. 候选选择。
|
||
|
||
选择 `g10` fixed manifest 的最后两项:
|
||
|
||
- `g10/g10-l20-while-active/test.ngc`
|
||
- `g10/g10-with-g92/test.ngc`
|
||
|
||
其中 `g10-with-g92` 同时 staging `test.tbl`,并由
|
||
`writeG10RegressionFiles(...)` 生成 synthetic `test.ini` 作为运行上下文;这些
|
||
上下文文件不进入 `.ngc` manifest 对账。本轮只固定 staged `.ngc` path 与既有
|
||
fixed manifest 最后两项的一致性,不新增 CNC 语义。
|
||
|
||
2. 覆盖对账。
|
||
|
||
`tests/interp/g10` 当前 upstream `.ngc` manifest 已由既有 fixed list 覆盖,本轮
|
||
新增对账的 manifest slice 为:
|
||
|
||
```text
|
||
g10-l20-while-active/test.ngc
|
||
g10-with-g92/test.ngc
|
||
```
|
||
|
||
3. 更新。
|
||
|
||
更新:
|
||
|
||
- `text5.txt`
|
||
- `wasm-port/tests/wasm/node/verify_interp_wasm.mjs`
|
||
- `wasm-port/tests/browser/interp_smoke.html`
|
||
|
||
Node 新增:
|
||
|
||
- 检查最后两个 `writeG10RegressionFiles(...)` 返回目录中的 `.ngc` staged path,
|
||
与 `g10RegressionFiles.slice(3, 5)` 推导出的 `/work/interp/g10/...` path
|
||
一致。
|
||
|
||
Browser 新增:
|
||
|
||
- 检查最后两个 browser staged `.ngc` path 去掉 `/work/browser-interp/g10/`
|
||
前缀后,与 `g10RegressionFiles.slice(3, 5)` 一致;
|
||
- 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 final g10 staging paths
|
||
```
|
||
|
||
提交后 `g10` 的 5 项 fixed `.ngc` manifest 已完成分批 staged path 对账。下一步
|
||
建议继续选择已有 Node/browser coverage、且不依赖 blocked runtime 的 small
|
||
fixture family;优先检查 direct-file 或 staging helper 已成型的 case,仍只做
|
||
host/filesystem staging guard,不新增 CNC 语义。
|
||
|
||
八十一、2026-06-13 继续执行记录:g52/g92 staging path guard
|
||
|
||
本轮继续选择已有 Node/browser coverage、且不依赖 blocked runtime 的 small
|
||
fixture family。当前 host 仍按 blocked runtime 规则处理,不执行任何
|
||
`ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。
|
||
|
||
1. 候选选择。
|
||
|
||
选择 `tests/interp/g52` 当前唯一 vendored `.ngc`:
|
||
|
||
- `g52/g52-g92-interaction/g52-g92-interaction.ngc`
|
||
|
||
该 case 已在 Node/browser 单独执行,不需要 INI/HAL/task/tool DB/Python
|
||
remap/user-M process runtime。本轮只固定 fixed manifest 与 staged path 一致性,
|
||
不新增 CNC 语义。
|
||
|
||
2. 覆盖对账。
|
||
|
||
`tests/interp/g52` 当前 upstream `.ngc` manifest:
|
||
|
||
```text
|
||
g52-g92-interaction/g52-g92-interaction.ngc
|
||
```
|
||
|
||
3. 更新。
|
||
|
||
更新:
|
||
|
||
- `wasm-port/tests/wasm/node/verify_interp_wasm.mjs`
|
||
- `wasm-port/tests/browser/interp_smoke.html`
|
||
|
||
Node 新增:
|
||
|
||
- 新增 `g52RegressionFiles` fixed list;
|
||
- 与 `interpRegressionNgcFilesRecursive("g52")` 精确对账;
|
||
- 检查 `writeInterpRegressionFile(...)` 返回的 staged path 与
|
||
`/work/interp/g52/...` fixed manifest path 一致。
|
||
|
||
Browser 新增:
|
||
|
||
- 新增 fixed-count 和 duplicate-free guard;
|
||
- 检查 browser staged `.ngc` path 去掉 `/work/browser-interp/g52/` 前缀后,
|
||
与 fixed manifest 一致;
|
||
- 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 g52 staging path
|
||
```
|
||
|
||
提交后继续选择已有 Node/browser coverage、且不依赖 blocked runtime 的 direct-file
|
||
fixture。下一步可优先检查早期单文件 cases,例如 `do-while-break`、`exists`、
|
||
`return-value` 或 `subs-follow-main`,按 2 到 3 个 case 一批补 fixed manifest 与
|
||
staged path guard。
|