feat(08.1-02): re-pin measurement gates for ARG3 and extend the rollout locks (GREEN)

- The optimality gate's decode-failure message names ARG3 and the rebuild
  command (node routing/scripts/build-road-graph.mjs); the frozen D-03
  constants (OPTIMALITY_EPSILON_PCT = 0.1, REQUIRED_BASELINE_ARG_VERSION
  = 1) and the immutable alt-baseline.json record are untouched.
- The oracle sweep's graph-missing (SKIP) and decode-failure wording names
  the ARG3 binary; the seeded 200-pair symmetric-compare constants and the
  three violation classes are unchanged.
- RO1/RO2 ban the ARG3 magic 0x41524733 in the upload script's and the
  Worker's comment-stripped code: the one-path laws now cover the CURRENT
  format, not just the retired ones. The Worker keeps exactly one
  decodeGraph call, no GRAPH_VERSION, no magic, no === 2.
- measure-route-cpu.mjs is untouched here by design: its LADDER HISTORY
  gains the CH rung only once the measured numbers exist (task 3).
This commit is contained in:
araharah-executor
2026-10-26 07:48:28 +08:00
parent 68bbe80894
commit bcab4b9999
3 changed files with 13 additions and 8 deletions
@@ -268,14 +268,16 @@ async function main() {
// environment fact, not a failure. // environment fact, not a failure.
if (!existsSync(GRAPH_PATH)) { if (!existsSync(GRAPH_PATH)) {
console.log( console.log(
`SKIP: no graph at ${GRAPH_PATH} — the real-graph optimality pin needs the gitignored binary; ` + `SKIP: no graph at ${GRAPH_PATH} — the real-graph optimality pin needs the gitignored ARG3 binary; ` +
`build it first: node routing/scripts/build-road-graph.mjs`, `build it first: node routing/scripts/build-road-graph.mjs`,
); );
process.exit(0); process.exit(0);
} }
const buffer = readFileSync(GRAPH_PATH); const buffer = readFileSync(GRAPH_PATH);
const graph = decodeGraph(toArrayBuffer(buffer)); const graph = decodeGraph(toArrayBuffer(buffer));
if (graph === null) fail(`${GRAPH_PATH} does not decode (fail-honest null) — rebuild the binary`); if (graph === null) {
fail(`${GRAPH_PATH} does not decode (fail-honest null — the current binary must be ARG3) — rebuild it: node routing/scripts/build-road-graph.mjs`);
}
const rawPairs = generateCrossMetroPairs(graph.bbox, { const rawPairs = generateCrossMetroPairs(graph.bbox, {
count: SWEEP_PAIR_COUNT * SWEEP_OVERSAMPLE_FACTOR, count: SWEEP_PAIR_COUNT * SWEEP_OVERSAMPLE_FACTOR,
+5 -4
View File
@@ -23,8 +23,9 @@
* Inputs: * Inputs:
* - the COMMITTED record routing/test/fixtures/alt-baseline.json (IMMUTABLE * - the COMMITTED record routing/test/fixtures/alt-baseline.json (IMMUTABLE
* — the recorder refuses overwrite; delete by explicit git revert only); * — the recorder refuses overwrite; delete by explicit git revert only);
* - the LOCAL rebuilt binary routing/data/kl-roadgraph.v1.bin (ARG2 — the * - the LOCAL rebuilt binary routing/data/kl-roadgraph.v1.bin (ARG3 since
* storage NAME stays v1; the header version is the format truth). * Phase 08.1 — the storage NAME stays v1; the header version is the
* format truth).
* *
* Constant-mirror law: this script's OPTIMALITY_EPSILON_PCT is asserted EQUAL * Constant-mirror law: this script's OPTIMALITY_EPSILON_PCT is asserted EQUAL
* to the record's epsilon block BEFORE any measurement — a record edit alone * to the record's epsilon block BEFORE any measurement — a record edit alone
@@ -88,7 +89,7 @@ function toArrayBuffer(buf) {
* "unsnapped" — a record-routed pair whose snap now misses (a D03B class * "unsnapped" — a record-routed pair whose snap now misses (a D03B class
* break — the pair no longer routes at all). * break — the pair no longer routes at all).
* *
* @param graph decoded RoadGraph (the current ARG2 build) * @param graph decoded RoadGraph (the current ARG3 build)
* @param record parsed alt-baseline.json (the frozen pre-ALT record) * @param record parsed alt-baseline.json (the frozen pre-ALT record)
* @param opts { snap, astar } — the live modules (injected like the corpus core) * @param opts { snap, astar } — the live modules (injected like the corpus core)
* @returns {{ checks: { D03A: check, D03B: check }, rows: Array, reSnapped: number, pass: boolean }} * @returns {{ checks: { D03A: check, D03B: check }, rows: Array, reSnapped: number, pass: boolean }}
@@ -270,7 +271,7 @@ function main() {
const graph = decodeGraph(toArrayBuffer(readFileSync(GRAPH_PATH))); const graph = decodeGraph(toArrayBuffer(readFileSync(GRAPH_PATH)));
if (graph === null) { if (graph === null) {
fail( fail(
`${GRAPH_PATH} does not decode (fail-honest null — still ARG1 or corrupt) — rebuild the ARG2 binary: node routing/scripts/build-road-graph.mjs`, `${GRAPH_PATH} does not decode (fail-honest null — the current binary must be ARG3) — rebuild it: node routing/scripts/build-road-graph.mjs`,
); );
} }
+4 -2
View File
@@ -65,6 +65,7 @@ test("RO1 upload-format-agnostic — the upload path is byte-shipping, never for
"decodeGraph", "decodeGraph",
"0x41524731", // ARG1 magic "0x41524731", // ARG1 magic
"0x41524732", // ARG2 magic "0x41524732", // ARG2 magic
"0x41524733", // ARG3 magic (Phase 08.1 — the ban covers the CURRENT format too)
"GRAPH_VERSION", "GRAPH_VERSION",
]) { ]) {
assert.ok(!code.includes(token), `upload code must never reference ${token} (the migration is byte-shipping — D-01)`); assert.ok(!code.includes(token), `upload code must never reference ${token} (the migration is byte-shipping — D-01)`);
@@ -90,8 +91,9 @@ test("RO2 one decode path at the Worker — the router never branches on format"
const calls = code.match(/decodeGraph\(/g) ?? []; const calls = code.match(/decodeGraph\(/g) ?? [];
assert.equal(calls.length, 1, "exactly one decodeGraph call site — the ONE decode path"); assert.equal(calls.length, 1, "exactly one decodeGraph call site — the ONE decode path");
// NO version-conditional branch against the graph bytes: no version // NO version-conditional branch against the graph bytes: no version
// constant import/compare, no magic, no `=== 2` anywhere in the file. // constant import/compare, no magic (ARG1, ARG2, or the current ARG3),
for (const token of ["GRAPH_VERSION", "0x41524731", "0x41524732", "=== 2"]) { // no `=== 2` anywhere in the file.
for (const token of ["GRAPH_VERSION", "0x41524731", "0x41524732", "0x41524733", "=== 2"]) {
assert.ok(!code.includes(token), `the router must never branch on format (${token})`); assert.ok(!code.includes(token), `the router must never branch on format (${token})`);
} }
}); });