按text32继续推进evidence expansion过滤预设
结论:已完成 evidence expansion family/source filter 的 summary/action-plan、query/hash 预选、UI/API/SDK/浏览器验证覆盖,并保持 sim-config inventory baseline=82/82/77/0。
This commit is contained in:
@@ -234,6 +234,17 @@ export {
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlan,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowSummaryViewModel,
|
||||
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowRenderState,
|
||||
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilyRowsRenderState,
|
||||
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterViewModel,
|
||||
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterDomContract,
|
||||
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterDomReadiness,
|
||||
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSummary,
|
||||
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterActionPlan,
|
||||
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionActionPlan,
|
||||
handleIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionChange,
|
||||
bindIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionControls,
|
||||
renderIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterState,
|
||||
mountIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterState,
|
||||
createIniPanelShellWorkflowOverviewPromotionFamilyRowsRenderState,
|
||||
createIniPanelShellWorkflowOverviewPromotionFamilySourceFilterViewModel,
|
||||
createIniPanelShellWorkflowOverviewPromotionFamilySourceFilterDomContract,
|
||||
|
||||
@@ -513,6 +513,132 @@ export const VIRTUAL_HAL_SIM_CONFIG_EVIDENCE_EXPANSION_CANDIDATES = Object.freez
|
||||
blockedKind: "-",
|
||||
evidence: "The LinuxCNC table-rotary-tilting XYZAC switchkins demo is already a browser representative row; this evidence expansion binds it into release diagnostics only.",
|
||||
}),
|
||||
Object.freeze({
|
||||
id: "trt-boat-xyzbc",
|
||||
label: "TRT boat XYZBC",
|
||||
simConfigTarget: "five-axis-trt",
|
||||
sourceFiles: Object.freeze([
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc",
|
||||
]),
|
||||
iniPath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
gcodePath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc",
|
||||
currentNodeInventoryStatus: "PASS",
|
||||
currentMatrixBrowserStatus: "REP",
|
||||
dependencyClass: "hal_process,halui_mdi_process,ui_process",
|
||||
targetBrowserEvidence: "browser-diagnostics-expansion",
|
||||
promotionAllowed: false,
|
||||
blockedKind: "-",
|
||||
evidence: "The LinuxCNC table-rotary-tilting boat XYZBC demo is already a five-axis representative row and is added as browser diagnostics evidence only.",
|
||||
}),
|
||||
Object.freeze({
|
||||
id: "trt-impeller-7bl-xyzac",
|
||||
label: "TRT impeller 7 blade XYZAC",
|
||||
simConfigTarget: "five-axis-trt",
|
||||
sourceFiles: Object.freeze([
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc",
|
||||
]),
|
||||
iniPath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
gcodePath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc",
|
||||
currentNodeInventoryStatus: "PASS",
|
||||
currentMatrixBrowserStatus: "REP",
|
||||
dependencyClass: "hal_process,halui_mdi_process,ui_process",
|
||||
targetBrowserEvidence: "browser-diagnostics-expansion",
|
||||
promotionAllowed: false,
|
||||
blockedKind: "-",
|
||||
evidence: "The LinuxCNC table-rotary-tilting impeller demo expands the TRT representative diagnostics set without changing inventory promotion state.",
|
||||
}),
|
||||
Object.freeze({
|
||||
id: "trt-xyzac-switchkins-test-1",
|
||||
label: "TRT XYZAC switchkins test 1",
|
||||
simConfigTarget: "five-axis-trt",
|
||||
sourceFiles: Object.freeze([
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc",
|
||||
]),
|
||||
iniPath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
gcodePath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc",
|
||||
currentNodeInventoryStatus: "PASS",
|
||||
currentMatrixBrowserStatus: "REP",
|
||||
dependencyClass: "hal_process,halui_mdi_process,ui_process",
|
||||
targetBrowserEvidence: "browser-diagnostics-expansion",
|
||||
promotionAllowed: false,
|
||||
blockedKind: "-",
|
||||
evidence: "The LinuxCNC XYZAC switchkins test 1 row is already representative coverage and is exposed as browser diagnostics evidence only.",
|
||||
}),
|
||||
Object.freeze({
|
||||
id: "trt-xyzac-switchkins-test-2",
|
||||
label: "TRT XYZAC switchkins test 2",
|
||||
simConfigTarget: "five-axis-trt",
|
||||
sourceFiles: Object.freeze([
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_2.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc",
|
||||
]),
|
||||
iniPath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
gcodePath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_2.ngc",
|
||||
currentNodeInventoryStatus: "PASS",
|
||||
currentMatrixBrowserStatus: "REP",
|
||||
dependencyClass: "hal_process,halui_mdi_process,ui_process",
|
||||
targetBrowserEvidence: "browser-diagnostics-expansion",
|
||||
promotionAllowed: false,
|
||||
blockedKind: "-",
|
||||
evidence: "The LinuxCNC XYZAC switchkins test 2 row is already representative coverage and is exposed as browser diagnostics evidence only.",
|
||||
}),
|
||||
Object.freeze({
|
||||
id: "trt-xyzac-switchkins-test-3",
|
||||
label: "TRT XYZAC switchkins test 3",
|
||||
simConfigTarget: "five-axis-trt",
|
||||
sourceFiles: Object.freeze([
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_3.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc",
|
||||
]),
|
||||
iniPath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
gcodePath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_3.ngc",
|
||||
currentNodeInventoryStatus: "PASS",
|
||||
currentMatrixBrowserStatus: "REP",
|
||||
dependencyClass: "hal_process,halui_mdi_process,ui_process",
|
||||
targetBrowserEvidence: "browser-diagnostics-expansion",
|
||||
promotionAllowed: false,
|
||||
blockedKind: "-",
|
||||
evidence: "The LinuxCNC XYZAC switchkins test 3 row is already representative coverage and is exposed as browser diagnostics evidence only.",
|
||||
}),
|
||||
Object.freeze({
|
||||
id: "trt-xyzbc-switchkins",
|
||||
label: "TRT XYZBC switchkins",
|
||||
simConfigTarget: "five-axis-trt",
|
||||
sourceFiles: Object.freeze([
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc",
|
||||
]),
|
||||
iniPath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
gcodePath: "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc",
|
||||
currentNodeInventoryStatus: "PASS",
|
||||
currentMatrixBrowserStatus: "REP",
|
||||
dependencyClass: "hal_process,halui_mdi_process,ui_process",
|
||||
targetBrowserEvidence: "browser-diagnostics-expansion",
|
||||
promotionAllowed: false,
|
||||
blockedKind: "-",
|
||||
evidence: "The LinuxCNC XYZBC switchkins demo completes the current TRT representative diagnostics batch without changing inventory promotion state.",
|
||||
}),
|
||||
]);
|
||||
|
||||
export const VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_FIXTURES = Object.freeze([
|
||||
@@ -3371,6 +3497,30 @@ export function createVirtualHalSimConfigEvidenceExpansionReport(options = {}) {
|
||||
const blockedCandidateIds = rows.filter((row) => row.blockedKind !== "-").map((row) => row.id);
|
||||
const missingManifestFiles = [...new Set(rows.flatMap((row) => row.missingManifestFiles))];
|
||||
const missingRequiredReports = [...new Set(rows.flatMap((row) => row.missingRequiredReports))];
|
||||
const familyRows = [...new Set(rows.map((row) => row.simConfigTarget ?? row.id))].map((familyId) => {
|
||||
const familyCandidates = rows.filter((row) => (row.simConfigTarget ?? row.id) === familyId);
|
||||
const completeCount = familyCandidates.filter((row) => row.complete).length;
|
||||
const readyBrowserDiagnosticsCount = familyCandidates
|
||||
.filter((row) => row.targetBrowserEvidence === "browser-diagnostics-expansion").length;
|
||||
const promotionAllowedCount = familyCandidates.filter((row) => row.promotionAllowed).length;
|
||||
const sourceFiles = [...new Set(familyCandidates.flatMap((row) => row.sourceFiles))];
|
||||
const gcodePaths = [...new Set(familyCandidates.map((row) => row.gcodePath).filter(Boolean))];
|
||||
const iniPaths = [...new Set(familyCandidates.map((row) => row.iniPath).filter(Boolean))];
|
||||
return {
|
||||
id: familyId,
|
||||
candidateIds: familyCandidates.map((row) => row.id),
|
||||
candidateCount: familyCandidates.length,
|
||||
completeCount,
|
||||
readyBrowserDiagnosticsCount,
|
||||
browserDiagnosticsExpansionReady: readyBrowserDiagnosticsCount === familyCandidates.length,
|
||||
promotionAllowedCount,
|
||||
complete: completeCount === familyCandidates.length,
|
||||
sourceFiles,
|
||||
sourceFileCount: sourceFiles.length,
|
||||
gcodePaths,
|
||||
iniPaths,
|
||||
};
|
||||
});
|
||||
const complete = rows.length > 0 &&
|
||||
missingCandidates.length === 0 &&
|
||||
promotionAllowedViolations.length === 0 &&
|
||||
@@ -3397,10 +3547,12 @@ export function createVirtualHalSimConfigEvidenceExpansionReport(options = {}) {
|
||||
blockedCandidateIds,
|
||||
missingManifestFiles,
|
||||
missingRequiredReports,
|
||||
familyRows,
|
||||
rows,
|
||||
summaryRows: [
|
||||
{ id: "candidates", label: "Expansion candidates", value: `${rows.length}` },
|
||||
{ id: "ready-candidates", label: "Ready candidates", value: `${rows.filter((row) => row.complete).length}` },
|
||||
{ id: "families", label: "Expansion families", value: `${familyRows.length}` },
|
||||
{ id: "promotion-allowed", label: "Promotion allowed", value: "0" },
|
||||
{ id: "inventory-baseline", label: "Inventory baseline", value: "unchanged" },
|
||||
],
|
||||
|
||||
@@ -138,6 +138,35 @@ function createPromotionFamilySummaryRows(candidateReport = {}) {
|
||||
});
|
||||
}
|
||||
|
||||
function createEvidenceExpansionFamilySummaryRows(evidenceExpansionReport = {}) {
|
||||
return arrayOrEmpty(objectOrEmpty(evidenceExpansionReport).familyRows).map((family) => {
|
||||
const candidateCount = family.candidateCount ?? 0;
|
||||
const completeCount = family.completeCount ?? 0;
|
||||
const sourceFileCount = family.sourceFileCount ?? arrayOrEmpty(family.sourceFiles).length;
|
||||
const ready = family.complete === true && family.browserDiagnosticsExpansionReady === true;
|
||||
return {
|
||||
id: family.id ?? "unknown",
|
||||
label: family.id ?? "Unknown evidence expansion family",
|
||||
value: `${completeCount}/${candidateCount} ready; sources=${sourceFileCount}; diagnostics=${ready ? "ready" : "blocked"}`,
|
||||
candidateIds: arrayOrEmpty(family.candidateIds),
|
||||
sourceFiles: arrayOrEmpty(family.sourceFiles),
|
||||
gcodePaths: arrayOrEmpty(family.gcodePaths),
|
||||
iniPaths: arrayOrEmpty(family.iniPaths),
|
||||
candidateCount,
|
||||
completeCount,
|
||||
sourceFileCount,
|
||||
ready,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
function createEvidenceExpansionFamilySummaryText(evidenceExpansionReport = {}) {
|
||||
const rows = createEvidenceExpansionFamilySummaryRows(evidenceExpansionReport);
|
||||
return rows.length > 0
|
||||
? rows.map((row) => `${row.id}: ${row.completeCount}/${row.candidateCount} ${row.ready ? "ready" : "blocked"}`).join("; ")
|
||||
: "not provided";
|
||||
}
|
||||
|
||||
function createPromotionCandidateArtifactSummary({
|
||||
candidateReport = {},
|
||||
evidenceExpansionReport = {},
|
||||
@@ -161,6 +190,8 @@ function createPromotionCandidateArtifactSummary({
|
||||
const artifactInventoryReadyRows = candidateArtifactRows
|
||||
.filter((row) => row.candidate_kind === "inventory-ready");
|
||||
const artifactEvidenceReadyCount = artifactEvidenceReadyRows.length;
|
||||
const evidenceExpansionFamilyRows = createEvidenceExpansionFamilySummaryRows(evidenceExpansionReport);
|
||||
const evidenceExpansionFamilySummary = createEvidenceExpansionFamilySummaryText(evidenceExpansionReport);
|
||||
const inventoryReadyCount = artifactInventoryReadyRows.length > 0
|
||||
? artifactInventoryReadyRows.length
|
||||
: 2;
|
||||
@@ -269,6 +300,9 @@ function createPromotionCandidateArtifactSummary({
|
||||
promotionAllowedCount: 0,
|
||||
baselineChanging: false,
|
||||
nextEvidence: "browser-diagnostics-binding",
|
||||
familyCount: evidenceExpansionFamilyRows.length,
|
||||
familySummary: evidenceExpansionFamilySummary,
|
||||
familyRows: evidenceExpansionFamilyRows,
|
||||
},
|
||||
};
|
||||
}
|
||||
@@ -482,6 +516,66 @@ const REQUIRED_EVIDENCE_EXPANSION_CANDIDATES = [
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "trt-boat-xyzbc",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "trt-impeller-7bl-xyzac",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "trt-xyzac-switchkins-test-1",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "trt-xyzac-switchkins-test-2",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_2.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "trt-xyzac-switchkins-test-3",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_3.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "trt-xyzbc-switchkins",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc",
|
||||
"linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc",
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const REQUIRED_MACRO_LOAD_FIXTURES = [
|
||||
@@ -3223,6 +3317,10 @@ export function createProjectReleaseReadinessArtifactUrlWorkflowSummaryViewModel
|
||||
const evidenceExpansionRows = arrayOrEmpty(
|
||||
workflow?.diagnosticsArtifact?.virtualHalSimConfigEvidenceExpansion?.rows,
|
||||
);
|
||||
const evidenceExpansionFamilyRows = arrayOrEmpty(
|
||||
promotionCandidateArtifactSummary.evidenceExpansion?.familyRows
|
||||
?? workflow?.diagnosticsArtifact?.virtualHalSimConfigEvidenceExpansion?.familyRows,
|
||||
);
|
||||
const preferredEvidenceExpansion = evidenceExpansionRows[0] ?? {};
|
||||
const evidenceExpansionPreviewRows = evidenceExpansionRows.slice(0, 3);
|
||||
const evidenceExpansionFullRows = evidenceExpansionRows;
|
||||
@@ -3401,6 +3499,34 @@ export function createProjectReleaseReadinessArtifactUrlWorkflowSummaryViewModel
|
||||
? evidenceExpansionFullRows.map((row) => row.gcodePath).join(", ")
|
||||
: "not provided",
|
||||
},
|
||||
{
|
||||
id: "evidence-expansion-family-count",
|
||||
label: "Evidence expansion family count",
|
||||
value: evidenceExpansionFamilyRows.length > 0
|
||||
? `${evidenceExpansionFamilyRows.length} families`
|
||||
: "not provided",
|
||||
},
|
||||
{
|
||||
id: "evidence-expansion-family-summary",
|
||||
label: "Evidence expansion family summary",
|
||||
value: promotionCandidateArtifactSummary.evidenceExpansion?.familySummary
|
||||
?? createEvidenceExpansionFamilySummaryText(workflow?.diagnosticsArtifact?.virtualHalSimConfigEvidenceExpansion),
|
||||
},
|
||||
{
|
||||
id: "evidence-expansion-family-source-count-list",
|
||||
label: "Evidence expansion family source counts",
|
||||
value: evidenceExpansionFamilyRows.length > 0
|
||||
? evidenceExpansionFamilyRows.map((row) => `${row.id}:${row.sourceFileCount ?? arrayOrEmpty(row.sourceFiles).length}`).join(", ")
|
||||
: "not provided",
|
||||
},
|
||||
...evidenceExpansionFamilyRows.map((row) => ({
|
||||
id: `evidence-expansion-family-${row.id}`,
|
||||
label: `Evidence expansion family ${row.label ?? row.id}`,
|
||||
value: row.value ?? `${row.completeCount ?? 0}/${row.candidateCount ?? 0} ready; sources=${row.sourceFileCount ?? arrayOrEmpty(row.sourceFiles).length}`,
|
||||
candidateIds: arrayOrEmpty(row.candidateIds),
|
||||
sourceFiles: arrayOrEmpty(row.sourceFiles),
|
||||
gcodePaths: arrayOrEmpty(row.gcodePaths),
|
||||
})),
|
||||
{
|
||||
id: "evidence-expansion-artifact",
|
||||
label: "Evidence expansion artifact",
|
||||
|
||||
Reference in New Issue
Block a user