推进 INI 面板 session snapshot workflow helper

This commit is contained in:
2026-06-14 21:21:17 +08:00
parent 48a0f61b4a
commit 4e4a9c667f
7 changed files with 356 additions and 71 deletions

View File

@@ -1540,52 +1540,6 @@ browser_interp_smoke=ok
抽取为纯 helper 并接入 `verify_ui_node_smokes.sh`;保持 helper 只描述 host/runtime 边界,
不扩展 CNC 语义。
二十七、2026-06-14 继续执行记录browser explicit session readback path helper
本轮继续沿 OPFS/session/UI boundary 推进,把 browser interpreter smoke 中 ini-named 和
explicit session 的 saved parameter / backup / tool-table readback path 统一成一个小 helper
只收拢已有 boundary 返回值的命名,不改变 readback 行为。
完成内容:
- 在 `wasm-port/tests/browser/interp_smoke.html` 新增
`opfsSessionSavedReadbackPaths(session, savedParameters)`
- helper 只返回:
- session.parameters.opfsPath
- savedParameters.backupOpfsPath
- session.toolTable.opfsPath
- `opfs_saved_ini_named_parameter_text`、
`opfs_saved_ini_named_parameter_backup_text`、
`opfs_saved_ini_named_tool_table_text`、
`opfs_saved_explicit_parameter_text`、
`opfs_saved_explicit_parameter_backup_text`、
`opfs_saved_explicit_tool_table_text`
改为复用该 helper
- 未改变参数值、tool-table 值、INI 内容、OPFS/WASM path 字符串、file-service、
path-model、SDK planner、interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime
semantics。
验证已通过:
```bash
git diff --check
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
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续沿 browser/OPFS test glue 推进。优先查看 `verifyOpfsReadback(...)` 周围是否还有
“路径 + 期望行”成组重复,或者 `saveMachineTextFiles(...)` 相关的 machine text store path
断言是否还能再收一层小 helper保持只做测试胶水和路径命名不扩展 CNC 语义。
二十二、2026-06-14 继续执行记录INI panel session load summary helper
本轮继续沿 OPFS/session/UI boundary 推进,把 machine session load 的 OPFS/WASM 映射
@@ -1902,3 +1856,117 @@ host_wasm_opfs_browser_smokes=ok
`loadedIniOverrideSession.toolTable.opfsPath`。只处理 browser/OPFS test glue不改变
参数值、tool-table 值、INI 内容、OPFS/WASM path 字符串、file-service、path-model、SDK
planner、interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
二十七、2026-06-14 继续执行记录browser explicit session readback path helper
本轮继续沿 OPFS/session/UI boundary 推进,把 browser interpreter smoke 中 ini-named 和
explicit session 的 saved parameter / backup / tool-table readback path 统一成一个小 helper
只收拢已有 boundary 返回值的命名,不改变 readback 行为。
完成内容:
- 在 `wasm-port/tests/browser/interp_smoke.html` 新增
`opfsSessionSavedReadbackPaths(session, savedParameters)`
- helper 只返回:
- session.parameters.opfsPath
- savedParameters.backupOpfsPath
- session.toolTable.opfsPath
- `opfs_saved_ini_named_parameter_text`、
`opfs_saved_ini_named_parameter_backup_text`、
`opfs_saved_ini_named_tool_table_text`、
`opfs_saved_explicit_parameter_text`、
`opfs_saved_explicit_parameter_backup_text`、
`opfs_saved_explicit_tool_table_text`
改为复用该 helper
- 未改变参数值、tool-table 值、INI 内容、OPFS/WASM path 字符串、file-service、
path-model、SDK planner、interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime
semantics。
验证已通过:
```bash
git diff --check
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
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续沿 browser/OPFS test glue 推进。优先查看 `verifyOpfsReadback(...)` 周围是否还有
“路径 + 期望行”成组重复,或者 `saveMachineTextFiles(...)` 相关的 machine text store path
断言是否还能再收一层小 helper保持只做测试胶水和路径命名不扩展 CNC 语义。
二十八、2026-06-14 继续执行记录INI panel session snapshot workflow helper
本轮按“加快实质性推进铁律”转向可复用 UI/session persistence 能力,把 INI panel 的
save-session-snapshot 按钮流程抽成一个可调用 workflow helper而不是继续做局部路径
常量化。
完成内容:
- 新增 `wasm-port/runtime/ui/ini-panel/session-workflow.js`
- 导出:
- `saveMachineSessionSnapshotWorkflow(input)`
- `createSessionSnapshotFieldState(summary)`
- `sessionSnapshotSaveLogLines(summary)`
- workflow helper 执行完整 host-boundary 保存链路:
- 写入当前 INI/tool/parameter machine text files
- 写入默认 G-code program
- 保存 machine session snapshot
- 返回 snapshot summary、UI field state 和 log lines
- `wasm-port/runtime/ui/ini-panel/app.js` 的 `Save Session Snapshot` 按钮改为调用该
workflow helper按钮处理器只负责 field/log 渲染;
- 新增 `wasm-port/tests/ui/node/verify_ini_panel_session_workflow.mjs` 和 shell wrapper
- `wasm-port/tests/ui/node/verify_ui_node_smokes.sh` 纳入 session workflow smoke
- `wasm-port/docs/ui-session-summary-helpers.md` 增加 session workflow API、返回结构和
验证入口;
- 未改变 OPFS bridge、snapshot-store、machine-file-store、interpreter run API、G-code 文本、
tool-table 文本、parameter 文本或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
wasm-port/tests/ui/node/verify_ini_panel_session_workflow.sh
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
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
ini_panel_session_workflow_node_smoke=ok
ini_panel_run_summary_node_smoke=ok
ini_panel_session_summary_node_smoke=ok
ini_panel_machine_file_summary_node_smoke=ok
ini_panel_state_summary_node_smoke=ok
ui_node_smokes=ok
browser_ini_opfs_smoke=ok
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
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续按“实质性能力优先”推进,不再回到零散 path guard。优先把
`Restore Session Snapshot` 与 `Restore And Load Session` 也抽成 session workflow helper
让 restore、load、field state、summary/log lines 走同一套可调用 API完成后浏览器 UI
仍应通过真实 OPFS/session persistence workflow 验证,且不改变 LinuxCNC-owned CNC 语义。