Files
cnc_wams/textbak/text9.txt
wangdequan 626bcfe8e3 继续完成 web-rtcp-5axis-sim-plan
结论:完成 LinuxCNC kinematics WASM ABI 覆盖,并将 web-rtcp-5axis-sim-plan 的 RTCP frame/boundary adapter 接到 xyzac-trt kinematics SDK;Node、build、browser smoke 验证通过。
2026-06-21 16:44:29 +08:00

2705 lines
108 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
项目整体完成情况与后续执行计划
生成时间2026-06-14 CST
本文件接替 `text8.txt`。后续工作按 `text9.txt` 执行;除非明确要求审计旧记录,
不要再回到 `text1/text2/text3/text4/text5/text6/text7/text8` 扩展进度。
`text8.txt` 作为历史归档保留。
一、续接状态与防重规则
1. 当前续接点。
`text8.txt` 已推进到:
```text
三十八、2026-06-14 继续执行记录browser OPFS direct session parameter value locals guard
```
该批已提交并推送:
```text
82f2c57 Guard browser OPFS direct session parameter values
```
本文件从 `text9.txt` 重新开始记录后续进度。
2. 每轮开始前必须先执行。
```bash
git status --short
git log -5 --oneline
tail -n 120 text9.txt
awk '/^[一二三四五六七八九十百]+、/ {print}' text9.txt | sort | uniq -d
```
执行规则:
- 如果 `git status --short` 是 clean且最新提交已经包含当前建议工作不要重复追加记录
- 每轮只追加一个新的中文编号记录;提交前再次检查标题唯一性;
- `text9.txt` 只记录新的后续进度,不复制 `text8.txt` 的长历史;
- 每批完成后,如果要写记录,先写 `text9.txt`,再提交该批代码和记录;
- 如果发现重复记录,先做 dedupe 清理并提交,再继续新功能或新 guard
- `text8.txt` 不再追加新进度,除非明确要求审计或修正历史记录。
二、当前项目纪律
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 都按顺序通过;
- browser 不能依赖目录枚举。
三、当前完成情况摘要
1. 当前工作树状态。
切换到 `text9.txt` 前已确认:
```text
git status --short: clean
text8.txt duplicate Chinese headings: none
```
当前最近提交:
```text
82f2c57 Guard browser OPFS direct session parameter values
0cfe942 Guard browser OPFS direct session parameter seed
9265825 Guard browser OPFS direct session load options
e0f7ebe Guard browser OPFS explicit session file group
ee4c4e1 Guard browser OPFS INI-named session file group
```
2. WASM port 基础架构稳定。
`wasm-port` 仍按独立移植工作区组织,包含 vendor、runtime/core、runtime/sdk、
runtime/opfs、runtime/ui、native/wasm/browser tests、docs 和 tools。
3. 关键基线保持稳定。
- `linuxcnc/nc_files` native Layer 1
- `total 107`
- `pass 101`
- `expected_fail 6`
- `unexpected_fail 0`
- `linuxcnc/configs/sim` native Layer 2
- `total 159`
- `pass 151`
- `expected_fail 8`
- `unexpected_fail 0`
- Node sim-config inventory
- `executed=28`
- `passed=28`
- `skipped=131`
- `unexpected_fail=0`
4. blocked runtime family 仍未 promotion。
仍 blocked不允许 promotion
- `L4-USER-M-PROCESS`
- `L4-TOOL-DB`
- `L4-PYTHON-REMAP`
当前 host 仍按缺少 LinuxCNC host runtime 处理,不执行任何:
```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
```
5. `text8.txt` 最新收敛方向。
`text8.txt` 后半段继续沿 browser/OPFS boundary guard 小批量推进,最近完成的重点包括:
- OPFS saved text、save result、load result helper guard
- invalid INI lines/path helper guard
- OPFS default machine path、default filename、machine INI WASM path helper guard
- generated fixture WASM path helper guard
- direct browser session WASM path group helper guard
- custom session INI/WASM/path/load/save helper guard
- custom session parameter/tool-table seed、value、result/readback helper guard
- INI-named 与 explicit custom session file group helper guard
- direct browser session load options helper guard
- direct browser session parameter seed helper guard
- direct `browser-interp` saved parameter values/result/readback locals guard。
这些改动均只收敛 browser/OPFS test glue 与 boundary guard未改变 OPFS bridge
behavior、file-service、path-model、SDK planner、interpreter、INI、tool、parameter
或 LinuxCNC-owned runtime semantics。
四、当前必须保持通过的验证入口
每批后续改动至少运行:
```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
```
涉及 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
```
五、下一步执行计划
1. 当前第一候选批次。
继续小批量 browser OPFS test glue guard。优先扫描 direct `browser-interp` session 的
initial parameter load result 与 backup readback expected lines 是否能复用
`browserDirectParameterSeedLines(...)` 或现有 `opfsParameter*` helpers。
执行目标:
- 只处理 `wasm-port/tests/browser/interp_smoke.html` 内的 browser/OPFS test glue
- 优先让 initial parameter restore result 与 backup readback expected lines 复用已有
helper 或局部常量;
- helper 必须继续通过 `verifyExpectedOutput(...)` 间接或直接做精确文本校验;
- 保持 `<_named_param> 123` 和 `absent=<_named_param>` 的语义边界外显;
- 不改变参数值、OPFS path、WASM path 字符串、保存/读取/load 行为;
- 不改变 OPFS bridge behavior、file-service、path-model、SDK planner、interpreter、
INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
2. 第一候选批次验证。
执行:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
如果通过,提交建议:
```text
Guard browser OPFS direct session initial parameters
```
3. 后续候选。
如果 initial parameter load/backup 收益不明显,转向 direct `browser-interp`
tool-table load/save/readback value groups看是否能像 custom session 一样对齐为
locals 或复用现有 `opfsToolTable*` helpers。
继续只选:
- 已有 Node/browser coverage
- 不依赖 HAL/task/tool DB/Python remap/user-M process
- direct-file、generated-file、OPFS boundary 或 staging helper 已成型;
- 每批小范围收敛;
- 只做 host/filesystem/browser/OPFS boundary guard不新增 CNC 语义。
暂不推进:
- blocked runtime promotion
- browser full 159 sim-config inventory
- full-process/HAL/UI/Python/tool DB 执行;
- upstream intake 大批量扩面。
六、下一次开始执行时的第一条命令
从这里继续:
```bash
git status --short && git log -5 --oneline && tail -n 120 text9.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text9.txt | sort | uniq -d
```
七、2026-06-14 继续执行记录text9 handoff and direct session initial parameter guard
本轮先按用户要求完成 `text9.txt` 续接文件创建,后续进度改按 `text9.txt` 记录;
随后按第一候选批次继续收敛 direct `browser-interp` session 的 initial parameter
load/backup expected lines范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新建 `text9.txt`,完整承接 `text8.txt` 当前工作情况、纪律、验证入口、续接规则和
下一步计划;
- 明确 `text8.txt` 作为历史归档保留,后续不再追加新进度;
- 为 direct `browser-interp` session 增加
`browserInterpInitialParameterValues` 局部常量;
- `opfs_restore_parameters` expected lines 改为复用既有
`opfsParameterResultLines("restore", ...)`
- `opfs_saved_parameter_backup_text` expected lines 改为复用既有
`opfsParameterTextLines(" ", ...)`,并继续显式保留 `<_named_param> 123`
- seed text 仍由 `browserDirectParameterSeedLines(true)` 生成,实际写入内容不变;
- 未改变参数值、OPFS path、WASM path 字符串、save/read/load 行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser OPFS test glue guard。优先扫描 direct `browser-interp` session 的
tool-table load/save/readback value groups 是否能像 custom session 一样对齐为 locals
或复用现有 `opfsToolTable*` helpers只改测试胶水不改变 tool-table 输入、OPFS path、
WASM path 字符串或保存/读取行为。
八、2026-06-14 继续执行记录browser OPFS direct session tool-table value locals guard
本轮按上一条下一步建议继续收敛 direct `browser-interp` session 的 tool-table
load/save/readback value groups范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 扩展 `opfsToolTableTextLines(...)`,新增向后兼容的 `extraLines` 可选参数;
- 为 direct `browser-interp` session 增加 `browserInterpToolTableValues` 与
`browserInterpToolTableReadbackValues` 局部常量;
- `opfs_load_tool_table` expected lines 改为复用既有
`opfsToolTableResultLines("load", ...)`
- `opfs_save_tool_table` expected lines 改为复用既有
`opfsToolTableResultLines("save", ...)`
- `opfs_saved_tool_table_text` expected lines 改为复用
`opfsToolTableTextLines(...)`,并通过 `extraLines` 显式保留 direct 场景独有的
`I+12.000000`、`J+34.000000`、`Q4`
- custom session 既有 `opfsToolTableTextLines(...)` 调用保持兼容;
- 未改变 tool-table 输入、OPFS path、WASM path 字符串、save/read/load 行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser OPFS test glue guard。优先扫描 direct random toolchanger session
的 tool-table load/save/readback expected lines 是否能用现有 helper 或局部常量收敛;
只改测试胶水,不改变 random toolchanger 输入、OPFS path、WASM path 字符串或
保存/读取行为。
九、2026-06-14 继续执行记录browser OPFS random session tool-table helper guard
本轮按上一条下一步建议继续收敛 direct random toolchanger session 的 tool-table
load/save/readback expected lines范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `opfsRandomToolTableResultLines(...)`,统一 random toolchanger load/save
result expected lines 的拼装;
- 新增 `opfsRandomToolTableTextLines(...)`,统一 random toolchanger saved
tool-table readback expected lines 的拼装;
- 为 direct random toolchanger session 增加 `browserRandomFinishTool`、
`browserRandomRoughTool` 与 `browserRandomTools` 局部常量;
- `opfs_load_random_tool_table` expected lines 改为复用
`opfsRandomToolTableResultLines("load", ...)`,并继续显式保留
`tooldata_random_toolchanger=1` 和 `tool_index_for_tool_2=7`
- `opfs_save_random_tool_table` expected lines 改为复用
`opfsRandomToolTableResultLines("save", ...)`
- `opfs_saved_random_tool_table_text` expected lines 改为复用
`opfsRandomToolTableTextLines(...)`
- 未改变 random toolchanger 输入、OPFS path、WASM path 字符串、save/read/load 行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser OPFS test glue guard。优先扫描 direct generated random
toolchanger file block 中的 load/save/readback expected lines 是否也能复用
`opfsRandomToolTable*` helpers 或局部常量;只改测试胶水,不改变 direct generated
file input、WASM path 字符串或保存/读取行为。
十、2026-06-14 继续执行记录browser direct generated random tool-table helper guard
本轮按上一条下一步建议继续收敛 direct generated random toolchanger file block 的
load/save/readback expected lines范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- 为 direct generated random toolchanger file block 增加
`browserDirectRandomFinishTool`、`browserDirectRandomRoughTool` 与
`browserDirectRandomTools` 局部常量;
- `load_tool_table_direct_random` expected lines 改为复用
`opfsRandomToolTableResultLines("load", ...)`
- direct generated block 中继续显式保留 `tooldata_last_index=9` 与
`tool_index_for_tool_2=7`
- `save_tool_table_direct_random` expected lines 改为复用
`opfsRandomToolTableResultLines("save", ...)`
- `saved_tool_table_direct_random_text` expected lines 改为复用
`opfsRandomToolTableTextLines(...)`
- 未改变 direct generated file input、WASM path 字符串、save/read/load 行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 direct non-random generated
tool-table file block 中的 load/save/readback expected lines 是否能复用现有
`opfsToolTable*` helpers 或局部常量;只改测试胶水,不改变 direct generated file input、
WASM path 字符串或保存/读取行为。
十一、2026-06-14 继续执行记录browser direct generated non-random tool-table helper guard
本轮按上一条下一步建议继续收敛 direct non-random generated toolchanger file block 的
load/save/readback expected lines范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- 新增 `directToolTableResultLines(...)`,统一 direct non-random generated load/save
result expected lines 的拼装;
- 新增 `directToolTableTextLines(...)`,统一 direct non-random generated saved
tool-table readback expected lines 的拼装;
- 为 direct non-random generated file block 增加 `browserDirectFinishTool`、
`browserDirectRoughTool` 与 `browserDirectTools` 局部常量;
- `load_tool_table_direct` expected lines 改为复用
`directToolTableResultLines("load", ...)`,并继续显式保留 `tooldata_last_index=2`
和 `tool_index_for_tool_2=1`
- `save_tool_table_direct` expected lines 改为复用
`directToolTableResultLines("save", ...)`
- `saved_tool_table_direct_text` expected lines 改为复用
`directToolTableTextLines(...)`
- 未改变 direct generated file input、WASM path 字符串、save/read/load 行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 direct `browser-interp` session 和
direct generated file block 之间是否还能抽出更小的共享 tool-table helper只改测试
胶水不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
十二、2026-06-14 继续执行记录browser shared tool-table text helper guard
本轮按上一条下一步建议继续收敛 direct `browser-interp` session 与 direct generated
file block 之间的 saved tool-table text helper范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- 新增 `toolTableTextLines(...)`,统一 tool object 到 saved tool-table readback
expected lines 的拼装;
- `directToolTableTextLines(...)` 改为复用 `toolTableTextLines(...)`
- `opfsRandomToolTableTextLines(...)` 改为复用 `toolTableTextLines(...)`
- 保留 direct 与 random wrapper 名称,避免扩大调用点改动;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 tool-table result helper 是否也能抽出
不改变输出的 shared `tool.resultLines` flatten helper或者转向 custom session
tool-table load value groups 的局部常量收敛只改测试胶水不改变输入、OPFS path、
WASM path 字符串或保存/读取行为。
十三、2026-06-14 继续执行记录browser shared tool-table result helper guard
本轮按上一条下一步建议继续收敛 tool-table result helper 的重复
`tool.resultLines` flatten 逻辑,范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- 新增 `toolTableResultLines(...)`,统一 tool object 到 load/save result expected
lines 的 flatten 逻辑;
- `directToolTableResultLines(...)` 改为复用 `toolTableResultLines(...)`
- `opfsRandomToolTableResultLines(...)` 改为复用 `toolTableResultLines(...)`
- 保留 direct 与 random wrapper 的输出前缀、extra lines 顺序和调用点不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 custom session tool-table load/save
value groups看是否能像 direct session 一样用 tool object locals 表达 load、
save、readback 三组 expected lines只改测试胶水不改变输入、OPFS path、WASM path
字符串或保存/读取行为。
十四、2026-06-14 继续执行记录browser custom session tool-table value object guard
本轮按上一条下一步建议继续收敛 custom session 普通 tool-table load/save/readback
value groups范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `opfsToolTableToolValues(...)`,用显式 object locals 承载普通 OPFS
tool-table 的 seed、load result 与 readback expected 值;
- `iniNamedToolTable*` 三组并行数组收敛为 `iniNamedToolTable` object
- `explicitToolTable*` 三组并行数组收敛为 `explicitToolTable` object
- `loadComment`、`readbackZOffset` 与 `readbackDiameter` 继续显式传入,避免在
browser test glue 中推导 LinuxCNC-owned tool-table 格式;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 direct `browser-interp` ordinary
tool-table value groups 是否也能复用 `opfsToolTableToolValues(...)`,或把
`opfsToolTableSeedText(...)` / `opfsToolTableTextLines(...)` 调用收敛成 object
adapter只改测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
十五、2026-06-14 继续执行记录browser direct session tool-table value object guard
本轮按上一条下一步建议继续收敛 direct `browser-interp` ordinary tool-table
load/save/readback value groups范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- `browserInterpToolTableValues` 与 `browserInterpToolTableReadbackValues` 两组并行
数组收敛为 `browserInterpToolTable` object
- direct `browser-interp` ordinary tool-table 的 load/save/readback expected lines
改为复用 `opfsToolTableToolValues(...)` 的显式 object locals
- front angle、back angle、orientation 与 `tool_index_for_tool_2=1` 仍保留在
对应 load expected lines 调用点,保持语义边界外显;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描是否值得新增
`opfsToolTableSeedTextForTool(...)` / `opfsToolTableTextLinesForTool(...)` object
adapter减少普通 OPFS tool-table 调用点的参数展开;只改测试胶水,不改变输入、
OPFS path、WASM path 字符串或保存/读取行为。
十六、2026-06-14 继续执行记录browser OPFS tool-table object adapter guard
本轮按上一条下一步建议继续收敛普通 OPFS tool-table helper 调用点的参数展开,
范围仍只触及 `wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `opfsToolTableTextLinesForTool(...)`,从显式 tool object locals 转发到
`opfsToolTableTextLines(...)`
- 新增 `opfsToolTableSeedTextForTool(...)`,从显式 tool object locals 转发到
`opfsToolTableSeedText(...)`
- direct `browser-interp` ordinary tool-table readback 改为复用
`opfsToolTableTextLinesForTool(...)`,并继续显式保留 `I/J/Q` readback lines
- INI-named 与 explicit custom session ordinary tool-table seed/readback 调用点改为
复用 object adapter
- adapter 只转发已显式保存的 object 字段,不推导 LinuxCNC-owned tool-table 格式;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 ordinary OPFS tool-table load/save
result 调用点是否值得新增 `opfsToolTableResultLinesForTool(...)` object adapter
只改测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
十七、2026-06-14 继续执行记录browser OPFS tool-table result object adapter guard
本轮按上一条下一步建议继续收敛普通 OPFS tool-table load/save result helper 调用点
的参数展开,范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `opfsToolTableResultLinesForTool(...)`,从显式 tool object locals 转发到
`opfsToolTableResultLines(...)`
- direct `browser-interp` ordinary tool-table load/save result 调用点改为复用
`opfsToolTableResultLinesForTool(...)`
- INI-named 与 explicit custom session ordinary tool-table load/save result 调用点改为
复用 `opfsToolTableResultLinesForTool(...)`
- load result 的 front angle、back angle、orientation、comment 与
`tool_index_for_tool_2=1` 等 extra lines 仍保留在调用点,保持语义边界外显;
- adapter 只转发已显式保存的 object 字段,不推导 LinuxCNC-owned tool-table 格式;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
备注:
- 当前 sandbox 会拦截本地 HTTP server socket bind`verify_host_smokes.sh` 首次在
browser smoke 阶段因 `PermissionError: [Errno 1] Operation not permitted` 失败;
- 已按规则授权重跑 `wasm-port/tests/host/verify_host_smokes.sh`,重跑通过。
下一步建议:
继续小批量 browser test glue guard。优先扫描普通 OPFS tool-table object helper
是否还能合并命名或减少重复 adapter如果收益不明显转向 parameter result/text 的
object adapter 收敛只改测试胶水不改变输入、OPFS path、WASM path 字符串或
保存/读取行为。
十八、2026-06-14 继续执行记录browser direct parameter object adapter guard
本轮按上一条下一步建议继续收敛 direct `browser-interp` parameter result/text helper
调用点的参数展开,范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `opfsParameterResultLinesForValues(...)`,从显式 parameter value set 转发到
`opfsParameterResultLines(...)`
- 新增 `opfsParameterTextLinesForValues(...)`,从显式 parameter value set 转发到
`opfsParameterTextLines(...)`
- 新增 `opfsParameterValueSet(...)` 与 `opfsParameterValuesForValueSet(...)`
让 direct `browser-interp` parameter load/save/readback 只通过 object locals
传递;
- direct `browser-interp` 的 initial restore、save、readback text 和 backup text
调用点改为复用 parameter object adapter
- adapter 只转发已显式保存的 object 字段,不推导 LinuxCNC-owned parameter 格式;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
备注:
- 当前 sandbox 会拦截本地 HTTP server socket bind`verify_host_smokes.sh` 首次在
browser smoke 阶段因 `PermissionError: [Errno 1] Operation not permitted` 失败;
- 已按规则授权重跑 `wasm-port/tests/host/verify_host_smokes.sh`,重跑通过。
下一步建议:
继续小批量 browser test glue guard。优先扫描 parameter 的 direct helper 是否还能
合并命名,或者转向更少层级的 `parameter result/text` adapter只改测试胶水不改变
输入、OPFS path、WASM path 字符串或保存/读取行为。
十九、2026-06-14 继续执行记录browser INI-named parameter object adapter guard
本轮按上一条下一步建议继续收敛 INI-named custom session parameter result/text
helper 调用点的参数展开,范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- `iniNamedInitialParameterValues` 改为 `opfsParameterValueSet(...)`
- `iniNamedParameterValues`、`iniNamedParameterExpectedValues` 与
`iniNamedParameterReadbackValues` 改为 `opfsParameterValueSet(...)`
- INI-named custom session parameter restore/save/readback/backup 调用点改为复用
`opfsParameterResultLinesForValues(...)`、
`opfsParameterTextLinesForValues(...)` 与
`opfsParameterValuesForValueSet(...)`
- seed file 写入仍显式展开 `parameter5161/5162/5221/5399` 字段,不推导
LinuxCNC-owned parameter 文件格式;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
备注:
- 当前 sandbox 会拦截本地 HTTP server socket bindbrowser smoke 与
`verify_host_smokes.sh` 的 browser 阶段需授权运行;
- 本轮 browser smoke 与 host smoke 均已授权运行并通过。
下一步建议:
继续小批量 browser test glue guard。优先扫描 explicit custom session parameter
value groups把 `explicit*Parameter*` 数组也收敛到
`opfsParameterValueSet(...)` object adapter只改测试胶水不改变输入、OPFS path、
WASM path 字符串或保存/读取行为。
二十、2026-06-14 继续执行记录browser explicit parameter object adapter guard
本轮按上一条下一步建议继续收敛 explicit custom session parameter result/text helper
调用点的参数展开,范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- `explicitInitialParameterValues` 改为 `opfsParameterValueSet(...)`
- `explicitParameterValues`、`explicitParameterExpectedValues` 与
`explicitParameterReadbackValues` 改为 `opfsParameterValueSet(...)`
- explicit custom session parameter restore/save/readback/backup 调用点改为复用
`opfsParameterResultLinesForValues(...)`、
`opfsParameterTextLinesForValues(...)` 与
`opfsParameterValuesForValueSet(...)`
- seed file 写入仍显式展开 `parameter5161/5162/5221/5399` 字段,不推导
LinuxCNC-owned parameter 文件格式;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
备注:
- 当前 sandbox 会拦截本地 HTTP server socket bindbrowser smoke 与
`verify_host_smokes.sh` 的 browser 阶段需授权运行;
- 本轮 browser smoke 与 host smoke 均已授权运行并通过。
下一步建议:
继续小批量 browser test glue guard。优先扫描是否值得新增
`opfsParameterSeedTextForValues(...)` object adapter收敛 direct、INI-named 与
explicit parameter seed file 写入的字段展开只改测试胶水不改变输入、OPFS path、
WASM path 字符串或保存/读取行为。
二十一、2026-06-14 继续执行记录browser parameter seed object adapter guard
本轮按上一条下一步建议继续收敛 parameter seed file 写入的字段展开,范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `opfsParameterSeedTextForValues(...)`,从显式 parameter value set 转发到
`opfsParameterSeedText(...)`
- INI-named custom session parameter seed file 写入改为复用
`opfsParameterSeedTextForValues(...)`
- explicit custom session parameter seed file 写入改为复用
`opfsParameterSeedTextForValues(...)`
- adapter 只转发已显式保存的 object 字段,不推导 LinuxCNC-owned parameter 文件
格式;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
备注:
- 当前 sandbox 会拦截本地 HTTP server socket bindbrowser smoke 与
`verify_host_smokes.sh` 的 browser 阶段需授权运行;
- 本轮 browser smoke 与 host smoke 均已授权运行并通过。
下一步建议:
继续小批量 browser test glue guard。优先扫描 direct/generated parameter fixture
helpers 是否也能复用 `opfsParameterValueSet(...)` 或 seed/text adapter只改测试胶水
不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
二十二、2026-06-14 继续执行记录browser direct generated parameter fixture adapter guard
本轮按上一条下一步建议继续收敛 direct generated parameter fixture helper 的
expected lines 与 seed lines范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- 新增 `opfsParameterSeedLines(...)`,为 parameter seed text helper 提供结构化
seed line 列表;
- 新增 `opfsParameterSeedLinesForValues(...)`,从显式 parameter value set 转发到
`opfsParameterSeedLines(...)`
- `opfsParameterSeedText(...)` 与 `opfsParameterSeedTextForValues(...)` 改为复用
seed line helper
- direct generated `browser-direct.var` seed input 改为复用
`opfsParameterSeedLinesForValues(...)`,并继续显式保留 `<_named_param> 123`
- `restore_parameters_direct`、`save_parameters_direct`、
`saved_parameters_direct_text` 与 `saved_parameters_direct_backup` expected lines
改为复用 parameter object adapter
- `absent=<_named_param>` 与 `<_named_param> 123` 仍保留在对应调用点,保持语义边界外显;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
备注:
- 当前 sandbox 会拦截本地 HTTP server socket bindbrowser smoke 与
`verify_host_smokes.sh` 的 browser 阶段需授权运行;
- 本轮 browser smoke 与 host smoke 均已授权运行并通过。
下一步建议:
继续小批量 browser test glue guard。优先扫描 out-of-order 与 missing-required
generated parameter fixtures 是否能复用小型 local constants 或 existing parameter
helpers只改测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
二十三、2026-06-14 继续执行记录browser generated parameter fixture locals guard
本轮按上一条下一步建议继续收敛 out-of-order 与 missing-required generated
parameter fixtures范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- out-of-order generated parameter fixture input 从裸字符串改为局部 seed line 数组;
- missing-required generated parameter fixture input 从裸字符串改为
`missingRequiredParameterSeedLines` 局部常量;
- missing-required expected output 继续显式保留 `parameter_5161=3.5` 与
`parameter_5162=0`
- 未引入 parameter 格式推导,未复用不合适的 generic text helper
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
备注:
- 当前 sandbox 会拦截本地 HTTP server socket bindbrowser smoke 与
`verify_host_smokes.sh` 的 browser 阶段需授权运行;
- 本轮 browser smoke 与 host smoke 均已授权运行并通过。
下一步建议:
继续小批量 browser test glue guard。优先扫描 direct generated parameter fixture
path/name constants 是否还能更清晰地局部命名,或者转向 tool-table generated fixture
input locals只改测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
二十四、2026-06-14 继续执行记录browser direct generated tool-table input locals guard
本轮按上一条下一步建议转向 direct generated tool-table fixture input locals范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- 新增 `browserDirectToolTableInputLines` 局部常量,承载 direct non-random generated
tool-table fixture input lines
- `writeGeneratedToolTableFixture(...)` 调用改为复用
`browserDirectToolTableInputLines.join("\n")`
- 保持 `browserDirectFinishTool`、`browserDirectRoughTool` 与后续 load/save/readback
expected lines 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
备注:
- 当前 sandbox 会拦截本地 HTTP server socket bindbrowser smoke 与
`verify_host_smokes.sh` 的 browser 阶段需授权运行;
- 本轮 browser smoke 与 host smoke 均已授权运行并通过。
下一步建议:
继续小批量 browser test glue guard。优先扫描 direct generated random tool-table fixture
input lines 是否也能抽为局部常量只改测试胶水不改变输入、OPFS path、WASM path
字符串或保存/读取行为。
二十五、2026-06-14 继续执行记录browser direct generated random tool-table input locals guard
本轮按上一条下一步建议继续收敛 direct generated random tool-table fixture input
locals范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- 新增 `browserDirectRandomToolTableInputLines` 局部常量,承载 direct random
generated tool-table fixture input lines
- `writeGeneratedToolTableFixture(...)` 调用改为复用
`browserDirectRandomToolTableInputLines.join("\n")`
- 保持 `browserDirectRandomFinishTool`、`browserDirectRandomRoughTool` 与后续
load/save/readback expected lines 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
备注:
- 当前 sandbox 会拦截本地 HTTP server socket bindbrowser smoke 与
`verify_host_smokes.sh` 的 browser 阶段需授权运行;
- 本轮 browser smoke 与 host smoke 均已授权运行并通过。
下一步建议:
继续小批量 browser test glue guard。优先扫描 browser OPFS session tool-table seed
text 是否还能抽为局部 constants或者转向 direct generated tool-table path constants
只改测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
二十六、2026-06-14 继续执行记录browser OPFS session tool-table seed text local guard
本轮按上一条下一步建议继续收敛 browser OPFS session tool-table seed text范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `browserInterpToolTableInputText` 局部常量,承载 ordinary
`browser-interp` session 的 tool-table seed text
- `saveMachineTextFiles(...)` 中 ordinary session 的 `toolTable` 字段改为复用
`browserInterpToolTableInputText`
- 保持 `browserInterpToolTable` object、load/save/readback expected lines、
OPFS path 与 WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
browser_interp_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
备注:
- 当前 sandbox 会拦截本地 HTTP server socket bindbrowser smoke 与
`verify_host_smokes.sh` 的 browser 阶段需授权运行;
- 本轮 browser smoke 与 host smoke 均已授权运行并通过。
下一步建议:
继续小批量 browser test glue guard。优先扫描 random OPFS session tool-table seed
text 是否也能抽为局部 constants只改测试胶水不改变输入、OPFS path、WASM path
字符串或保存/读取行为。
二十七、2026-06-14 继续执行记录browser random OPFS session tool-table seed text local guard
本轮按上一条下一步建议继续收敛 browser random OPFS session tool-table seed text范围仍
只触及 `wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `browserRandomToolTableInputText` 局部常量,承载 random
`browser-random-toolchanger` session 的 tool-table seed text
- `saveMachineTextFiles(...)` 中 random session 的 `toolTable` 字段改为复用
`browserRandomToolTableInputText`
- 保持 `browserRandomTools` object、load/save/readback expected lines、OPFS path 与
WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 direct/random session 的 parameter/tool-table
seed text 是否还能继续局部常量化只改测试胶水不改变输入、OPFS path、WASM path
字符串或保存/读取行为。
二十八、2026-06-14 继续执行记录browser direct parameter seed text local guard
本轮按上一条下一步建议继续收敛 direct browser parameter seed text范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- 新增 `browserDirectParameterInputText` 局部常量,承载 direct
`/work/browser-direct.var` parameter fixture 的 seed text
- `writeGeneratedParameterFixture(...)` 调用改为复用
`browserDirectParameterInputText`
- 该 seed text 继续来自 `browserDirectParameterSeedLines(true)`,保持
`<_named_param> 123` 与末尾空行不变;
- 保持 `browserDirectInitialParameterValues`、restore/save/readback expected lines、
OPFS path 与 WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 direct browser parameter/tool-table fixture
WASM path 字符串是否能抽为局部 constants 并继续经
`writeGeneratedParameterFixture(...)` / `writeGeneratedToolTableFixture(...)` 的 path guard
校验只改测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
二十九、2026-06-14 继续执行记录browser direct fixture WASM path local guard
本轮按上一条下一步建议继续收敛 direct browser fixture WASM path 字符串,范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- 新增 `browserDirectParameterWasmPath`,承载 direct parameter fixture 的
`/work/browser-direct.var` WASM path
- 新增 `browserDirectToolTableWasmPath`,承载 direct ordinary tool-table fixture 的
`/work/browser-direct-tool.tbl` WASM path
- 新增 `browserDirectRandomToolTableWasmPath`,承载 direct random tool-table fixture 的
`/work/browser-direct-random-tool.tbl` WASM path
- `writeGeneratedParameterFixture(...)` 与 `writeGeneratedToolTableFixture(...)` 调用继续传入
显式 expected path保留现有 path drift guard
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 direct generated/random tool-table input
lines 是否还能统一为 text 常量并继续由 existing tool objects 校验读回;只改测试胶水,
不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
三十、2026-06-14 继续执行记录browser direct tool-table input text local guard
本轮按上一条下一步建议继续收敛 direct browser tool-table input text范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- 新增 `browserDirectToolTableInputText` 局部常量,承载 ordinary direct
tool-table fixture 的写入文本;
- 新增 `browserDirectRandomToolTableInputText` 局部常量,承载 random direct
tool-table fixture 的写入文本;
- `writeGeneratedToolTableFixture(...)` 调用改为复用上述 input text 常量;
- 保持 direct ordinary/random tool objects、load/save/readback expected lines、OPFS path
与 WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 direct/random session 的 text 常量是否还能
合并或局部复用只改测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取
行为。
三十一、2026-06-14 继续执行记录browser session parameter input text local guard
本轮按上一条下一步建议继续收敛 browser session parameter input text范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- ordinary `browser-interp` session 的 parameter seed 改为复用
`browserDirectParameterInputText`
- random `browser-random-toolchanger` session 新增
`browserRandomParameterInputText`,承载其 parameter seed text
- 保持 direct ordinary/random session 的 tool-table/parameter expected lines、OPFS path
与 WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 browser-interp 与 browser-random session 的
tool-table/parameter text 常量是否还能进一步合并复用;只改测试胶水,不改变输入、
OPFS path、WASM path 字符串或保存/读取行为。
三十二、2026-06-14 继续执行记录browser interp tool-table input lines local guard
本轮按上一条下一步建议继续收敛 browser-interp tool-table input text范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- `browser-interp` session 的 tool-table seed 从单行字符串拆成
`browserInterpToolTableInputLines` + `browserInterpToolTableInputText`
- 保持 ordinary `browser-interp` session 的 parameter/tool-table expected lines、OPFS path
与 WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 browser-interp/session 的 tool-table/parameter
text 常量是否还能继续局部复用只改测试胶水不改变输入、OPFS path、WASM path
字符串或保存/读取行为。
三十三、2026-06-14 继续执行记录browser interp initial parameter values local guard
本轮按上一条下一步建议继续收敛 browser-interp parameter locals范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- `browserInterpInitialParameterValues` 改为复用
`browserDirectInitialParameterValues`
- 保持 ordinary `browser-interp` session 的 parameter seed text、restore/save/readback
expected lines、OPFS path 与 WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 browser-interp save parameter value locals
是否还能复用 direct/session helper 常量只改测试胶水不改变输入、OPFS path、WASM
path 字符串或保存/读取行为。
三十四、2026-06-14 继续执行记录browser interp save parameter value locals guard
本轮按上一条下一步建议继续收敛 browser-interp save parameter value locals范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- `browserInterpParameterValues` 改为复用 `browserDirectParameterValues`
- `browserInterpParameterExpectedValues` 改为复用
`browserDirectParameterExpectedValues`
- `browserInterpParameterReadbackValues` 改为复用
`browserDirectParameterReadbackValues`
- 保持 ordinary `browser-interp` session 的 save/readback expected lines、OPFS path 与
WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 browser-interp saved parameter/readback
expected line groups 是否还能局部常量化或复用 existing helpers只改测试胶水不改变
输入、OPFS path、WASM path 字符串或保存/读取行为。
三十五、2026-06-14 继续执行记录browser interp saved parameter expected lines guard
本轮按上一条下一步建议继续收敛 browser-interp saved parameter expected line groups范围
仍只触及 `wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- 新增 `browserInterpSavedParameterTextLines` 局部常量,承载
`opfs_saved_parameter_text` expected lines
- 新增 `browserInterpSavedParameterBackupTextLines` 局部常量,承载
`opfs_saved_parameter_backup_text` expected lines
- `verifyOpfsMachineFileReadback(...)` 与 `verifyOpfsReadback(...)` 调用改为复用上述
expected line groups
- 保持 ordinary `browser-interp` session 的 saved parameter/readback expected 文本、OPFS
path 与 WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 direct saved parameter expected line groups
是否也能局部常量化并与 browser-interp 分组保持一致;只改测试胶水,不改变输入、
OPFS path、WASM path 字符串或保存/读取行为。
三十六、2026-06-14 继续执行记录browser direct saved parameter expected lines guard
本轮按上一条下一步建议继续收敛 direct saved parameter expected line groups范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- 新增 `browserDirectSavedParameterTextLines` 局部常量,承载
`saved_parameters_direct_text` expected lines
- 新增 `browserDirectSavedParameterBackupTextLines` 局部常量,承载
`saved_parameters_direct_backup` expected lines
- direct `verifyExpectedOutput(...)` 调用改为复用上述 expected line groups
- 保持 direct parameter fixture 的 saved parameter/readback expected 文本、OPFS path 与
WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 direct/browser-interp saved parameter expected
line constants 是否能进一步用 shared helper 统一生成只改测试胶水不改变输入、OPFS
path、WASM path 字符串或保存/读取行为。
三十七、2026-06-14 继续执行记录browser saved parameter expected lines shared helpers
本轮按上一条下一步建议继续收敛 direct/browser-interp saved parameter expected line
constants范围仍只触及 `wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。
完成内容:
- 新增 `opfsSavedParameterTextLinesForValues(...)` helper统一生成 saved parameter text
expected lines
- 新增 `opfsSavedParameterBackupTextLinesForValues(...)` helper统一生成 saved parameter
backup expected lines
- direct saved parameter readback 与 browser-interp OPFS saved parameter readback 均改为复用
上述 shared helpers
- 保持 direct 与 browser-interp saved parameter/readback expected 文本、OPFS path 与 WASM
path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 ini-named/explicit session saved parameter
expected line groups 是否也能复用 shared helpers只改测试胶水不改变输入、OPFS path、
WASM path 字符串或保存/读取行为。
三十八、2026-06-14 继续执行记录browser custom session plain parameter expected lines guard
本轮按上一条下一步建议继续收敛 ini-named/explicit session saved parameter expected line
groups范围仍只触及 `wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `opfsSavedParameterPlainTextLinesForValues(...)` helper统一生成不带 named-param
附加行的 saved parameter expected lines
- ini-named session 的 saved parameter text 与 backup readback expected lines 改为复用
`opfsSavedParameterPlainTextLinesForValues(...)`
- explicit session 的 saved parameter text 与 backup readback expected lines 改为复用
`opfsSavedParameterPlainTextLinesForValues(...)`
- 保持 ini-named/explicit session 的 saved parameter/readback expected 文本、OPFS path 与
WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 custom session saved tool-table expected line
groups 是否也能局部常量化或复用 existing helpers只改测试胶水不改变输入、OPFS
path、WASM path 字符串或保存/读取行为。
三十九、2026-06-14 继续执行记录browser custom saved tool-table expected lines guard
本轮按上一条下一步建议继续收敛 custom session saved tool-table expected line groups范围
仍只触及 `wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `iniNamedSavedToolTableTextLines` 局部常量,承载 ini-named session saved
tool-table expected lines
- 新增 `explicitSavedToolTableTextLines` 局部常量,承载 explicit session saved
tool-table expected lines
- ini-named/explicit saved tool-table readback 调用改为复用上述 line groups
- 保持 ini-named/explicit session 的 saved tool-table expected 文本、OPFS path 与 WASM
path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 browser-interp/direct saved tool-table
expected line groups 是否也能局部常量化或复用 existing helpers只改测试胶水不改变
输入、OPFS path、WASM path 字符串或保存/读取行为。
四十、2026-06-14 继续执行记录browser direct/interp saved tool-table expected lines guard
本轮按上一条下一步建议继续收敛 browser-interp/direct saved tool-table expected line
groups范围仍只触及 `wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `browserDirectSavedToolTableTextLines` 局部常量,承载 direct saved tool-table
expected lines
- 新增 `browserInterpSavedToolTableTextLines` 局部常量,承载 browser-interp saved
tool-table expected lines
- direct 与 browser-interp saved tool-table readback 调用改为复用上述 line groups
- 保持 direct/browser-interp session 的 saved tool-table expected 文本、OPFS path 与 WASM
path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 browser-random/direct-random saved
tool-table expected line groups 是否也能局部常量化或复用 existing helpers只改测试胶水
不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
四十一、2026-06-14 继续执行记录browser random saved tool-table expected lines guard
本轮按上一条下一步建议继续收敛 browser-random/direct-random saved tool-table expected
line groups范围仍只触及 `wasm-port/tests/browser/interp_smoke.html` 的
browser/OPFS test glue。
完成内容:
- 新增 `browserDirectRandomSavedToolTableTextLines` 局部常量,承载 direct-random saved
tool-table expected lines
- 新增 `browserRandomSavedToolTableTextLines` 局部常量,承载 browser-random saved
tool-table expected lines
- direct-random 与 browser-random saved tool-table readback 调用改为复用上述 line
groups
- 保持 direct-random/browser-random session 的 saved tool-table expected 文本、OPFS
path 与 WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 browser-random/direct-random tool-table
load/save result line groups 是否也能局部常量化或复用 existing helpers只改测试胶水
不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
四十二、2026-06-14 继续执行记录browser random tool-table result lines guard
本轮按上一条下一步建议继续收敛 browser-random/direct-random tool-table load/save
result line groups范围仍只触及 `wasm-port/tests/browser/interp_smoke.html` 的
browser/OPFS test glue。
完成内容:
- 新增 `browserDirectRandomLoadToolTableResultLines` 局部常量,承载 direct-random
load tool-table expected result lines
- 新增 `browserDirectRandomSaveToolTableResultLines` 局部常量,承载 direct-random
save tool-table expected result lines
- 新增 `browserRandomLoadToolTableResultLines` 局部常量,承载 browser-random load
tool-table expected result lines
- 新增 `browserRandomSaveToolTableResultLines` 局部常量,承载 browser-random save
tool-table expected result lines
- direct-random 与 browser-random tool-table load/save 断言改为复用上述 line groups
- 保持 direct-random/browser-random session 的 expected result 文本、OPFS path 与
WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 load/save/read
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 browser-interp/direct tool-table
load/save result line groups 是否也能局部常量化或复用 existing helpers只改测试胶水
不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
四十三、2026-06-14 继续执行记录browser direct/interp tool-table result lines guard
本轮按上一条下一步建议继续收敛 browser-interp/direct tool-table load/save result line
groups范围仍只触及 `wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS
test glue。
完成内容:
- 新增 `browserDirectLoadToolTableResultLines` 局部常量,承载 direct tool-table load
expected result lines
- 新增 `browserDirectSaveToolTableResultLines` 局部常量,承载 direct tool-table save
expected result lines
- 新增 `browserInterpLoadToolTableResultLines` 局部常量,承载 browser-interp tool-table
load expected result lines
- 新增 `browserInterpSaveToolTableResultLines` 局部常量,承载 browser-interp tool-table
save expected result lines
- direct 与 browser-interp tool-table load/save 断言改为复用上述 line groups
- 保持 direct/browser-interp session 的 expected result 文本、OPFS path 与 WASM path
不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 load/save/read
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 browser-interp/direct 参数
load/save/result/backing text groups 是否还能进一步局部常量化或复用 existing helpers
只改测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
四十四、2026-06-14 继续执行记录browser direct/interp parameter result groups guard
本轮按上一条下一步建议继续收敛 browser-interp/direct 参数 restore/save/result/backing
text groups范围仍只触及 `wasm-port/tests/browser/interp_smoke.html` 的
browser/OPFS test glue。
完成内容:
- 新增 `browserDirectRestoreParameterResultLines` 局部常量,承载 direct parameter restore
expected result lines
- 新增 `browserDirectSaveParameterResultLines` 局部常量,承载 direct parameter save
expected result lines
- 新增 `browserDirectSavedParameterTextLines` 局部常量,承载 direct parameter saved text
expected lines
- 新增 `browserDirectSavedParameterBackupTextLines` 局部常量,承载 direct parameter
backup text expected lines
- 新增 `browserInterpRestoreParameterResultLines` 局部常量,承载 browser-interp
parameter restore expected result lines
- 新增 `browserInterpSaveParameterResultLines` 局部常量,承载 browser-interp parameter
save expected result lines
- 新增 `browserInterpSavedParameterTextLines` 局部常量,承载 browser-interp saved text
expected lines
- 新增 `browserInterpSavedParameterBackupTextLines` 局部常量,承载 browser-interp
backup text expected lines
- direct 与 browser-interp 参数 restore/save/readback/backup 断言改为复用上述 line
groups
- 保持 direct/browser-interp session 的 expected 文本、OPFS path 与 WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 load/save/read
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 ini-named/explicit session 的参数和
tool-table load/save/result/backing text groups 是否还能进一步局部常量化或复用 existing
helpers只改测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
四十五、2026-06-14 继续执行记录browser custom session parameter/tool-table groups guard
本轮按上一条下一步建议继续收敛 ini-named/explicit session 的参数和 tool-table
load/save/result/backing text groups范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `iniNamedRestoreParameterResultLines` 局部常量,承载 ini-named parameter
restore expected result lines
- 新增 `iniNamedSaveParameterResultLines` 局部常量,承载 ini-named parameter save
expected result lines
- 新增 `iniNamedSavedParameterTextLines` 局部常量,承载 ini-named parameter saved text
expected lines
- 新增 `iniNamedSavedParameterBackupTextLines` 局部常量,承载 ini-named parameter backup
text expected lines
- 新增 `iniNamedLoadToolTableResultLines` 与 `iniNamedSaveToolTableResultLines` 局部
常量,承载 ini-named tool-table load/save expected result lines
- 新增 `explicitRestoreParameterResultLines` 与 `explicitSaveParameterResultLines` 局部
常量,承载 explicit parameter restore/save expected result lines
- 新增 `explicitSavedParameterTextLines` 与 `explicitSavedParameterBackupTextLines` 局部
常量,承载 explicit parameter saved/backup text expected lines
- 新增 `explicitLoadToolTableResultLines` 与 `explicitSaveToolTableResultLines` 局部
常量,承载 explicit tool-table load/save expected result lines
- ini-named 与 explicit session 的参数/tool-table load/save/readback/backup 断言改为
复用上述 line groups
- 保持 ini-named/explicit session 的 expected 文本、OPFS path 与 WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 load/save/read
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 invalid INI session reject groups、
machine/session path assertions 或 remaining OPFS readback groups 是否还能进一步局部
常量化或复用 existing helpers只改测试胶水不改变输入、OPFS path、WASM path 字符串
或保存/读取行为。
四十六、2026-06-14 继续执行记录browser invalid INI reject groups guard
本轮按上一条下一步建议继续收敛 invalid INI session reject groups范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `invalidParameterFileMachineId` 局部常量,承载 invalid parameter file session
machine id
- 新增 `invalidParameterFileIniLines` 局部常量,承载 invalid parameter file INI lines
- 新增 `invalidParameterFileErrorPattern` 局部常量,承载 invalid parameter file error
pattern
- 新增 `invalidToolTableMachineId` 局部常量,承载 invalid tool-table session machine id
- 新增 `invalidToolTableIniLines` 局部常量,承载 invalid tool-table INI lines
- 新增 `invalidToolTableErrorPattern` 局部常量,承载 invalid tool-table error pattern
- invalid parameter file 与 invalid tool-table reject 断言改为复用上述 input/error
groups
- 保持 invalid INI expected error 文本、machine id、INI section、INI line、OPFS path 与
WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 load/save/read
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 machine/session path assertions 或
remaining OPFS readback groups 是否还能进一步局部常量化或复用 existing helpers只改
测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
四十七、2026-06-14 继续执行记录browser session path assertion groups guard
本轮按上一条下一步建议继续收敛 machine/session path assertions范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `browserInterpExpectedSessionPaths` 局部常量,承载 browser-interp session
expected path group
- 新增 `iniNamedExpectedSessionPaths` 局部常量,承载 ini-named custom session
expected path group
- 新增 `explicitExpectedSessionPaths` 局部常量,承载 explicit override session
expected path group
- browser-interp、ini-named 与 explicit session staging 断言改为复用上述 expected
path groups
- 保持 session expected OPFS path、WASM path、machine id、filename 与 load options
不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 load/save/read
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 remaining OPFS readback groups 或
machine text store path assertion groups 是否还能进一步局部常量化或复用 existing
helpers只改测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
四十八、2026-06-14 继续执行记录browser random session path assertion group guard
本轮按上一条下一步建议继续收敛 remaining session path assertion group范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `browserRandomExpectedSessionPaths` 局部常量,承载 browser-random session
expected path group
- browser-random session staging 断言改为复用上述 expected path group
- 保持 browser-random session expected OPFS path、WASM path、machine id、filename 与
load options 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 load/save/read
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 remaining OPFS readback groups、saved
file staging assertions 或 machine text store path assertion groups 是否还能进一步局部
常量化或复用 existing helpers只改测试胶水不改变输入、OPFS path、WASM path 字符串
或保存/读取行为。
四十九、2026-06-14 继续执行记录browser saved file staging groups guard
本轮按上一条下一步建议继续收敛 saved file staging assertions范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `browserInterpParameterSaveStaging` 局部常量,承载 browser-interp parameter
save staging filename/WASM path group
- 新增 `browserInterpToolTableSaveStaging` 局部常量,承载 browser-interp tool-table
save staging filename/WASM path group
- 新增 `browserRandomToolTableSaveStaging` 局部常量,承载 browser-random tool-table
save staging filename/WASM path group
- browser-interp parameter/tool-table 与 browser-random tool-table saved staging 断言
改为复用上述 staging groups
- 保持 saved file expected OPFS path、WASM path、machine id、filename 与 save options
不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 load/save/read
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 custom session saved file staging
assertions 或 remaining OPFS readback path groups 是否还能进一步局部常量化或复用
existing helpers只改测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取
行为。
五十、2026-06-14 继续执行记录browser custom session saved staging groups guard
本轮按上一条下一步建议继续收敛 custom session saved file staging assertions范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `iniNamedParameterSaveStaging` 局部常量,承载 ini-named parameter saved
staging filename/WASM path group
- 新增 `iniNamedToolTableSaveStaging` 局部常量,承载 ini-named tool-table saved
staging filename/WASM path group
- 新增 `explicitParameterSaveStaging` 局部常量,承载 explicit parameter saved staging
filename/WASM path group
- 新增 `explicitToolTableSaveStaging` 局部常量,承载 explicit tool-table saved staging
filename/WASM path group
- ini-named 与 explicit session saved staging 断言改为复用上述 staging groups
- 保持 saved file expected OPFS path、WASM path、machine id、filename 与 save options
不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 load/save/read
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 remaining OPFS readback path groups 或
machine text store path assertion groups 是否还能进一步局部常量化或复用 existing
helpers只改测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
五十一、2026-06-14 继续执行记录browser ini-named readback path groups guard
本轮按上一条下一步建议继续收敛 remaining OPFS readback path groups范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `iniNamedSavedParameterTextPath` 局部常量,承载 ini-named parameter saved
text readback path
- 新增 `iniNamedSavedParameterBackupPath` 局部常量,承载 ini-named parameter backup
text readback path
- 新增 `iniNamedSavedToolTableTextPath` 局部常量,承载 ini-named tool-table saved text
readback path
- ini-named parameter/tool-table saved readback 断言改为复用上述 path groups
- 保持 ini-named saved file expected OPFS path、WASM path、machine id、filename 与
readback text 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 load/save/read
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 remaining OPFS readback path groups、
machine text store path assertion groups 或 explicit session saved readback groups 是否还能
进一步局部常量化或复用 existing helpers只改测试胶水不改变输入、OPFS path、WASM
path 字符串或保存/读取行为。