接入 INI panel session readiness workflow

This commit is contained in:
2026-06-16 06:36:45 +08:00
parent 8e37c69bc4
commit 03db34485e
8 changed files with 363 additions and 4 deletions

View File

@@ -1704,3 +1704,75 @@ opfs_session_docs_node_smoke=ok
继续以实质能力推进为主。下一批建议把 `readMachineSessionReadiness()` 接入 INI panel/session
workflow 或 external shell handoff view-model让 UI 在加载 session 前显示结构化 ready/blocked
原因;仍保持只读,不新增控制按钮,不解析 G-code不扩大 LinuxCNC 语义边界。
二十一、2026-06-16 继续执行记录INI panel session readiness workflow
本轮继续以功能实质性推进为主,把上一批新增的 `readMachineSessionReadiness()` 接入 INI panel/session
workflow 层。现在 UI/session workflow 和外部 shell 入口可以在加载 machine session 到 WASM 前获取
结构化 ready/blocked 原因。
完成内容:
- `wasm-port/runtime/ui/ini-panel/session-workflow.js` 新增:
- `createMachineSessionReadinessFieldState()`
- `machineSessionReadinessLogLines()`
- `readMachineSessionReadinessWorkflow()`
- `restoreMachineSessionSnapshotWorkflow()` 支持可选 `readReadiness`
- restore snapshot workflow 会把 readiness report 合并进:
- `readiness`
- `fields.sessionReadinessPhase`
- `fields.sessionReadinessReady`
- `fields.sessionReadinessMissing`
- `logLines`
- restore+load workflow 会在 load session 前保留 readiness log 与字段;
- `wasm-port/runtime/ui/ini-panel/app.js` 接入 `readMachineSessionReadiness()`
- restore session snapshot 时读取 readiness
- load session 时先读取 readiness 再加载 WASM session
- restore+load session 时读取 readiness
- panel state 中保存 `sessionReadiness`
- `wasm-port/runtime/ui/ini-panel/ui-shell.js` re-export session readiness workflow helpers
- `wasm-port/docs/panel-entry.md` 记录 external shell 可用的 session readiness workflow helper
- `wasm-port/tests/ui/node/verify_ini_panel_session_workflow.mjs` 覆盖 ready/blocked readiness、
restore readiness、restore+load readiness
- `wasm-port/tests/ui/node/verify_ini_panel_entry_docs.mjs` 覆盖 ui-shell export 与 docs drift
- `PROJECT_COMPLETION_TRACKER.md` 同步 latest completed batch 与 Browser/UI workflow 状态;
- 未新增控制按钮;
- 未执行 action-plan
- 未解析 G-code
- 未解释 canonical events
- 未新增 JS CNC 语义;
- 未运行 opt-in runtime probes
- 未 promotion blocked runtime family
- 未改变 LinuxCNC interpreter、tool、parameter、planner、kinematics、remap 或 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_ini_panel_entry_docs.sh
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.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
```
关键输出:
```text
ini_panel_session_workflow_node_smoke=ok
ini_panel_entry_docs_node_smoke=ok
ini_panel_ui_shell_node_smoke=ok
ui_node_smokes=ok
browser_ini_opfs_smoke=ok
browser_ini_control_page_smoke=ok
browser_ini_launch_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
```
下一步工作计划:
继续做实质能力推进。下一批建议把 session readiness report 纳入 read-only control page status 或
shell handoff package/display view-model让外部 shell 不进入 editor 页面也能读取 session
ready/blocked 原因;仍保持只读,不新增控制按钮,不解析 G-code不扩大 LinuxCNC 语义边界。