收口 INI 面板 persistence summary 发布门禁

This commit is contained in:
2026-06-16 09:00:29 +08:00
parent 65e95327b3
commit d3ee5d49ff
21 changed files with 1458 additions and 46 deletions

View File

@@ -2135,3 +2135,639 @@ host_wasm_opfs_browser_smokes=ok
继续以实质能力推进为主。下一批可把 shell API surface inventory 渲染为 browser-visible summary
row 或挂载到 workflow overview embedding report方便验收页面直接显示 API surface 覆盖;仍保持只读,
不新增控制按钮,不解析 G-code不扩大 LinuxCNC 语义边界。
二十七、2026-06-16 继续执行记录INI panel SDK shell/control-page negotiation surface
本轮继续以功能实质性推进为主,把已经稳定存在于 UI shell 的 entry manifest、launcher link、
control-page browser API、shell integration negotiation 与 workflow overview contract helper 纳入
`runtime/sdk/src/index.js` 稳定导出。外部调用者现在可以只从 SDK 入口完成 launch/control-page/shell
协商,不需要导入 `runtime/ui/ini-panel/` 私有路径。
完成内容:
- `wasm-port/runtime/sdk/src/index.js` re-export
- `INI_PANEL_ENTRIES`
- `getIniPanelEntryManifest()`
- `getIniPanelEntryByHref()`
- `getVisibleIniPanelEntries()`
- `createIniPanelLauncherLinkViewModel()`
- `createControlPageBrowserApiSchema()`
- `createControlPageBrowserApiManifest()`
- `createControlPageBrowserApiMethods()`
- `createIniPanelShellControlPageContract()`
- `isSupportedIniPanelControlPageApiManifest()`
- `createIniPanelShellIntegrationSchema()`
- `createIniPanelShellIntegrationManifest()`
- `createIniPanelShellIntegrationReadiness()`
- `createIniPanelShellIntegrationWorkflowPlan()`
- `isSupportedIniPanelShellIntegrationManifest()`
- `createIniPanelShellWorkflowOverviewContract()`
- `wasm-port/tests/sdk/node/verify_sdk_surface.mjs` 覆盖:
- 新 SDK export shape
- SDK README drift
- entry manifest 与 visible entries 一致;
- launcher link view-model shape
- control-page manifest/schema/methods 支持判断;
- shell integration manifest/readiness/workflow plan ready
- workflow overview contract 包含 API surface inventory method
- `wasm-port/runtime/sdk/README.md` 的 stable imports 示例和 INI panel shell handoff exports
记录新增 SDK surface
- `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/tools/verify_vendor_sync.sh
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
wasm-port/tests/ui/node/verify_ui_node_smokes.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_ini_panel_browser.sh
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
sdk_surface_node_smoke=ok
vendor sync up to date
standalone CNC semantics guard complete
ui_node_smokes=ok
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_ini_launch_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步工作计划:
继续以实质能力推进为主。下一批可把 shell API surface inventory 渲染为 browser-visible summary
row 或接入 workflow overview embedding report让验收页面直接显示 API surface 覆盖;仍保持只读,
不新增控制按钮,不解析 G-code不扩大 LinuxCNC 语义边界。
二十八、2026-06-16 继续执行记录INI panel workflow overview API surface summary row
本轮继续以功能实质性推进为主,把上一批可调用的 shell API surface inventory 接入真实 workflow
overview 和外部 shell 可见的只读 summary/render path。验收页面现在不只能够通过 API 读取
`createIniPanelShellApiSurfaceInventory()`,还会在 workflow summary DOM rows 中显示
`api-surface-inventory` 行,直接暴露 API surface 覆盖状态。
完成内容:
- `createIniPanelShellSessionHandoffWorkflowSummary()` 新增可选 `apiSurfaceInventory` 输入;
- workflow summary 输出新增:
- `apiSurfaceInventory` 摘要对象;
- `api-surface-inventory` display row
- `createIniPanelShellViewModel()` 构建流程调整为:
- 先生成基础 workflow summary
- 生成 session readiness workflow report
- 生成 shell API surface inventory
- 再生成包含 API surface inventory 行的最终 workflow summary/display/render-state
- `workflow-overview.html` 现有渲染路径自动显示 `api-surface-inventory` row
- Browser smoke 覆盖真实 DOM
- workflow overview 主 DOM row count
- `data-handoff-workflow-value="api-surface-inventory"`
- launch iframe workflow overview embedding row count
- external shell workflow overview embedding row count
- external shell 手动注入 `apiSurfaceInventory` 后的 workflow DOM mount row count
- SDK smoke 覆盖 `createIniPanelShellViewModel()` 的 workflow summary 包含
`api-surface-inventory: ready: 5 rows`
- `runtime/sdk/README.md`、`docs/panel-entry.md`、`docs/project-release-handoff.md` 记录:
- API surface inventory 可以作为 workflow summary row
- browser overview 和外部 shell 可直接显示 API 覆盖;
- 未新增控制按钮;
- 未执行 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/tools/verify_vendor_sync.sh
wasm-port/tools/verify_no_standalone_cnc_semantics.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/tests/sdk/node/verify_sdk_surface.sh
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
wasm-port/tests/docs/node/verify_project_release_handoff_docs.sh
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.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
vendor sync up to date
standalone CNC semantics guard complete
ui_node_smokes=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
sdk_surface_node_smoke=ok
ini_panel_entry_docs_node_smoke=ok
project_release_handoff_docs_node_smoke=ok
ini_panel_shell_integration_manifest_node_smoke=ok
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
下一步工作计划:
继续以实质能力推进为主。下一批可把 OPFS/session persistence 也做成类似的 browser-visible
summary row 或 report汇总 machine files、session snapshot、readonly status、handoff readiness
仍保持只读,不新增控制按钮,不解析 G-code不扩大 LinuxCNC 语义边界。
二十九、2026-06-16 继续执行记录INI panel OPFS/session persistence summary
本轮继续以功能实质性推进为主,为 OPFS/session persistence 增加可复用、可由浏览器真实流程读取的
只读 summary helper。外部调用者和 INI panel 页面现在可以通过稳定 API 一次查看 machine files、
session snapshot、session readiness、session load、readonly status、handoff readiness 的汇总 rows。
完成内容:
- `panel-state-summary.js` 新增 `createMachineSessionPersistenceSummary()`
- persistence summary 输出:
- `apiName: "machine-session-persistence-summary"`
- `summaryVersion`
- `phase`
- `ready`
- `checks`
- `missing`
- `counts`
- rows
- `opfs`
- `machine-files`
- `session-snapshot`
- `session-readiness`
- `session-load`
- `readonly-status`
- `handoff-readiness`
- `app.js` 暴露:
- `linuxCncIniPanelApi.getMachineSessionPersistenceSummary()`
- legacy `window.getMachineSessionPersistenceSummary()`
- `ui-shell.js` re-export `createMachineSessionPersistenceSummary()`
- `runtime/sdk/src/index.js` re-export `createMachineSessionPersistenceSummary()`
- `verify_ini_panel_state_summary.mjs` 覆盖 ready summary 与 missing summary
- `verify_ini_panel_ui_shell.mjs` 覆盖 ui-shell export
- `verify_sdk_surface.mjs` 覆盖 SDK export 与 session-load row
- `ini_panel_smoke.html` 覆盖真实 browser OPFS/session persistence workflow 后的 summary
- `ready === true`
- machine files row
- session load row
- `runtime/sdk/README.md`、`docs/panel-entry.md`、`docs/project-release-handoff.md` 记录该 helper 和
browser API
- `PROJECT_COMPLETION_TRACKER.md` 同步 latest completed batch 与 OPFS/session persistence 状态;
- 未新增控制按钮;
- 未执行 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/tools/verify_vendor_sync.sh
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
wasm-port/tests/ui/node/verify_ini_panel_state_summary.sh
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
wasm-port/tests/sdk/node/verify_sdk_surface.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
wasm-port/tests/docs/node/verify_project_release_handoff_docs.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
vendor sync up to date
standalone CNC semantics guard complete
ini_panel_state_summary_node_smoke=ok
ini_panel_ui_shell_node_smoke=ok
sdk_surface_node_smoke=ok
browser_ini_opfs_smoke=ok
ui_node_smokes=ok
ini_panel_entry_docs_node_smoke=ok
project_release_handoff_docs_node_smoke=ok
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_unexpected_fail=0
host_wasm_opfs_browser_smokes=ok
```
下一步工作计划:
继续以实质能力推进为主。下一批可把 `createMachineSessionPersistenceSummary()` 接入 shell handoff
workflow summary 或 workflow overview API surface inventory让外部 shell 在一个 overview 中同时看到
API surface 与 OPFS/session persistence 状态;仍保持只读,不新增控制按钮,不解析 G-code不扩大
LinuxCNC 语义边界。
三十、2026-06-16 继续执行记录INI panel shell workflow persistence summary row
本轮继续以功能实质性推进为主,把 OPFS/session persistence summary 接入 shell handoff workflow
summary 和 workflow overview render path。外部 shell 现在可以在同一个 overview 中同时显示
`persistence-summary` 与 `api-surface-inventory` rows直接看到 OPFS/session persistence 状态和 API
surface 覆盖。
完成内容:
- `createIniPanelShellSessionHandoffWorkflowSummary()` 新增可选 `persistenceSummary` 输入;
- workflow summary 输出新增:
- `persistenceSummary` 摘要对象;
- `persistence-summary` display row
- `createIniPanelShellViewModel()` 默认生成 `shellPersistenceSummary`,并将其纳入最终
shell workflow summary/display/render-state
- `createIniPanelShellViewModel()` 暴露 `shellPersistenceSummary` 和
`createMachineSessionPersistenceSummary`
- Workflow overview browser DOM 默认显示:
- `persistence-summary: waiting: 5 missing`
- `api-surface-inventory: ready: 5 rows`
- External shell browser workflow smoke 在真实 panel/control-page workflow 后读取
`linuxCncIniPanelApi.getMachineSessionPersistenceSummary()`,再注入
`getShellSessionHandoffWorkflowSummary({ persistenceSummary })`,验证:
- `persistence-summary: ready: 7 rows`
- workflow DOM mount row count
- SDK smoke 覆盖 `createIniPanelShellViewModel()` 的 workflow summary 包含
`persistence-summary` row
- `runtime/sdk/README.md`、`docs/panel-entry.md`、`docs/project-release-handoff.md` 记录该 workflow
summary row
- `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_entry_docs.sh
wasm-port/tests/docs/node/verify_project_release_handoff_docs.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/ui/node/verify_ui_node_smokes.sh
wasm-port/tests/sdk/node/verify_sdk_surface.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
ini_panel_entry_docs_node_smoke=ok
project_release_handoff_docs_node_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
ui_node_smokes=ok
sdk_surface_node_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步工作计划:
继续以实质能力推进为主。下一批可补齐 release/project docs smoke 对 `persistence-summary` row 的显式
断言,或开始收口最终提交前的全量 project release gate仍保持只读不新增控制按钮不解析 G-code
不扩大 LinuxCNC 语义边界。
三十一、2026-06-16 继续执行记录INI panel launch/workflow persistence summary API
本轮继续以功能实质性推进为主,把 `createMachineSessionPersistenceSummary()` 从 SDK/UI helper 推进为
真实 launch API 和 workflow overview API surface。外部 shell 现在可以从页面 API 直接构造 OPFS/session
persistence summary不需要导入私有模块或绕过 browser namespace。
完成内容:
- `createIniPanelLaunchApiManifest().methods` 新增 `getMachineSessionPersistenceSummary`
- `createIniPanelShellWorkflowOverviewContract().methodNames` 新增
`getWorkflowOverviewPersistenceSummary`
- `launch.html` 暴露:
- `linuxCncIniPanelLaunchApi.getMachineSessionPersistenceSummary()`
- `workflow-overview.html` 暴露:
- `linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewPersistenceSummary()`
- Browser launch smoke 覆盖 launch API persistence summary API name 与 rows
- Browser workflow overview smoke 覆盖 workflow overview API persistence summary API name 与 rows
- UI Node smoke 覆盖 launch manifest、workflow overview contract/readiness 和 shell integration manifest
- `docs/panel-entry.md`、`docs/project-release-handoff.md` 记录 launch/workflow overview API 暴露该 helper
- `PROJECT_COMPLETION_TRACKER.md` 同步 latest completed batch
- 未新增控制按钮;
- 未执行 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_entry_docs.sh
wasm-port/tests/docs/node/verify_project_release_handoff_docs.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/ui/node/verify_ini_panel_launch_api_manifest.sh
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
wasm-port/tests/sdk/node/verify_sdk_surface.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
ini_panel_entry_docs_node_smoke=ok
project_release_handoff_docs_node_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
ini_panel_launch_api_manifest_node_smoke=ok
ini_panel_shell_integration_manifest_node_smoke=ok
ini_panel_ui_shell_node_smoke=ok
ui_node_smokes=ok
sdk_surface_node_smoke=ok
browser_ini_launch_smoke=ok
browser_ini_workflow_overview_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步工作计划:
继续以实质能力推进为主。下一批建议运行完整 project release gate 并根据结果只修实质性 gate 缺口;
仍保持只读,不新增控制按钮,不解析 G-code不扩大 LinuxCNC 语义边界。
三十二、2026-06-16 继续执行记录INI panel API inventory persistence summary rows
本轮继续以功能实质性推进为主,把 OPFS/session persistence summary 纳入 shell API surface inventory。
外部 shell 现在通过 `getShellApiSurfaceInventory()` 或
`getWorkflowOverviewApiSurfaceInventory()` 可以同时看到 API 方法覆盖、session readiness report rows
和 persistence summary rows。
完成内容:
- `createIniPanelShellApiSurfaceInventory()` 新增可选 `persistenceSummary` 输入;
- inventory `counts` 新增 `persistenceSummaryRows`
- inventory `apiNames` 新增 `persistenceSummary`
- inventory `entries` 新增 `persistence-summary`
- inventory `rows` 新增 `persistence-summary`
- `createIniPanelShellViewModel()` 将 `shellPersistenceSummary` 注入 `shellApiSurfaceInventory`
- Browser launch smoke 覆盖 `shellApiSurfaceInventory.counts.persistenceSummaryRows`
- Browser workflow overview smoke 覆盖 workflow overview API inventory 的 persistence summary rows
- Browser shell integration workflow smoke 在真实 panel summary 下把 persistence summary 注入
`getShellApiSurfaceInventory()` 并验证 row count
- SDK/UI node smoke 覆盖 workflow summary 的 API inventory row 从 `ready: 5 rows` 推进为
`ready: 6 rows`
- `runtime/sdk/README.md`、`docs/panel-entry.md` 记录 inventory 包含 persistence summary row counts
- `PROJECT_COMPLETION_TRACKER.md` 同步 latest completed batch
- 未新增控制按钮;
- 未执行 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_entry_docs.sh
wasm-port/tests/docs/node/verify_project_release_handoff_docs.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/ui/node/verify_ini_panel_ui_shell.sh
wasm-port/tests/ui/node/verify_ini_panel_shell_integration_manifest.sh
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
wasm-port/tests/sdk/node/verify_sdk_surface.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
ini_panel_entry_docs_node_smoke=ok
project_release_handoff_docs_node_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
ini_panel_ui_shell_node_smoke=ok
ini_panel_shell_integration_manifest_node_smoke=ok
ui_node_smokes=ok
sdk_surface_node_smoke=ok
browser_ini_launch_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步工作计划:
继续以实质能力推进为主。下一批建议运行完整 project release gate若通过则整理最终提交若失败
只修实质性 gate 缺口;仍保持只读,不新增控制按钮,不解析 G-code不扩大 LinuxCNC 语义边界。
三十三、2026-06-16 继续执行记录INI panel persistence summary display/render state
本轮继续以功能实质性推进为主,把 OPFS/session persistence summary 从数据 report 推进为可直接显示的
display view-model 和 render-state。外部 shell 现在可以拿到稳定标题、状态、明细、rows、statusLine
和 dataset 字段,不需要自行拼接 persistence 状态文案。
完成内容:
- `panel-state-summary.js` 新增:
- `createMachineSessionPersistenceDisplayViewModel()`
- `createMachineSessionPersistenceRenderState()`
- persistence render-state 输出:
- `apiName: "machine-session-persistence-render-state"`
- `renderStateVersion`
- `phase`
- `ready`
- `title`
- `statusText`
- `detailText`
- `statusLine`
- `rows`
- `dataset.persistencePhase`
- `dataset.persistenceReady`
- `dataset.persistenceScope`
- `app.js` 暴露:
- `linuxCncIniPanelApi.getMachineSessionPersistenceDisplayViewModel()`
- `linuxCncIniPanelApi.getMachineSessionPersistenceRenderState()`
- legacy window getters
- `ui-shell.js` re-export 新 display/render helpers
- `runtime/sdk/src/index.js` re-export 新 display/render helpers
- `verify_ini_panel_state_summary.mjs` 覆盖 ready display view-model、ready render-state 和 waiting
render-state
- `ini_panel_smoke.html` 覆盖真实 browser OPFS/session workflow 后的 display/render state
- `verify_sdk_surface.mjs` 覆盖 SDK export 和 render-state API name
- `docs/panel-entry.md`、`docs/project-release-handoff.md`、`runtime/sdk/README.md` 记录新 helper
- `PROJECT_COMPLETION_TRACKER.md` 同步 latest completed batch
- 未新增控制按钮;
- 未执行 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/docs/node/verify_project_release_handoff_docs.sh
wasm-port/tests/ui/node/verify_ui_node_smokes.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/ui/node/verify_ini_panel_state_summary.sh
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
wasm-port/tests/sdk/node/verify_sdk_surface.sh
wasm-port/tests/ui/node/verify_ini_panel_entry_docs.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
wasm-port/tests/host/verify_host_smokes.sh
```
关键输出:
```text
project_release_handoff_docs_node_smoke=ok
ui_node_smokes=ok
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_unexpected_fail=0
ini_panel_state_summary_node_smoke=ok
ini_panel_ui_shell_node_smoke=ok
sdk_surface_node_smoke=ok
ini_panel_entry_docs_node_smoke=ok
browser_ini_opfs_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步工作计划:
继续以实质能力推进为主。下一批建议运行完整 project release gate若通过则整理最终提交若失败
只修实质性 gate 缺口;仍保持只读,不新增控制按钮,不解析 G-code不扩大 LinuxCNC 语义边界。
三十四、2026-06-16 继续执行记录project release gate validation closure
本轮按上一批计划运行完整 project release gate把当前 OPFS/session persistence display/render helper、
SDK/API surface、browser/UI workflow、docs smoke、host/runtime boundary smoke 一次性收口到可交付验证状态。
完成内容:
- 运行 `wasm-port/tests/host/verify_project_release_gate.sh`
- 验证当前未提交实现可通过统一发布门禁;
- 确认 browser INI panel、control page、launch、workflow overview、shell integration workflow smoke 仍通过;
- 确认 SDK surface、OPFS/session docs、sim-config coverage docs、host/runtime boundary docs、project release handoff docs
均在 host aggregate gate 中通过;
- 确认 `browser_interp_smoke=ok` 仍通过;
- 确认 sim config inventory 仍为:
- `executed=28`
- `passed=28`
- `skipped=131`
- `unexpected_fail=0`
- 确认 blocked runtime family 未 promotion
- `L4-USER-M-PROCESS`
- `L4-TOOL-DB`
- `L4-PYTHON-REMAP`
- 未新增控制按钮;
- 未执行 action-plan
- 未解析 G-code
- 未解释 canonical events
- 未新增 JS CNC 语义;
- 未运行 opt-in runtime probes
- 未改变 LinuxCNC interpreter、tool、parameter、planner、kinematics、remap 或 LinuxCNC-owned
runtime semantics。
验证已通过:
```bash
wasm-port/tests/host/verify_project_release_gate.sh
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_unexpected_fail=0
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
ui_node_smokes=ok
ini_wasm_node_smoke=ok
sim_configs_wasm_node_smoke=ok
nc_files_wasm_node_smoke=ok
tp_wasm_node_smoke=ok
opfs_file_service_node_smoke=ok
sdk_surface_node_smoke=ok
opfs_session_docs_node_smoke=ok
sim_configs_coverage_docs_node_smoke=ok
host_runtime_boundary_docs_node_smoke=ok
project_release_handoff_docs_node_smoke=ok
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
project_release_gate=ok
```
下一步工作计划:
整理并提交当前批次。提交后若工作树 clean则当前 scope 已达到 `PROJECT_COMPLETION_TRACKER.md`
定义的发布验证闭环;后续只在新 scope 请求或真实 LinuxCNC host runtime 可用时继续推进 blocked runtime family。