新增 INI 面板 session readiness workflow report

This commit is contained in:
2026-06-16 07:04:04 +08:00
parent eb50e6b455
commit ce3d08ef61
12 changed files with 225 additions and 5 deletions

View File

@@ -70,6 +70,7 @@ assert.deepEqual(manifest, {
"mountShellSessionHandoffFromControlPage",
"readShellSessionHandoffStatusFromControlPage",
"getShellSessionHandoffWorkflowSummary",
"getShellSessionReadinessWorkflowReport",
"getShellSessionHandoffWorkflowDisplayViewModel",
"getShellSessionHandoffWorkflowRenderState",
"getShellSessionHandoffWorkflowDomContract",
@@ -226,6 +227,7 @@ assert.match(launchText, /\bmountShellSessionHandoff\b/);
assert.match(launchText, /\bmountShellSessionHandoffFromControlPage\b/);
assert.match(launchText, /\breadShellSessionHandoffStatusFromControlPage\b/);
assert.match(launchText, /\bgetShellSessionHandoffWorkflowSummary\b/);
assert.match(launchText, /\bgetShellSessionReadinessWorkflowReport\b/);
assert.match(launchText, /\bgetShellSessionHandoffWorkflowDisplayViewModel\b/);
assert.match(launchText, /\bgetShellSessionHandoffWorkflowRenderState\b/);
assert.match(launchText, /\bgetShellSessionHandoffWorkflowDomContract\b/);

View File

@@ -29,6 +29,7 @@ import {
mountIniPanelShellSessionHandoffFromControlPage,
readIniPanelShellSessionHandoffStatusFromControlPage,
createIniPanelShellSessionHandoffWorkflowSummary,
createIniPanelShellSessionReadinessWorkflowReport,
createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
createIniPanelShellSessionHandoffWorkflowRenderState,
createIniPanelShellSessionHandoffWorkflowDomContract,
@@ -177,7 +178,7 @@ assert.deepEqual(readiness, {
counts: {
pages: 3,
launcherLinks: 3,
launchMethods: 55,
launchMethods: 56,
controlPageMethods: 11,
persistenceCapabilities: 3,
},
@@ -240,7 +241,7 @@ assert.deepEqual(handoffSummary, {
counts: {
pages: 3,
launcherLinks: 3,
launchMethods: 55,
launchMethods: 56,
controlPageMethods: 11,
persistenceCapabilities: 3,
},
@@ -745,6 +746,7 @@ assert.equal(
createIniPanelShellSessionHandoffWorkflowSummary().phase,
"blocked",
);
assert.equal(createIniPanelShellSessionReadinessWorkflowReport().phase, "blocked");
assert.equal(
createIniPanelShellSessionHandoffWorkflowDisplayViewModel().phase,
"blocked",
@@ -773,6 +775,7 @@ assert.deepEqual(createIniPanelShellWorkflowOverviewContract(), {
"getWorkflowOverviewRenderState",
"getWorkflowOverviewDisplayViewModel",
"getWorkflowOverviewSummary",
"getWorkflowOverviewSessionReadinessReport",
"getWorkflowOverviewDomContract",
"getWorkflowOverviewDomReadiness",
"renderWorkflowOverview",
@@ -814,6 +817,7 @@ assert.deepEqual(
createIniPanelShellWorkflowOverviewReadiness({
overviewApi: {
getWorkflowOverviewRenderState: () => handoffPackageRenderState,
getWorkflowOverviewSessionReadinessReport: () => createIniPanelShellSessionReadinessWorkflowReport(),
},
}).missing,
[
@@ -1238,7 +1242,7 @@ assert.deepEqual(createIniPanelShellIntegrationReadiness(blockedManifest), {
counts: {
pages: 3,
launcherLinks: 3,
launchMethods: 55,
launchMethods: 56,
controlPageMethods: 11,
persistenceCapabilities: 3,
},
@@ -1413,6 +1417,7 @@ assert.match(shellText, /\bexport function mountIniPanelShellSessionHandoff\b/);
assert.match(shellText, /\bexport function mountIniPanelShellSessionHandoffFromControlPage\b/);
assert.match(shellText, /\bexport function readIniPanelShellSessionHandoffStatusFromControlPage\b/);
assert.match(shellText, /\bexport function createIniPanelShellSessionHandoffWorkflowSummary\b/);
assert.match(shellText, /\bexport function createIniPanelShellSessionReadinessWorkflowReport\b/);
assert.match(shellText, /\bexport function createIniPanelShellSessionHandoffWorkflowDisplayViewModel\b/);
assert.match(shellText, /\bexport function createIniPanelShellSessionHandoffWorkflowRenderState\b/);
assert.match(shellText, /\bexport function createIniPanelShellSessionHandoffWorkflowDomContract\b/);

View File

@@ -29,6 +29,7 @@ import {
mountIniPanelShellSessionHandoffFromControlPage,
readIniPanelShellSessionHandoffStatusFromControlPage,
createIniPanelShellSessionHandoffWorkflowSummary,
createIniPanelShellSessionReadinessWorkflowReport,
createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
createIniPanelShellSessionHandoffWorkflowRenderState,
createIniPanelShellSessionHandoffWorkflowDomContract,
@@ -662,6 +663,7 @@ assert.deepEqual(shellViewModel.shellWorkflowOverviewContract, {
"getWorkflowOverviewRenderState",
"getWorkflowOverviewDisplayViewModel",
"getWorkflowOverviewSummary",
"getWorkflowOverviewSessionReadinessReport",
"getWorkflowOverviewDomContract",
"getWorkflowOverviewDomReadiness",
"renderWorkflowOverview",
@@ -790,6 +792,10 @@ assert.equal(
shellViewModel.createShellSessionHandoffWorkflowSummary,
createIniPanelShellSessionHandoffWorkflowSummary,
);
assert.equal(
shellViewModel.createShellSessionReadinessWorkflowReport,
createIniPanelShellSessionReadinessWorkflowReport,
);
assert.equal(
shellViewModel.createShellSessionHandoffWorkflowDisplayViewModel,
createIniPanelShellSessionHandoffWorkflowDisplayViewModel,
@@ -1111,6 +1117,19 @@ assert.deepEqual(workflowSummaryResult.sessionReadiness, {
assert.equal(workflowSummaryResult.rows.find(({ id }) => id === "session-readiness")?.value, "ready");
assert.equal(workflowSummaryResult.rows.length, 6);
assert.equal(workflowSummaryResult.blockingReasons[0], "mount:blocked");
const sessionReadinessWorkflowReport = createIniPanelShellSessionReadinessWorkflowReport({
workflowSummary: workflowSummaryResult,
});
assert.equal(sessionReadinessWorkflowReport.apiName, "ini-panel-shell-session-readiness-workflow-report");
assert.equal(sessionReadinessWorkflowReport.reportVersion, 1);
assert.equal(sessionReadinessWorkflowReport.phase, "ready");
assert.equal(sessionReadinessWorkflowReport.ready, true);
assert.equal(sessionReadinessWorkflowReport.statusLine, "Ready: session readiness available");
assert.deepEqual(sessionReadinessWorkflowReport.missing, []);
assert.equal(sessionReadinessWorkflowReport.rows.length, 3);
assert.equal(sessionReadinessWorkflowReport.rows[0].value, "ready");
assert.equal(shellViewModel.shellSessionReadinessWorkflowReport.ready, false);
assert.equal(shellViewModel.shellSessionReadinessWorkflowReport.rows.length, 3);
const readyWorkflowSummaryResult = createIniPanelShellSessionHandoffWorkflowSummary({
mountWorkflow: {
phase: "ready",
@@ -1230,6 +1249,7 @@ const workflowOverviewApi = {
getWorkflowOverviewRenderState: () => workflowRenderState,
getWorkflowOverviewDisplayViewModel: () => workflowDisplayViewModel,
getWorkflowOverviewSummary: () => workflowSummaryResult,
getWorkflowOverviewSessionReadinessReport: () => sessionReadinessWorkflowReport,
getWorkflowOverviewDomContract: createIniPanelShellSessionHandoffWorkflowDomContract,
getWorkflowOverviewDomReadiness: createIniPanelShellSessionHandoffWorkflowDomReadiness,
renderWorkflowOverview: renderIniPanelShellSessionHandoffWorkflowState,