推进 INI 面板 machine session state snapshot helper

This commit is contained in:
2026-06-14 21:48:43 +08:00
parent 75818c1379
commit 7d57bce5de
6 changed files with 410 additions and 3 deletions

View File

@@ -451,3 +451,75 @@ host_wasm_opfs_browser_smokes=ok
更完整的 machine session state snapshot helper供上层 UI/API 直接消费当前 machine、
session、loaded WASM mapping、selected G-code、last run summary、panel badges 和 error
state该 helper 只聚合已有 host/runtime boundary facts不解析 G-code 或扩展 CNC 语义。
三、2026-06-14 继续执行记录INI panel machine session state snapshot helper
本轮继续按 `text11.txt` 第一原则推进实质性 UI/API 能力,把 save/restore/load/run workflow
的结果汇总成一个 machine session state snapshot供上层 UI/API 直接读取,而不是继续
依赖分散的 DOM 字段、日志文本和临时全局值。
完成内容:
- 扩展 `wasm-port/runtime/ui/ini-panel/panel-state-summary.js`
- 新增导出 `createMachineSessionStateSnapshot(input)`
- state snapshot 汇总:
- panel badges
- machine
- machineFiles
- sessionSnapshot
- sessionLoad
- selectedProgram
- run summary
- fields
- lastAction
- error
- fiveaxisRemap
- `wasm-port/runtime/ui/ini-panel/app.js` 在 save/restore/load/run/failure/boot 路径后更新
`window.linuxCncIniPanelMachineSessionState`
- browser INI panel smoke 现在直接校验该 state snapshot 的关键字段;
- `wasm-port/tests/ui/node/verify_ini_panel_state_summary.mjs` 覆盖新 state snapshot 形状;
- `wasm-port/docs/ui-panel-state-summary.md` 更新 state snapshot API、window 暴露和边界说明;
- 未改变 OPFS bridge、snapshot-store、machine-file-store、LinuxCNC interpreter、G-code 文本、
canonical-event 语义、tool、parameter、planner 或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
wasm-port/tests/ui/node/verify_ini_panel_state_summary.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_state_summary_node_smoke=ok
ini_panel_run_summary_node_smoke=ok
ini_panel_run_workflow_node_smoke=ok
ini_panel_session_summary_node_smoke=ok
ini_panel_session_workflow_node_smoke=ok
ini_panel_machine_file_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
```
下一步建议:
继续按“实质性能力优先”推进。下一批优先把 `window.linuxCncIniPanelMachineSessionState`
整理成更明确的 API/文档使用方式,或者在 `run-gcode`/restore/load/save 之外再补一层
更高阶的 UI consumer helper用于读取状态并生成上层展示/导出结果;只围绕已有
host/runtime boundary facts 组合,不回到 path guard。