推进 INI 面板运行摘要结果计数

This commit is contained in:
2026-06-14 17:35:14 +08:00
parent f96329d67f
commit ccd6b67e35
3 changed files with 116 additions and 7 deletions

View File

@@ -1095,3 +1095,66 @@ host_wasm_opfs_browser_smokes=ok
`runStatus` 和 `iniWasmPath`,方便 UI/API 判断运行是否真的产生 LinuxCNC canonical output
仍只统计 LinuxCNC-owned runtime 输出,不解析或改写 G-code、tool、parameter、planner 等
CNC 语义。
十五、2026-06-14 继续执行记录INI panel run summary result counts
本轮继续沿 OPFS/session/UI boundary 推进,把 `Run G-code` 的机器可读 summary 扩展为
轻量 runtime result 摘要,方便 UI/API 判断一次运行是否确实产生 LinuxCNC canonical output。
完成内容:
- 在 `wasm-port/runtime/ui/ini-panel/app.js` 新增 `countCanonicalEvents(resultText)`
- `window.linuxCncIniPanelLastRunSummary` 现在额外包含:
- `runStatus`
- `iniWasmPath`
- `canonicalEventCount`
- `motionSnapshotCount`
- `Run G-code` 成功路径先复用 LinuxCNC interpreter WASM 输出生成:
- trimmed result
- canonical event count
- motion snapshots
- `playRunMotion(...)` 支持接收已解析的 motion snapshots避免重复解析同一份结果
- fallback run 与 snapshot run 的 browser smoke 均验证:
- `runStatus: "ok"`
- `iniWasmPath: "/work/session-machine.ini"`
- `canonicalEventCount: 2`
- `motionSnapshotCount: 2`
- 未改变 OPFS path model、snapshot envelope、G-code 文本、interpreter run API、
canonical-event 文本输出、motion playback 语义或 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 推进。优先把 `linuxCncIniPanelLastRunSummary` 的生成
收敛为一个可导出的纯 helper例如 `createRunSummary(program, runtime, snapshot)`
并补 Node/browser 侧轻量测试,方便后续 SDK/API 或其他 UI panel 复用;保持 helper 只聚合
host/runtime 边界数据,不解析 G-code、tool、parameter、planner 等 CNC 语义。