参考所有分组,完成尽量多的内容:同步 OPFS 与 smoke 映射

结论:未扩展 smoke 功能行为,仅收紧 OPFS workspace、directory、policy 浏览器烟测和 source-map 守卫。

LinuxCNC 来源依据:src/emc/rs274ngc/rs274ngc_pre.cc 的 restore_parameters/save_parameters/read_text 参数文件与文件读取语义,以及 interp_internal.hh 的 rs274ngc.var/.bak 常量边界。

检查通过:./check-linuxcnc-opfs-source-map.sh;./check-linuxcnc-wasm-smoke-source-map.sh;./check-linuxcnc-workstreams-source-map.sh;./test-native.sh;./test-linuxcnc-source-link.sh。
This commit is contained in:
cnc
2026-06-05 06:06:23 +08:00
parent ae7de73a7c
commit 7f45abe93c
5 changed files with 70 additions and 2 deletions

View File

@@ -26,7 +26,10 @@ persistence. It is a policy and bridge map only; it must not add independent fil
| `web/src/app.js` | Persists browser programs at `programs/current.ngc` and LinuxCNC parameters at `parameters/rs274ngc.var`. |
| `web/test-browser-wasm-smoke-opfs-basic-sections.js` | Verifies OPFS program file reads through LinuxCNC `read_text()` and rejects unsafe paths. |
| `web/test-browser-wasm-smoke-opfs-parameter-sections.js` | Verifies OPFS parameter restore, save, `.new`, `.bak`, failure, and stale-state semantics. |
| `web/test-browser-wasm-smoke-opfs-workspace-sections.js` | Aggregates OPFS basic, parameter, mirror, and directory checks under browser OPFS availability. |
| `web/test-browser-wasm-smoke-opfs-mirror-sections.js` | Verifies OPFS/WASM mirror persistence used by source-backed file parsing and parameter movement. |
| `web/test-browser-wasm-smoke-opfs-directory-sections.js` | Verifies OPFS directory persistence and WASM mirror refresh without polluting mirrors during metadata queries. |
| `web/test-browser-wasm-smoke-opfs-policy-sections.js` | Verifies OPFS workspace and mount policy, including the browser rule that OPFS cannot be disabled. |
| `web/test-browser-wasm-smoke-app-sections.js` | Verifies app-level OPFS program, parameter, backup, and reload behavior. |
## Browser Bridge Boundary
@@ -34,6 +37,9 @@ persistence. It is a policy and bridge map only; it must not add independent fil
- `web/src/wasm-core.js` must keep LinuxCNC parameter persistence routed
through an OPFS workspace.
- Browser contexts with OPFS support must not disable OPFS.
- OPFS workspace paths must remain relative paths inside the CNC workspace, and
OPFS mount points must remain absolute paths inside the Emscripten
filesystem.
- Browser app and wasm bridge code must not use Local Storage, IndexedDB,
File Picker, Directory Picker, WebKit filesystem, or FileReader persistence
paths for CNC programs, LinuxCNC parameter files, or mirrored workspace files.