# LinuxCNC OPFS source map This map records the source basis for browser-side LinuxCNC parameter-file persistence. It is a policy and bridge map only; it must not add independent filesystem behavior or expand the temporary smoke parser. ## LinuxCNC Source Basis - `src/emc/rs274ngc/interp_internal.hh` defines `RS274NGC_PARAMETER_FILE_NAME_DEFAULT` as `rs274ngc.var`. - `src/emc/rs274ngc/interp_internal.hh` defines `RS274NGC_PARAMETER_FILE_BACKUP_SUFFIX` as `.bak`. - `src/emc/rs274ngc/rs274ngc_pre.cc` implements `Interp::restore_parameters()` for parameter-file reads. - `src/emc/rs274ngc/rs274ngc_pre.cc` implements `Interp::save_parameters()` for `filename + ".new"`, backup, and replacement writes. ## Browser Bridge Boundary - `web/src/wasm-core.js` must keep LinuxCNC parameter persistence routed through an OPFS workspace. - Browser contexts with OPFS support must not disable OPFS. - 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. - `web/src/app.js` must parse browser programs through `parseFileWithParameterFile()` so the program file and LinuxCNC parameter state both live under OPFS. ## Checks Run: ```bash ./check-linuxcnc-opfs-source-map.sh ./test-native.sh ./test-linuxcnc-source-link.sh ``` `check-linuxcnc-opfs-source-map.sh` keeps this document, the LinuxCNC source anchors, and the browser bridge guardrails synchronized.