推进 INI 面板 shell handoff workflow DOM mount helper

This commit is contained in:
2026-06-15 14:28:22 +08:00
parent e1e0c7f6d2
commit 6b6629ce73
9 changed files with 530 additions and 4 deletions

View File

@@ -37,6 +37,10 @@ import {
createIniPanelShellSessionHandoffWorkflowSummary,
createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
createIniPanelShellSessionHandoffWorkflowRenderState,
createIniPanelShellSessionHandoffWorkflowDomContract,
createIniPanelShellSessionHandoffWorkflowDomReadiness,
renderIniPanelShellSessionHandoffWorkflowState,
mountIniPanelShellSessionHandoffWorkflow,
renderIniPanelShellSessionHandoffMountState,
createIniPanelShellSessionHandoffPackageReport,
createIniPanelShellSessionHandoffPackageRenderState,
@@ -266,12 +270,28 @@ when an outer shell needs that end-to-end summary compressed into stable
`linuxCncIniPanelLaunchApi.getShellSessionHandoffWorkflowRenderState()` when an
outer shell needs that workflow display-model compressed into stable
`dataset`, `statusLine`, and rows for direct DOM rendering. Use
`createIniPanelShellSessionHandoffWorkflowDomContract()` or
`linuxCncIniPanelLaunchApi.getShellSessionHandoffWorkflowDomContract()` when an
outer shell needs the required workflow mount/status/rows selectors, mount
dataset keys, and row dataset keys before rendering workflow overview DOM. Use
`createIniPanelShellSessionHandoffWorkflowDomReadiness()` or
`linuxCncIniPanelLaunchApi.getShellSessionHandoffWorkflowDomReadiness()` to
check that those workflow DOM nodes exist before rendering. Use
`renderIniPanelShellSessionHandoffWorkflowState()` or
`linuxCncIniPanelLaunchApi.renderShellSessionHandoffWorkflowState()` when an
outer shell needs the shared read-only DOM renderer for workflow overview rows.
Use `mountIniPanelShellSessionHandoffWorkflow()` or
`linuxCncIniPanelLaunchApi.mountShellSessionHandoffWorkflow()` when an outer
shell needs one structured workflow DOM mount result containing contract,
readiness, render-state, render result, and any mount error as data. Use
`renderIniPanelShellSessionHandoffMountState()` or
`linuxCncIniPanelLaunchApi.renderShellSessionHandoffMountState()` when an outer
shell needs the shared read-only DOM renderer for those rows. The launch page
renders the default waiting mount state into `[data-handoff-mount]`,
`[data-handoff-mount-status]`, and `[data-handoff-mount-rows]` without opening
the control page.
the control page. The launch page also renders a default workflow overview into
`[data-handoff-workflow]`, `[data-handoff-workflow-status]`, and
`[data-handoff-workflow-rows]`.
The browser workflow smoke
`tests/browser/ini_panel_shell_integration_workflow_smoke.html` verifies the
same external shell handoff: read integration manifest, pass readiness gate,