推进 INI 面板运行摘要状态

This commit is contained in:
2026-06-14 17:31:33 +08:00
parent 6242b415ff
commit f96329d67f
4 changed files with 199 additions and 0 deletions

View File

@@ -1028,3 +1028,70 @@ host_wasm_opfs_browser_smokes=ok
`programSource`、`snapshotLabel`、`workflow`、`programOpfsPath`、`programWasmPath`
供后续 SDK/API 或 UI panel 读取;先只做 UI/测试边界,不改变 interpreter、OPFS bridge
或 LinuxCNC-owned runtime semantics。
十四、2026-06-14 继续执行记录INI panel run summary state
本轮继续沿 OPFS/session/UI boundary 推进,把最近一次 `Run G-code` 的 session context
同步到可见 UI 状态字段和机器可读 run summary避免后续 UI/API 从日志文本反解析。
完成内容:
- 在 `wasm-port/runtime/ui/ini-panel/index.html` 增加最近一次 run 的可见状态字段:
- `Run Source`
- `Run Snapshot`
- `Run Workflow`
- `Run OPFS Path`
- `Run WASM Path`
- 在 `wasm-port/runtime/ui/ini-panel/app.js` 新增:
- `clearLastRunSummary()`
- `setLastRunSummary(program, snapshot)`
- 成功运行 G-code 后UI 写入 `window.linuxCncIniPanelLastRunSummary`,字段包括:
- `programSource`
- `snapshotLabel`
- `workflow`
- `programOpfsPath`
- `programWasmPath`
- fallback run 的 summary 明确为 `programSource: "default"`snapshot/workflow 为 `null`
- snapshot run 的 summary 明确为 `programSource: "snapshot"`,并包含
`ui-machine-session/ui-machine-session.json` 与 `save-session-snapshot`
- browser INI panel smoke 同时验证可见字段与 `window.linuxCncIniPanelLastRunSummary`
- 未改变日志格式以外的 runtime 行为、snapshot envelope、OPFS path model、G-code 文本、
interpreter run API、canonical-event 输出或 LinuxCNC-owned runtime semantics。
验证已通过:
```bash
git diff --check
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
wasm-port/tests/opfs/node/verify_file_service.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
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_ini_opfs_smoke=ok
opfs_file_service_node_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
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续沿 OPFS/session/UI boundary 推进。优先把 `Run G-code` 的机器可读 summary 扩展为
包含轻量 runtime result 摘要,例如 `canonicalEventCount`、`motionSnapshotCount`、
`runStatus` 和 `iniWasmPath`,方便 UI/API 判断运行是否真的产生 LinuxCNC canonical output
仍只统计 LinuxCNC-owned runtime 输出,不解析或改写 G-code、tool、parameter、planner 等
CNC 语义。