公开 INI 面板 session readiness report SDK surface

This commit is contained in:
2026-06-16 07:08:44 +08:00
parent ce3d08ef61
commit 2615e5bc57
7 changed files with 93 additions and 3 deletions

View File

@@ -9,7 +9,7 @@ turn-by-turn continuation notes and next-batch execution records.
## Current Status ## Current Status
- Active continuation file: `text14.txt` - 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 - Latest relevant commit: use `git log -1 --oneline` after each committed batch
- Working tree at tracker creation: clean - Working tree at tracker creation: clean
- Required policy: LinuxCNC remains the only CNC semantic source - 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 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`. | | 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. | | 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. | | 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. | | 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. | | 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. |

View File

@@ -1986,3 +1986,74 @@ host_wasm_opfs_browser_smokes=ok
继续以实质能力推进为主。下一批可把 session readiness workflow report 纳入 SDK surface 或 release 继续以实质能力推进为主。下一批可把 session readiness workflow report 纳入 SDK surface 或 release
handoff docs 的 API surface 表,方便外部调用者从 SDK/文档直接发现;仍保持只读,不新增控制按钮, handoff docs 的 API surface 表,方便外部调用者从 SDK/文档直接发现;仍保持只读,不新增控制按钮,
不解析 G-code不扩大 LinuxCNC 语义边界。 不解析 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 语义边界。

View File

@@ -29,7 +29,9 @@ continuation records are in `../text14.txt`.
- External shells should use the read-only helpers documented in - External shells should use the read-only helpers documented in
`docs/panel-entry.md`, including workflow overview embedding mount DOM `docs/panel-entry.md`, including workflow overview embedding mount DOM
contract/readiness/renderer/wrapper helpers. 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 - OPFS/session persistence is host-side storage glue. Parameter and tool-table
behavior still comes from the LinuxCNC-backed interpreter SDK calls. behavior still comes from the LinuxCNC-backed interpreter SDK calls.
- Sim-config inventory promotion remains evidence-driven and must keep - Sim-config inventory promotion remains evidence-driven and must keep

View File

@@ -25,6 +25,7 @@ Use `src/index.js` for stable imports:
import { import {
analyzeIniRuntimeBoundaries, analyzeIniRuntimeBoundaries,
createIniPanelLaunchApiManifest, createIniPanelLaunchApiManifest,
createIniPanelShellSessionReadinessWorkflowReport,
createIniPanelShellViewModel, createIniPanelShellViewModel,
createIniPanelShellWorkflowOverviewEmbeddingMountDomContract, createIniPanelShellWorkflowOverviewEmbeddingMountDomContract,
createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness, createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness,
@@ -191,6 +192,9 @@ for external browser shells:
`isSupportedIniPanelLaunchApiManifest()` for launch API negotiation. `isSupportedIniPanelLaunchApiManifest()` for launch API negotiation.
- `createIniPanelShellViewModel()` for a complete read-only shell integration - `createIniPanelShellViewModel()` for a complete read-only shell integration
bundle. bundle.
- `createIniPanelShellSessionReadinessWorkflowReport()` for a machine-readable
session readiness workflow report with phase, missing reasons, status line,
and stable rows.
- `createIniPanelShellWorkflowOverviewEmbeddingMountDomContract()` and - `createIniPanelShellWorkflowOverviewEmbeddingMountDomContract()` and
`createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness()` for `createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness()` for
workflow overview embedding mount DOM checks. workflow overview embedding mount DOM checks.

View File

@@ -68,6 +68,7 @@ export {
createIniPanelShellSessionHandoffPackageReport, createIniPanelShellSessionHandoffPackageReport,
createIniPanelShellSessionHandoffPackageRenderState, createIniPanelShellSessionHandoffPackageRenderState,
createIniPanelShellSessionHandoffPackageSchema, createIniPanelShellSessionHandoffPackageSchema,
createIniPanelShellSessionReadinessWorkflowReport,
createIniPanelShellSessionHandoffSummary, createIniPanelShellSessionHandoffSummary,
createIniPanelShellSessionHandoffSummarySchema, createIniPanelShellSessionHandoffSummarySchema,
createIniPanelShellViewModel, createIniPanelShellViewModel,

View File

@@ -31,6 +31,7 @@ for (const phrase of [
"docs/drift-report.md", "docs/drift-report.md",
"PROJECT_COMPLETION_TRACKER.md", "PROJECT_COMPLETION_TRACKER.md",
"runtime/sdk/src/index.js", "runtime/sdk/src/index.js",
"createIniPanelShellSessionReadinessWorkflowReport()",
"workflow overview embedding mount DOM", "workflow overview embedding mount DOM",
"verify_no_standalone_cnc_semantics.sh", "verify_no_standalone_cnc_semantics.sh",
"verify_host_smokes.sh", "verify_host_smokes.sh",
@@ -80,6 +81,7 @@ for (const phrase of [
for (const phrase of [ for (const phrase of [
"OPFS/session persistence exports", "OPFS/session persistence exports",
"INI panel shell handoff exports", "INI panel shell handoff exports",
"createIniPanelShellSessionReadinessWorkflowReport()",
]) { ]) {
assert.match(sdkReadmeText, literalRegExp(phrase)); assert.match(sdkReadmeText, literalRegExp(phrase));
} }

View File

@@ -6,6 +6,7 @@ import { fileURLToPath } from "node:url";
import { import {
analyzeIniRuntimeBoundaries, analyzeIniRuntimeBoundaries,
createIniPanelLaunchApiManifest, createIniPanelLaunchApiManifest,
createIniPanelShellSessionReadinessWorkflowReport,
createIniPanelShellViewModel, createIniPanelShellViewModel,
createIniPanelShellWorkflowOverviewEmbeddingMountDomContract, createIniPanelShellWorkflowOverviewEmbeddingMountDomContract,
createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness, createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness,
@@ -81,6 +82,7 @@ const requiredExports = [
["createIniPanelLaunchApiManifest", createIniPanelLaunchApiManifest], ["createIniPanelLaunchApiManifest", createIniPanelLaunchApiManifest],
["isSupportedIniPanelLaunchApiManifest", isSupportedIniPanelLaunchApiManifest], ["isSupportedIniPanelLaunchApiManifest", isSupportedIniPanelLaunchApiManifest],
["createIniPanelShellViewModel", createIniPanelShellViewModel], ["createIniPanelShellViewModel", createIniPanelShellViewModel],
["createIniPanelShellSessionReadinessWorkflowReport", createIniPanelShellSessionReadinessWorkflowReport],
[ [
"createIniPanelShellWorkflowOverviewEmbeddingMountDomContract", "createIniPanelShellWorkflowOverviewEmbeddingMountDomContract",
createIniPanelShellWorkflowOverviewEmbeddingMountDomContract, createIniPanelShellWorkflowOverviewEmbeddingMountDomContract,
@@ -124,6 +126,14 @@ assert.equal(
shellViewModel.launchApiManifest.methods.includes("mountWorkflowOverviewEmbeddingMountState"), shellViewModel.launchApiManifest.methods.includes("mountWorkflowOverviewEmbeddingMountState"),
true, true,
); );
assert.equal(
shellViewModel.launchApiManifest.methods.includes("getShellSessionReadinessWorkflowReport"),
true,
);
assert.equal(
createIniPanelShellSessionReadinessWorkflowReport().apiName,
"ini-panel-shell-session-readiness-workflow-report",
);
assert.equal( assert.equal(
shellViewModel.mountWorkflowOverviewEmbeddingMountState, shellViewModel.mountWorkflowOverviewEmbeddingMountState,
mountIniPanelShellWorkflowOverviewEmbeddingMountState, mountIniPanelShellWorkflowOverviewEmbeddingMountState,