暴露 workflow overview artifact summary 浏览器 API
This commit is contained in:
@@ -9,7 +9,7 @@ turn-by-turn continuation notes and next-batch execution records.
|
||||
## Current Status
|
||||
|
||||
- Active continuation file: `text14.txt`
|
||||
- Latest completed batch: project release readiness artifact validation summary view-model API
|
||||
- Latest completed batch: workflow overview release artifact validation summary browser API
|
||||
- Latest relevant commit: use `git log -1 --oneline` after each committed batch
|
||||
- Working tree at tracker creation: clean
|
||||
- Required policy: LinuxCNC remains the only CNC semantic source
|
||||
@@ -44,7 +44,7 @@ The project is complete for the current scope when all of the following are true
|
||||
| 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 `createMachineSessionPersistenceSummary()`, the UI exposes `getMachineSessionPersistenceSummary()`, 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, project release gate manifest/result matrix/action-plan/readiness summary view-model, project release readiness report/artifact validation summary plus URL loading workflow, INI panel entry/launcher/control-page/shell/workflow overview helpers, the session readiness workflow report, and the shell API surface inventory 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, fetch, validate, and report OPFS/session readiness, OPFS/session persistence summary, release readiness artifact validation/rendering, and API surface inventory 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, fetch, validate, summarize, and report OPFS/session readiness, OPFS/session persistence summary, release readiness artifact validation/rendering, and API surface inventory 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. |
|
||||
| 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. |
|
||||
| Documentation/release gate | Stable for current scope | `docs/project-release-handoff.md` links README, panel entry, SDK, OPFS/session, sim-config, host/runtime, source reuse, drift, tracker acceptance paths, and the machine-readable release readiness report/artifact. |
|
||||
|
||||
68
text14.txt
68
text14.txt
@@ -3308,6 +3308,74 @@ ui_node_smokes=ok
|
||||
继续只做实质能力推进。优先选择可执行 gate、SDK/API surface、或真实 browser workflow;
|
||||
不要做只整理断言或局部常量化的批次。
|
||||
|
||||
四十八、2026-06-16 继续执行记录:workflow overview release artifact validation summary browser API
|
||||
|
||||
本轮继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”推进,
|
||||
把 release readiness artifact validation summary 从 SDK helper 暴露到 INI workflow overview iframe 和
|
||||
launch shell API。外部 browser shell 现在可以通过 workflow overview API 直接获取 artifact validation
|
||||
summary statusLine 和 dashboard rows,不需要导入 SDK 私有路径或解释 validation flags。
|
||||
|
||||
完成内容:
|
||||
|
||||
- `runtime/ui/ini-panel/ui-shell.js` 新增并导出:
|
||||
- `createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel()`;
|
||||
- `createIniPanelShellWorkflowOverviewContract().methodNames` 新增:
|
||||
- `getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel`;
|
||||
- `createIniPanelLaunchApiManifest().methods` 新增同名 discovery method;
|
||||
- `createIniPanelShellViewModel()` 暴露:
|
||||
- `createWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel`;
|
||||
- `workflow-overview.html` 暴露:
|
||||
- `window.linuxCncIniPanelWorkflowOverviewApi.getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel()`;
|
||||
- `launch.html` 暴露:
|
||||
- `window.linuxCncIniPanelLaunchApi.getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel()`;
|
||||
- `runtime/sdk/src/index.js` re-export 新 UI helper;
|
||||
- Browser smoke 不再手写旧 release artifact JSON,改为读取
|
||||
`tests/fixtures/project-release-readiness-ready.json`;
|
||||
- `ini_panel_workflow_overview_smoke.html` 覆盖 workflow overview iframe summary API;
|
||||
- `ini_panel_shell_integration_workflow_smoke.html` 覆盖 launch API 与 workflow overview iframe API summary 一致;
|
||||
- `release_artifact_url_workflow_smoke.html` 同步 enhanced validation rows;
|
||||
- UI Node smoke、launch manifest smoke、shell integration manifest smoke、entry docs smoke、SDK surface smoke
|
||||
覆盖新 helper/API;
|
||||
- `docs/panel-entry.md`、`runtime/sdk/README.md`、`PROJECT_COMPLETION_TRACKER.md` 同步新 browser/API 能力;
|
||||
- 未新增控制按钮;
|
||||
- 未在 browser/API 中执行 release gate 或 shell command;
|
||||
- 未解析 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。
|
||||
|
||||
验证已通过(先行 targeted):
|
||||
|
||||
```bash
|
||||
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
|
||||
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
|
||||
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
|
||||
```
|
||||
|
||||
关键输出:
|
||||
|
||||
```text
|
||||
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
|
||||
ui_node_smokes=ok
|
||||
browser_ini_shell_integration_workflow_smoke=ok
|
||||
browser_release_artifact_url_workflow_smoke=ok
|
||||
```
|
||||
|
||||
下一步工作计划:
|
||||
|
||||
继续只做实质能力推进。优先选择可执行 gate、SDK/API surface、或真实 browser workflow;
|
||||
不要做只整理断言或局部常量化的批次。
|
||||
|
||||
四十七、2026-06-16 继续执行记录:project release readiness artifact validation summary view-model API
|
||||
|
||||
本轮继续按“每批必须产出可调用 API、可验证 workflow、可执行 gate、或真实 UI/browser 能力”推进,
|
||||
|
||||
@@ -167,6 +167,10 @@ 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 `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()`,
|
||||
|
||||
@@ -45,6 +45,7 @@ import {
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomReadiness,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactRenderState,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel,
|
||||
createLinuxCncIniSdk,
|
||||
createLinuxCncInterpSdk,
|
||||
createMachineSessionPersistenceDisplayViewModel,
|
||||
@@ -301,6 +302,7 @@ for external browser shells:
|
||||
optionally mount the resulting render-state into caller-owned DOM.
|
||||
`createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel()`,
|
||||
`createIniPanelShellWorkflowOverviewReleaseReadinessArtifactRenderState()`,
|
||||
`createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel()`,
|
||||
`createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract()`,
|
||||
`createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomReadiness()`,
|
||||
`renderIniPanelShellWorkflowOverviewReleaseReadinessArtifactState()`, and
|
||||
|
||||
@@ -102,6 +102,7 @@ export {
|
||||
createIniPanelShellWorkflowOverviewEmbeddingMountRenderState,
|
||||
createIniPanelShellWorkflowOverviewEmbeddingRenderState,
|
||||
createIniPanelShellWorkflowOverviewEmbeddingReport,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomReadiness,
|
||||
|
||||
@@ -300,6 +300,9 @@
|
||||
loadWorkflowOverviewReleaseReadinessArtifactUrl: (options) => (
|
||||
shellViewModel.loadWorkflowOverviewReleaseReadinessArtifactUrl(options)
|
||||
),
|
||||
getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel: (validation) => (
|
||||
shellViewModel.createWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel(validation)
|
||||
),
|
||||
getWorkflowOverviewEmbeddingReport: (embeddingResult, contract) => (
|
||||
shellViewModel.createWorkflowOverviewEmbeddingReport(embeddingResult, contract)
|
||||
),
|
||||
|
||||
@@ -33,6 +33,7 @@ import {
|
||||
} from "./panel-state-summary.js";
|
||||
import {
|
||||
createProjectReleaseReadinessArtifactValidation,
|
||||
createProjectReleaseReadinessArtifactValidationSummaryViewModel,
|
||||
parseProjectReleaseReadinessArtifactJson,
|
||||
} from "../../sdk/src/project-release-readiness.js";
|
||||
export {
|
||||
@@ -78,6 +79,7 @@ export {
|
||||
} from "./panel-state-summary.js";
|
||||
export {
|
||||
createProjectReleaseReadinessArtifactValidation,
|
||||
createProjectReleaseReadinessArtifactValidationSummaryViewModel,
|
||||
parseProjectReleaseReadinessArtifactJson,
|
||||
} from "../../sdk/src/project-release-readiness.js";
|
||||
|
||||
@@ -195,6 +197,7 @@ export function createIniPanelLaunchApiManifest(entries = getVisibleIniPanelEntr
|
||||
"getWorkflowOverviewReadiness",
|
||||
"mountWorkflowOverviewEmbedding",
|
||||
"loadWorkflowOverviewReleaseReadinessArtifactUrl",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel",
|
||||
"getWorkflowOverviewEmbeddingReport",
|
||||
"getWorkflowOverviewEmbeddingDisplayViewModel",
|
||||
"getWorkflowOverviewEmbeddingRenderState",
|
||||
@@ -1876,6 +1879,7 @@ export function createIniPanelShellWorkflowOverviewContract() {
|
||||
"getWorkflowOverviewPersistenceSummary",
|
||||
"validateWorkflowOverviewReleaseReadinessArtifactJson",
|
||||
"loadWorkflowOverviewReleaseReadinessArtifactUrl",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactDisplayViewModel",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactRenderState",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactDomContract",
|
||||
@@ -2058,6 +2062,14 @@ export function createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDispl
|
||||
};
|
||||
}
|
||||
|
||||
export function createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel(
|
||||
validation = validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson("{}"),
|
||||
) {
|
||||
return createProjectReleaseReadinessArtifactValidationSummaryViewModel(
|
||||
validation?.validation ?? validation,
|
||||
);
|
||||
}
|
||||
|
||||
export function createIniPanelShellWorkflowOverviewReleaseReadinessArtifactRenderState(
|
||||
displayViewModel = createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel(),
|
||||
) {
|
||||
@@ -3270,6 +3282,8 @@ export function createIniPanelShellViewModel(entries = getVisibleIniPanelEntries
|
||||
mountShellSessionHandoffWorkflow: mountIniPanelShellSessionHandoffWorkflow,
|
||||
createWorkflowOverviewContract: createIniPanelShellWorkflowOverviewContract,
|
||||
createWorkflowOverviewReadiness: createIniPanelShellWorkflowOverviewReadiness,
|
||||
createWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel:
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel,
|
||||
loadWorkflowOverviewReleaseReadinessArtifactUrl:
|
||||
loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl,
|
||||
mountWorkflowOverviewEmbedding: mountIniPanelShellWorkflowOverviewEmbedding,
|
||||
|
||||
@@ -107,6 +107,7 @@
|
||||
mountIniPanelShellWorkflowOverviewEmbeddingMountState,
|
||||
validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson,
|
||||
loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactRenderState,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract,
|
||||
@@ -147,6 +148,9 @@
|
||||
loadWorkflowOverviewReleaseReadinessArtifactUrl: (options) => (
|
||||
loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl(options)
|
||||
),
|
||||
getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel: (validation) => (
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel(validation)
|
||||
),
|
||||
getWorkflowOverviewReleaseReadinessArtifactDisplayViewModel: (validation) => (
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel(validation)
|
||||
),
|
||||
|
||||
@@ -116,6 +116,7 @@ TOOL_TABLE = browser-shell-tool.tbl
|
||||
!launchApi?.getWorkflowOverviewReadiness ||
|
||||
!launchApi?.mountWorkflowOverviewEmbedding ||
|
||||
!launchApi?.loadWorkflowOverviewReleaseReadinessArtifactUrl ||
|
||||
!launchApi?.getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel ||
|
||||
!launchApi?.getWorkflowOverviewEmbeddingReport ||
|
||||
!launchApi?.getWorkflowOverviewEmbeddingDisplayViewModel ||
|
||||
!launchApi?.getWorkflowOverviewEmbeddingRenderState ||
|
||||
@@ -314,39 +315,18 @@ TOOL_TABLE = browser-shell-tool.tbl
|
||||
const workflowOverviewReadiness = launchApi.getWorkflowOverviewReadiness({
|
||||
overviewApi: workflowOverviewApi,
|
||||
});
|
||||
const workflowOverviewReleaseArtifactJson = await fetch("../../tests/fixtures/project-release-readiness-ready.json")
|
||||
.then((response) => response.text());
|
||||
const workflowOverviewReleaseArtifactValidation = workflowOverviewApi
|
||||
.validateWorkflowOverviewReleaseReadinessArtifactJson(JSON.stringify({
|
||||
apiName: "project-release-readiness-report",
|
||||
reportVersion: 1,
|
||||
phase: "ready",
|
||||
ready: true,
|
||||
missing: [],
|
||||
releaseGate: {
|
||||
command: "wasm-port/tests/host/verify_project_release_gate.sh",
|
||||
passed: true,
|
||||
expectedOutput: "project_release_gate=ok",
|
||||
},
|
||||
simConfigInventory: {
|
||||
executed: 28,
|
||||
passed: 28,
|
||||
skipped: 131,
|
||||
unexpectedFail: 0,
|
||||
},
|
||||
blockedRuntimeFamilies: [
|
||||
"L4-USER-M-PROCESS",
|
||||
"L4-TOOL-DB",
|
||||
"L4-PYTHON-REMAP",
|
||||
],
|
||||
promotedBlockedFamilies: [],
|
||||
gates: Array.from({ length: 10 }, (_, index) => ({ id: `gate-${index}`, passed: true })),
|
||||
rows: [
|
||||
{
|
||||
id: "project-release-gate",
|
||||
label: "Project release gate",
|
||||
value: "passed",
|
||||
},
|
||||
],
|
||||
}));
|
||||
.validateWorkflowOverviewReleaseReadinessArtifactJson(workflowOverviewReleaseArtifactJson);
|
||||
const workflowOverviewReleaseArtifactSummary = workflowOverviewApi
|
||||
.getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel(
|
||||
workflowOverviewReleaseArtifactValidation,
|
||||
);
|
||||
const launchReleaseArtifactSummary = launchApi
|
||||
.getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel(
|
||||
workflowOverviewReleaseArtifactValidation,
|
||||
);
|
||||
const workflowOverviewReleaseArtifactDisplay = workflowOverviewApi
|
||||
.getWorkflowOverviewReleaseReadinessArtifactDisplayViewModel(workflowOverviewReleaseArtifactValidation);
|
||||
const workflowOverviewReleaseArtifactRenderState = workflowOverviewApi
|
||||
@@ -463,6 +443,16 @@ TOOL_TABLE = browser-shell-tool.tbl
|
||||
true,
|
||||
"shell workflow overview release artifact validation readiness",
|
||||
);
|
||||
assertEqual(
|
||||
workflowOverviewReleaseArtifactSummary.statusLine,
|
||||
"Ready: Artifact evidence complete",
|
||||
"shell workflow overview release artifact validation summary",
|
||||
);
|
||||
assertEqual(
|
||||
launchReleaseArtifactSummary.statusLine,
|
||||
workflowOverviewReleaseArtifactSummary.statusLine,
|
||||
"launch release artifact validation summary",
|
||||
);
|
||||
assertEqual(
|
||||
workflowOverviewReleaseArtifactDomReadiness.ready,
|
||||
true,
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
!workflowApi?.getWorkflowOverviewPersistenceSummary ||
|
||||
!workflowApi?.validateWorkflowOverviewReleaseReadinessArtifactJson ||
|
||||
!workflowApi?.loadWorkflowOverviewReleaseReadinessArtifactUrl ||
|
||||
!workflowApi?.getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel ||
|
||||
!workflowApi?.getWorkflowOverviewReleaseReadinessArtifactDisplayViewModel ||
|
||||
!workflowApi?.getWorkflowOverviewReleaseReadinessArtifactRenderState ||
|
||||
!workflowApi?.getWorkflowOverviewReleaseReadinessArtifactDomContract ||
|
||||
@@ -70,38 +71,13 @@
|
||||
const sessionReadinessReport = workflowApi.getWorkflowOverviewSessionReadinessReport();
|
||||
const apiSurfaceInventory = workflowApi.getWorkflowOverviewApiSurfaceInventory();
|
||||
const persistenceSummary = workflowApi.getWorkflowOverviewPersistenceSummary();
|
||||
const releaseArtifactValidation = workflowApi.validateWorkflowOverviewReleaseReadinessArtifactJson(JSON.stringify({
|
||||
apiName: "project-release-readiness-report",
|
||||
reportVersion: 1,
|
||||
phase: "ready",
|
||||
ready: true,
|
||||
missing: [],
|
||||
releaseGate: {
|
||||
command: "wasm-port/tests/host/verify_project_release_gate.sh",
|
||||
passed: true,
|
||||
expectedOutput: "project_release_gate=ok",
|
||||
},
|
||||
simConfigInventory: {
|
||||
executed: 28,
|
||||
passed: 28,
|
||||
skipped: 131,
|
||||
unexpectedFail: 0,
|
||||
},
|
||||
blockedRuntimeFamilies: [
|
||||
"L4-USER-M-PROCESS",
|
||||
"L4-TOOL-DB",
|
||||
"L4-PYTHON-REMAP",
|
||||
],
|
||||
promotedBlockedFamilies: [],
|
||||
gates: Array.from({ length: 10 }, (_, index) => ({ id: `gate-${index}`, passed: true })),
|
||||
rows: [
|
||||
{
|
||||
id: "project-release-gate",
|
||||
label: "Project release gate",
|
||||
value: "passed",
|
||||
},
|
||||
],
|
||||
}));
|
||||
const releaseArtifactJson = await fetch("../../tests/fixtures/project-release-readiness-ready.json")
|
||||
.then((response) => response.text());
|
||||
const releaseArtifactValidation = workflowApi.validateWorkflowOverviewReleaseReadinessArtifactJson(
|
||||
releaseArtifactJson,
|
||||
);
|
||||
const releaseArtifactValidationSummary = workflowApi
|
||||
.getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel(releaseArtifactValidation);
|
||||
const releaseArtifactDisplay = workflowApi.getWorkflowOverviewReleaseReadinessArtifactDisplayViewModel(
|
||||
releaseArtifactValidation,
|
||||
);
|
||||
@@ -162,6 +138,11 @@
|
||||
);
|
||||
assertEqual(releaseArtifactValidation.ready, true, "workflow overview release artifact validation readiness");
|
||||
assertEqual(releaseArtifactValidation.gateCount, 10, "workflow overview release artifact validation gates");
|
||||
assertEqual(
|
||||
releaseArtifactValidationSummary.statusLine,
|
||||
"Ready: Artifact evidence complete",
|
||||
"workflow overview release artifact validation summary",
|
||||
);
|
||||
assertEqual(releaseArtifactDisplay.statusText, "Ready", "workflow overview release artifact display status");
|
||||
assertEqual(releaseArtifactRenderState.statusLine, "Ready: No blocking reasons", "workflow overview release artifact render status");
|
||||
assertEqual(
|
||||
@@ -278,9 +259,9 @@
|
||||
});
|
||||
assertEqual(releaseArtifactDomReadinessReady.ready, true, "workflow overview release artifact DOM readiness");
|
||||
assertEqual(releaseArtifactRenderResult.rendered, true, "workflow overview release artifact render result");
|
||||
assertEqual(releaseArtifactRenderResult.rowCount, 3, "workflow overview release artifact render row count");
|
||||
assertEqual(releaseArtifactRenderResult.rowCount, 6, "workflow overview release artifact render row count");
|
||||
assertEqual(releaseArtifactMountResult.ready, true, "workflow overview release artifact mount readiness");
|
||||
assertEqual(releaseArtifactMountResult.renderResult.rowCount, 3, "workflow overview release artifact mount rows");
|
||||
assertEqual(releaseArtifactMountResult.renderResult.rowCount, 6, "workflow overview release artifact mount rows");
|
||||
assertEqual(releaseArtifactUrlWorkflow.ready, true, "workflow overview release artifact URL workflow readiness");
|
||||
assertEqual(releaseArtifactUrlWorkflow.httpStatus, 200, "workflow overview release artifact URL workflow status");
|
||||
assertEqual(releaseArtifactUrlWorkflow.mountResult.ready, true, "workflow overview release artifact URL workflow mount");
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
assertEqual(readyWorkflow.validation.gateCount, 10, "ready workflow gate count");
|
||||
assertEqual(readyWorkflow.renderState.statusLine, "Ready: No blocking reasons", "ready workflow status");
|
||||
assertEqual(readyWorkflow.mountResult.ready, true, "ready workflow mount readiness");
|
||||
assertEqual(readyWorkflow.mountResult.renderResult.rowCount, 3, "ready workflow mount rows");
|
||||
assertEqual(readyWorkflow.mountResult.renderResult.rowCount, 6, "ready workflow mount rows");
|
||||
assertEqual(
|
||||
releaseArtifactStatus.textContent,
|
||||
"Ready: No blocking reasons",
|
||||
|
||||
@@ -26,6 +26,7 @@ import {
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomReadiness,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactRenderState,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel,
|
||||
createLinuxCncIniSdk,
|
||||
createLinuxCncInterpSdk,
|
||||
createMachineSessionSnapshotPayload,
|
||||
@@ -165,6 +166,10 @@ const requiredExports = [
|
||||
"createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness",
|
||||
createIniPanelShellWorkflowOverviewEmbeddingMountDomReadiness,
|
||||
],
|
||||
[
|
||||
"createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel",
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel,
|
||||
],
|
||||
[
|
||||
"createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel",
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel,
|
||||
|
||||
@@ -164,6 +164,7 @@ const requiredShellExports = [
|
||||
"mountIniPanelShellWorkflowOverviewEmbeddingMountState",
|
||||
"validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson",
|
||||
"loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl",
|
||||
"createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel",
|
||||
"createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel",
|
||||
"createIniPanelShellWorkflowOverviewReleaseReadinessArtifactRenderState",
|
||||
"createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract",
|
||||
|
||||
@@ -83,6 +83,7 @@ assert.deepEqual(manifest, {
|
||||
"getWorkflowOverviewReadiness",
|
||||
"mountWorkflowOverviewEmbedding",
|
||||
"loadWorkflowOverviewReleaseReadinessArtifactUrl",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel",
|
||||
"getWorkflowOverviewEmbeddingReport",
|
||||
"getWorkflowOverviewEmbeddingDisplayViewModel",
|
||||
"getWorkflowOverviewEmbeddingRenderState",
|
||||
@@ -243,6 +244,7 @@ assert.match(launchText, /\bgetWorkflowOverviewContract\b/);
|
||||
assert.match(launchText, /\bgetWorkflowOverviewReadiness\b/);
|
||||
assert.match(launchText, /\bmountWorkflowOverviewEmbedding\b/);
|
||||
assert.match(launchText, /\bloadWorkflowOverviewReleaseReadinessArtifactUrl\b/);
|
||||
assert.match(launchText, /\bgetWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel\b/);
|
||||
assert.match(launchText, /\bgetWorkflowOverviewEmbeddingReport\b/);
|
||||
assert.match(launchText, /\bgetWorkflowOverviewEmbeddingDisplayViewModel\b/);
|
||||
assert.match(launchText, /\bgetWorkflowOverviewEmbeddingRenderState\b/);
|
||||
|
||||
@@ -53,6 +53,7 @@ import {
|
||||
mountIniPanelShellWorkflowOverviewEmbeddingMountState,
|
||||
validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson,
|
||||
loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactRenderState,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract,
|
||||
@@ -187,7 +188,7 @@ assert.deepEqual(readiness, {
|
||||
counts: {
|
||||
pages: 3,
|
||||
launcherLinks: 3,
|
||||
launchMethods: 59,
|
||||
launchMethods: 60,
|
||||
controlPageMethods: 11,
|
||||
persistenceCapabilities: 3,
|
||||
},
|
||||
@@ -250,7 +251,7 @@ assert.deepEqual(handoffSummary, {
|
||||
counts: {
|
||||
pages: 3,
|
||||
launcherLinks: 3,
|
||||
launchMethods: 59,
|
||||
launchMethods: 60,
|
||||
controlPageMethods: 11,
|
||||
persistenceCapabilities: 3,
|
||||
},
|
||||
@@ -790,6 +791,7 @@ assert.deepEqual(createIniPanelShellWorkflowOverviewContract(), {
|
||||
"getWorkflowOverviewPersistenceSummary",
|
||||
"validateWorkflowOverviewReleaseReadinessArtifactJson",
|
||||
"loadWorkflowOverviewReleaseReadinessArtifactUrl",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactDisplayViewModel",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactRenderState",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactDomContract",
|
||||
@@ -835,6 +837,7 @@ assert.equal(typeof renderIniPanelShellWorkflowOverviewEmbeddingMountState, "fun
|
||||
assert.equal(typeof mountIniPanelShellWorkflowOverviewEmbeddingMountState, "function");
|
||||
assert.equal(typeof validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson, "function");
|
||||
assert.equal(typeof loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl, "function");
|
||||
assert.equal(typeof createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel, "function");
|
||||
assert.equal(typeof createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel, "function");
|
||||
assert.equal(typeof createIniPanelShellWorkflowOverviewReleaseReadinessArtifactRenderState, "function");
|
||||
assert.equal(typeof createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract, "function");
|
||||
@@ -845,6 +848,10 @@ assert.equal(
|
||||
validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson("{}").apiName,
|
||||
"ini-panel-shell-workflow-overview-release-readiness-artifact-validation",
|
||||
);
|
||||
assert.equal(
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel().phase,
|
||||
"blocked",
|
||||
);
|
||||
assert.deepEqual(
|
||||
createIniPanelShellWorkflowOverviewReadiness({
|
||||
overviewApi: {
|
||||
@@ -859,6 +866,7 @@ assert.deepEqual(
|
||||
"getWorkflowOverviewPersistenceSummary",
|
||||
"validateWorkflowOverviewReleaseReadinessArtifactJson",
|
||||
"loadWorkflowOverviewReleaseReadinessArtifactUrl",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactDisplayViewModel",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactRenderState",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactDomContract",
|
||||
@@ -1284,7 +1292,7 @@ assert.deepEqual(createIniPanelShellIntegrationReadiness(blockedManifest), {
|
||||
counts: {
|
||||
pages: 3,
|
||||
launcherLinks: 3,
|
||||
launchMethods: 59,
|
||||
launchMethods: 60,
|
||||
controlPageMethods: 11,
|
||||
persistenceCapabilities: 3,
|
||||
},
|
||||
|
||||
@@ -58,6 +58,7 @@ import {
|
||||
mountIniPanelShellWorkflowOverviewEmbeddingMountState,
|
||||
validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson,
|
||||
loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactRenderState,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract,
|
||||
@@ -689,6 +690,7 @@ assert.deepEqual(shellViewModel.shellWorkflowOverviewContract, {
|
||||
"getWorkflowOverviewPersistenceSummary",
|
||||
"validateWorkflowOverviewReleaseReadinessArtifactJson",
|
||||
"loadWorkflowOverviewReleaseReadinessArtifactUrl",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactDisplayViewModel",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactRenderState",
|
||||
"getWorkflowOverviewReleaseReadinessArtifactDomContract",
|
||||
@@ -1303,6 +1305,19 @@ assert.equal(
|
||||
assert.equal(releaseArtifactValidation.ready, true);
|
||||
assert.equal(releaseArtifactValidation.validation.ready, true);
|
||||
assert.equal(releaseArtifactValidation.gateCount, 10);
|
||||
const releaseArtifactValidationSummary =
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel(
|
||||
releaseArtifactValidation,
|
||||
);
|
||||
assert.equal(
|
||||
releaseArtifactValidationSummary.apiName,
|
||||
"project-release-readiness-artifact-validation-summary-view-model",
|
||||
);
|
||||
assert.equal(releaseArtifactValidationSummary.statusLine, "Ready: Artifact evidence complete");
|
||||
assert.equal(
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel().phase,
|
||||
"blocked",
|
||||
);
|
||||
const releaseArtifactDisplay = createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDisplayViewModel(
|
||||
releaseArtifactValidation,
|
||||
);
|
||||
@@ -1428,6 +1443,7 @@ const workflowOverviewApi = {
|
||||
getWorkflowOverviewPersistenceSummary: () => shellViewModel.shellPersistenceSummary,
|
||||
validateWorkflowOverviewReleaseReadinessArtifactJson: () => ({ ready: true }),
|
||||
loadWorkflowOverviewReleaseReadinessArtifactUrl: loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl,
|
||||
getWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel: () => releaseArtifactValidationSummary,
|
||||
getWorkflowOverviewReleaseReadinessArtifactDisplayViewModel: () => releaseArtifactDisplay,
|
||||
getWorkflowOverviewReleaseReadinessArtifactRenderState: () => releaseArtifactRenderState,
|
||||
getWorkflowOverviewReleaseReadinessArtifactDomContract: createIniPanelShellWorkflowOverviewReleaseReadinessArtifactDomContract,
|
||||
|
||||
Reference in New Issue
Block a user