Complete V1 RC deployment capability gates

This commit is contained in:
mes123456
2026-08-15 01:01:23 -04:00
parent a3f3071c03
commit 17ab961485
37 changed files with 2031 additions and 184 deletions

View File

@@ -0,0 +1,21 @@
import assert from "node:assert/strict";
import fs from "node:fs";
import path from "node:path";
import { evidencePath, root, sha256 } from "./v1-acceptance-lib.mjs";
assert.ok(fs.existsSync(evidencePath), "V1 acceptance evidence is missing");
const acceptanceSha256 = sha256(fs.readFileSync(evidencePath));
const releaseEvidence = JSON.parse(fs.readFileSync(path.join(root, "docs/status/release-evidence.json"), "utf8"));
const userLoopRecord = releaseEvidence.evidence?.records?.find((record) => record.id === "v1-user-loop");
assert.ok(userLoopRecord, "release evidence has no v1-user-loop record");
assert.equal(userLoopRecord.exitCode, 0, "release v1-user-loop record failed");
assert.ok(userLoopRecord.output?.trim().length > 0, "release v1-user-loop output is empty");
assert.ok(
userLoopRecord.artifactSha256?.includes(acceptanceSha256),
"current V1 acceptance evidence is not bound to release evidence",
);
process.stdout.write(
`v1-acceptance-release-binding-ok acceptanceSha256=${acceptanceSha256} releaseGeneratedAt=${releaseEvidence.generatedAt}\n`,
);