diff --git a/text8.txt b/text8.txt index 8312656..196fd11 100644 --- a/text8.txt +++ b/text8.txt @@ -515,3 +515,52 @@ host_wasm_opfs_browser_smokes=ok `interp_smoke.html` 中 OPFS custom session helpers 周边是否还有硬编码 `machine.ini`、`linuxcnc.var`、`tool.tbl` default path literal 可安全接入既有 path helper;只改测试胶水,不改变 path model 或 runtime bridge。 + +十三、2026-06-14 继续执行记录:browser OPFS default machine path helper guard + +本轮按上一条下一步建议继续扫描 OPFS custom/default session helper 周边的 default +machine file path literal,范围仍只触及 `wasm-port/tests/browser/interp_smoke.html` +的 browser/OPFS test glue。 + +完成内容: + +- 在 `assertMachineTextStorePaths(...)` 中复用 `opfsMachineFilePath(...)` 生成默认 + `machine.ini`、`tool.tbl`、`linuxcnc.var` expected OPFS paths; +- 在 `assertOpfsSessionStaging(...)` 中复用同一 helper 生成默认 INI、parameter、 + tool-table OPFS paths; +- custom session override 仍通过 `expectedPaths.opfs` 显式覆盖,路径模型行为未改; +- 未改变 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 +``` + +关键输出: + +```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/OPFS boundary guard。优先扫描 OPFS default filename +`machine.ini`、`linuxcnc.var`、`tool.tbl` 是否值得抽成局部常量,只限 +`interp_smoke.html` test glue;如果收益不明显,转向其它 browser staging path +literal guard。 diff --git a/wasm-port/tests/browser/interp_smoke.html b/wasm-port/tests/browser/interp_smoke.html index 677b6fd..f9f8241 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -4480,9 +4480,9 @@ function assertMachineTextStorePaths(label, paths, machineId) { const expectedPaths = { - ini: `linuxcnc/machines/${machineId}/machine.ini`, - toolTable: `linuxcnc/machines/${machineId}/tool.tbl`, - parameters: `linuxcnc/machines/${machineId}/linuxcnc.var`, + ini: opfsMachineFilePath(machineId, "machine.ini"), + toolTable: opfsMachineFilePath(machineId, "tool.tbl"), + parameters: opfsMachineFilePath(machineId, "linuxcnc.var"), }; for (const [name, expectedPath] of Object.entries(expectedPaths)) { if (paths[name] !== expectedPath) { @@ -4591,9 +4591,9 @@ throw new Error(`${label}: unexpected machine id ${session.machineId}`); } const expectedOpfsPaths = { - ini: `linuxcnc/machines/${machineId}/machine.ini`, - parameters: `linuxcnc/machines/${machineId}/linuxcnc.var`, - toolTable: `linuxcnc/machines/${machineId}/tool.tbl`, + ini: opfsMachineFilePath(machineId, "machine.ini"), + parameters: opfsMachineFilePath(machineId, "linuxcnc.var"), + toolTable: opfsMachineFilePath(machineId, "tool.tbl"), ...(expectedPaths.opfs ?? {}), }; assertOpfsIniStaging(