31 KiB
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:
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. The URL
workflow result includes validationSummaryViewModel so callers can show
stable validation status and rows from the same fetch.
Use createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowSummaryViewModel() or
linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewReleaseReadinessArtifactUrlWorkflowSummaryViewModel()
when the shell needs one stable status line and dashboard rows for the whole
artifact URL fetch/validate/render/mount workflow.
Use createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel() or
linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel()
when the shell needs stable artifact validation status text and dashboard rows
without interpreting validation flags itself.
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.