按text22收束promotion证据

结论:完成 evidence-ready / inventory-ready 双层 promotion candidate 管理,release/SDK gate 已纳入 virtual HAL promotion summary,baseline 保持 28/28/131/0,Python remap、tool DB、external user-M hard block 继续 locked。
This commit is contained in:
2026-06-18 17:20:29 +08:00
parent 014081f1f9
commit 1c94ea4527
29 changed files with 8500 additions and 121 deletions

View File

@@ -66,6 +66,15 @@
!workflowApi?.getWorkflowOverviewReleaseReadinessArtifactUrlWorkflowDomReadiness ||
!workflowApi?.renderWorkflowOverviewReleaseReadinessArtifactUrlWorkflowState ||
!workflowApi?.mountWorkflowOverviewReleaseReadinessArtifactUrlWorkflowState ||
!workflowApi?.getWorkflowOverviewPromotionFamilyRowsRenderState ||
!workflowApi?.getWorkflowOverviewPromotionFamilySourceFilterViewModel ||
!workflowApi?.getWorkflowOverviewPromotionFamilySourceFilterDomContract ||
!workflowApi?.getWorkflowOverviewPromotionFamilySourceFilterDomReadiness ||
!workflowApi?.getWorkflowOverviewPromotionFamilySourceFilterSelectionActionPlan ||
!workflowApi?.handleWorkflowOverviewPromotionFamilySourceFilterSelectionChange ||
!workflowApi?.bindWorkflowOverviewPromotionFamilySourceFilterSelectionControls ||
!workflowApi?.renderWorkflowOverviewPromotionFamilySourceFilterState ||
!workflowApi?.mountWorkflowOverviewPromotionFamilySourceFilterState ||
!workflowApi?.getWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlanRenderState ||
!workflowApi?.getWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlanDomContract ||
!workflowApi?.getWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlanDomReadiness ||
@@ -381,6 +390,22 @@
manifestEntries: VIRTUAL_HAL_MOTION_MATRIX_MANIFEST_ENTRIES,
}),
}),
virtualHalPromotionCandidateSummary: {
apiName: "real-browser-simulation-promotion-candidate-summary",
summaryVersion: 1,
phase: "ready",
ready: true,
candidateCount: 8,
readyCandidateCount: 8,
familyCount: 3,
sourceFileCount: 17,
preferredCandidateId: "qtdragon-multi-joint-on-abort",
preferredIniPath: "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini",
preferredGcodePath: "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/on_abort.ngc",
blockedCandidateIds: [],
explicitBrowserDiagnosticsCount: 8,
inventoryBaseline: "executed=28 passed=28 skipped=131 unexpected_fail=0",
},
virtualHalSimConfigMacroLoadFixtures: createVirtualHalSimConfigMacroLoadFixtureReport({
manifestEntries: [
...VIRTUAL_HAL_MOTION_MATRIX_MANIFEST_ENTRIES,
@@ -543,6 +568,11 @@
assertEqual(releaseArtifactUrlWorkflow.httpStatus, 200, "workflow overview release artifact URL workflow status");
assertEqual(releaseArtifactUrlWorkflow.diagnosticsHttpStatus, 200, "workflow overview diagnostics artifact URL workflow status");
assertEqual(releaseArtifactUrlWorkflow.diagnosticsValidation.ready, true, "workflow overview diagnostics artifact validation");
assertEqual(
releaseArtifactUrlWorkflow.diagnosticsArtifact.virtualHalPromotionCandidateSummary.ready,
true,
"workflow overview diagnostics promotion candidate summary",
);
assertEqual(releaseArtifactUrlWorkflow.diagnosticsValidation.hasSessionDiagnostics, true, "workflow overview diagnostics saved-session presence");
assertEqual(releaseArtifactUrlWorkflow.diagnosticsValidation.sessionDiagnosticsReady, true, "workflow overview diagnostics saved-session validation");
assertEqual(
@@ -567,7 +597,7 @@
);
assertEqual(
releaseArtifactUrlWorkflowRenderResult.rowCount,
12,
18,
"workflow overview release artifact URL workflow render rows",
);
assertEqual(
@@ -575,6 +605,36 @@
true,
"workflow overview release artifact URL workflow diagnostics row",
);
assertEqual(
releaseArtifactUrlWorkflowRenderResult.rowIds.includes("virtual-hal-promotion-candidate-summary"),
true,
"workflow overview release artifact URL workflow candidate summary row",
);
assertEqual(
releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "virtual-hal-promotion-candidate")?.value,
"qtdragon-multi-joint-on-abort",
"workflow overview release artifact URL workflow candidate id",
);
assertEqual(
releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "virtual-hal-promotion-candidate-ini")?.value,
"linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini",
"workflow overview release artifact URL workflow candidate INI",
);
assertEqual(
releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "virtual-hal-promotion-candidate-gcode")?.value,
"linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/on_abort.ngc",
"workflow overview release artifact URL workflow candidate G-code",
);
assertEqual(
releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "virtual-hal-promotion-candidate-count")?.value,
"8/8 ready",
"workflow overview release artifact URL workflow candidate count",
);
assertEqual(
releaseArtifactUrlWorkflowSummary.rows.find(({ id }) => id === "virtual-hal-promotion-candidate-baseline")?.value,
"executed=28 passed=28 skipped=131 unexpected_fail=0",
"workflow overview release artifact URL workflow candidate baseline",
);
assertEqual(
releaseArtifactUrlWorkflowRenderResult.rowIds.includes("saved-session-diagnostics"),
true,
@@ -626,16 +686,71 @@
true,
"workflow overview fixed URL workflow gate execution summary row",
);
assertEqual(
releaseArtifactUrlFormResult.promotionFamilyRowsRenderState.ready,
true,
"workflow overview fixed URL workflow promotion family rows ready",
);
assertEqual(
releaseArtifactUrlFormResult.promotionFamilyRowsRenderState.sourceFileCount,
17,
"workflow overview fixed URL workflow promotion family source count",
);
assertEqual(
releaseArtifactUrlFormResult.promotionFamilySourceFilter.ready,
true,
"workflow overview fixed URL workflow source filter readiness",
);
assertEqual(
releaseArtifactUrlFormResult.promotionFamilySourceFilter.filteredSourceFileCount,
17,
"workflow overview fixed URL workflow source filter default count",
);
assertEqual(
releaseArtifactUrlFormResult.promotionFamilySourceFilterMountResult.ready,
true,
"workflow overview fixed URL workflow source filter mount readiness",
);
assertEqual(
releaseArtifactUrlFormResult.promotionFamilySourceFilterBinding.ready,
true,
"workflow overview fixed URL workflow source filter binding readiness",
);
assertEqual(
releaseArtifactUrlFormResult.promotionFamilySourceFilterBinding.boundControlCount,
2,
"workflow overview fixed URL workflow source filter bound controls",
);
assertEqual(
workflowDoc.body.dataset.releaseArtifactUrlWorkflowReady,
"true",
"workflow overview fixed URL workflow form body ready",
);
assertEqual(
workflowDoc.body.dataset.promotionFamilySourceFilterReady,
"true",
"workflow overview fixed URL workflow source filter body ready",
);
assertEqual(
workflowDoc.body.dataset.promotionFamilySourceFilterCount,
"17",
"workflow overview fixed URL workflow source filter body default count",
);
assertEqual(
workflowDoc.querySelector('[data-workflow-overview-release-readiness-artifact-url-workflow-value="browser-diagnostics"]').textContent,
"ready",
"workflow overview fixed URL workflow form browser diagnostics row",
);
assertEqual(
workflowDoc.querySelector('[data-workflow-overview-release-readiness-artifact-url-workflow-value="virtual-hal-promotion-candidate"]').textContent,
"qtdragon-multi-joint-on-abort",
"workflow overview fixed URL workflow form candidate row",
);
assertEqual(
workflowDoc.querySelector('[data-workflow-overview-release-readiness-artifact-url-workflow-value="virtual-hal-promotion-candidate-count"]').textContent,
"8/8 ready",
"workflow overview fixed URL workflow form candidate count row",
);
assertEqual(
workflowDoc.querySelector('[data-workflow-overview-release-readiness-artifact-url-workflow-action-plan-value="next-command"]').textContent,
"none",
@@ -646,6 +761,59 @@
true,
"workflow overview fixed URL workflow gate execution summary DOM row",
);
const sourceFilterMount = workflowDoc.querySelector("[data-workflow-overview-promotion-family-source-filter]");
const sourceFilterFamilySelect = workflowDoc.querySelector(
'[data-workflow-overview-promotion-family-source-filter-select="family"]',
);
const sourceFilterKindSelect = workflowDoc.querySelector(
'[data-workflow-overview-promotion-family-source-filter-select="source-kind"]',
);
assertEqual(
sourceFilterMount.dataset.selectedFamilyId,
"all",
"workflow overview source filter default family",
);
assertEqual(
sourceFilterFamilySelect?.value,
"all",
"workflow overview source filter family select default",
);
assertEqual(
sourceFilterKindSelect?.value,
"all",
"workflow overview source filter kind select default",
);
sourceFilterFamilySelect.value = "virtual-hal-promotion-family-rose-engine-rcone-demo";
sourceFilterFamilySelect.dispatchEvent(new Event("change", { bubbles: true }));
assertEqual(
workflowDoc.body.dataset.promotionFamilySourceFilterFamily,
"virtual-hal-promotion-family-rose-engine-rcone-demo",
"workflow overview source filter change body family",
);
assertEqual(
workflowDoc.body.dataset.promotionFamilySourceFilterCount,
"2",
"workflow overview source filter change source count",
);
assertEqual(
sourceFilterMount.dataset.selectedFamilyId,
"virtual-hal-promotion-family-rose-engine-rcone-demo",
"workflow overview source filter changed mount family",
);
assertEqual(
workflowDoc.querySelectorAll(
'[data-workflow-overview-promotion-family-source-filter-type="source-row"]',
).length,
4,
"workflow overview source filter changed source DOM nodes",
);
assertEqual(
workflowDoc.querySelector(
'[data-workflow-overview-promotion-family-source-filter-value="linuxcnc/configs/sim/axis/rose_engine/rcone_demo.ngc"]',
)?.textContent,
"linuxcnc/configs/sim/axis/rose_engine/rcone_demo.ngc",
"workflow overview source filter changed rose engine source row",
);
assertEqual(
releaseArtifactJsonWorkflow.statusLine,
"Ready: Artifact JSON workflow complete",

View File

@@ -97,6 +97,7 @@
"native-runtime-probe-summary.tsv",
"next-boundary-recommendations.tsv",
"next-boundary-worklist.tsv",
"promotion-candidates.tsv",
"python-remap-boundary-summary.tsv",
"python-remap-family-summary.tsv",
"python-remap-native-runtime-alignment.tsv",
@@ -150,7 +151,7 @@
"build/native/source-probes.tsv",
];
if (wasmArtifactNames.length !== 54 || new Set(wasmArtifactNames).size !== wasmArtifactNames.length) {
if (wasmArtifactNames.length !== 55 || new Set(wasmArtifactNames).size !== wasmArtifactNames.length) {
throw new Error("browser_generated_artifact_documentation_coverage: WASM artifact list drift");
}
if (nativeArtifactTokens.length !== 8 || new Set(nativeArtifactTokens).size !== nativeArtifactTokens.length) {

View File

@@ -244,6 +244,8 @@
!api?.getVirtualHalSourceComplianceReport ||
!api?.getVirtualHalSimConfigSourceCoverageReport ||
!api?.getVirtualHalSimConfigPromotionCandidateReport ||
!api?.getVirtualHalPromotionCandidateSummary ||
!api?.getVirtualHalPromotionFamilyRows ||
!api?.getVirtualHalSimConfigMacroLoadFixtureReport ||
!api?.getVirtualHalCommandScriptFixtureReport ||
!api?.getVirtualHalMotionControllerMatrixReport ||
@@ -409,6 +411,7 @@
throw new Error(`simulation virtual HAL registry/integrity drift: ${JSON.stringify(initialVirtualHalRegistry)}`);
}
const diagnosticsArtifact = api.exportDiagnosticsArtifact();
const promotionCandidateSummary = api.getVirtualHalPromotionCandidateSummary();
const expectedPromotionCandidates = [
[
"qtdragon-multi-joint-on-abort",
@@ -458,6 +461,9 @@
"linuxcnc/configs/sim/axis/rose_engine/rcone.ngc",
false,
"linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini",
"rcone.ngc",
34,
"linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini",
"linuxcnc/configs/sim/axis/rose_engine/rcone.ngc",
"linuxcnc/configs/sim/axis/rose_engine/rcone_demo.ngc",
],
@@ -466,6 +472,9 @@
"linuxcnc/configs/sim/axis/external_offsets/queuebuster.ngc",
true,
"linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini",
"queuebuster.ngc",
40,
"linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini",
"linuxcnc/configs/sim/axis/external_offsets/eoffsets.ngc",
],
];
@@ -481,6 +490,18 @@
"L4-PYTHON-REMAP",
],
];
const expectedMacroLoadAuditCandidates = [
[
"gscreen-industrial-lathe-wear-toolchange-audit",
"linuxcnc/configs/sim/gscreen/industrial_lathe_wear/toolchange.ngc",
"blocked-missing-owning-ini",
],
[
"qtvcp-industrial-lathe-wear-toolchange-audit",
"linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/toolchange.ngc",
"blocked-missing-owning-ini",
],
];
if (
diagnosticsArtifact.apiName !== "real-browser-simulation-diagnostics-artifact" ||
diagnosticsArtifact.statusHistory.length === 0 ||
@@ -495,18 +516,41 @@
!diagnosticsArtifact.virtualHalSimConfigSourceCoverage?.sourceFiles?.includes("linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini") ||
!diagnosticsArtifact.virtualHalSimConfigSourceCoverage?.sourceFiles?.includes("linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini") ||
diagnosticsArtifact.virtualHalSimConfigPromotionCandidates?.complete !== true ||
diagnosticsArtifact.virtualHalPromotionCandidateSummary?.ready !== true ||
diagnosticsArtifact.virtualHalPromotionCandidateSummary?.preferredCandidateId !== "qtdragon-multi-joint-on-abort" ||
diagnosticsArtifact.virtualHalPromotionCandidateSummary?.candidateCount !== 8 ||
diagnosticsArtifact.virtualHalPromotionCandidateSummary?.readyCandidateCount !== 8 ||
diagnosticsArtifact.virtualHalPromotionCandidateSummary?.sourceFileCount !== 17 ||
diagnosticsArtifact.virtualHalPromotionCandidateSummary?.inventoryBaseline !== "executed=28 passed=28 skipped=131 unexpected_fail=0" ||
promotionCandidateSummary.ready !== true ||
promotionCandidateSummary.preferredIniPath !== "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini" ||
doc.body.dataset.promotionCandidateReady !== "true" ||
doc.body.dataset.promotionCandidatePreferred !== "qtdragon-multi-joint-on-abort" ||
doc.querySelector('[data-promotion-candidate-summary-value="preferred-candidate"]')?.textContent !== "qtdragon-multi-joint-on-abort" ||
doc.querySelector('[data-promotion-candidate-summary-value="inventory-baseline"]')?.textContent !== "28/28 pass; 131 skip unchanged" ||
!diagnosticsArtifact.virtualHalSimConfigPromotionCandidates?.familyRows?.some((row) =>
row.id === "qtdragon-on-abort" &&
row.candidateCount === 6 &&
row.completeCount === 6 &&
row.explicitBrowserDiagnosticsCount === 6 &&
row.explicitBrowserDiagnosticsReady === true &&
row.complete === true
) ||
!expectedPromotionCandidates.every(([id, ...sourceFiles]) =>
diagnosticsArtifact.virtualHalSimConfigPromotionCandidates?.rows?.some((row) =>
row.id === id &&
row.complete === true &&
row.currentNodeInventoryStatus === "PASS" &&
row.currentMatrixBrowserStatus === "explicit-browser-diagnostics" &&
row.targetBrowserEvidence === "explicit-browser-diagnostics" &&
sourceFiles.every((sourceFile) => row.sourceFiles.includes(sourceFile))
)
) ||
diagnosticsArtifact.virtualHalSimConfigMacroLoadFixtures?.complete !== true ||
diagnosticsArtifact.virtualHalSimConfigMacroLoadFixtures?.blockedFixturePromotionViolations?.length !== 0 ||
!expectedMacroLoadFixtures.every(([id, fixturePath, declaredOnly, ...sourceFiles]) =>
diagnosticsArtifact.virtualHalSimConfigMacroLoadFixtures?.blockedBoundaryEvidenceViolations?.length !== 0 ||
diagnosticsArtifact.virtualHalSimConfigMacroLoadFixtures?.auditPromotionViolations?.length !== 0 ||
!expectedMacroLoadFixtures.every(([id, fixturePath, declaredOnly, declarationSourceFile, declarationValue, declarationLine, ...sourceFiles]) =>
diagnosticsArtifact.virtualHalSimConfigMacroLoadFixtures?.rows?.some((row) =>
row.id === id &&
row.complete === true &&
@@ -514,6 +558,12 @@
row.targetBrowserEvidence === "non-main-fixture-diagnostics" &&
row.fixturePath === fixturePath &&
row.declaredOnly === declaredOnly &&
row.requiresDeclarationEvidence === true &&
row.declarationEvidenceReady === true &&
row.declarationEvidence?.sourceFile === declarationSourceFile &&
row.declarationEvidence?.key === "NGCGUI_SUBFILE" &&
row.declarationEvidence?.value === declarationValue &&
row.declarationEvidence?.line === declarationLine &&
sourceFiles.every((sourceFile) => row.sourceFiles.includes(sourceFile))
)
) ||
@@ -523,6 +573,38 @@
row.fixturePath === fixturePath &&
row.blockedKind === blockedKind &&
row.excludedFromPositiveFixtures === true &&
row.boundaryEvidenceReady === true &&
row.boundaryEvidence?.baselineSummary?.executed === 28 &&
row.boundaryEvidence?.baselineSummary?.passed === 28 &&
row.boundaryEvidence?.baselineSummary?.skipped === 131 &&
row.boundaryEvidence?.baselineSummary?.unexpectedFail === 0 &&
row.boundaryEvidence?.sourceArtifactHashes?.["wasm-port/build/wasm/sim-configs-inventory/boundary-summary.tsv"] === "de6cf57b7c07182e3bcb32e22dbdf202b618cabc14620d6dff1ef815587950b9" &&
row.boundaryEvidence?.sourceArtifactHashes?.["wasm-port/build/wasm/sim-configs-inventory/ini-boundary-summary.tsv"] === "b0afe27224e97a82fbecbbd75a7c86233c98fe957d9c1ba20f0656f8745a5eae" &&
row.boundaryEvidence?.boundarySummary?.recommendedBlocked === "UNAVAILABLE" &&
row.boundaryEvidence?.boundarySummary?.dependencies?.includes("missing_vendored_ini:") &&
row.boundaryEvidence?.iniBoundarySummary?.vendored === 0 &&
row.boundaryEvidence?.iniBoundarySummary?.reportAvailable === 0 &&
row.complete === true
)
) ||
!expectedMacroLoadAuditCandidates.every(([id, fixturePath, auditStatus]) =>
diagnosticsArtifact.virtualHalSimConfigMacroLoadFixtures?.auditRows?.some((row) =>
row.id === id &&
row.fixturePath === fixturePath &&
row.auditStatus === auditStatus &&
row.promotionAllowed === false &&
row.excludedFromPositiveFixtures === true &&
row.boundaryEvidenceReady === true &&
row.boundaryEvidence?.baselineSummary?.executed === 28 &&
row.boundaryEvidence?.baselineSummary?.passed === 28 &&
row.boundaryEvidence?.baselineSummary?.skipped === 131 &&
row.boundaryEvidence?.baselineSummary?.unexpectedFail === 0 &&
row.boundaryEvidence?.sourceArtifactHashes?.["wasm-port/build/wasm/sim-configs-inventory/boundary-summary.tsv"] === "de6cf57b7c07182e3bcb32e22dbdf202b618cabc14620d6dff1ef815587950b9" &&
row.boundaryEvidence?.sourceArtifactHashes?.["wasm-port/build/wasm/sim-configs-inventory/ini-boundary-summary.tsv"] === "b0afe27224e97a82fbecbbd75a7c86233c98fe957d9c1ba20f0656f8745a5eae" &&
row.boundaryEvidence?.boundarySummary?.recommendedBlocked === "UNAVAILABLE" &&
row.boundaryEvidence?.boundarySummary?.dependencies?.includes("missing_vendored_ini:") &&
row.boundaryEvidence?.iniBoundarySummary?.vendored === 0 &&
row.boundaryEvidence?.iniBoundarySummary?.reportAvailable === 0 &&
row.complete === true
)
) ||
@@ -946,6 +1028,7 @@
}
const virtualHalReplacement = api.getVirtualHalSimulationReplacementReport();
const promotionCandidateReport = api.getVirtualHalSimConfigPromotionCandidateReport();
const promotionFamilyRows = api.getVirtualHalPromotionFamilyRows();
const macroLoadFixtureReport = api.getVirtualHalSimConfigMacroLoadFixtureReport();
if (
virtualHalReplacement.apiName !== "linuxcnc-wasm-virtual-hal-simulation-replacement-report" ||
@@ -966,6 +1049,17 @@
!api.getVirtualHalSimConfigSourceCoverageReport().sourceFiles.includes("linuxcnc/configs/sim/qtdragon/qtdragon_xyz/on_abort.ngc") ||
promotionCandidateReport.complete !== true ||
promotionCandidateReport.inventoryBaselineUnchanged !== true ||
doc.body.dataset.promotionFamilyReady !== "true" ||
doc.body.dataset.promotionFamilyCount !== "3" ||
promotionFamilyRows.length !== 3 ||
![
["qtdragon-on-abort", "6/6 ready; sources=12"],
["vismach-remap-sims", "1/1 ready; sources=3"],
["rose-engine-rcone-demo", "1/1 ready; sources=2"],
].every(([id, value]) =>
doc.querySelector(`[data-promotion-family-row="${id}"]`)?.dataset.promotionFamilyReady === "true" &&
doc.querySelector(`[data-promotion-family-value="${id}"]`)?.textContent === value
) ||
!expectedPromotionCandidates.every(([id, ...sourceFiles]) =>
promotionCandidateReport.rows.some((row) =>
row.id === id &&
@@ -978,13 +1072,21 @@
macroLoadFixtureReport.inventoryBaselineUnchanged !== true ||
macroLoadFixtureReport.standaloneMainViolations.length !== 0 ||
macroLoadFixtureReport.blockedFixturePromotionViolations.length !== 0 ||
!expectedMacroLoadFixtures.every(([id, fixturePath, declaredOnly, ...sourceFiles]) =>
macroLoadFixtureReport.blockedBoundaryEvidenceViolations.length !== 0 ||
macroLoadFixtureReport.auditPromotionViolations.length !== 0 ||
!expectedMacroLoadFixtures.every(([id, fixturePath, declaredOnly, declarationSourceFile, declarationValue, declarationLine, ...sourceFiles]) =>
macroLoadFixtureReport.rows.some((row) =>
row.id === id &&
row.complete === true &&
row.nonMainFixture === true &&
row.fixturePath === fixturePath &&
row.declaredOnly === declaredOnly &&
row.requiresDeclarationEvidence === true &&
row.declarationEvidenceReady === true &&
row.declarationEvidence?.sourceFile === declarationSourceFile &&
row.declarationEvidence?.key === "NGCGUI_SUBFILE" &&
row.declarationEvidence?.value === declarationValue &&
row.declarationEvidence?.line === declarationLine &&
sourceFiles.every((sourceFile) => row.sourceFiles.includes(sourceFile))
)
) ||
@@ -994,6 +1096,38 @@
row.fixturePath === fixturePath &&
row.blockedKind === blockedKind &&
row.excludedFromPositiveFixtures === true &&
row.boundaryEvidenceReady === true &&
row.boundaryEvidence?.baselineSummary?.executed === 28 &&
row.boundaryEvidence?.baselineSummary?.passed === 28 &&
row.boundaryEvidence?.baselineSummary?.skipped === 131 &&
row.boundaryEvidence?.baselineSummary?.unexpectedFail === 0 &&
row.boundaryEvidence?.sourceArtifactHashes?.["wasm-port/build/wasm/sim-configs-inventory/boundary-summary.tsv"] === "de6cf57b7c07182e3bcb32e22dbdf202b618cabc14620d6dff1ef815587950b9" &&
row.boundaryEvidence?.sourceArtifactHashes?.["wasm-port/build/wasm/sim-configs-inventory/ini-boundary-summary.tsv"] === "b0afe27224e97a82fbecbbd75a7c86233c98fe957d9c1ba20f0656f8745a5eae" &&
row.boundaryEvidence?.boundarySummary?.recommendedBlocked === "UNAVAILABLE" &&
row.boundaryEvidence?.boundarySummary?.dependencies?.includes("missing_vendored_ini:") &&
row.boundaryEvidence?.iniBoundarySummary?.vendored === 0 &&
row.boundaryEvidence?.iniBoundarySummary?.reportAvailable === 0 &&
row.complete === true
)
) ||
!expectedMacroLoadAuditCandidates.every(([id, fixturePath, auditStatus]) =>
macroLoadFixtureReport.auditRows.some((row) =>
row.id === id &&
row.fixturePath === fixturePath &&
row.auditStatus === auditStatus &&
row.promotionAllowed === false &&
row.excludedFromPositiveFixtures === true &&
row.boundaryEvidenceReady === true &&
row.boundaryEvidence?.baselineSummary?.executed === 28 &&
row.boundaryEvidence?.baselineSummary?.passed === 28 &&
row.boundaryEvidence?.baselineSummary?.skipped === 131 &&
row.boundaryEvidence?.baselineSummary?.unexpectedFail === 0 &&
row.boundaryEvidence?.sourceArtifactHashes?.["wasm-port/build/wasm/sim-configs-inventory/boundary-summary.tsv"] === "de6cf57b7c07182e3bcb32e22dbdf202b618cabc14620d6dff1ef815587950b9" &&
row.boundaryEvidence?.sourceArtifactHashes?.["wasm-port/build/wasm/sim-configs-inventory/ini-boundary-summary.tsv"] === "b0afe27224e97a82fbecbbd75a7c86233c98fe957d9c1ba20f0656f8745a5eae" &&
row.boundaryEvidence?.boundarySummary?.recommendedBlocked === "UNAVAILABLE" &&
row.boundaryEvidence?.boundarySummary?.dependencies?.includes("missing_vendored_ini:") &&
row.boundaryEvidence?.iniBoundarySummary?.vendored === 0 &&
row.boundaryEvidence?.iniBoundarySummary?.reportAvailable === 0 &&
row.complete === true
)
) ||