From 24a8f92fb07db6f2231feef11d22aa4ac7e07514 Mon Sep 17 00:00:00 2001 From: wangdequan Date: Sat, 13 Jun 2026 15:48:50 +0800 Subject: [PATCH] Guard user-M helper staging --- text7.txt | 64 +++++++++++++++++++ .../tests/wasm/node/verify_interp_wasm.mjs | 15 +++++ 2 files changed, 79 insertions(+) diff --git a/text7.txt b/text7.txt index 83d94e3..7599f9e 100644 --- a/text7.txt +++ b/text7.txt @@ -891,3 +891,67 @@ Guard G92 persistence staging ```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 +``` diff --git a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs index cffb85f..94ee283 100644 --- a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs +++ b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs @@ -588,8 +588,23 @@ function assertG10RegressionFilesStaging(name, files, wasmDir) { } } +function assertUserMCodeFixtureStaging(name, code, wasmDir) { + const expectedWasmDir = `/work/user-m/${name}`; + const files = ["test.ini", "test.ngc", code]; + assert.equal(wasmDir, expectedWasmDir, `user-m ${name} staging root drift`); + assert.equal(new Set(files).size, files.length, `user-m ${name} staging manifest duplicate`); + for (const file of files) { + assert.equal( + `${wasmDir}/${file}`, + `${expectedWasmDir}/${file}`, + `user-m ${name}/${file} staging path drift`, + ); + } +} + function writeUserMCodeFixture(name, code) { const wasmDir = `/work/user-m/${name}`; + assertUserMCodeFixtureStaging(name, code, wasmDir); const iniPath = `${wasmDir}/test.ini`; const programPath = `${wasmDir}/test.ngc`; const mcodePath = `${wasmDir}/${code}`;