Complete M16 asset operator parity chain
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-08-23 18:10:00 -04:00
parent c0d471da01
commit 5c8cfd1a8c
127 changed files with 5574 additions and 47 deletions

View File

@@ -5,11 +5,13 @@ import { fileURLToPath } from "node:url";
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
const output = path.resolve(process.argv[2] ?? path.join(root, "tests/golden/M15-03A/next-task-plan.json"));
const completionArg = process.argv.indexOf("--completion-path");
const completionPathArg = completionArg >= 0 ? process.argv[completionArg + 1] : undefined;
const mapPath = path.join(root, "tests/golden/M15-02A/blender-parity-map.json");
const gapPath = path.join(root, "tests/golden/M15-02B/blender-gap-audit.json");
const map = JSON.parse(fs.readFileSync(mapPath, "utf8"));
const gaps = JSON.parse(fs.readFileSync(gapPath, "utf8"));
const completionPath = path.join(root, "tests/golden/M15-03A/completed-gap-tasks.json");
const completionPath = path.resolve(root, completionPathArg ?? "tests/golden/M15-03A/completed-gap-tasks.json");
const completedIds = fs.existsSync(completionPath) ? new Set(JSON.parse(fs.readFileSync(completionPath, "utf8"))) : new Set();
const byId = new Map(map.entries.map((entry) => [entry.id, entry]));
const waveFor = (owner) => {
@@ -58,7 +60,7 @@ const plan = {
schemaVersion: 1,
task: "M15-03A",
operation: "BLENDER_NEXT_TASK_PLAN",
sources: { parityMap: { path: "tests/golden/M15-02A/blender-parity-map.json", sha256: sha256File(mapPath) }, gapAudit: { path: "tests/golden/M15-02B/blender-gap-audit.json", sha256: sha256File(gapPath) }, completions: { path: "tests/golden/M15-03A/completed-gap-tasks.json", sha256: crypto.createHash("sha256").update(completionBytes).digest("hex") } },
sources: { parityMap: { path: "tests/golden/M15-02A/blender-parity-map.json", sha256: sha256File(mapPath) }, gapAudit: { path: "tests/golden/M15-02B/blender-gap-audit.json", sha256: sha256File(gapPath) }, completions: { path: path.relative(root, completionPath).replaceAll(path.sep, "/"), sha256: crypto.createHash("sha256").update(completionBytes).digest("hex") } },
summary: { taskCount: tasks.length, active: tasks.filter((task) => task.state === "active").length, pending: tasks.filter((task) => task.state === "pending").length, completed: tasks.filter((task) => task.state === "completed").length, blocked: tasks.filter((task) => task.state === "blocked").length, byWave: Object.fromEntries([...waveCounts.entries()]) },
tasks,
firstTask: tasks.find((task) => task.state === "active")?.id ?? null,