推进 INI 面板 shell handoff package display view-model

This commit is contained in:
2026-06-15 10:59:02 +08:00
parent e1029ede0f
commit bb8ac55905
10 changed files with 198 additions and 4 deletions

View File

@@ -85,6 +85,7 @@
!launchApi?.getShellSessionHandoffPackageSchema ||
!launchApi?.getShellSessionHandoffPackage ||
!launchApi?.getShellSessionHandoffPackageReport ||
!launchApi?.getShellSessionHandoffPackageDisplayViewModel ||
!launchApi?.isSupportedShellSessionHandoffPackage ||
!launchApi?.getLauncherLinks ||
!launchApi?.getControlPageApiMethods
@@ -125,7 +126,7 @@
);
assertEqual(
launchApiManifest.methods.join(","),
"isSupportedLaunchApiManifest,getLaunchApiSchema,getLaunchApiManifest,getShellIntegrationSchema,getShellIntegrationManifest,getShellIntegrationReadiness,getShellSessionHandoffSummarySchema,getShellSessionHandoffSummary,isSupportedShellSessionHandoffSummary,getShellSessionHandoffCompatibilityReport,getShellSessionHandoffDisplayViewModel,getShellSessionHandoffSnapshot,getShellSessionHandoffRenderState,getShellSessionHandoffActionPlan,getShellSessionHandoffChecklist,getShellSessionHandoffPackageSchema,getShellSessionHandoffPackage,getShellSessionHandoffPackageReport,isSupportedShellSessionHandoffPackage,getLauncherLinks,getControlPageApiMethods",
"isSupportedLaunchApiManifest,getLaunchApiSchema,getLaunchApiManifest,getShellIntegrationSchema,getShellIntegrationManifest,getShellIntegrationReadiness,getShellSessionHandoffSummarySchema,getShellSessionHandoffSummary,isSupportedShellSessionHandoffSummary,getShellSessionHandoffCompatibilityReport,getShellSessionHandoffDisplayViewModel,getShellSessionHandoffSnapshot,getShellSessionHandoffRenderState,getShellSessionHandoffActionPlan,getShellSessionHandoffChecklist,getShellSessionHandoffPackageSchema,getShellSessionHandoffPackage,getShellSessionHandoffPackageReport,getShellSessionHandoffPackageDisplayViewModel,isSupportedShellSessionHandoffPackage,getLauncherLinks,getControlPageApiMethods",
"launch API manifest methods",
);
const shellIntegrationSchema = launchApi.getShellIntegrationSchema();
@@ -142,6 +143,7 @@
const shellSessionHandoffPackageSchema = launchApi.getShellSessionHandoffPackageSchema();
const shellSessionHandoffPackage = launchApi.getShellSessionHandoffPackage();
const shellSessionHandoffPackageReport = launchApi.getShellSessionHandoffPackageReport();
const shellSessionHandoffPackageDisplayViewModel = launchApi.getShellSessionHandoffPackageDisplayViewModel();
assertEqual(
shellIntegrationSchema.manifestVersion,
1,
@@ -327,6 +329,16 @@
"",
"shell session handoff package report missing fields",
);
assertEqual(
shellSessionHandoffPackageDisplayViewModel.statusText,
"Ready",
"shell session handoff package display status",
);
assertEqual(
shellSessionHandoffPackageDisplayViewModel.rows.length,
shellSessionHandoffPackageReport.rows.length,
"shell session handoff package display rows",
);
assertEqual(
shellSessionHandoffPackage.ready,
true,

View File

@@ -76,6 +76,7 @@ TOOL_TABLE = browser-shell-tool.tbl
!launchApi?.getShellSessionHandoffPackageSchema ||
!launchApi?.getShellSessionHandoffPackage ||
!launchApi?.getShellSessionHandoffPackageReport ||
!launchApi?.getShellSessionHandoffPackageDisplayViewModel ||
!launchApi?.isSupportedShellSessionHandoffPackage
) {
throw new Error("launch API namespace did not expose shell integration helpers");
@@ -94,6 +95,7 @@ TOOL_TABLE = browser-shell-tool.tbl
const handoffPackageSchema = launchApi.getShellSessionHandoffPackageSchema();
const handoffPackage = launchApi.getShellSessionHandoffPackage();
const handoffPackageReport = launchApi.getShellSessionHandoffPackageReport();
const handoffPackageDisplay = launchApi.getShellSessionHandoffPackageDisplayViewModel();
assertEqual(handoffSummarySchema.summaryVersion, 1, "shell handoff summary schema version");
assertEqual(
launchApi.isSupportedShellSessionHandoffSummary(handoffSummary),
@@ -139,6 +141,13 @@ TOOL_TABLE = browser-shell-tool.tbl
assertEqual(handoffPackageReport.ready, true, "shell handoff package report readiness");
assertEqual(handoffPackageReport.packageSupported, true, "shell handoff package report support");
assertEqual(handoffPackageReport.rows.length, 6, "shell handoff package report rows");
assertEqual(handoffPackageDisplay.statusText, "Ready", "shell handoff package display status");
assertEqual(handoffPackageDisplay.detailText, "No blocking reasons", "shell handoff package display detail");
assertEqual(
handoffPackageDisplay.rows.length,
handoffPackageReport.rows.length,
"shell handoff package display rows",
);
assertEqual(handoffPackage.checklist.ready, handoffChecklist.ready, "shell handoff package checklist");
assertEqual(
handoffPackage.actionPlan.nextSteps.map(({ id }) => id).join(","),