From 2615e5bc5798060c271a0ad1a510c69ea69e38b0 Mon Sep 17 00:00:00 2001 From: wangdequan Date: Tue, 16 Jun 2026 07:08:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E5=BC=80=20INI=20=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=20session=20readiness=20report=20SDK=20surface?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROJECT_COMPLETION_TRACKER.md | 4 +- text14.txt | 71 +++++++++++++++++++ wasm-port/docs/project-release-handoff.md | 4 +- wasm-port/runtime/sdk/README.md | 4 ++ wasm-port/runtime/sdk/src/index.js | 1 + .../verify_project_release_handoff_docs.mjs | 2 + .../tests/sdk/node/verify_sdk_surface.mjs | 10 +++ 7 files changed, 93 insertions(+), 3 deletions(-) diff --git a/PROJECT_COMPLETION_TRACKER.md b/PROJECT_COMPLETION_TRACKER.md index 3aba484..29c2260 100644 --- a/PROJECT_COMPLETION_TRACKER.md +++ b/PROJECT_COMPLETION_TRACKER.md @@ -9,7 +9,7 @@ turn-by-turn continuation notes and next-batch execution records. ## Current Status - Active continuation file: `text14.txt` -- Latest completed batch: INI panel session readiness workflow report +- Latest completed batch: INI panel session readiness workflow report SDK surface - Latest relevant commit: use `git log -1 --oneline` after each committed batch - Working tree at tracker creation: clean - Required policy: LinuxCNC remains the only CNC semantic source @@ -43,7 +43,7 @@ The project is complete for the current scope when all of the following are true | Native nc_files baseline | Stable | Last recorded Layer 1: `total 107`, `pass 101`, `expected_fail 6`, `unexpected_fail 0`. | | Native sim configs baseline | Stable | Last recorded Layer 2: `total 159`, `pass 151`, `expected_fail 8`, `unexpected_fail 0`. | | OPFS/session persistence | Stable for current scope | Browser smoke passes, SDK re-exports OPFS/session helpers including `readMachineSessionReadiness()`, and `docs/opfs-session-persistence.md` defines the project-level release gate. | -| SDK/API surface | Stable for current scope | SDK re-exports core, OPFS/session readiness/load helpers, sim-config staging, and INI panel shell/workflow overview helpers with a Node surface smoke. | +| SDK/API surface | Stable for current scope | SDK re-exports core, OPFS/session readiness/load helpers, sim-config staging, INI panel shell/workflow overview helpers, and the session readiness workflow report with a Node surface smoke. | | Browser/UI workflow | Stable for current scope | Workflow overview embedding mount DOM closure is complete, and INI panel session workflows plus read-only control/shell handoff expose, render, and report OPFS/session readiness before loading or reading WASM session state. | | Workflow overview embedding | Stable for current scope | Report/display/render, DOM contract/readiness/renderer, mount result/display/render, mount DOM contract/readiness/renderer/wrapper exist. | | Host/runtime boundary proof | Stable blocked state | Host smoke passes; runtime families remain blocked and `docs/host-runtime-boundary-handoff.md` records host readiness, promotion blockers, dispatch, and evidence gates. | diff --git a/text14.txt b/text14.txt index 4c70216..f14ea77 100644 --- a/text14.txt +++ b/text14.txt @@ -1986,3 +1986,74 @@ host_wasm_opfs_browser_smokes=ok 继续以实质能力推进为主。下一批可把 session readiness workflow report 纳入 SDK surface 或 release handoff docs 的 API surface 表,方便外部调用者从 SDK/文档直接发现;仍保持只读,不新增控制按钮, 不解析 G-code,不扩大 LinuxCNC 语义边界。 + +二十五、2026-06-16 继续执行记录:INI panel session readiness workflow report SDK surface + +本轮继续以功能实质性推进为主,把上一批新增的 session readiness workflow report 纳入 SDK/API +surface 和 release handoff 发现路径。外部调用者现在可以从 `runtime/sdk/src/index.js` 稳定导入 +`createIniPanelShellSessionReadinessWorkflowReport()`,并在 SDK README 与 project release handoff 中发现该能力。 + +完成内容: + +- `wasm-port/runtime/sdk/src/index.js` re-export + `createIniPanelShellSessionReadinessWorkflowReport()`; +- `wasm-port/runtime/sdk/README.md` 的 stable imports 示例加入新 helper; +- SDK README 的 INI panel shell handoff exports 记录新 helper 的用途: + - machine-readable session readiness workflow report; + - phase; + - missing reasons; + - status line; + - stable rows; +- `wasm-port/tests/sdk/node/verify_sdk_surface.mjs` 覆盖: + - SDK export shape; + - SDK README drift; + - launch manifest 中 `getShellSessionReadinessWorkflowReport`; + - helper API name; +- `wasm-port/docs/project-release-handoff.md` 点名 SDK 调用者可用该 helper 获取 machine-readable + session readiness phase 与 missing reasons; +- `wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs` 覆盖 release handoff docs drift; +- `PROJECT_COMPLETION_TRACKER.md` 同步 latest completed batch 与 SDK/API surface 状态; +- 未新增控制按钮; +- 未执行 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/sdk/node/verify_sdk_surface.sh +wasm-port/tests/docs/node/verify_project_release_handoff_docs.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 +sdk_surface_node_smoke=ok +project_release_handoff_docs_node_smoke=ok +ui_node_smokes=ok +browser_ini_shell_integration_workflow_smoke=ok +vendor sync up to date +standalone CNC semantics guard complete +interp_wasm_node_smoke=ok +sim_configs_wasm_node_inventory_unexpected_fail=0 +host_wasm_opfs_browser_smokes=ok +``` + +下一步工作计划: + +继续以实质能力推进为主。下一批可为 session readiness workflow report 增加更高层的 release/API +inventory row 或 browser-visible summary row,方便验收页面和外部 shell 快速列出当前稳定 API;仍保持只读, +不新增控制按钮,不解析 G-code,不扩大 LinuxCNC 语义边界。 diff --git a/wasm-port/docs/project-release-handoff.md b/wasm-port/docs/project-release-handoff.md index af55813..0a9a5dc 100644 --- a/wasm-port/docs/project-release-handoff.md +++ b/wasm-port/docs/project-release-handoff.md @@ -29,7 +29,9 @@ continuation records are in `../text14.txt`. - External shells should use the read-only helpers documented in `docs/panel-entry.md`, including workflow overview embedding mount DOM contract/readiness/renderer/wrapper helpers. -- SDK callers should import stable helpers from `runtime/sdk/src/index.js`. +- SDK callers should import stable helpers from `runtime/sdk/src/index.js`, + including `createIniPanelShellSessionReadinessWorkflowReport()` when they + need machine-readable session readiness phase and missing reasons. - OPFS/session persistence is host-side storage glue. Parameter and tool-table behavior still comes from the LinuxCNC-backed interpreter SDK calls. - Sim-config inventory promotion remains evidence-driven and must keep diff --git a/wasm-port/runtime/sdk/README.md b/wasm-port/runtime/sdk/README.md index e39b58b..1c78bae 100644 --- a/wasm-port/runtime/sdk/README.md +++ b/wasm-port/runtime/sdk/README.md @@ -25,6 +25,7 @@ Use `src/index.js` for stable imports: import { analyzeIniRuntimeBoundaries, createIniPanelLaunchApiManifest, + createIniPanelShellSessionReadinessWorkflowReport, createIniPanelShellViewModel, createIniPanelShellWorkflowOverviewEmbeddingMountDomContract, createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness, @@ -191,6 +192,9 @@ for external browser shells: `isSupportedIniPanelLaunchApiManifest()` for launch API negotiation. - `createIniPanelShellViewModel()` for a complete read-only shell integration bundle. +- `createIniPanelShellSessionReadinessWorkflowReport()` for a machine-readable + session readiness workflow report with phase, missing reasons, status line, + and stable rows. - `createIniPanelShellWorkflowOverviewEmbeddingMountDomContract()` and `createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness()` for workflow overview embedding mount DOM checks. diff --git a/wasm-port/runtime/sdk/src/index.js b/wasm-port/runtime/sdk/src/index.js index 3bb1d61..440b3d7 100644 --- a/wasm-port/runtime/sdk/src/index.js +++ b/wasm-port/runtime/sdk/src/index.js @@ -68,6 +68,7 @@ export { createIniPanelShellSessionHandoffPackageReport, createIniPanelShellSessionHandoffPackageRenderState, createIniPanelShellSessionHandoffPackageSchema, + createIniPanelShellSessionReadinessWorkflowReport, createIniPanelShellSessionHandoffSummary, createIniPanelShellSessionHandoffSummarySchema, createIniPanelShellViewModel, diff --git a/wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs b/wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs index 9405bd3..285547a 100644 --- a/wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs +++ b/wasm-port/tests/docs/node/verify_project_release_handoff_docs.mjs @@ -31,6 +31,7 @@ for (const phrase of [ "docs/drift-report.md", "PROJECT_COMPLETION_TRACKER.md", "runtime/sdk/src/index.js", + "createIniPanelShellSessionReadinessWorkflowReport()", "workflow overview embedding mount DOM", "verify_no_standalone_cnc_semantics.sh", "verify_host_smokes.sh", @@ -80,6 +81,7 @@ for (const phrase of [ for (const phrase of [ "OPFS/session persistence exports", "INI panel shell handoff exports", + "createIniPanelShellSessionReadinessWorkflowReport()", ]) { assert.match(sdkReadmeText, literalRegExp(phrase)); } diff --git a/wasm-port/tests/sdk/node/verify_sdk_surface.mjs b/wasm-port/tests/sdk/node/verify_sdk_surface.mjs index cbf073f..85cea2a 100644 --- a/wasm-port/tests/sdk/node/verify_sdk_surface.mjs +++ b/wasm-port/tests/sdk/node/verify_sdk_surface.mjs @@ -6,6 +6,7 @@ import { fileURLToPath } from "node:url"; import { analyzeIniRuntimeBoundaries, createIniPanelLaunchApiManifest, + createIniPanelShellSessionReadinessWorkflowReport, createIniPanelShellViewModel, createIniPanelShellWorkflowOverviewEmbeddingMountDomContract, createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness, @@ -81,6 +82,7 @@ const requiredExports = [ ["createIniPanelLaunchApiManifest", createIniPanelLaunchApiManifest], ["isSupportedIniPanelLaunchApiManifest", isSupportedIniPanelLaunchApiManifest], ["createIniPanelShellViewModel", createIniPanelShellViewModel], + ["createIniPanelShellSessionReadinessWorkflowReport", createIniPanelShellSessionReadinessWorkflowReport], [ "createIniPanelShellWorkflowOverviewEmbeddingMountDomContract", createIniPanelShellWorkflowOverviewEmbeddingMountDomContract, @@ -124,6 +126,14 @@ assert.equal( shellViewModel.launchApiManifest.methods.includes("mountWorkflowOverviewEmbeddingMountState"), true, ); +assert.equal( + shellViewModel.launchApiManifest.methods.includes("getShellSessionReadinessWorkflowReport"), + true, +); +assert.equal( + createIniPanelShellSessionReadinessWorkflowReport().apiName, + "ini-panel-shell-session-readiness-workflow-report", +); assert.equal( shellViewModel.mountWorkflowOverviewEmbeddingMountState, mountIniPanelShellWorkflowOverviewEmbeddingMountState,