fix(rm-02): narrow inventory drift guarantee
ci/woodpecker/pr/ci Pipeline was successful

This commit is contained in:
2026-08-01 15:09:57 -05:00
parent c5b0d510d7
commit e910a45ab3
13 changed files with 203 additions and 38 deletions
+7 -7
View File
@@ -591,20 +591,20 @@ function validateClosedSchema(
rejectDuplicateIds(manifest.gates, 'gate', failures);
if (!fixtureProfile) {
if (!(requiredGateInventory instanceof Map) || requiredGateInventory.size === 0) {
failures.push('independent required-gate baseline is absent or empty');
failures.push('same-checkout required-gate baseline is absent or empty');
} else {
if (!inventoriesEqual(REQUIRED_GATE_INVENTORY, requiredGateInventory)) {
for (const [requiredId, requiredSource] of requiredGateInventory) {
if (REQUIRED_GATE_INVENTORY.get(requiredId) !== requiredSource) {
failures.push(
`independent required-gate baseline rejects verifier inventory drift at ${requiredId}`,
`same-checkout required-gate baseline rejects verifier inventory drift at ${requiredId}`,
);
}
}
for (const [requiredId, requiredSource] of REQUIRED_GATE_INVENTORY) {
if (requiredGateInventory.get(requiredId) !== requiredSource) {
failures.push(
`verifier inventory ${requiredId} is absent or changed in independent required-gate baseline`,
`verifier inventory ${requiredId} is absent or changed in same-checkout required-gate baseline`,
);
}
}
@@ -613,7 +613,7 @@ function validateClosedSchema(
const registered = (manifest.gates ?? []).find((gate) => gate?.id === requiredId);
if (!registered || registered.source !== requiredSource) {
failures.push(
`independent required-gate baseline rejects manifest drift at ${requiredId}: required source ${requiredSource}`,
`same-checkout required-gate baseline rejects manifest drift at ${requiredId}: required source ${requiredSource}`,
);
}
}
@@ -1128,15 +1128,15 @@ export async function verifyRegistry(options) {
gate.source.length === 0,
)
) {
failures.push('independent required-gate baseline has unsupported structure');
failures.push('same-checkout required-gate baseline has unsupported structure');
} else {
requiredGateInventory = new Map(baseline.gates.map((gate) => [gate.id, gate.source]));
if (requiredGateInventory.size !== baseline.gates.length) {
failures.push('independent required-gate baseline has duplicate gate ids');
failures.push('same-checkout required-gate baseline has duplicate gate ids');
}
}
} catch (error) {
failures.push(`independent required-gate baseline cannot be read: ${error.message}`);
failures.push(`same-checkout required-gate baseline cannot be read: ${error.message}`);
}
}