1562 lines
47 KiB
Plaintext
1562 lines
47 KiB
Plaintext
项目整体完成情况与后续执行计划
|
||
|
||
生成时间:2026-06-13 CST
|
||
|
||
本文件接替 `text6.txt`。后续工作按 `text7.txt` 执行;除非明确要求审计旧记录,
|
||
不要再回到 `text1/text2/text3/text4/text5/text6` 扩展进度。`text6.txt` 作为历史
|
||
归档保留。
|
||
|
||
一、续接状态与防重规则
|
||
|
||
1. 当前续接点。
|
||
|
||
`text6.txt` 已推进到:
|
||
|
||
```text
|
||
四十九、2026-06-13 继续执行记录:remap generated-file staging helper inventory
|
||
```
|
||
|
||
该批已提交:
|
||
|
||
```text
|
||
bea8320 Guard remap generated file staging
|
||
```
|
||
|
||
本文件从 `text7.txt` 重新开始记录后续进度。
|
||
|
||
2. 每轮开始前必须先执行。
|
||
|
||
```bash
|
||
git status --short
|
||
git log -5 --oneline
|
||
tail -n 120 text7.txt
|
||
awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
执行规则:
|
||
|
||
- 如果 `git status --short` 是 clean,且最新提交已经包含当前建议工作,不要重复追加记录;
|
||
- 每轮只追加一个新的中文编号记录;提交前再次检查标题唯一性;
|
||
- `text7.txt` 只记录新的后续进度,不复制 `text6.txt` 的长历史;
|
||
- 每批完成后,如果要写记录,先写 `text7.txt`,再提交该批代码和记录;
|
||
- 如果发现重复记录,先做 dedupe 清理并提交,再继续新功能或新 guard。
|
||
|
||
二、当前项目纪律
|
||
|
||
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. WASM port 基础架构稳定。
|
||
|
||
`wasm-port` 已按独立移植工作区组织,包含 vendor、runtime/core、runtime/sdk、
|
||
runtime/opfs、runtime/ui、native/wasm/browser tests、docs 和 tools。
|
||
|
||
2. 关键基线保持稳定。
|
||
|
||
- `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`
|
||
|
||
3. 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
|
||
```
|
||
|
||
4. staged path guard 当前收敛状态。
|
||
|
||
`text6.txt` 已完成并提交的主要收敛包括:
|
||
|
||
- ordinary interp direct-file / multi-file staged path guard;
|
||
- `oword-bug315`、`oword-bug315-p2`、`namedparam-bug424` 等 early direct-file guard;
|
||
- `cam-nisley`、`cam-nisley-bare`、`flowsnake`、`inside-corners`、
|
||
`inverse-time-with-comp` 等 interp guard;
|
||
- `bad`、`good`、`g33.1`、`g6164`、`g71`、`g72`、`g76`、rotation、INI-context
|
||
fixture guard;
|
||
- `m98m99` fixed `.ngc` manifest guard;
|
||
- `g10` fixed `.ngc/.tbl` manifest guard;
|
||
- `g52/g92` direct-file guard;
|
||
- ccomp per-file staging helper guard;
|
||
- remap aggregate staging helper 已收敛为 coverage helper + per-file staging helper;
|
||
- `nested-remaps-oword` 保留 expected-unstaged overlap guard;
|
||
- `remap-io/simpockets.tbl` 已切换为 generated-file staging helper;
|
||
- Node/browser 侧已删除无调用的 remap aggregate helper。
|
||
|
||
5. 当前最近提交。
|
||
|
||
当前最近提交包括:
|
||
|
||
```text
|
||
bea8320 Guard remap generated file staging
|
||
e039cac Guard final special remap staging paths
|
||
76aa9fb Guard final simple remap staging paths
|
||
fe07e2f Guard more remap per-file staging paths
|
||
d7cd116 Guard initial remap per-file staging paths
|
||
```
|
||
|
||
四、当前必须保持通过的验证入口
|
||
|
||
每批后续改动至少运行:
|
||
|
||
```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. 当前第一候选批次。
|
||
|
||
继续 staged path guard inventory 第二轮,优先处理 INI-context helper 内的 inline prefix
|
||
strip:
|
||
|
||
```text
|
||
assertInterpIniContextNgcStaging(...)
|
||
```
|
||
|
||
当前已知位置:
|
||
|
||
```text
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
执行目标:
|
||
|
||
- Node 侧将 `file.wasmPath.replace(`/work/interp/${name}/`, "")` 收敛为专用 helper;
|
||
- browser 侧将 `file.wasmPath.replace(`/work/browser-interp/${name}/`, "")` 同步收敛;
|
||
- helper 必须检查 staged path 确实带有期望前缀,避免普通 `replace(...)` 静默放过
|
||
错误路径;
|
||
- 保持 browser 不枚举目录;
|
||
- 只整理 host/filesystem staging guard,不改变 INI、O-word、parameter、remap 或
|
||
interpreter 语义。
|
||
|
||
2. 第一候选批次验证。
|
||
|
||
执行:
|
||
|
||
```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_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.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 staged prefix stripping
|
||
```
|
||
|
||
3. 后续候选原则。
|
||
|
||
继续只选:
|
||
|
||
- 已有 Node/browser coverage;
|
||
- 不依赖 HAL/task/tool DB/Python remap/user-M process;
|
||
- direct-file、generated-file 或 staging helper 已成型;
|
||
- 每批小范围收敛;
|
||
- 只做 host/filesystem staging 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 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
七、2026-06-13 继续执行记录:staged prefix stripping guard
|
||
|
||
1. 本批目标。
|
||
|
||
按本文件第一候选批次继续 staged path guard inventory 第二轮,收敛 INI-context helper
|
||
内的 inline prefix strip:
|
||
|
||
```text
|
||
assertInterpIniContextNgcStaging(...)
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- Node 侧新增 `stripInterpIniContextStagingPrefix(...)`;
|
||
- browser 侧新增 `stripInterpIniContextStagingPrefix(...)`;
|
||
- 两侧均先检查 staged `wasmPath` 带有期望前缀,再用 `slice(...)` 取相对路径;
|
||
- 删除两侧 `file.wasmPath.replace(...)` 的静默前缀剥离;
|
||
- 保持 browser 不枚举目录;
|
||
- 未修改 INI、O-word、parameter、remap 或 interpreter 语义。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 本批建议验证。
|
||
|
||
```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_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.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 staged prefix stripping
|
||
```
|
||
|
||
4. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第三轮,优先扫描剩余 `wasmPath` 字符串拼接、prefix
|
||
strip 或 helper 旁路点,只选择已有 Node/browser coverage 且不依赖 HAL/task/tool
|
||
DB/Python remap/user-M process 的小批次。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
八、2026-06-13 继续执行记录:fiveaxis staging manifest guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第三轮,收敛 fiveaxis 三组 helper 的 staged 文件写入:
|
||
|
||
```text
|
||
writeFiveAxisTrtMachineFiles(...)
|
||
writeFiveAxisTdrMachineFiles(...)
|
||
writeFiveAxisBridgeMillMachineFiles(...)
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- Node 侧新增 fiveaxis 固定 manifest 写入 helper;
|
||
- Node 侧为 `remap_subs` 和 `demos` 的 `.ngc` 子集增加 upstream coverage drift
|
||
断言;
|
||
- Node 侧移除 fiveaxis helper 里的 ad hoc `readdirSync(remap_subs)` 写入;
|
||
- browser 侧新增 fiveaxis 固定 manifest 写入 helper;
|
||
- browser 侧增加 duplicate-free 和 staged root/path parity 断言;
|
||
- browser 侧仍不枚举目录;
|
||
- 未修改 INI、remap、kinematics、HAL 或 interpreter 语义。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
如果通过,提交建议:
|
||
|
||
```text
|
||
Guard fiveaxis staging manifests
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第四轮,优先扫描 `verify_interp_wasm.mjs` 和
|
||
`interp_smoke.html` 中剩余的 direct literal `/work/...` 写入点,选择已有
|
||
Node/browser 成对覆盖、且可以用 fixed manifest 或 single-file staging helper
|
||
收敛的小批次。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
九、2026-06-13 继续执行记录:local gcode fixture staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第四轮,优先处理已有 Node/browser 成对覆盖的 local
|
||
fixture direct `/work/...` 写入点:
|
||
|
||
```text
|
||
coordinate_offsets.ngc
|
||
position_params.ngc
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- 修正 `text7.txt` 中第七/第八条记录顺序,避免后续记录继续乱序;
|
||
- Node 侧新增 `writeLocalGcodeFixture(...)`;
|
||
- browser 侧新增 `writeLocalGcodeFixture(...)`;
|
||
- `coordinate_offsets` 和 `position_params` 两侧均改为 helper 写入;
|
||
- helper 显式检查 staged `wasmPath` 与期望路径一致;
|
||
- browser 侧仍不枚举目录;
|
||
- 未修改 G-code、canon expected、parameter、tool table 或 interpreter 语义。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
text7.txt
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
如果通过,提交建议:
|
||
|
||
```text
|
||
Guard local gcode fixture staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第五轮,优先处理 `runVendorNcFile(...)` /
|
||
`runVendorNcFileWithToolTable(...)` 这类 vendor `nc_files` direct/context helper,
|
||
增加 single-file root parity 和 context file manifest guard;仍暂不碰 parameter/tool
|
||
table runtime state tests。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
十、2026-06-13 继续执行记录:browser nc-files staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第五轮,处理 browser 侧 vendor `nc_files` helper:
|
||
|
||
```text
|
||
runVendorNcFile(...)
|
||
runVendorNcFileWithToolTable(...)
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- browser 侧新增 `assertVendorNcFileStaging(...)`;
|
||
- browser 侧新增 `assertVendorNcFileContextStaging(...)`;
|
||
- direct `nc_files` helper 增加 `/work/browser-nc-files/<file>` root parity guard;
|
||
- context helper 增加固定 manifest guard:
|
||
- `<file>`
|
||
- `tool.tbl`
|
||
- `nc_files_context.ini`
|
||
- context helper 增加 staged root/path parity guard;
|
||
- browser 侧仍不枚举目录;
|
||
- 未修改 vendor `nc_files`、tool table 内容、INI 内容或 interpreter 语义。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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 nc-files staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第六轮,优先处理 browser/Node 中剩余的单文件
|
||
direct `/work/...` 写入点,例如 `disable_fanuc_style_sub_m98.ngc` 或 spindle-orient
|
||
INI fixture staging;继续避开 parameter/tool table runtime state tests 和 blocked
|
||
runtime promotion。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
十一、2026-06-13 继续执行记录:local INI/direct fixture staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第六轮,处理 Node/browser 成对覆盖的 local INI 与
|
||
direct G-code fixture staging:
|
||
|
||
```text
|
||
spindle_orient_offset.ini
|
||
disable_fanuc_style_sub.ini
|
||
spindle_orient_offset.ngc
|
||
disable_fanuc_style_sub_m98.ngc
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- Node 侧新增 `writeLocalIniFixture(...)`;
|
||
- browser 侧新增 `writeLocalIniFixture(...)`;
|
||
- `spindle_orient_offset.ini` 和 `disable_fanuc_style_sub.ini` 两侧均改为 helper 写入;
|
||
- `spindle_orient_offset.ngc` 和 `disable_fanuc_style_sub_m98.ngc` 两侧均改为
|
||
`writeLocalGcodeFixture(...)` 写入;
|
||
- helper 显式检查 staged `wasmPath` 与期望路径一致;
|
||
- browser 侧仍不枚举目录;
|
||
- 未修改 INI 内容、G-code 内容、canon expected、tool table 或 interpreter 语义。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
如果通过,提交建议:
|
||
|
||
```text
|
||
Guard local INI/direct fixture staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第七轮,优先处理 `INTERP_FILE_FIXTURES` /
|
||
`INTERP_BROWSER_FILE_FIXTURES` 和 `INTERP_ERROR_FIXTURES` 这类循环写入点,增加
|
||
loop-level single-file staging helper 或 manifest parity guard;继续避开
|
||
parameter/tool table runtime state tests 和 blocked runtime promotion。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
十二、2026-06-13 继续执行记录:fixture loop staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第七轮,处理 Node/browser 成对覆盖的 fixture loop
|
||
staging 写入点:
|
||
|
||
```text
|
||
INTERP_ERROR_FIXTURES
|
||
INTERP_FILE_FIXTURES
|
||
INTERP_BROWSER_FILE_FIXTURES
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- Node 侧新增 `writeLocalErrorGcodeFixture(...)`;
|
||
- browser 侧新增 `writeLocalErrorGcodeFixture(...)`;
|
||
- `INTERP_ERROR_FIXTURES` 的 file-error loop 两侧均改为 helper 写入;
|
||
- `INTERP_FILE_FIXTURES` / `INTERP_BROWSER_FILE_FIXTURES` 的 file loop 两侧均改为
|
||
`writeLocalGcodeFixture(...)` 写入;
|
||
- helper 显式检查 staged `wasmPath` 与期望路径一致;
|
||
- browser 侧仍不枚举目录;
|
||
- 未修改 G-code 内容、canon expected、error expected 或 interpreter 语义。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
如果通过,提交建议:
|
||
|
||
```text
|
||
Guard fixture loop staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第八轮,优先处理 `namedparam_semantics` /
|
||
`namedparam_ini_semantics` 等 INI-context 单文件 direct `/work/...` 写入点,或
|
||
`ini_tool_table` 固定三文件 staging manifest;继续避开 parameter/tool table runtime
|
||
state tests 和 blocked runtime promotion。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
十三、2026-06-13 继续执行记录:INI context direct fixture staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第八轮,处理 Node/browser 成对覆盖的 INI-context
|
||
direct file 与 fixed manifest staging:
|
||
|
||
```text
|
||
namedparam_semantics.ngc
|
||
namedparam_ini_semantics.ngc
|
||
ini_tool_table.ini
|
||
ini_tool_table.tbl
|
||
ini_tool_table.ngc
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- `namedparam_semantics.ngc` 两侧均改为 `writeLocalGcodeFixture(...)` 写入;
|
||
- `namedparam_ini_semantics.ngc` 两侧均改为 `writeLocalGcodeFixture(...)` 写入;
|
||
- Node 侧新增 `writeIniToolTableFixtureStaging(...)`;
|
||
- browser 侧新增 `writeIniToolTableFixtureStaging(...)`;
|
||
- `ini_tool_table` 三文件 staging 增加 fixed manifest、duplicate-free 和 root/path
|
||
parity guard;
|
||
- browser 侧仍不枚举目录;
|
||
- 未修改 INI 内容、G-code 内容、tool table 内容、canon expected 或 interpreter
|
||
语义。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
如果通过,提交建议:
|
||
|
||
```text
|
||
Guard INI context fixture staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第九轮,优先处理剩余 direct `/work/...` run-step
|
||
代表路径,例如 `minimal_linear_run_steps` 直接使用 `/work/minimal_linear.ngc` 的调用
|
||
点,或继续扫描 `verify_interp_wasm.mjs` / `interp_smoke.html` 中未被 helper 覆盖的
|
||
单文件 staging;继续避开 parameter/tool table runtime state tests 和 blocked
|
||
runtime promotion。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
十四、2026-06-13 继续执行记录:minimal linear run-step staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第九轮,处理 Node/browser 成对覆盖的 run-step
|
||
代表 direct path:
|
||
|
||
```text
|
||
minimal_linear_run_steps
|
||
browser_minimal_linear_run_steps
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- Node 侧将 `interp.runFile("/work/minimal_linear.ngc")` 改为使用
|
||
`writeLocalGcodeFixture(...)` 返回的 guarded path;
|
||
- browser 侧将 `interp.runFile("/work/minimal_linear.ngc")` 改为使用
|
||
`writeLocalGcodeFixture(...)` 返回的 guarded path;
|
||
- 两侧均显式检查 staged `wasmPath` 与期望路径一致;
|
||
- browser 侧仍不枚举目录;
|
||
- 未修改 G-code 内容、run-step expected 或 interpreter 语义。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
如果通过,提交建议:
|
||
|
||
```text
|
||
Guard minimal linear run-step staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第十轮,优先处理 `cam-nisley-bare` direct
|
||
`runFile(...)` 路径,或 `g52/g92-persistence` 这类固定 staging directory;继续避开
|
||
parameter/tool table runtime state tests 和 blocked runtime promotion。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
十五、2026-06-13 继续执行记录:cam-nisley bare direct staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第十轮,处理 Node/browser 成对覆盖的
|
||
`cam-nisley-bare` direct `runFile(...)` 路径:
|
||
|
||
```text
|
||
/work/interp/cam-nisley-bare/cam.ngc
|
||
/work/browser-interp/cam-nisley-bare/cam.ngc
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- Node 侧将 bare `cam.ngc` staged path 提取为 `camNisleyBarePath`;
|
||
- Node 侧使用 `assertInterpRegressionFileStaging(...)` 检查 staged path;
|
||
- browser 侧将 bare `cam.ngc` staged path 提取为 `camNisleyBarePath`;
|
||
- browser 侧使用 `assertInterpRegressionFileStaging(...)` 检查 staged path;
|
||
- 写入和 `runFile(...)` 均使用同一个 guarded path;
|
||
- browser 侧仍不枚举目录;
|
||
- 未修改 upstream `cam.ngc`、expected output 或 interpreter 语义。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
如果通过,提交建议:
|
||
|
||
```text
|
||
Guard cam-nisley bare staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第十一轮,优先处理 `g52/g92-persistence` 固定
|
||
staging directory,增加 fixed manifest/root parity guard;继续避开 parameter/tool
|
||
table runtime state tests 和 blocked runtime promotion。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
十六、2026-06-13 继续执行记录:G92 persistence staging manifest guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第十一轮,处理 Node/browser 成对覆盖的
|
||
`g52/g92-persistence` 固定 staging directory:
|
||
|
||
```text
|
||
test.ngc
|
||
startup.var
|
||
persist.ini
|
||
disabled.ini
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- Node 侧新增 `writeG92PersistenceStaging(...)`;
|
||
- browser 侧新增 `writeG92PersistenceStaging(...)`;
|
||
- 四个 generated fixture 文件增加 fixed manifest、duplicate-free 和 root/path
|
||
parity guard;
|
||
- enabled/disabled 两个 G92 persistence 验证均改为使用 helper 返回的 guarded path;
|
||
- browser 侧仍不枚举目录;
|
||
- 未修改 generated fixture 内容、expected output、parameter semantics 或 interpreter
|
||
语义。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
如果通过,提交建议:
|
||
|
||
```text
|
||
Guard G92 persistence staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第十二轮,优先扫描剩余 generated/direct staging
|
||
点;可选候选包括 user-M helper staging 或 restore-parameter negative fixtures,但继续
|
||
避开 parameter/tool table runtime state semantics 和 blocked runtime promotion。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
十七、2026-06-13 继续执行记录:user-M helper staging manifest guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第十二轮,处理 Node 侧 generated user-M helper
|
||
staging:
|
||
|
||
```text
|
||
writeUserMCodeFixture(...)
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- Node 侧新增 `assertUserMCodeFixtureStaging(...)`;
|
||
- generated user-M fixture 增加 fixed manifest、duplicate-free 和 root/path parity
|
||
guard:
|
||
- `test.ini`
|
||
- `test.ngc`
|
||
- `M110` / `M111`
|
||
- `writeUserMCodeFixture(...)` 写入前先校验 staging root 与 manifest;
|
||
- 未修改 generated INI、G-code、M-code 内容、expected output 或 interpreter 语义;
|
||
- 未提升 `L4-USER-M-PROCESS`,也未改变 blocked runtime promotion 状态。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
wasm-port/tools/verify_vendor_sync.sh
|
||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.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 user-M helper staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第十三轮,优先扫描剩余 generated/direct staging
|
||
点;较安全候选是 restore-parameter negative fixtures 的 path guard,但仍需明确只做
|
||
filesystem staging guard,不改变 parameter runtime semantics。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
十八、2026-06-13 继续执行记录:restore-parameter negative staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第十三轮,处理 Node/browser 成对覆盖的
|
||
restore-parameter negative fixture paths:
|
||
|
||
```text
|
||
missing.var
|
||
out-of-order.var
|
||
missing-required.var
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- Node 侧新增 `generatedParameterPath(...)`;
|
||
- Node 侧新增 `writeGeneratedParameterFixture(...)`;
|
||
- browser 侧新增 `generatedParameterPath(...)`;
|
||
- browser 侧新增 `writeGeneratedParameterFixture(...)`;
|
||
- missing-file、out-of-order、missing-required 三类 restore-parameter path 均增加
|
||
explicit path parity guard;
|
||
- 未修改 generated parameter fixture 内容、expected output 或 parameter runtime
|
||
semantics。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
如果通过,提交建议:
|
||
|
||
```text
|
||
Guard restore-parameter negative staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第十四轮,优先扫描剩余 direct generated staging
|
||
点;可选择普通 restore-parameter direct fixture 或 tool-table direct fixture,但仍需
|
||
只加 filesystem path guard,不改变 parameter/tool table runtime semantics。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
十九、2026-06-13 继续执行记录:restore-parameter direct staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第十四轮,处理 Node/browser 成对覆盖的普通
|
||
restore/save parameter direct fixture path:
|
||
|
||
```text
|
||
rs274ngc.var
|
||
browser-direct.var
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- Node 侧普通 `parameterFilePath` 初始写入改为 `writeGeneratedParameterFixture(...)`;
|
||
- browser 侧 `browserParameterFilePath` 初始写入改为
|
||
`writeGeneratedParameterFixture(...)`;
|
||
- 两侧 direct restore/save parameter path 均复用 explicit path parity guard;
|
||
- 未修改 generated parameter fixture 内容、save/restore expected output、backup
|
||
验证或 parameter runtime semantics。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
如果通过,提交建议:
|
||
|
||
```text
|
||
Guard restore-parameter direct staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第十五轮,优先处理 tool-table direct fixture path
|
||
guard,例如 `tool.tbl` / `random-tool.tbl` 和 browser direct tool-table paths;仍只加
|
||
filesystem path guard,不改变 tool table runtime semantics。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
二十、2026-06-13 继续执行记录:tool-table direct staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第十五轮,处理 Node/browser 成对覆盖的 direct
|
||
tool table fixture path:
|
||
|
||
```text
|
||
tool.tbl
|
||
random-tool.tbl
|
||
browser-direct-tool.tbl
|
||
browser-direct-random-tool.tbl
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- Node 侧新增 `generatedToolTablePath(...)` 与
|
||
`writeGeneratedToolTableFixture(...)`;
|
||
- Node 侧 direct `tool.tbl` 与 `random-tool.tbl` 初始写入改为走显式 path parity
|
||
guard;
|
||
- browser 侧同步新增 direct tool-table fixture path guard helper;
|
||
- browser 侧 `browser-direct-tool.tbl` 与 `browser-direct-random-tool.tbl` 初始写入改为
|
||
走显式 path parity guard;
|
||
- 未修改 tool table fixture 内容、load/save expected output、random tool changer
|
||
配置或 tool table runtime semantics。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
node --check wasm-port/tests/wasm/node/verify_interp_wasm.mjs
|
||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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_sim_configs_inventory_wasm.sh
|
||
wasm-port/tests/host/verify_host_smokes.sh
|
||
```
|
||
|
||
如果通过,提交建议:
|
||
|
||
```text
|
||
Guard tool-table direct staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第十六轮,优先处理 browser OPFS/session tool-table
|
||
path guard,例如 `/work/browser-tool.tbl`、`/work/browser-random-tool.tbl`、
|
||
`/work/browser-custom-tool.tbl`、`/work/browser-explicit-tool.tbl`;仍只加
|
||
filesystem/OPFS path guard,不改变 tool table、INI 或 session runtime semantics。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
二十一、2026-06-13 继续执行记录:browser OPFS tool-table staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第十六轮,处理 browser OPFS/session tool-table
|
||
boundary path:
|
||
|
||
```text
|
||
/work/browser-tool.tbl
|
||
/work/browser-random-tool.tbl
|
||
/work/browser-custom-tool.tbl
|
||
/work/browser-explicit-tool.tbl
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- browser 侧新增 `assertOpfsToolTableStaging(...)`;
|
||
- 默认 machine session 的 load/save tool table 均检查 OPFS path 与 WASM path;
|
||
- random toolchanger session 的 load/save tool table 均检查 OPFS path 与 WASM path;
|
||
- INI `TOOL_TABLE` 命名 session 的 load/save tool table 均检查 OPFS path 与 WASM path;
|
||
- explicit override session 的 load/save tool table 均检查 OPFS path 与 WASM path;
|
||
- 复用 `generatedToolTablePath(...)` 校验 WASM staged path;
|
||
- 未修改 OPFS 存储内容、tool table 内容、INI 解析、random toolchanger 行为或 session
|
||
runtime semantics。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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 tool-table staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第十七轮,优先处理 browser OPFS/session parameter
|
||
path guard,例如 `/work/browser-linuxcnc.var`、`/work/browser-random-linuxcnc.var`、
|
||
`/work/browser-custom.var`、`/work/browser-explicit.var`;仍只加 filesystem/OPFS path
|
||
guard,不改变 parameter、INI 或 session runtime semantics。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
二十二、2026-06-13 继续执行记录:browser OPFS parameter staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第十七轮,处理 browser OPFS/session parameter
|
||
boundary path:
|
||
|
||
```text
|
||
/work/browser-linuxcnc.var
|
||
/work/browser-random-linuxcnc.var
|
||
/work/browser-custom.var
|
||
/work/browser-explicit.var
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- browser 侧新增 `assertOpfsParameterStaging(...)`;
|
||
- 默认 machine session 的 restore/save parameter 均检查 OPFS path 与 WASM path;
|
||
- 默认 save parameter 同步检查 `.bak` OPFS path;
|
||
- random toolchanger session 的 restore parameter 检查 OPFS path 与 WASM path;
|
||
- INI `PARAMETER_FILE` 命名 session 的 restore/save parameter 均检查 OPFS path 与
|
||
WASM path,并检查 `.bak` OPFS path;
|
||
- explicit override session 的 restore/save parameter 均检查 OPFS path 与 WASM path,
|
||
并检查 `.bak` OPFS path;
|
||
- 复用 `generatedParameterPath(...)` 校验 WASM staged path;
|
||
- 未修改 OPFS 存储内容、parameter 内容、INI 解析、backup 写入或 session runtime
|
||
semantics。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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 parameter staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第十八轮,优先处理 browser OPFS/session INI path
|
||
guard,例如 `/work/browser-machine.ini`、`/work/browser-random-machine.ini`、
|
||
`/work/browser-ini-file-session.ini`、`/work/browser-ini-override-session.ini`;仍只加
|
||
filesystem/OPFS path guard,不改变 INI parsing、parameter/tool table 或 session
|
||
runtime semantics。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
二十三、2026-06-13 继续执行记录:browser OPFS INI staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第十八轮,处理 browser OPFS/session INI boundary
|
||
path:
|
||
|
||
```text
|
||
/work/browser-machine.ini
|
||
/work/browser-random-machine.ini
|
||
/work/browser-ini-file-session.ini
|
||
/work/browser-ini-override-session.ini
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- browser 侧新增 `assertOpfsIniStaging(...)`;
|
||
- 默认 machine session 的 INI OPFS path 与 WASM path 增加显式 guard;
|
||
- random toolchanger session 的 INI OPFS path 与 WASM path 增加显式 guard;
|
||
- INI `PARAMETER_FILE`/`TOOL_TABLE` 命名 session 的 INI OPFS path 与 WASM path 增加
|
||
显式 guard;
|
||
- explicit override session 的 INI OPFS path 与 WASM path 增加显式 guard;
|
||
- 未修改 INI 内容、INI parsing、parameter/tool table staging、OPFS 存储内容或
|
||
session runtime semantics。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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 INI staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第十九轮,优先扫描 browser OPFS/session invalid
|
||
INI-path negative cases,例如 `/work/browser-invalid-param-file-session.ini` 与
|
||
`/work/browser-invalid-tool-file-session.ini`;仍只加 filesystem/OPFS path guard,不改变
|
||
INI validation、path-model 或 session runtime semantics。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
二十四、2026-06-13 继续执行记录:browser invalid INI staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第十九轮,处理 browser OPFS/session invalid INI
|
||
negative cases 的 INI boundary path:
|
||
|
||
```text
|
||
/work/browser-invalid-param-file-session.ini
|
||
/work/browser-invalid-tool-file-session.ini
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- invalid `PARAMETER_FILE = ../escape.var` negative case 改为先构造 options;
|
||
- invalid parameter-file negative case 复用 `assertOpfsIniStaging(...)` 检查 INI OPFS
|
||
path 与 WASM path;
|
||
- invalid `TOOL_TABLE = nested/tool.tbl` negative case 改为先构造 options;
|
||
- invalid tool-table negative case 复用 `assertOpfsIniStaging(...)` 检查 INI OPFS path
|
||
与 WASM path;
|
||
- `verifyRejects(...)` 的 expected error pattern 保持不变;
|
||
- 未修改 INI validation、path-model、invalid fixture 内容、OPFS 存储内容或 session
|
||
runtime semantics。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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 invalid INI staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第二十轮,优先扫描 browser OPFS/machine text store
|
||
边界,例如 `saveMachineTextFiles(...)` / `loadMachineTextFiles(...)` 中 machine 文件的
|
||
默认 OPFS path 对账;仍只加 filesystem/OPFS path guard,不改变 OPFS file-service、
|
||
machine-file-store 或 session runtime semantics。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
二十五、2026-06-13 继续执行记录:browser machine text-store staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第二十轮,处理 browser OPFS/machine text store 默认
|
||
OPFS path 对账:
|
||
|
||
```text
|
||
linuxcnc/machines/<machine>/machine.ini
|
||
linuxcnc/machines/<machine>/tool.tbl
|
||
linuxcnc/machines/<machine>/linuxcnc.var
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- browser 侧新增 `assertMachineTextStorePaths(...)`;
|
||
- `browser-interp` 的 `saveMachineTextFiles(...)` 返回 path map 增加默认 OPFS path
|
||
guard;
|
||
- `browser-random-toolchanger` 的 `saveMachineTextFiles(...)` 返回 path map 增加默认
|
||
OPFS path guard;
|
||
- `browser-ini-file-session` 与 `browser-ini-override-session` 的 machine text-store
|
||
path map 增加默认 OPFS path guard;
|
||
- invalid parameter/tool INI negative session 的 machine text-store path map 增加默认
|
||
OPFS path guard;
|
||
- 未修改 OPFS file-service、machine-file-store、path-model、machine file 内容或
|
||
session runtime semantics。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/browser/interp_smoke.html
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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 machine text-store staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第二十一轮,优先扫描 OPFS gcode program storage
|
||
边界,例如 `saveGcodeProgram(...)` / `loadGcodeProgram(...)` 与
|
||
`linuxcnc/gcode/<filename>` path 对账;仍只加 filesystem/OPFS path guard,不改变
|
||
gcode storage、file-service 或 interpreter runtime semantics。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|
||
|
||
二十六、2026-06-13 继续执行记录:OPFS gcode program staging guard
|
||
|
||
1. 本批目标。
|
||
|
||
继续 staged path guard inventory 第二十一轮,处理 OPFS gcode program storage path:
|
||
|
||
```text
|
||
linuxcnc/gcode/fixture.ngc
|
||
linuxcnc/gcode/custom-fixture.ngc
|
||
```
|
||
|
||
2. 已完成改动。
|
||
|
||
- Node OPFS smoke 新增 `assertGcodeProgramStoragePath(...)`;
|
||
- `gcodeProgramPath(...)` 的 fixture 与 custom fixture 路径改为走专用 path guard;
|
||
- `saveGcodeProgram(...)` 的 fixture 与 custom fixture 返回路径改为走专用 path guard;
|
||
- `loadGcodeProgram(...)` 的读取内容验证保持不变;
|
||
- invalid gcode filename rejection 验证保持不变;
|
||
- 未修改 OPFS file-service、machine-file-store、path-model、gcode 内容或 interpreter
|
||
runtime semantics。
|
||
|
||
涉及文件:
|
||
|
||
```text
|
||
wasm-port/tests/opfs/node/verify_file_service.mjs
|
||
```
|
||
|
||
3. 已完成的目标验证。
|
||
|
||
```bash
|
||
git diff --check
|
||
wasm-port/tests/opfs/node/verify_file_service.sh
|
||
```
|
||
|
||
4. 本批剩余建议验证。
|
||
|
||
```bash
|
||
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
|
||
Guard OPFS gcode program staging
|
||
```
|
||
|
||
5. 下一步工作建议。
|
||
|
||
继续 staged path guard inventory 第二十二轮,优先扫描 OPFS snapshot storage path
|
||
边界,例如 `sessionSnapshotPath(...)` / `saveSessionSnapshot(...)` 与
|
||
`linuxcnc/sessions/<session>/snapshot.json` 或 custom snapshot filename 对账;仍只加
|
||
filesystem/OPFS path guard,不改变 snapshot schema、file-service 或 session runtime
|
||
semantics。
|
||
|
||
下一轮第一条命令仍保持:
|
||
|
||
```bash
|
||
git status --short && git log -5 --oneline && tail -n 120 text7.txt && awk '/^[一二三四五六七八九十百]+、/ {print}' text7.txt | sort | uniq -d
|
||
```
|