514 lines
30 KiB
Markdown
514 lines
30 KiB
Markdown
# INI Panel Entry
|
|
|
|
This page is the short entry map for the INI panel UI shell.
|
|
|
|
For the project-level acceptance path that references this UI surface, start
|
|
with `docs/project-release-handoff.md`. Stable SDK imports for external callers
|
|
are documented in `runtime/sdk/README.md` and should come from
|
|
`runtime/sdk/src/index.js`. The workflow overview embedding helpers below are
|
|
the read-only external-shell path for embedding and mounting overview state.
|
|
|
|
## Shell Module
|
|
|
|
Use the shell-facing module when an outer UI needs entry links or a read-only
|
|
control view:
|
|
|
|
```js
|
|
import {
|
|
INI_PANEL_ENTRIES,
|
|
createControlPageBrowserApiManifest,
|
|
createControlPageBrowserApiMethods,
|
|
createControlPageBrowserApiSchema,
|
|
createIniPanelLaunchApiManifest,
|
|
createIniPanelLaunchApiSchema,
|
|
createIniPanelLauncherLinkViewModel,
|
|
createIniPanelShellControlPageContract,
|
|
createIniPanelShellIntegrationManifest,
|
|
createIniPanelShellIntegrationReadiness,
|
|
createIniPanelShellIntegrationSchema,
|
|
createIniPanelShellIntegrationWorkflowPlan,
|
|
createIniPanelShellSessionHandoffActionPlan,
|
|
createIniPanelShellSessionHandoffChecklist,
|
|
createIniPanelShellSessionHandoffCompatibilityReport,
|
|
createIniPanelShellSessionHandoffDisplayViewModel,
|
|
createIniPanelShellSessionHandoffPackage,
|
|
createIniPanelShellSessionHandoffPackageDisplayViewModel,
|
|
createIniPanelShellSessionHandoffPackageMountDisplayViewModel,
|
|
createIniPanelShellSessionHandoffPackageMountRenderState,
|
|
createIniPanelShellSessionHandoffPackageMountState,
|
|
createIniPanelShellSessionHandoffMountDomContract,
|
|
createIniPanelShellSessionHandoffMountDomReadiness,
|
|
mountIniPanelShellSessionHandoff,
|
|
mountIniPanelShellSessionHandoffFromControlPage,
|
|
createIniPanelShellSessionHandoffWorkflowSummary,
|
|
createIniPanelShellSessionReadinessWorkflowReport,
|
|
createIniPanelShellApiSurfaceInventory,
|
|
createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
|
|
createIniPanelShellSessionHandoffWorkflowRenderState,
|
|
createIniPanelShellSessionHandoffWorkflowDomContract,
|
|
createIniPanelShellSessionHandoffWorkflowDomReadiness,
|
|
createIniPanelShellWorkflowOverviewContract,
|
|
createIniPanelShellWorkflowOverviewReadiness,
|
|
createIniPanelShellWorkflowOverviewEmbeddingReport,
|
|
createIniPanelShellWorkflowOverviewEmbeddingDisplayViewModel,
|
|
createIniPanelShellWorkflowOverviewEmbeddingRenderState,
|
|
createIniPanelShellWorkflowOverviewEmbeddingDomContract,
|
|
createIniPanelShellWorkflowOverviewEmbeddingDomReadiness,
|
|
mountIniPanelShellWorkflowOverviewEmbedding,
|
|
renderIniPanelShellWorkflowOverviewEmbeddingState,
|
|
mountIniPanelShellWorkflowOverviewEmbeddingState,
|
|
createIniPanelShellWorkflowOverviewEmbeddingMountDisplayViewModel,
|
|
createIniPanelShellWorkflowOverviewEmbeddingMountRenderState,
|
|
createIniPanelShellWorkflowOverviewEmbeddingMountDomContract,
|
|
createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness,
|
|
renderIniPanelShellWorkflowOverviewEmbeddingMountState,
|
|
mountIniPanelShellWorkflowOverviewEmbeddingMountState,
|
|
validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson,
|
|
loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl,
|
|
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel,
|
|
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactRenderState,
|
|
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract,
|
|
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomReadiness,
|
|
renderIniPanelShellWorkflowOverviewReleaseReadinessArtifactState,
|
|
mountIniPanelShellWorkflowOverviewReleaseReadinessArtifactState,
|
|
renderIniPanelShellSessionHandoffWorkflowState,
|
|
mountIniPanelShellSessionHandoffWorkflow,
|
|
renderIniPanelShellSessionHandoffMountState,
|
|
createIniPanelShellSessionHandoffPackageReport,
|
|
createIniPanelShellSessionHandoffPackageRenderState,
|
|
createIniPanelShellSessionHandoffPackageSchema,
|
|
createIniPanelShellSessionHandoffRenderState,
|
|
createIniPanelShellSessionHandoffSnapshot,
|
|
createIniPanelShellSessionHandoffSummary,
|
|
createIniPanelShellSessionHandoffSummarySchema,
|
|
createIniPanelShellViewModel,
|
|
getIniPanelEntryByHref,
|
|
getVisibleIniPanelEntries,
|
|
createMachineSessionPersistenceDisplayViewModel,
|
|
createMachineSessionPersistenceRenderState,
|
|
createMachineSessionPersistenceSummary,
|
|
createMachineSessionControlPageController,
|
|
createMachineSessionReadonlyStatus,
|
|
createMachineSessionReadonlyStatusApiManifest,
|
|
createMachineSessionReadinessFieldState,
|
|
machineSessionReadinessLogLines,
|
|
readMachineSessionReadinessWorkflow,
|
|
readMachineSessionReadonlyStatus,
|
|
loadMachineSessionForControlPageWorkflow,
|
|
createControlPageSessionLoadState,
|
|
refreshMachineSessionControlPage,
|
|
controlPageStatusText,
|
|
renderMachineSessionControlView,
|
|
isSupportedIniPanelControlPageApiManifest,
|
|
isSupportedIniPanelLaunchApiManifest,
|
|
isSupportedIniPanelShellIntegrationManifest,
|
|
isSupportedIniPanelShellSessionHandoffPackage,
|
|
isSupportedIniPanelShellSessionHandoffSummary,
|
|
} from "../runtime/ui/ini-panel/ui-shell.js";
|
|
```
|
|
|
|
`ui-shell.js` re-exports the entry manifest, the read-only control-page
|
|
controller, the unified read-only status API, the readonly-status API manifest,
|
|
and the control-view renderer. It does not implement CNC behavior.
|
|
|
|
## Pages
|
|
|
|
| Page | Path | Role |
|
|
| --- | --- | --- |
|
|
| Launch | `runtime/ui/ini-panel/launch.html` | Read-only entry page for available panel surfaces. |
|
|
| Edit and run | `runtime/ui/ini-panel/index.html` | Editable INI panel and existing run workflow surface. |
|
|
| Read-only control view | `runtime/ui/ini-panel/control-page.html` | Read-only control view backed by the panel API. |
|
|
| Workflow overview | `runtime/ui/ini-panel/workflow-overview.html` | Read-only shell handoff workflow overview surface. |
|
|
|
|
## Visible Entries
|
|
|
|
The visible launch entries come from `getVisibleIniPanelEntries()`:
|
|
|
|
| Entry id | Href | Title |
|
|
| --- | --- | --- |
|
|
| `edit-run` | `./index.html` | Open edit and run panel |
|
|
| `control-view` | `./control-page.html` | Open read-only control view |
|
|
| `workflow-overview` | `./workflow-overview.html` | Open shell handoff overview |
|
|
|
|
Launcher pages can render links from `createIniPanelLauncherLinkViewModel()`
|
|
without reading manifest field names directly. Each item has `entryId`, `href`,
|
|
and `label`.
|
|
|
|
Outer shells can call `createIniPanelShellViewModel()` when they need one
|
|
read-only model with `pages`, `launcherLinks`, and `controlPage` helpers for
|
|
mounting the existing control-page controller, refresh workflow, and renderer.
|
|
Use `controlPage.readStatus` or `readMachineSessionReadonlyStatus()` when an
|
|
outer shell needs one stable read of `stateBundle`, `workflowStatus`,
|
|
`overview`, `controlView`, `sessionReadiness`, `session`, `runReadiness`, and
|
|
`run`.
|
|
Use `createMachineSessionReadonlyStatusApiManifest()` or
|
|
`controlPage.readonlyStatusApiManifest` when you only need the API shape and
|
|
method names.
|
|
Use `readMachineSessionReadinessWorkflow()` when an outer shell or panel flow
|
|
needs a read-only `ready`/`blocked` readiness report before loading a machine
|
|
session into WASM. `createMachineSessionReadinessFieldState()` and
|
|
`machineSessionReadinessLogLines()` turn that report into stable fields and
|
|
status text without parsing G-code or executing LinuxCNC behavior.
|
|
Use `createMachineSessionPersistenceSummary()` or
|
|
`linuxCncIniPanelApi.getMachineSessionPersistenceSummary()` when a browser
|
|
panel or outer shell needs one read-only OPFS/session persistence summary with
|
|
machine-file, session snapshot, session readiness, session load, readonly
|
|
status, and handoff readiness rows. The launch page exposes the same helper as
|
|
`linuxCncIniPanelLaunchApi.getMachineSessionPersistenceSummary()`, and the
|
|
workflow overview page exposes it as
|
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewPersistenceSummary()`.
|
|
Use `validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson()` or
|
|
`linuxCncIniPanelWorkflowOverviewApi.validateWorkflowOverviewReleaseReadinessArtifactJson()`
|
|
when an outer shell needs to validate a project release readiness artifact JSON
|
|
through the same read-only workflow overview surface. It parses the artifact,
|
|
returns stable validation rows, and does not execute release gates or CNC
|
|
behavior.
|
|
Use `loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl()` or
|
|
`linuxCncIniPanelWorkflowOverviewApi.loadWorkflowOverviewReleaseReadinessArtifactUrl()`
|
|
when the shell should fetch the artifact JSON URL, validate it, and optionally
|
|
mount the render-state into caller-owned DOM without executing gates.
|
|
Use `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel()`,
|
|
`createIniPanelShellWorkflowOverviewReleaseReadinessArtifactRenderState()`,
|
|
`createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract()`,
|
|
`createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomReadiness()`,
|
|
`renderIniPanelShellWorkflowOverviewReleaseReadinessArtifactState()`, or
|
|
`mountIniPanelShellWorkflowOverviewReleaseReadinessArtifactState()` when that
|
|
validation needs to be rendered into caller-owned DOM. The workflow overview
|
|
page exposes equivalent methods with the `getWorkflowOverview...`,
|
|
`renderWorkflowOverview...`, and `mountWorkflowOverview...` prefixes.
|
|
Use `createMachineSessionPersistenceDisplayViewModel()` and
|
|
`createMachineSessionPersistenceRenderState()` when that summary needs stable
|
|
display text, rows, status line, and dataset fields for caller-owned DOM.
|
|
Use `createIniPanelShellControlPageContract()` or `controlPage.contract` when
|
|
an outer shell needs a fast contract check for `createController`,
|
|
`loadSessionState`, `readStatus`, `refresh`, `renderView`, the readonly status
|
|
manifest, and its status fields before mounting the embedded panel. The
|
|
contract lists readonly status fields for `stateBundle`, `workflowStatus`,
|
|
`overview`, `controlView`, `report`, `runReadiness`, `run`, `session`, and
|
|
`status`.
|
|
The browser control page also exposes this contract through
|
|
`linuxCncIniPanelControlPageApi.getControlPageContract()`, so real iframe-based
|
|
smokes can verify the same API shape before reading the embedded panel state.
|
|
Use `linuxCncIniPanelControlPageApi.getControlPageApiMethods()` when a browser
|
|
outer page needs the exact exposed method list before calling the read-only
|
|
control page API.
|
|
Use `createControlPageBrowserApiSchema()`,
|
|
`createControlPageBrowserApiManifest()`, or
|
|
`linuxCncIniPanelControlPageApi.getControlPageApiSchema()` and
|
|
`linuxCncIniPanelControlPageApi.getControlPageApiManifest()` when a browser
|
|
outer page needs a versioned control-page API description before reading the
|
|
embedded panel. Use `isSupportedIniPanelControlPageApiManifest()` or
|
|
`linuxCncIniPanelControlPageApi.isSupportedControlPageApiManifest()` for a
|
|
read-only compatibility predicate before consuming that manifest.
|
|
Use `linuxCncIniPanelControlPageApi.readControlPageStatus()` when a browser
|
|
outer page needs the same readonly status snapshot from the real embedded
|
|
control page after save/load session workflows.
|
|
The launch page exposes `linuxCncIniPanelLaunchApi.getControlPageApiMethods()`
|
|
from the same shell view-model so entry pages can consume the available
|
|
read-only control-page API list without loading the control-page iframe first.
|
|
Use `createIniPanelLaunchApiManifest()` or
|
|
`linuxCncIniPanelLaunchApi.getLaunchApiManifest()` when an outer shell needs a
|
|
single read-only description of launch methods, visible entries, target pages,
|
|
the control-page browser API methods, and OPFS/session persistence capabilities
|
|
for machine files, session snapshots, and read-only status.
|
|
Use `createIniPanelLaunchApiSchema()`,
|
|
`linuxCncIniPanelLaunchApi.getLaunchApiSchema()`, or `manifestVersion` when an
|
|
outer shell needs to check launch manifest compatibility before consuming these
|
|
fields.
|
|
Use `isSupportedIniPanelLaunchApiManifest()` or
|
|
`linuxCncIniPanelLaunchApi.isSupportedLaunchApiManifest()` for a read-only
|
|
compatibility predicate before using a launch manifest.
|
|
Use `createIniPanelShellIntegrationSchema()`,
|
|
`createIniPanelShellIntegrationManifest()`,
|
|
`linuxCncIniPanelLaunchApi.getShellIntegrationSchema()`, or
|
|
`linuxCncIniPanelLaunchApi.getShellIntegrationManifest()` when an outer shell
|
|
needs one versioned read of pages, launcher links, launch API metadata,
|
|
control-page API metadata, OPFS/session persistence capabilities, and current
|
|
compatibility status. Use `isSupportedIniPanelShellIntegrationManifest()` when
|
|
the outer shell needs to check that integration manifest before consuming it.
|
|
Use `createIniPanelShellIntegrationReadiness()` or
|
|
`linuxCncIniPanelLaunchApi.getShellIntegrationReadiness()` when the outer shell
|
|
needs a read-only `ready`/`blocked` status, failed check names, API names, and
|
|
counts for pages, methods, and persistence capabilities before mounting any
|
|
embedded control page.
|
|
Use `createIniPanelShellIntegrationWorkflowPlan()` when the outer shell needs a
|
|
Node-testable read-only plan for the control-page target, required launch and
|
|
control-page API methods, readiness gate, and readonly status handoff fields
|
|
before opening a browser frame.
|
|
Use `createIniPanelShellSessionHandoffSummary()` when the outer shell needs one
|
|
read-only display summary of readiness, target page, persistence capabilities,
|
|
readonly status fields, handoff methods, and blocking reasons. Browser shells
|
|
can read the same summary through
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffSummary()`.
|
|
Use `createIniPanelShellSessionHandoffSummarySchema()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffSummarySchema()` for the
|
|
versioned summary shape, and `isSupportedIniPanelShellSessionHandoffSummary()`
|
|
or `linuxCncIniPanelLaunchApi.isSupportedShellSessionHandoffSummary()` before
|
|
consuming a summary from a browser shell.
|
|
Use `createIniPanelShellSessionHandoffCompatibilityReport()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffCompatibilityReport()` when an
|
|
outer shell needs display-ready diagnostics for schema support, missing fields,
|
|
api/version mismatches, and current blocking reasons before consuming the
|
|
handoff summary.
|
|
Use `createIniPanelShellSessionHandoffDisplayViewModel()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffDisplayViewModel()` when an
|
|
outer shell needs the same diagnostics as stable read-only label/value rows for
|
|
DOM display.
|
|
Use `createIniPanelShellSessionHandoffSnapshot()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffSnapshot()` when an outer shell
|
|
needs one read-only API read that includes readiness, handoff summary,
|
|
compatibility report, and display view-model together.
|
|
Use `createIniPanelShellSessionHandoffRenderState()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffRenderState()` when an outer
|
|
shell needs the snapshot compressed into launch-side DOM state with a status
|
|
line, stable rows, and `[data-handoff-shell]` phase/readiness flags. The launch
|
|
page renders `[data-handoff-status]` and `[data-handoff-rows]` from this helper
|
|
without adding control actions.
|
|
Use `createIniPanelShellSessionHandoffActionPlan()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffActionPlan()` when an outer
|
|
shell needs a read-only next-step description derived from the same snapshot:
|
|
target page, required readonly methods, blocking reasons, display rows, and
|
|
ready/blocked next step ids. The action plan describes what an outer shell can
|
|
do next; it does not execute actions or add controls.
|
|
Use `createIniPanelShellSessionHandoffChecklist()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffChecklist()` when an outer
|
|
shell needs the same handoff state as stable health rows for display: render
|
|
state, target page, load-session method, read-status method, blocking reasons,
|
|
display rows, and next step ids. The checklist is read-only and does not
|
|
execute the action plan.
|
|
Use `createIniPanelShellSessionHandoffPackage()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffPackage()` when an outer shell
|
|
needs one browser API read containing the launch/control method manifests,
|
|
snapshot, render-state, action-plan, and checklist. The package is a read-only
|
|
handoff artifact and does not execute action-plan steps.
|
|
Use `createIniPanelShellSessionHandoffPackageSchema()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffPackageSchema()` for the
|
|
versioned package shape, and `isSupportedIniPanelShellSessionHandoffPackage()`
|
|
or `linuxCncIniPanelLaunchApi.isSupportedShellSessionHandoffPackage()` before
|
|
consuming a package from a browser shell.
|
|
Use `createIniPanelShellSessionHandoffPackageReport()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffPackageReport()` when an outer
|
|
shell needs display-ready diagnostics for package schema support, missing
|
|
package fields, missing manifest fields, api/version mismatches, and checklist
|
|
blocking reasons.
|
|
Use `createIniPanelShellSessionHandoffPackageDisplayViewModel()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffPackageDisplayViewModel()`
|
|
when an outer shell needs the package report compressed into stable read-only
|
|
label/value rows for DOM display.
|
|
Use `createIniPanelShellSessionHandoffPackageRenderState()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffPackageRenderState()` when an
|
|
outer shell needs the package display view-model compressed into launch-side
|
|
DOM state. The launch page renders `[data-handoff-status]` and
|
|
`[data-handoff-rows]` from the package render-state so the first page shows
|
|
package-level schema/report status.
|
|
Use `createIniPanelShellSessionHandoffPackageMountState()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffPackageMountState()` when an
|
|
outer shell needs one read-only mount-state that combines package render-state,
|
|
the control-page target, required readonly methods, and the current
|
|
control-page session readiness snapshot.
|
|
Use `createIniPanelShellSessionHandoffPackageMountDisplayViewModel()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffPackageMountDisplayViewModel()`
|
|
when an outer shell needs mount-state checks as stable read-only label/value
|
|
rows. Use `createIniPanelShellSessionHandoffPackageMountRenderState()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffPackageMountRenderState()`
|
|
when those rows need a status line and `[data-handoff-shell]` style dataset
|
|
flags for DOM rendering. Use
|
|
`createIniPanelShellSessionHandoffMountDomContract()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffMountDomContract()` when an
|
|
outer shell needs the required mount/status/rows selectors, mount dataset keys,
|
|
row dataset keys, and render-result fields before rendering into shell-owned
|
|
DOM. Use `createIniPanelShellSessionHandoffMountDomReadiness()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffMountDomReadiness()` to check
|
|
that the required document and nodes exist before calling the renderer. Use
|
|
`mountIniPanelShellSessionHandoff()` or
|
|
`linuxCncIniPanelLaunchApi.mountShellSessionHandoff()` when an outer shell
|
|
needs one browser-side workflow result containing the contract, DOM readiness,
|
|
mount render-state, renderer result, and any mount error as data. Use
|
|
`mountIniPanelShellSessionHandoffFromControlPage()` or
|
|
`linuxCncIniPanelLaunchApi.mountShellSessionHandoffFromControlPage()` when an
|
|
outer shell has a control-page API or already-observed session-load state and
|
|
needs one read-only result containing the derived mount-state, mount display
|
|
view-model, mount render-state, and DOM mount workflow result. Use
|
|
`readIniPanelShellSessionHandoffStatusFromControlPage()` or
|
|
`linuxCncIniPanelLaunchApi.readShellSessionHandoffStatusFromControlPage()`
|
|
when an outer shell needs to read the control-page readonly status and verify
|
|
the expected handoff status fields as a structured ready/blocked result. Use
|
|
`createIniPanelShellSessionHandoffWorkflowSummary()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffWorkflowSummary()` when an
|
|
outer shell needs one stable end-to-end summary that combines mount workflow,
|
|
control-page mount workflow, readonly status result, machine-session
|
|
ready/blocked state, and current blocking reasons into display rows. Use
|
|
`createIniPanelShellSessionReadinessWorkflowReport()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionReadinessWorkflowReport()` when an
|
|
outer shell needs a machine-readable report for just the session readiness
|
|
phase, missing reasons, and stable rows. The workflow overview page exposes
|
|
the same report through
|
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewSessionReadinessReport()`.
|
|
Use `createIniPanelShellApiSurfaceInventory()` or
|
|
`linuxCncIniPanelLaunchApi.getShellApiSurfaceInventory()` when an outer shell
|
|
needs a machine-readable inventory of launch, control-page, workflow overview,
|
|
persistence capabilities, session readiness report rows, and persistence
|
|
summary rows. The workflow overview page exposes the same inventory through
|
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewApiSurfaceInventory()`.
|
|
When provided to `createIniPanelShellSessionHandoffWorkflowSummary()`, the
|
|
inventory is also rendered as the read-only `api-surface-inventory` workflow
|
|
summary row for browser overview pages and external shells. The same workflow
|
|
summary accepts `persistenceSummary` from
|
|
`createMachineSessionPersistenceSummary()` and renders it as the
|
|
`persistence-summary` row, so a shell overview can show API coverage and
|
|
OPFS/session persistence state together.
|
|
Use
|
|
`createIniPanelShellSessionHandoffWorkflowDisplayViewModel()` or
|
|
`linuxCncIniPanelLaunchApi.getShellSessionHandoffWorkflowDisplayViewModel()`
|
|
when an outer shell needs that end-to-end summary compressed into stable
|
|
`title`, `statusText`, `detailText`, and rows for direct display. Use
|
|
`createIniPanelShellSessionHandoffWorkflowRenderState()` or
|
|
`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
|
|
`createIniPanelShellWorkflowOverviewContract()` or
|
|
`linuxCncIniPanelLaunchApi.getWorkflowOverviewContract()` when an outer shell
|
|
needs the `workflow-overview.html` page href, browser API namespace, and method
|
|
names before embedding that page. Use
|
|
`createIniPanelShellWorkflowOverviewReadiness()` or
|
|
`linuxCncIniPanelLaunchApi.getWorkflowOverviewReadiness()` to check whether a
|
|
loaded workflow overview iframe exposes the expected read-only API. Use
|
|
`mountIniPanelShellWorkflowOverviewEmbedding()` or
|
|
`linuxCncIniPanelLaunchApi.mountWorkflowOverviewEmbedding()` when an outer
|
|
shell needs one structured embedding result containing contract readiness,
|
|
render-state, workflow overview mount result, and any mount error as data. The
|
|
workflow overview page also exposes
|
|
`linuxCncIniPanelWorkflowOverviewApi.mountWorkflowOverviewEmbedding()` for the
|
|
same read-only embedding path from inside the iframe. Use
|
|
`createIniPanelShellWorkflowOverviewEmbeddingReport()` or
|
|
`linuxCncIniPanelLaunchApi.getWorkflowOverviewEmbeddingReport()` when an outer
|
|
shell needs display-ready diagnostics for overview API readiness, missing
|
|
methods, embedding readiness, mount phase, render row count, and embedding
|
|
errors. The workflow overview page also exposes
|
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewEmbeddingReport()` for
|
|
the same report shape. Use
|
|
`createIniPanelShellWorkflowOverviewEmbeddingDisplayViewModel()` or
|
|
`linuxCncIniPanelLaunchApi.getWorkflowOverviewEmbeddingDisplayViewModel()` when
|
|
an outer shell needs that report compressed into stable `title`, `statusText`,
|
|
`detailText`, and read-only label/value rows for direct rendering. The workflow
|
|
overview page also exposes
|
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewEmbeddingDisplayViewModel()`.
|
|
Use `createIniPanelShellWorkflowOverviewEmbeddingRenderState()` or
|
|
`linuxCncIniPanelLaunchApi.getWorkflowOverviewEmbeddingRenderState()` when an
|
|
outer shell needs that display view-model compressed into stable `statusLine`,
|
|
`dataset`, and rows for a shared DOM renderer. The workflow overview page also
|
|
exposes `linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewEmbeddingRenderState()`.
|
|
Use `createIniPanelShellWorkflowOverviewEmbeddingDomContract()` or
|
|
`linuxCncIniPanelLaunchApi.getWorkflowOverviewEmbeddingDomContract()` when an
|
|
outer shell needs the required embedding report mount/status/rows selectors,
|
|
mount dataset keys, row dataset keys, and render-result fields before adding a
|
|
DOM renderer. The workflow overview page also exposes
|
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewEmbeddingDomContract()`.
|
|
Use `createIniPanelShellWorkflowOverviewEmbeddingDomReadiness()` or
|
|
`linuxCncIniPanelLaunchApi.getWorkflowOverviewEmbeddingDomReadiness()` to check
|
|
that the required document and embedding report DOM nodes exist before calling
|
|
a renderer. The workflow overview page also exposes
|
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewEmbeddingDomReadiness()`.
|
|
Use `renderIniPanelShellWorkflowOverviewEmbeddingState()` or
|
|
`linuxCncIniPanelLaunchApi.renderWorkflowOverviewEmbeddingState()` when an
|
|
outer shell needs to render an embedding report render-state into existing
|
|
mount/status/rows nodes and receive a structured read-only render result. The
|
|
workflow overview page also exposes
|
|
`linuxCncIniPanelWorkflowOverviewApi.renderWorkflowOverviewEmbeddingState()`.
|
|
Use `mountIniPanelShellWorkflowOverviewEmbeddingState()` or
|
|
`linuxCncIniPanelLaunchApi.mountWorkflowOverviewEmbeddingState()` when an outer
|
|
shell needs a non-throwing workflow result that combines embedding DOM
|
|
readiness, render-state, render result, and any render error as structured
|
|
data. The workflow overview page also exposes
|
|
`linuxCncIniPanelWorkflowOverviewApi.mountWorkflowOverviewEmbeddingState()`.
|
|
Use `createIniPanelShellWorkflowOverviewEmbeddingMountDisplayViewModel()` or
|
|
`linuxCncIniPanelLaunchApi.getWorkflowOverviewEmbeddingMountDisplayViewModel()`
|
|
when an outer shell needs that mount workflow result compressed into stable
|
|
`title`, `statusText`, `detailText`, and read-only label/value rows. The
|
|
workflow overview page also exposes
|
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewEmbeddingMountDisplayViewModel()`.
|
|
Use `createIniPanelShellWorkflowOverviewEmbeddingMountRenderState()` or
|
|
`linuxCncIniPanelLaunchApi.getWorkflowOverviewEmbeddingMountRenderState()` when
|
|
an outer shell needs that mount display view-model compressed into stable
|
|
`statusLine`, `dataset`, and rows for a shared DOM renderer. The workflow
|
|
overview page also exposes
|
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewEmbeddingMountRenderState()`.
|
|
Use `createIniPanelShellWorkflowOverviewEmbeddingMountDomContract()` or
|
|
`linuxCncIniPanelLaunchApi.getWorkflowOverviewEmbeddingMountDomContract()` when
|
|
an outer shell needs the required mount/status/rows selectors, mount dataset
|
|
keys, row dataset keys, and render-result fields before rendering the mount
|
|
render-state. The workflow overview page also exposes
|
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewEmbeddingMountDomContract()`.
|
|
Use `createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness()` or
|
|
`linuxCncIniPanelLaunchApi.getWorkflowOverviewEmbeddingMountDomReadiness()` to
|
|
check that the required document and mount render-state DOM nodes exist before
|
|
calling a renderer. The workflow overview page also exposes
|
|
`linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewEmbeddingMountDomReadiness()`.
|
|
Use `renderIniPanelShellWorkflowOverviewEmbeddingMountState()` or
|
|
`linuxCncIniPanelLaunchApi.renderWorkflowOverviewEmbeddingMountState()` when an
|
|
outer shell needs to render a mount render-state into existing mount/status/rows
|
|
nodes and receive a structured read-only render result. The workflow overview
|
|
page also exposes
|
|
`linuxCncIniPanelWorkflowOverviewApi.renderWorkflowOverviewEmbeddingMountState()`.
|
|
Use `mountIniPanelShellWorkflowOverviewEmbeddingMountState()` or
|
|
`linuxCncIniPanelLaunchApi.mountWorkflowOverviewEmbeddingMountState()` when an
|
|
outer shell needs a non-throwing mount workflow result for the mount render-state
|
|
DOM. The workflow overview page also exposes
|
|
`linuxCncIniPanelWorkflowOverviewApi.mountWorkflowOverviewEmbeddingMountState()`.
|
|
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 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,
|
|
open the control page target, mount waiting and ready mount-state into an
|
|
external shell-owned `[data-external-shell-mount]` DOM region through the shared
|
|
mount workflows, then read and validate readonly machine-session status through
|
|
the shared status workflow.
|
|
|
|
The control-page refresh workflow lives in
|
|
`runtime/ui/ini-panel/control-page-refresh-workflow.js`. Use
|
|
`refreshMachineSessionControlPage()` when an outer shell needs a structured
|
|
refresh result with `phase`, `statusText`, `view`, `renderResult`, and `error`.
|
|
`controlPageStatusText()` formats the already-observed panel status fields for
|
|
the read-only status line, and `createControlPageRefreshState()` is the stable
|
|
state-shape helper used by the workflow.
|
|
|
|
The control-page session workflow lives in
|
|
`runtime/ui/ini-panel/control-page-session-workflow.js`. Use
|
|
`loadMachineSessionForControlPageWorkflow()` when an outer shell needs a
|
|
read-only readiness snapshot for the embedded panel API, machine-session
|
|
ready/blocked state, and first control view.
|
|
`createControlPageSessionLoadState()` is the stable state-shape helper for
|
|
`waiting-panel`, `waiting-api`, `waiting-session`, `ready`, and `error` phases.
|
|
|
|
## Boundary
|
|
|
|
The entry shell only links pages and renders already-observed panel state. It
|
|
does not parse G-code, infer canonical events, or implement LinuxCNC-owned
|
|
tool, parameter, planner, or kinematics behavior.
|
|
|
|
Release validation for this surface is covered by `verify_ui_node_smokes.sh`,
|
|
`verify_ini_panel_browser.sh`, and the project handoff docs smoke
|
|
`verify_project_release_handoff_docs.sh`.
|