展示evidence扩展下一步

结论:release readiness、URL workflow 和 workflow overview 现在展示 evidence-expansion next evidence=browser-diagnostics-binding 与 baseline-changing=no;baseline保持28/28/131/0,hard block继续locked。
This commit is contained in:
2026-06-18 20:00:03 +08:00
parent 57501ba0f2
commit c67bb23e6a
8 changed files with 177 additions and 5 deletions

View File

@@ -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",

View File

@@ -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",

View File

@@ -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,

View File

@@ -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",

View File

@@ -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,

View File

@@ -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,

View File

@@ -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",

View File

@@ -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 () => ({