From c67bb23e6a67082b96ffe62a2a7de76ecef97ae6 Mon Sep 17 00:00:00 2001 From: wangdequan Date: Thu, 18 Jun 2026 20:00:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=95=E7=A4=BAevidence=E6=89=A9=E5=B1=95?= =?UTF-8?q?=E4=B8=8B=E4=B8=80=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 结论:release readiness、URL workflow 和 workflow overview 现在展示 evidence-expansion next evidence=browser-diagnostics-binding 与 baseline-changing=no;baseline保持28/28/131/0,hard block继续locked。 --- .../sdk/src/project-release-readiness.js | 66 +++++++++++++++++++ wasm-port/runtime/ui/ini-panel/ui-shell.js | 18 +++++ ...anel_shell_integration_workflow_smoke.html | 10 +++ .../ini_panel_workflow_overview_smoke.html | 20 ++++++ ..._project_release_artifact_url_workflow.mjs | 10 +++ .../verify_project_release_gate_manifest.mjs | 14 ++++ .../tests/sdk/node/verify_sdk_surface.mjs | 10 +++ .../ui/node/verify_ini_panel_ui_shell.mjs | 34 ++++++++-- 8 files changed, 177 insertions(+), 5 deletions(-) diff --git a/wasm-port/runtime/sdk/src/project-release-readiness.js b/wasm-port/runtime/sdk/src/project-release-readiness.js index b31bbb2..22cf3be 100644 --- a/wasm-port/runtime/sdk/src/project-release-readiness.js +++ b/wasm-port/runtime/sdk/src/project-release-readiness.js @@ -2102,6 +2102,16 @@ export function createProjectReleaseReadinessReport({ label: "Evidence expansion candidates", value: `${promotionCandidateArtifactSummary.evidenceExpansionCandidateCount}`, }, + { + id: "evidence-expansion-next-evidence", + label: "Evidence expansion next evidence", + value: promotionCandidateArtifactSummary.evidenceExpansion.nextEvidence, + }, + { + id: "evidence-expansion-baseline-changing", + label: "Evidence expansion baseline changing", + value: promotionCandidateArtifactSummary.evidenceExpansion.baselineChanging ? "yes" : "no", + }, { id: "evidence-expansion-artifact", label: "Evidence expansion artifact", @@ -2236,6 +2246,20 @@ export function createProjectReleaseReadinessSummaryViewModel( ? `${promotionCandidateArtifactSummary.evidenceExpansionCandidateCount}` : "missing", }, + { + id: "evidence-expansion-next-evidence", + label: "Evidence expansion next evidence", + value: promotionCandidateArtifactSummary.ready === true + ? promotionCandidateArtifactSummary.evidenceExpansion.nextEvidence + : "missing", + }, + { + id: "evidence-expansion-baseline-changing", + label: "Evidence expansion baseline changing", + value: promotionCandidateArtifactSummary.ready === true + ? (promotionCandidateArtifactSummary.evidenceExpansion.baselineChanging ? "yes" : "no") + : "missing", + }, { id: "virtual-hal-sim-config-macro-load-fixtures", label: "Virtual HAL sim-config macro/load fixtures", @@ -2371,6 +2395,20 @@ export function createProjectReleaseReadinessArtifactValidationSummaryViewModel( ? `${validation.promotionCandidateArtifactSummary.evidenceExpansionCandidateCount}` : "missing", }, + { + id: "evidence-expansion-next-evidence", + label: "Evidence expansion next evidence", + value: validation?.promotionCandidateArtifactSummaryReady === true + ? validation.promotionCandidateArtifactSummary.evidenceExpansion.nextEvidence + : "missing", + }, + { + id: "evidence-expansion-baseline-changing", + label: "Evidence expansion baseline changing", + value: validation?.promotionCandidateArtifactSummaryReady === true + ? (validation.promotionCandidateArtifactSummary.evidenceExpansion.baselineChanging ? "yes" : "no") + : "missing", + }, { id: "evidence-expansion-artifact", label: "Evidence expansion artifact", @@ -2874,6 +2912,20 @@ export function createProjectReleaseReadinessArtifactUrlWorkflowSummaryViewModel ? `${promotionCandidateArtifactSummary.evidenceExpansionCandidateCount}` : "not provided", }, + { + id: "evidence-expansion-next-evidence", + label: "Evidence expansion next evidence", + value: promotionCandidateArtifactSummaryReady + ? promotionCandidateArtifactSummary.evidenceExpansion.nextEvidence + : "not provided", + }, + { + id: "evidence-expansion-baseline-changing", + label: "Evidence expansion baseline changing", + value: promotionCandidateArtifactSummaryReady + ? (promotionCandidateArtifactSummary.evidenceExpansion.baselineChanging ? "yes" : "no") + : "not provided", + }, { id: "evidence-expansion-artifact", label: "Evidence expansion artifact", @@ -3352,6 +3404,20 @@ export function createProjectReleaseReadinessArtifactValidation(artifact = {}) { ? `${promotionCandidateArtifactSummary.evidenceExpansionCandidateCount}` : "missing", }, + { + id: "evidence-expansion-next-evidence", + label: "Evidence expansion next evidence", + value: promotionCandidateArtifactSummaryReady + ? promotionCandidateArtifactSummary.evidenceExpansion.nextEvidence + : "missing", + }, + { + id: "evidence-expansion-baseline-changing", + label: "Evidence expansion baseline changing", + value: promotionCandidateArtifactSummaryReady + ? (promotionCandidateArtifactSummary.evidenceExpansion.baselineChanging ? "yes" : "no") + : "missing", + }, { id: "evidence-expansion-artifact", label: "Evidence expansion artifact", diff --git a/wasm-port/runtime/ui/ini-panel/ui-shell.js b/wasm-port/runtime/ui/ini-panel/ui-shell.js index 62d6218..40aaa24 100644 --- a/wasm-port/runtime/ui/ini-panel/ui-shell.js +++ b/wasm-port/runtime/ui/ini-panel/ui-shell.js @@ -2562,6 +2562,12 @@ export function createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWo : (Array.isArray(workflow?.validation?.validation?.rows) ? workflow.validation.validation.rows : []); const hardBlockRuntimeLock = validationRows.find(({ id }) => id === "hard-block-runtime-lock")?.value; const promotedBlockedFamilyCount = validationRows.find(({ id }) => id === "promoted-blocked-family-count")?.value; + const promotionCandidateArtifactSummary = ( + workflow?.validation?.promotionCandidateArtifactSummary + ?? workflow?.validation?.validation?.promotionCandidateArtifactSummary + ?? {} + ); + const evidenceExpansion = promotionCandidateArtifactSummary.evidenceExpansion ?? {}; const ready = workflow?.ready === true; const promotionFamilyRows = ( workflow?.validation?.virtualHalPromotionFamilyRows @@ -2665,6 +2671,18 @@ export function createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWo label: "Candidate inventory baseline", value: promotionCandidateSummary.inventoryBaseline ?? "not provided", }, + { + id: "evidence-expansion-next-evidence", + label: "Evidence expansion next evidence", + value: evidenceExpansion.nextEvidence ?? "not provided", + }, + { + id: "evidence-expansion-baseline-changing", + label: "Evidence expansion baseline changing", + value: evidenceExpansion.baselineChanging === true + ? "yes" + : (evidenceExpansion.baselineChanging === false ? "no" : "not provided"), + }, { id: "hard-block-runtime-lock", label: "Hard-block runtime lock", diff --git a/wasm-port/tests/browser/ini_panel_shell_integration_workflow_smoke.html b/wasm-port/tests/browser/ini_panel_shell_integration_workflow_smoke.html index fb62513..c713142 100644 --- a/wasm-port/tests/browser/ini_panel_shell_integration_workflow_smoke.html +++ b/wasm-port/tests/browser/ini_panel_shell_integration_workflow_smoke.html @@ -999,6 +999,16 @@ TOOL_TABLE = browser-shell-tool.tbl "13", "shell workflow overview release artifact URL workflow evidence expansion count", ); + assertEqual( + workflowOverviewReleaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "evidence-expansion-next-evidence")?.value, + "browser-diagnostics-binding", + "shell workflow overview release artifact URL workflow evidence expansion next evidence", + ); + assertEqual( + workflowOverviewReleaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "evidence-expansion-baseline-changing")?.value, + "no", + "shell workflow overview release artifact URL workflow evidence expansion baseline unchanged", + ); assertEqual( workflowOverviewReleaseArtifactUrlWorkflowRenderResult.rowIds.includes("hard-block-runtime-lock"), true, diff --git a/wasm-port/tests/browser/ini_panel_workflow_overview_smoke.html b/wasm-port/tests/browser/ini_panel_workflow_overview_smoke.html index eb54271..cc7f07c 100644 --- a/wasm-port/tests/browser/ini_panel_workflow_overview_smoke.html +++ b/wasm-port/tests/browser/ini_panel_workflow_overview_smoke.html @@ -650,6 +650,16 @@ "13", "workflow overview release artifact URL workflow evidence expansion count", ); + assertEqual( + releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "evidence-expansion-next-evidence")?.value, + "browser-diagnostics-binding", + "workflow overview release artifact URL workflow evidence expansion next evidence", + ); + assertEqual( + releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "evidence-expansion-baseline-changing")?.value, + "no", + "workflow overview release artifact URL workflow evidence expansion baseline unchanged", + ); assertEqual( releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "evidence-expansion-artifact")?.value, "wasm-port/build/wasm/sim-configs-inventory/evidence-expansion-candidates.tsv", @@ -841,6 +851,16 @@ "13", "workflow overview fixed URL workflow form evidence expansion count row", ); + assertEqual( + workflowDoc.querySelector('[data-workflow-overview-release-readiness-artifact-url-workflow-value="evidence-expansion-next-evidence"]').textContent, + "browser-diagnostics-binding", + "workflow overview fixed URL workflow form evidence expansion next evidence row", + ); + assertEqual( + workflowDoc.querySelector('[data-workflow-overview-release-readiness-artifact-url-workflow-value="evidence-expansion-baseline-changing"]').textContent, + "no", + "workflow overview fixed URL workflow form evidence expansion baseline row", + ); assertEqual( workflowDoc.querySelector('[data-workflow-overview-release-readiness-artifact-url-workflow-value="virtual-hal-promotion-source-file-count"]').textContent, "17 source files", diff --git a/wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.mjs b/wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.mjs index 4871786..40966ab 100644 --- a/wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.mjs +++ b/wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.mjs @@ -202,6 +202,14 @@ assert.equal( readySummary.rows.find(({ id }) => id === "evidence-expansion-candidates")?.value, "13", ); +assert.equal( + readySummary.rows.find(({ id }) => id === "evidence-expansion-next-evidence")?.value, + "browser-diagnostics-binding", +); +assert.equal( + readySummary.rows.find(({ id }) => id === "evidence-expansion-baseline-changing")?.value, + "no", +); assert.equal( readySummary.rows.find(({ id }) => id === "evidence-expansion-artifact")?.value, "wasm-port/build/wasm/sim-configs-inventory/evidence-expansion-candidates.tsv", @@ -239,6 +247,8 @@ assert.deepEqual( ["promotion-candidate-layers", "evidence-ready=8 inventory-ready=20"], ["promotion-candidate-total", "28"], ["evidence-expansion-candidates", "13"], + ["evidence-expansion-next-evidence", "browser-diagnostics-binding"], + ["evidence-expansion-baseline-changing", "no"], ["evidence-expansion-artifact", "wasm-port/build/wasm/sim-configs-inventory/evidence-expansion-candidates.tsv"], ["promotion-candidate-allowed", "0"], ...expectedPromotionFamilyRows, diff --git a/wasm-port/tests/sdk/node/verify_project_release_gate_manifest.mjs b/wasm-port/tests/sdk/node/verify_project_release_gate_manifest.mjs index 53204e5..7ffa4b3 100644 --- a/wasm-port/tests/sdk/node/verify_project_release_gate_manifest.mjs +++ b/wasm-port/tests/sdk/node/verify_project_release_gate_manifest.mjs @@ -286,6 +286,16 @@ assert.deepEqual(createProjectReleaseReadinessSummaryViewModel(report), { label: "Evidence expansion candidates", value: "13", }, + { + id: "evidence-expansion-next-evidence", + label: "Evidence expansion next evidence", + value: "browser-diagnostics-binding", + }, + { + id: "evidence-expansion-baseline-changing", + label: "Evidence expansion baseline changing", + value: "no", + }, { id: "virtual-hal-sim-config-macro-load-fixtures", label: "Virtual HAL sim-config macro/load fixtures", @@ -388,6 +398,8 @@ assert.deepEqual( ["promotion-candidate-layers", "evidence-ready=8 inventory-ready=20"], ["promotion-candidate-total", "28"], ["evidence-expansion-candidates", "13"], + ["evidence-expansion-next-evidence", "browser-diagnostics-binding"], + ["evidence-expansion-baseline-changing", "no"], ["evidence-expansion-artifact", "wasm-port/build/wasm/sim-configs-inventory/evidence-expansion-candidates.tsv"], ["promotion-candidate-allowed", "0"], ["virtual-hal-promotion-families", expectedPromotionFamilySummary], @@ -485,6 +497,8 @@ assert.deepEqual( ["promotion-candidate-layers", "evidence-ready=8 inventory-ready=20"], ["promotion-candidate-total", "28"], ["evidence-expansion-candidates", "13"], + ["evidence-expansion-next-evidence", "browser-diagnostics-binding"], + ["evidence-expansion-baseline-changing", "no"], ["evidence-expansion-artifact", "wasm-port/build/wasm/sim-configs-inventory/evidence-expansion-candidates.tsv"], ["promotion-candidate-allowed", "0"], ...expectedPromotionFamilyRows, diff --git a/wasm-port/tests/sdk/node/verify_sdk_surface.mjs b/wasm-port/tests/sdk/node/verify_sdk_surface.mjs index f74022d..a377da6 100644 --- a/wasm-port/tests/sdk/node/verify_sdk_surface.mjs +++ b/wasm-port/tests/sdk/node/verify_sdk_surface.mjs @@ -1740,6 +1740,16 @@ assert.deepEqual(releaseReadinessArtifactValidation, { label: "Evidence expansion candidates", value: "13", }, + { + id: "evidence-expansion-next-evidence", + label: "Evidence expansion next evidence", + value: "browser-diagnostics-binding", + }, + { + id: "evidence-expansion-baseline-changing", + label: "Evidence expansion baseline changing", + value: "no", + }, { id: "evidence-expansion-artifact", label: "Evidence expansion artifact", diff --git a/wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs b/wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs index 50ff912..f1c82f7 100644 --- a/wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs +++ b/wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs @@ -1807,7 +1807,7 @@ const releaseArtifactMountResult = mountIniPanelShellWorkflowOverviewReleaseRead rowsNode: releaseArtifactRowsNode, }); assert.equal(releaseArtifactRenderResult.rendered, true); -assert.equal(releaseArtifactRenderResult.rowCount, 26); +assert.equal(releaseArtifactRenderResult.rowCount, 28); assert.equal(releaseArtifactRenderResult.dataset.handoffScope, "workflow-overview-release-readiness-artifact"); assert.equal( releaseArtifactRenderResult.rowIds.includes("gate-execution-manifest"), @@ -1833,6 +1833,14 @@ assert.equal( releaseArtifactRenderResult.rowIds.includes("evidence-expansion-candidates"), true, ); +assert.equal( + releaseArtifactRenderResult.rowIds.includes("evidence-expansion-next-evidence"), + true, +); +assert.equal( + releaseArtifactRenderResult.rowIds.includes("evidence-expansion-baseline-changing"), + true, +); assert.equal( releaseArtifactRenderResult.rowIds.includes("gate-action-plan"), true, @@ -1850,7 +1858,7 @@ assert.equal( true, ); assert.equal(releaseArtifactMountResult.ready, true); -assert.equal(releaseArtifactMountResult.renderResult.rowCount, 26); +assert.equal(releaseArtifactMountResult.renderResult.rowCount, 28); assert.deepEqual( validateIniPanelShellWorkflowOverviewReleaseReadinessArtifactJson("{").missing, ["artifact-json"], @@ -1909,7 +1917,7 @@ assert.equal( ); assert.equal(releaseArtifactUrlWorkflow.renderState.statusLine, "Ready: No blocking reasons"); assert.equal(releaseArtifactUrlWorkflow.mountResult.ready, true); -assert.equal(releaseArtifactUrlWorkflow.mountResult.renderResult.rowCount, 26); +assert.equal(releaseArtifactUrlWorkflow.mountResult.renderResult.rowCount, 28); const releaseArtifactUrlWorkflowSummary = createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowSummaryViewModel( releaseArtifactUrlWorkflow, @@ -1973,6 +1981,14 @@ assert.equal( releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "virtual-hal-promotion-browser-diagnostics-count")?.value, "8 diagnostics-ready", ); +assert.equal( + releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "evidence-expansion-next-evidence")?.value, + "browser-diagnostics-binding", +); +assert.equal( + releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "evidence-expansion-baseline-changing")?.value, + "no", +); assert.equal( releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "virtual-hal-promotion-candidate-baseline")?.value, "executed=28 passed=28 skipped=131 unexpected_fail=0", @@ -2633,7 +2649,7 @@ const releaseArtifactUrlWorkflowMountResult = rowsNode: releaseArtifactUrlWorkflowRowsNode, }); assert.equal(releaseArtifactUrlWorkflowRenderResult.rendered, true); -assert.equal(releaseArtifactUrlWorkflowRenderResult.rowCount, 27); +assert.equal(releaseArtifactUrlWorkflowRenderResult.rowCount, 29); assert.equal( releaseArtifactUrlWorkflowRenderResult.rowIds.includes("browser-diagnostics"), true, @@ -2646,12 +2662,20 @@ assert.equal( releaseArtifactUrlWorkflowRenderResult.rowIds.includes("virtual-hal-promotion-families"), true, ); +assert.equal( + releaseArtifactUrlWorkflowRenderResult.rowIds.includes("evidence-expansion-next-evidence"), + true, +); +assert.equal( + releaseArtifactUrlWorkflowRenderResult.rowIds.includes("evidence-expansion-baseline-changing"), + true, +); assert.equal( releaseArtifactUrlWorkflowRenderResult.rowIds.includes("mount-result"), true, ); assert.equal(releaseArtifactUrlWorkflowMountResult.ready, true); -assert.equal(releaseArtifactUrlWorkflowMountResult.renderResult.rowCount, 27); +assert.equal(releaseArtifactUrlWorkflowMountResult.renderResult.rowCount, 29); const releaseArtifactUrlWorkflowMissingDom = await loadIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrl({ artifactUrl: "/project-release-readiness.json", fetchRef: async () => ({