按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:
2026-06-20 12:18:08 +08:00
parent 8a1c4699b1
commit a6eda3fbff
18 changed files with 2144 additions and 51 deletions

View File

@@ -302,11 +302,11 @@ assert.equal(
);
assert.equal(
readySummary.rows.find(({ id }) => id === "evidence-expansion-full-candidate-list")?.value,
"woodpecker-on-abort, puma-cube, melfa-example, trt-boat-xyzac, trt-xyzac-switchkins",
"woodpecker-on-abort, puma-cube, melfa-example, trt-boat-xyzac, trt-xyzac-switchkins, trt-boat-xyzbc, trt-impeller-7bl-xyzac, trt-xyzac-switchkins-test-1, trt-xyzac-switchkins-test-2, trt-xyzac-switchkins-test-3, trt-xyzbc-switchkins",
);
assert.equal(
readySummary.rows.find(({ id }) => id === "evidence-expansion-full-gcode-list")?.value,
"linuxcnc/configs/sim/woodpecker/on_abort.ngc, linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ngc, linuxcnc/configs/sim/axis/vismach/melfa-sim/example.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc",
"linuxcnc/configs/sim/woodpecker/on_abort.ngc, linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ngc, linuxcnc/configs/sim/axis/vismach/melfa-sim/example.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_2.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_3.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc",
);
assert.equal(
readySummary.rows.find(({ id }) => id === "evidence-expansion-artifact")?.value,
@@ -388,8 +388,14 @@ assert.deepEqual(
["evidence-expansion-candidate-list", "woodpecker-on-abort, puma-cube, melfa-example"],
["evidence-expansion-gcode-list", "linuxcnc/configs/sim/woodpecker/on_abort.ngc, linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ngc, linuxcnc/configs/sim/axis/vismach/melfa-sim/example.ngc"],
["evidence-expansion-source-count-list", "3, 3, 3"],
["evidence-expansion-full-candidate-list", "woodpecker-on-abort, puma-cube, melfa-example, trt-boat-xyzac, trt-xyzac-switchkins"],
["evidence-expansion-full-gcode-list", "linuxcnc/configs/sim/woodpecker/on_abort.ngc, linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ngc, linuxcnc/configs/sim/axis/vismach/melfa-sim/example.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc"],
["evidence-expansion-full-candidate-list", "woodpecker-on-abort, puma-cube, melfa-example, trt-boat-xyzac, trt-xyzac-switchkins, trt-boat-xyzbc, trt-impeller-7bl-xyzac, trt-xyzac-switchkins-test-1, trt-xyzac-switchkins-test-2, trt-xyzac-switchkins-test-3, trt-xyzbc-switchkins"],
["evidence-expansion-full-gcode-list", "linuxcnc/configs/sim/woodpecker/on_abort.ngc, linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ngc, linuxcnc/configs/sim/axis/vismach/melfa-sim/example.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_2.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_3.ngc, linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc"],
["evidence-expansion-family-count", "3 families"],
["evidence-expansion-family-summary", "woodpecker: 1/1 ready; vismach-remap-sims: 2/2 ready; five-axis-trt: 8/8 ready"],
["evidence-expansion-family-source-count-list", "woodpecker:3, vismach-remap-sims:6, five-axis-trt:12"],
["evidence-expansion-family-woodpecker", "1/1 ready; sources=3; diagnostics=ready"],
["evidence-expansion-family-vismach-remap-sims", "2/2 ready; sources=6; diagnostics=ready"],
["evidence-expansion-family-five-axis-trt", "8/8 ready; sources=12; diagnostics=ready"],
["evidence-expansion-artifact", "wasm-port/build/wasm/sim-configs-inventory/evidence-expansion-candidates.tsv"],
["promotion-candidate-allowed", "0"],
["hard-block-runtime-locked-rows", "1"],

View File

@@ -563,6 +563,9 @@ assert.deepEqual(
["evidence-expansion-source-count-list", "not provided"],
["evidence-expansion-full-candidate-list", "not provided"],
["evidence-expansion-full-gcode-list", "not provided"],
["evidence-expansion-family-count", "not provided"],
["evidence-expansion-family-summary", "not provided"],
["evidence-expansion-family-source-count-list", "not provided"],
["evidence-expansion-artifact", "wasm-port/build/wasm/sim-configs-inventory/evidence-expansion-candidates.tsv"],
["promotion-candidate-allowed", "0"],
["hard-block-runtime-locked-rows", "0"],

View File

@@ -154,6 +154,17 @@ import {
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowDomReadiness,
renderIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowState,
mountIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowState,
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilyRowsRenderState,
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterViewModel,
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterDomContract,
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterDomReadiness,
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSummary,
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterActionPlan,
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionActionPlan,
handleIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionChange,
bindIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionControls,
renderIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterState,
mountIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterState,
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactGateExecutionSummaryRenderState,
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactGateExecutionSummaryDomContract,
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactGateExecutionSummaryDomReadiness,
@@ -299,6 +310,9 @@ const expectedPromotionCandidateArtifactSummary = {
promotionAllowedCount: 0,
baselineChanging: false,
nextEvidence: "browser-diagnostics-binding",
familyCount: 0,
familySummary: "not provided",
familyRows: [],
},
};
const hasFreshBoundaryArtifactHashes = (boundaryEvidence) =>
@@ -580,6 +594,50 @@ const requiredExports = [
"createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlan",
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactUrlWorkflowActionPlan,
],
[
"createIniPanelShellWorkflowOverviewEvidenceExpansionFamilyRowsRenderState",
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilyRowsRenderState,
],
[
"createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterViewModel",
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterViewModel,
],
[
"createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterDomContract",
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterDomContract,
],
[
"createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterDomReadiness",
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterDomReadiness,
],
[
"createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSummary",
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSummary,
],
[
"createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterActionPlan",
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterActionPlan,
],
[
"createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionActionPlan",
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionActionPlan,
],
[
"handleIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionChange",
handleIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionChange,
],
[
"bindIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionControls",
bindIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionControls,
],
[
"renderIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterState",
renderIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterState,
],
[
"mountIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterState",
mountIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterState,
],
[
"createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel",
createIniPanelShellWorkflowOverviewReleaseReadinessArtifactValidationSummaryViewModel,
@@ -1084,7 +1142,7 @@ assert.equal(virtualHalRuntime.getSimConfigPromotionCandidateReport({
simConfigSourceCoverage: simConfigSourceCoverageReport,
motionControllerMatrix: manifestCheckedMotionControllerMatrixReport,
}).complete, true);
assert.equal(VIRTUAL_HAL_SIM_CONFIG_EVIDENCE_EXPANSION_CANDIDATES.length, 5);
assert.equal(VIRTUAL_HAL_SIM_CONFIG_EVIDENCE_EXPANSION_CANDIDATES.length, 11);
const simConfigEvidenceExpansionReport = createVirtualHalSimConfigEvidenceExpansionReport({
manifestText: sourceManifestText,
simConfigSourceCoverage: simConfigSourceCoverageReport,
@@ -1098,8 +1156,22 @@ assert.equal(simConfigEvidenceExpansionReport.complete, true);
assert.equal(simConfigEvidenceExpansionReport.webSimulationSatisfied, true);
assert.equal(simConfigEvidenceExpansionReport.inventoryBaselineUnchanged, true);
assert.equal(simConfigEvidenceExpansionReport.promotionAllowed, false);
assert.equal(simConfigEvidenceExpansionReport.candidateCount, 5);
assert.equal(simConfigEvidenceExpansionReport.readyCandidateCount, 5);
assert.equal(simConfigEvidenceExpansionReport.candidateCount, 11);
assert.equal(simConfigEvidenceExpansionReport.readyCandidateCount, 11);
assert.deepEqual(
simConfigEvidenceExpansionReport.familyRows.map(({ id, candidateCount, completeCount, sourceFileCount, complete }) => [
id,
candidateCount,
completeCount,
sourceFileCount,
complete,
]),
[
["woodpecker", 1, 1, 3, true],
["vismach-remap-sims", 2, 2, 6, true],
["five-axis-trt", 8, 8, 12, true],
],
);
assert.equal(simConfigEvidenceExpansionReport.promotionAllowedViolations.length, 0);
assert.equal(
simConfigEvidenceExpansionReport.rows.some((row) =>
@@ -1135,6 +1207,25 @@ assert.equal(
),
true,
);
for (const [id, gcodePath] of [
["trt-boat-xyzbc", "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc"],
["trt-impeller-7bl-xyzac", "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc"],
["trt-xyzac-switchkins-test-1", "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc"],
["trt-xyzac-switchkins-test-2", "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_2.ngc"],
["trt-xyzac-switchkins-test-3", "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_3.ngc"],
["trt-xyzbc-switchkins", "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc"],
]) {
assert.equal(
simConfigEvidenceExpansionReport.rows.some((row) =>
row.id === id &&
row.currentMatrixBrowserStatus === "REP" &&
row.targetBrowserEvidence === "browser-diagnostics-expansion" &&
row.promotionAllowed === false &&
row.sourceFiles.includes(gcodePath)
),
true,
);
}
assert.equal(VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_FIXTURES.length >= 2, true);
assert.equal(VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_BLOCKED_FIXTURES.length >= 2, true);
assert.equal(VIRTUAL_HAL_SIM_CONFIG_MACRO_LOAD_AUDIT_CANDIDATES.length >= 2, true);