From 1bf4def2e926ceecf8cedc690393ecf4720c25f7 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 21:20:43 +0000 Subject: [PATCH 1/3] The identity grep covers the served registry's sources; the map's and three batch notes' rig names scrubbed; the island label (main's word): every record measured on the 2.0 devnet after 20:00 UK reads 'on an island, not a network', stamped at record time and by --label-islands at replay Co-Authored-By: Claude Fable 5.1 --- docs/plans/igneum-2.0-test-harness-map.md | 10 +- docs/plans/igneum-2.0-test-registry.json | 191 ++++++++++-------- .../batches/amd-intel-energy-20261008-01.json | 27 +-- tools/ci/batches/p01-20261008-01.json | 2 +- .../batches/p02-fleet-pods-20261008-01.json | 5 +- tools/ci/identity-check.sh | 12 +- tools/ci/test-map.json | 10 +- tools/ci/test-record.mjs | 34 ++++ 8 files changed, 178 insertions(+), 113 deletions(-) diff --git a/docs/plans/igneum-2.0-test-harness-map.md b/docs/plans/igneum-2.0-test-harness-map.md index 4d401d387..3c18886bd 100644 --- a/docs/plans/igneum-2.0-test-harness-map.md +++ b/docs/plans/igneum-2.0-test-harness-map.md @@ -336,8 +336,8 @@ Rule: a case maps to a cell only where the cell's tests visibly answer it; cover ### bench:amd-intel-energy -- Command: `the AMD-and-Intel energy lane jobs on the signed-jobs channel: run-ae-pc2-b580-energy-20261008 (PC 2, Arc B580, the class v6 kit worker --memprobe and --bench-pack on hl-v6-foldrw and hl-v6-all, Level Zero energy counter) and run-ae-pc1-7600-energy-20261008 (the project's own rig, RX 7600, the same with ADLX watts at stock, plimit -30, gmax -500 + plimit -30); scripts in docs/analysis/class-v6/amd-intel-energy/` -- Box class: the project's own rig and PC 2 bench (OpenCL) +- Command: `the AMD-and-Intel energy lane jobs on the signed-jobs channel: run-ae-pc2-b580-energy-20261008 (the project's second rig, Arc B580, the class v6 kit worker --memprobe and --bench-pack on hl-v6-foldrw and hl-v6-all, Level Zero energy counter) and run-ae-pc1-7600-energy-20261008 (the project's own rig, RX 7600, the same with ADLX watts at stock, plimit -30, gmax -500 + plimit -30); scripts in docs/analysis/class-v6/amd-intel-energy/` +- Box class: the project's two rigs' bench (OpenCL) - Fixtures: F0, F1 - Cases: - GPU-03 Measure the real 64-register GPU cost: partial: the 64-register window on AMD and Intel, rate per unit of work (RX 7600 0 percent, Arc B580 -0.3 percent, kernel throughput, quiet) with the B580 fingerprints equal on both packs and the offline RDNA allocation (160 VGPRs, no spill); energy owed (the 7600 job queued, the B580 counter unsupported unelevated); team-run, not under the standard's paired protocol or a wall meter @@ -367,7 +367,7 @@ Rule: a case maps to a cell only where the cell's tests visibly answer it; cover ### pc:install-update -- Command: `signed jobs and relay runs on the project's own rig (ae432dc7) and PC 2 (1ccfe586): the installer over the running app (rule 14: installed versions, the process set, the first upload), the OTA path (update-now, the update-return read-back line), and the no-click resume after the install (relay run mining-on-after-200.ps1)` +- Command: `signed jobs and relay runs on the project's two rigs (ae432dc7 and 1ccfe586): the installer over the running app (rule 14: installed versions, the process set, the first upload), the OTA path (update-now, the update-return read-back line), and the no-click resume after the install (relay run mining-on-after-200.ps1)` - Box class: PC (the two Windows PCs; nothing on the Mac) - Fixtures: F2 - Cases: @@ -410,8 +410,8 @@ Rule: a case maps to a cell only where the cell's tests visibly answer it; cover ### kit:class-v6-fingerprints -- Command: `KITS_BOX_SCRIPT=kits-v6-on-box.sh tools/class-v5/kits-remote.sh --box 1 (the kit zip with its emulation check), then the kit's workers on every platform: the box's CPU emulation (--check, 96 of 96 vector lanes), the fleet's CUDA 4090 (--check and --bench at 2^24, base nonce 0), the Mac's Metal (proto-metal/packbench.swift --pack) and Apple OpenCL (proto-opencl/host.c --pack --bench-pack), PC 1's RTX 5090 and RX 7600 (tools/class-v5/pc1-v6-bench.ps1), PC 2's Arc B580 (tools/class-v5/arc-v6-bench.ps1); the fingerprint of the 2^24 outputs at base nonce 0 equal on every platform for the all pack and for its known-failed partner, the two distinct` -- Box class: build box + pods + Mac + PC 1 + PC 2 +- Command: `KITS_BOX_SCRIPT=kits-v6-on-box.sh tools/class-v5/kits-remote.sh --box 1 (the kit zip with its emulation check), then the kit's workers on every platform: the box's CPU emulation (--check, 96 of 96 vector lanes), the fleet's CUDA 4090 (--check and --bench at 2^24, base nonce 0), the Mac's Metal (proto-metal/packbench.swift --pack) and Apple OpenCL (proto-opencl/host.c --pack --bench-pack), the project's first rig's RTX 5090 and RX 7600 (tools/class-v5/pc1-v6-bench.ps1), the project's second rig's Arc B580 (tools/class-v5/arc-v6-bench.ps1); the fingerprint of the 2^24 outputs at base nonce 0 equal on every platform for the all pack and for its known-failed partner, the two distinct` +- Box class: build box + pods + Mac + the project's two rigs - Fixtures: F0, F2 - Cases: - R2-F03-R02 Same job context produces identical accepted work in node, CPU reference, CUDA, Metal, OpenCL and pool.: partial: the worker half (CPU reference, CUDA, Metal, OpenCL) on the same program packs; the node's and the pool's accepted work on the same job context are the CI steward's and the pool lane's cells; PASS only when every listed platform reads one fingerprint and the node and pool halves are green diff --git a/docs/plans/igneum-2.0-test-registry.json b/docs/plans/igneum-2.0-test-registry.json index 515c64190..1c7faf59e 100644 --- a/docs/plans/igneum-2.0-test-registry.json +++ b/docs/plans/igneum-2.0-test-registry.json @@ -52,7 +52,7 @@ "run_status": "NOT RUN", "evidence_path": "docs/plans/igneum-2.0-f0-manifest.md; build-4:/srv/builds/igneum-wt-f03-201/vendor/igneum-node/packaging/pow-freeze.txt; build-4:/srv/builds/igneum-wt-f03-201", "run_id": "f03-manifest-20261008-01", - "updated": "2026-10-08T21:11:46.383Z", + "updated": "2026-10-08T21:22:48.537Z", "evidence_record": { "requirement_id": "GOV-01", "decision": "NOT RUN", @@ -103,7 +103,8 @@ }, "claim_impact": "F03's first rung: one manifest, one build, no unpublished vendor tree; the same-work rung (R02) and the transition rung (R03) stay NOT RUN until the readers run on the job context", "reviewer": "", - "at": "2026-10-08T21:11:46.383Z" + "at": "2026-10-08T21:11:46.383Z", + "note": "" } } }, @@ -651,31 +652,30 @@ "manual_page": 21, "owner_lane": "research lane (ad6a2bd47d4a46105)", "run_status": "NOT RUN", - "evidence_path": "docs/analysis/class-v6/rows/fleet-f05-20261008.md", - "run_id": "hash-lane-20261008-batch2", - "updated": "2026-10-08T19:59:34.316Z", + "evidence_path": "build-1:/srv/artefacts/tas/p02-rows/p02-rows.txt", + "run_id": "p02-fleet-pods-20261008-01", + "updated": "2026-10-08T21:21:14.082Z", "evidence_record": { - "cell": "bench:fleet-pods", - "manifest_sha": "b24dfc162", - "coverage": { - "GPU-01": "partial: the NVIDIA cells of P02 that RunPod carries", - "GPU-03": "partial: the 4090 cell", - "POW-08": "partial: W = 16 on four cards" - }, - "at": "2026-10-08T19:59:34.316Z", - "method": "GPU", "requirement_id": "GPU-01", "decision": "NOT RUN", - "reviewer": "", - "claim_impact": "", + "method": "GPU", + "cell": "bench:fleet-pods", + "manifest_sha": "417c4a57", + "run_id": "p02-fleet-pods-20261008-01", + "evidence": "build-1:/srv/artefacts/tas/p02-rows/p02-rows.txt", + "in_progress": false, + "coverage": "partial: the NVIDIA cells of P02 that RunPod carries", "release_identity": { - "commit": "b24dfc162", + "commit": "417c4a57", "lockfile": "", "binary": "", "network_object": "", "activation": "", "profile_hashes": "" - } + }, + "claim_impact": "", + "reviewer": "", + "at": "2026-10-08T21:21:14.082Z" }, "in_progress_since": "2026-10-08T19:59:34.316Z", "approvals": { @@ -686,30 +686,26 @@ }, "evidence_records": { "bench:fleet-pods": { - "cell": "bench:fleet-pods", - "manifest_sha": "b24dfc162", - "coverage": { - "GPU-01": "partial: the NVIDIA cells of P02 that RunPod carries", - "GPU-03": "partial: the 4090 cell", - "POW-08": "partial: W = 16 on four cards" - }, - "at": "2026-10-08T19:59:34.316Z", - "method": "GPU", "requirement_id": "GPU-01", "decision": "NOT RUN", - "reviewer": "", - "claim_impact": "", + "method": "GPU", + "cell": "bench:fleet-pods", + "manifest_sha": "417c4a57", + "run_id": "p02-fleet-pods-20261008-01", + "evidence": "build-1:/srv/artefacts/tas/p02-rows/p02-rows.txt", + "in_progress": false, + "coverage": "partial: the NVIDIA cells of P02 that RunPod carries", "release_identity": { - "commit": "b24dfc162", + "commit": "417c4a57", "lockfile": "", "binary": "", "network_object": "", "activation": "", "profile_hashes": "" }, - "run_id": "hash-lane-20261008-batch2", - "evidence": "docs/analysis/class-v6/rows/fleet-f05-20261008.md", - "in_progress": true + "claim_impact": "", + "reviewer": "", + "at": "2026-10-08T21:21:14.082Z" } } }, @@ -835,21 +831,21 @@ "manual_page": 21, "owner_lane": "hash lane (a690540514aa453d7)", "run_status": "NOT RUN", - "evidence_path": "docs/analysis/class-v6/rows/fleet-f05-20261008.md; docs/analysis/class-v6/amd-intel-energy.md", - "run_id": "amd-intel-energy-20261008-01", - "updated": "2026-10-08T20:18:52.686Z", + "evidence_path": "build-1:/srv/artefacts/tas/p02-rows/p02-rows.txt; docs/analysis/class-v6/amd-intel-energy.md", + "run_id": "p02-fleet-pods-20261008-01", + "updated": "2026-10-08T21:21:14.082Z", "evidence_record": { "requirement_id": "GPU-03", "decision": "NOT RUN", "method": "GPU", - "cell": "bench:amd-intel-energy", - "manifest_sha": "c245d50b9", - "run_id": "amd-intel-energy-20261008-01", - "evidence": "docs/analysis/class-v6/amd-intel-energy.md", + "cell": "bench:fleet-pods", + "manifest_sha": "417c4a57", + "run_id": "p02-fleet-pods-20261008-01", + "evidence": "build-1:/srv/artefacts/tas/p02-rows/p02-rows.txt", "in_progress": false, - "coverage": "partial: the 64-register window on AMD and Intel, rate per unit of work (RX 7600 0 percent, Arc B580 -0.3 percent, kernel throughput, quiet) with the B580 fingerprints equal on both packs and the offline RDNA allocation (160 VGPRs, no spill); energy owed (the 7600 job queued, the B580 counter unsupported unelevated); team-run, not under the standard's paired protocol or a wall meter", + "coverage": "partial: the 4090 cell", "release_identity": { - "commit": "c245d50b9", + "commit": "417c4a57", "lockfile": "", "binary": "", "network_object": "", @@ -858,7 +854,7 @@ }, "claim_impact": "", "reviewer": "", - "at": "2026-10-08T20:18:52.686Z" + "at": "2026-10-08T21:21:14.082Z" }, "in_progress_since": "2026-10-08T19:59:34.316Z", "approvals": { @@ -869,30 +865,26 @@ }, "evidence_records": { "bench:fleet-pods": { - "cell": "bench:fleet-pods", - "manifest_sha": "b24dfc162", - "coverage": { - "GPU-01": "partial: the NVIDIA cells of P02 that RunPod carries", - "GPU-03": "partial: the 4090 cell", - "POW-08": "partial: W = 16 on four cards" - }, - "at": "2026-10-08T19:59:34.316Z", - "method": "GPU", "requirement_id": "GPU-03", "decision": "NOT RUN", - "reviewer": "", - "claim_impact": "", + "method": "GPU", + "cell": "bench:fleet-pods", + "manifest_sha": "417c4a57", + "run_id": "p02-fleet-pods-20261008-01", + "evidence": "build-1:/srv/artefacts/tas/p02-rows/p02-rows.txt", + "in_progress": false, + "coverage": "partial: the 4090 cell", "release_identity": { - "commit": "b24dfc162", + "commit": "417c4a57", "lockfile": "", "binary": "", "network_object": "", "activation": "", "profile_hashes": "" }, - "run_id": "hash-lane-20261008-batch2", - "evidence": "docs/analysis/class-v6/rows/fleet-f05-20261008.md", - "in_progress": true + "claim_impact": "", + "reviewer": "", + "at": "2026-10-08T21:21:14.082Z" }, "bench:amd-intel-energy": { "requirement_id": "GPU-03", @@ -914,7 +906,7 @@ }, "claim_impact": "", "reviewer": "", - "at": "2026-10-08T20:18:52.686Z" + "at": "2026-10-08T21:21:14.006Z" } } }, @@ -1331,7 +1323,7 @@ "run_status": "NOT RUN", "evidence_path": "docs/analysis/review-2026-10-08-b/f10/emu-test.log; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all-nowin.json", "run_id": "p01-20261008-01", - "updated": "2026-10-08T20:10:24.686Z", + "updated": "2026-10-08T21:21:13.933Z", "evidence_record": { "requirement_id": "POW-01", "decision": "NOT RUN", @@ -1352,7 +1344,7 @@ }, "claim_impact": "POW-01's CUDA half on the class v5 object and all three class v6 D1 candidates: a million nonces agree bit-for-bit with the CPU reference on three CUDA generations each; OpenCL and Metal remain", "reviewer": "", - "at": "2026-10-08T20:10:24.686Z" + "at": "2026-10-08T21:21:13.933Z" }, "in_progress_since": "2026-10-08T20:07:26.255Z", "approvals": { @@ -1407,7 +1399,7 @@ }, "claim_impact": "POW-01's CUDA half on the class v5 object and all three class v6 D1 candidates: a million nonces agree bit-for-bit with the CPU reference on three CUDA generations each; OpenCL and Metal remain", "reviewer": "", - "at": "2026-10-08T20:10:24.686Z" + "at": "2026-10-08T21:21:13.933Z" } } }, @@ -2052,31 +2044,30 @@ "manual_page": 26, "owner_lane": "hash lane (a690540514aa453d7)", "run_status": "NOT RUN", - "evidence_path": "docs/analysis/class-v6/rows/pow-07-fp32-unreachable.md", - "run_id": "hash-lane-20261008-batch2", - "updated": "2026-10-08T19:59:34.316Z", + "evidence_path": "docs/analysis/class-v6/rows/pow-07-fp32-unreachable.md; build-1:/srv/artefacts/tas/p02-rows/p02-rows.txt", + "run_id": "p02-fleet-pods-20261008-01", + "updated": "2026-10-08T21:21:14.082Z", "evidence_record": { - "cell": "suite:pow", - "manifest_sha": "b24dfc162", - "coverage": { - "POW-02": "partial: program derivation, ds55 geometry, the v6 fold, the packs and the spec read-back tests; the independent re-implementation and the index-fold census are the hash lane's harnesses", - "POW-08": "partial: the freeze list and the generator version pin; the public-claim scrub is the site gate's", - "POW-07": "the mixed FP32 branch is excluded and unreachable: no class flag reaches an FP op in igneum-pow on master (the mixedfp lane's branch is not on master); evidence the grep of the emitters on master, recorded by the hash lane" - }, - "at": "2026-10-08T19:59:34.316Z", - "method": "native", "requirement_id": "POW-08", "decision": "NOT RUN", - "reviewer": "", - "claim_impact": "", + "method": "GPU", + "cell": "bench:fleet-pods", + "manifest_sha": "417c4a57", + "run_id": "p02-fleet-pods-20261008-01", + "evidence": "build-1:/srv/artefacts/tas/p02-rows/p02-rows.txt", + "in_progress": false, + "coverage": "partial: W = 16 on four cards", "release_identity": { - "commit": "b24dfc162", + "commit": "417c4a57", "lockfile": "", "binary": "", "network_object": "", "activation": "", "profile_hashes": "" - } + }, + "claim_impact": "", + "reviewer": "", + "at": "2026-10-08T21:21:14.082Z" }, "in_progress_since": "2026-10-08T19:59:34.316Z", "approvals": { @@ -2111,6 +2102,28 @@ "run_id": "hash-lane-20261008-batch2", "evidence": "docs/analysis/class-v6/rows/pow-07-fp32-unreachable.md", "in_progress": true + }, + "bench:fleet-pods": { + "requirement_id": "POW-08", + "decision": "NOT RUN", + "method": "GPU", + "cell": "bench:fleet-pods", + "manifest_sha": "417c4a57", + "run_id": "p02-fleet-pods-20261008-01", + "evidence": "build-1:/srv/artefacts/tas/p02-rows/p02-rows.txt", + "in_progress": false, + "coverage": "partial: W = 16 on four cards", + "release_identity": { + "commit": "417c4a57", + "lockfile": "", + "binary": "", + "network_object": "", + "activation": "", + "profile_hashes": "" + }, + "claim_impact": "", + "reviewer": "", + "at": "2026-10-08T21:21:14.082Z" } } } @@ -12020,7 +12033,7 @@ ], "run_id": "f03-manifest-20261008-01", "evidence_path": "build-1:/srv/artefacts/tas/f03-manifest-20261008-01/build-from-manifest-c30ab32c-build4.log; build-4:/srv/builds/igneum-wt-f03-201; tools/ci/build-from-manifest.sh; tools/ci/release-manifest-check.sh", - "updated": "2026-10-08T21:11:46.383Z", + "updated": "2026-10-08T21:22:48.537Z", "evidence_record": { "requirement_id": "R2-F03-R01", "decision": "PASS", @@ -12064,7 +12077,8 @@ }, "claim_impact": "F03's first rung: one manifest, one build, no unpublished vendor tree; the same-work rung (R02) and the transition rung (R03) stay NOT RUN until the readers run on the job context", "reviewer": "", - "at": "2026-10-08T21:11:46.383Z" + "at": "2026-10-08T21:11:46.383Z", + "note": "" } }, "approvals": { @@ -12105,6 +12119,8 @@ "POW-01", "ROT-02" ], + "run_id": "kit-class-v6-20261008-01", + "evidence_path": "docs/design/class-v5-stored-state.md; build-1:/srv/artefacts/packs/packs-class-v6-20261008T202808Z.zip; build-1:/srv/builds/_log/v5-class/kits-20261008T202808Z/emu-check.log", "updated": "2026-10-08T21:18:18.084Z", "evidence_record": { "requirement_id": "R2-F03-R02", @@ -12152,15 +12168,13 @@ "at": "2026-10-08T21:18:18.084Z" } }, + "in_progress_since": "2026-10-08T21:18:18.084Z", "approvals": { "scope_approved": null, "implementation_complete": null, "evidence_reproduced": null, "claim_authorised": null - }, - "run_id": "kit-class-v6-20261008-01", - "evidence_path": "docs/design/class-v5-stored-state.md; build-1:/srv/artefacts/packs/packs-class-v6-20261008T202808Z.zip; build-1:/srv/builds/_log/v5-class/kits-20261008T202808Z/emu-check.log", - "in_progress_since": "2026-10-08T21:18:18.084Z" + } }, { "id": "R2-F03-R03", @@ -15274,7 +15288,7 @@ "master_status": "PROPOSED / NOT RUN", "run_id": "canary-20261008-01", "evidence_path": "tools/ci/canary-check.sh; packaging/ota/publish-manifest.sh; packaging/ota/publish-public.sh", - "updated": "2026-10-08T21:00:32.846Z", + "updated": "2026-10-08T21:22:48.537Z", "evidence_record": { "requirement_id": "INT-07", "decision": "BLOCKED", @@ -15336,7 +15350,8 @@ }, "claim_impact": "INT-07's clean-install half reads BLOCKED until a release tip carries a PASS fresh-install canary record; no published entry may move before one does (rule 33)", "reviewer": "", - "at": "2026-10-08T21:00:32.846Z" + "at": "2026-10-08T21:00:32.846Z", + "note": "" } }, "approvals": { @@ -16369,6 +16384,10 @@ { "at": "2026-10-08T20:10:24.748Z", "text": "128 original test cases, 18 additional integration gates, 44 updated-stack closure requirements. These sets overlap and are not 190 independent tests." + }, + { + "at": "2026-10-08T21:22:48.926Z", + "text": "Island label (main's word through the coordinator, 8 October 2026 22:2x UK): devnet-4 has been seventeen islands since the epoch-3 cut (the locks since 21:34 real only on hub-1's island), so every record measured on the 2.0 devnet after 20:00 UK carries network_label 'on an island, not a network' until the fleet is one chain (the 2.0.2 roll as the convergence test, else the operator reset onto hub-1's chain at 04:00); the recorder stamps it at record time and at replay (--label-islands)." } ] } diff --git a/tools/ci/batches/amd-intel-energy-20261008-01.json b/tools/ci/batches/amd-intel-energy-20261008-01.json index 346ff8e09..8e46bb5ac 100644 --- a/tools/ci/batches/amd-intel-energy-20261008-01.json +++ b/tools/ci/batches/amd-intel-energy-20261008-01.json @@ -1,15 +1,16 @@ { - "run_id": "amd-intel-energy-20261008-01", - "manifest_sha": "c245d50b9", - "evidence_dir": "docs/analysis/class-v6/amd-intel-energy", - "cells": [ - { - "cell": "bench:amd-intel-energy", - "status": "NOT RUN", - "evidence": "docs/analysis/class-v6/amd-intel-energy.md", - "note": "GPU-03 AMD and Intel cells: the window costs the RX 7600 0 percent and the Arc B580 -0.3 percent of rate per unit of work (measured, kernel throughput, quiet); B580 fingerprints equal on hl-v6-foldrw and hl-v6-all; energy owed (RX 7600 ADLX job queued behind a held PC 1 runner; the B580 Level Zero energy counter unsupported unelevated); RUNNING, not PASS: team-run, no paired 30-minute protocol, no wall meter", - "method": "GPU", - "in_progress": true - } - ] + "run_id": "amd-intel-energy-20261008-01", + "manifest_sha": "c245d50b9", + "evidence_dir": "docs/analysis/class-v6/amd-intel-energy", + "cells": [ + { + "cell": "bench:amd-intel-energy", + "status": "NOT RUN", + "evidence": "docs/analysis/class-v6/amd-intel-energy.md", + "note": "GPU-03 AMD and Intel cells: the window costs the RX 7600 0 percent and the Arc B580 -0.3 percent of rate per unit of work (measured, kernel throughput, quiet); B580 fingerprints equal on hl-v6-foldrw and hl-v6-all; energy owed (RX 7600 ADLX job queued behind a held the project's first rig runner; the B580 Level Zero energy counter unsupported unelevated); RUNNING, not PASS: team-run, no paired 30-minute protocol, no wall meter", + "method": "GPU", + "in_progress": true + } + ], + "note": " (rig names scrubbed for the served registry at 22:2x UK, the steward's identity landing.)" } diff --git a/tools/ci/batches/p01-20261008-01.json b/tools/ci/batches/p01-20261008-01.json index 52880bcbb..dcfaeed24 100644 --- a/tools/ci/batches/p01-20261008-01.json +++ b/tools/ci/batches/p01-20261008-01.json @@ -24,5 +24,5 @@ "evidence": "build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v5-win.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-foldrw.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-5090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-4090-hl-v6-all-nowin.json; build-1:/srv/artefacts/p01/p01-20261008-01/cuda-3090-hl-v6-all-nowin.json" } ], - "note": "P01 part A, the CUDA half, complete at 20:41 UK: four packs (hl-v5-win e3da3669 id 0x6554474f410f36f3 gen 5; hl-v6-all 6df3d430 id 0x4de7b836cc40a4ea gen 6; hl-v6-foldrw f0dc3428 id 0xd7eba30115d26dd4; hl-v6-all-nowin 67ceec05 id 0xbe1d6f48928cef4a) on three CUDA cards (RTX 5090 sm_120, 4090 sm_89, 3090 sm_86), twelve runs, every one driver exit 0, answered 1,000,000, agree 1,000,000, disagree 0, missing 0, 41 to 50 s per million; the kit worker 9bfcf728 for gen 5, the generator-6 worker 804a6f7f for gen 6; the twelve JSONs parsed on build-1 with their sha256s. Remaining for PASS: OpenCL (PC 1's RX 7600, the hash lane; no rented AMD card exists tonight) and Metal (the mini, the morning); the case stays NOT RUN in progress until then." + "note": "P01 part A, the CUDA half, complete at 20:41 UK: four packs (hl-v5-win e3da3669 id 0x6554474f410f36f3 gen 5; hl-v6-all 6df3d430 id 0x4de7b836cc40a4ea gen 6; hl-v6-foldrw f0dc3428 id 0xd7eba30115d26dd4; hl-v6-all-nowin 67ceec05 id 0xbe1d6f48928cef4a) on three CUDA cards (RTX 5090 sm_120, 4090 sm_89, 3090 sm_86), twelve runs, every one driver exit 0, answered 1,000,000, agree 1,000,000, disagree 0, missing 0, 41 to 50 s per million; the kit worker 9bfcf728 for gen 5, the generator-6 worker 804a6f7f for gen 6; the twelve JSONs parsed on build-1 with their sha256s. Remaining for PASS: OpenCL (the project's first rig's RX 7600, the hash lane; no rented AMD card exists tonight) and Metal (the mini, the morning); the case stays NOT RUN in progress until then. (rig names scrubbed for the served registry at 22:2x UK, the steward's identity landing.)" } diff --git a/tools/ci/batches/p02-fleet-pods-20261008-01.json b/tools/ci/batches/p02-fleet-pods-20261008-01.json index 0d2033801..914af6e76 100644 --- a/tools/ci/batches/p02-fleet-pods-20261008-01.json +++ b/tools/ci/batches/p02-fleet-pods-20261008-01.json @@ -15,8 +15,9 @@ "cell": "bench:fleet-pods", "status": "NOT RUN", "evidence": "build-1:/srv/artefacts/tas/p02-rows/p02-rows.txt", - "note": "six CUDA retail cells measured (2080 Ti, 3060 12 GB, 3070 8 GB, 4060 8 GB, 4070 12 GB, 4070 Ti): hl-v5-win, hl-v6-all, hl-v6-foldrw rate and board power, every check PASS on the kit fingerprints; RUNNING not PASS because the AMD cells are PC 1 only (no rented AMD listed), the 1080 Ti cell is open, the 1300 MHz lock did not take inside RunPod containers, the 4060 host reports no power, and the v6 rows predate the 04442d9c pack re-export (program id only)" + "note": "six CUDA retail cells measured (2080 Ti, 3060 12 GB, 3070 8 GB, 4060 8 GB, 4070 12 GB, 4070 Ti): hl-v5-win, hl-v6-all, hl-v6-foldrw rate and board power, every check PASS on the kit fingerprints; RUNNING not PASS because the AMD cells are the project's first rig only (no rented AMD listed), the 1080 Ti cell is open, the 1300 MHz lock did not take inside RunPod containers, the 4060 host reports no power, and the v6 rows predate the 04442d9c pack re-export (program id only)" } ], - "method": "GPU" + "method": "GPU", + "note": " (rig names scrubbed for the served registry at 22:2x UK, the steward's identity landing.)" } diff --git a/tools/ci/identity-check.sh b/tools/ci/identity-check.sh index 86d2457b2..c3d101826 100755 --- a/tools/ci/identity-check.sh +++ b/tools/ci/identity-check.sh @@ -34,7 +34,12 @@ if [ "${1:-}" = "--self-test" ]; then # a served site file carrying a pattern: must fail, unscrubbed printf '

a home path /Users/someone/x

\n' > "$fx/site/leak.html" if IDENTITY_CHECK_REPO="$fx" bash "$0" >/dev/null 2>&1; then echo "self-test failed: a home path in site/leak.html passed"; exit 1; fi - echo "self-test passed: the excluded research path may quote the patterns; an exported document and a served page may not" + rm -f "$fx/site/leak.html" + # a registry source (a batch note) carrying a served-page pattern: must fail (the registry is served at /acceptance) + mkdir -p "$fx/tools/ci/batches"; printf '{"note": "ran on PC 2 overnight"}\n' > "$fx/tools/ci/batches/leak.json"; printf '\\bPC [12]\\b\n' > "$fx/site/forbidden-strings.txt" + if IDENTITY_CHECK_REPO="$fx" bash "$0" >/dev/null 2>&1; then echo "self-test failed: a rig name in a batch note (a served registry source) passed"; exit 1; fi + rm -f "$fx/tools/ci/batches/leak.json" + echo "self-test passed: the excluded research path may quote the patterns; an exported document, a served page and a registry source (a batch, a note, the map) may not" exit 0 fi @@ -100,6 +105,11 @@ fi # build scripts are not served and are not in this pass. SITE_FILES="$(find "$REPO/site" -type f \( -name '*.html' -o -name '*.json' -o -name '*.txt' -o -name '*.xml' -o -name '*.webmanifest' -o -name '*.css' -o -name '*.js' \) \ -not -path '*/node_modules/*' -not -path '*/.vercel/*' -not -path '*/api/*' -not -name 'forbidden-strings.txt' -print)" +# the acceptance registry's sources are served too (8 October 2026, 22:2x UK: /acceptance renders docs/plans/igneum-2.0-test-registry.json, +# which the recorder writes from tools/ci/test-map.json, tools/ci/batches/ and tools/ci/notes/; a rig name in a batch note reached the +# served registry), so those sources take the served-site pattern list as well +REG_FILES="$(find "$REPO/tools/ci/batches" "$REPO/tools/ci/notes" -type f -name '*.json' 2>/dev/null; [ -f "$REPO/tools/ci/test-map.json" ] && echo "$REPO/tools/ci/test-map.json"; [ -f "$REPO/docs/plans/igneum-2.0-test-registry.json" ] && echo "$REPO/docs/plans/igneum-2.0-test-registry.json"; true)" +SITE_FILES="$(printf '%s\n%s\n' "$SITE_FILES" "$REG_FILES" | grep -v '^$' || true)" SITE_PAT="$(printf '%s\n%s\n' "$PAT" "$(grep -vE '^\s*(#|$)' "$REPO/site/forbidden-strings.txt")")" SITE_HITS="$(printf '%s\n' "$SITE_FILES" | xargs grep -En -f <(printf '%s\n' "$SITE_PAT") 2>/dev/null || true)" if [ -n "$SITE_HITS" ]; then diff --git a/tools/ci/test-map.json b/tools/ci/test-map.json index 7789806b7..26b040af5 100644 --- a/tools/ci/test-map.json +++ b/tools/ci/test-map.json @@ -576,8 +576,8 @@ } }, "bench:amd-intel-energy": { - "command": "the AMD-and-Intel energy lane jobs on the signed-jobs channel: run-ae-pc2-b580-energy-20261008 (PC 2, Arc B580, the class v6 kit worker --memprobe and --bench-pack on hl-v6-foldrw and hl-v6-all, Level Zero energy counter) and run-ae-pc1-7600-energy-20261008 (the project's own rig, RX 7600, the same with ADLX watts at stock, plimit -30, gmax -500 + plimit -30); scripts in docs/analysis/class-v6/amd-intel-energy/", - "box_class": "the project's own rig and PC 2 bench (OpenCL)", + "command": "the AMD-and-Intel energy lane jobs on the signed-jobs channel: run-ae-pc2-b580-energy-20261008 (the project's second rig, Arc B580, the class v6 kit worker --memprobe and --bench-pack on hl-v6-foldrw and hl-v6-all, Level Zero energy counter) and run-ae-pc1-7600-energy-20261008 (the project's own rig, RX 7600, the same with ADLX watts at stock, plimit -30, gmax -500 + plimit -30); scripts in docs/analysis/class-v6/amd-intel-energy/", + "box_class": "the project's two rigs' bench (OpenCL)", "fixtures": [ "F0", "F1" @@ -631,7 +631,7 @@ } }, "pc:install-update": { - "command": "signed jobs and relay runs on the project's own rig (ae432dc7) and PC 2 (1ccfe586): the installer over the running app (rule 14: installed versions, the process set, the first upload), the OTA path (update-now, the update-return read-back line), and the no-click resume after the install (relay run mining-on-after-200.ps1)", + "command": "signed jobs and relay runs on the project's two rigs (ae432dc7 and 1ccfe586): the installer over the running app (rule 14: installed versions, the process set, the first upload), the OTA path (update-now, the update-return read-back line), and the no-click resume after the install (relay run mining-on-after-200.ps1)", "box_class": "PC (the two Windows PCs; nothing on the Mac)", "fixtures": [ "F2" @@ -700,8 +700,8 @@ } }, "kit:class-v6-fingerprints": { - "command": "KITS_BOX_SCRIPT=kits-v6-on-box.sh tools/class-v5/kits-remote.sh --box 1 (the kit zip with its emulation check), then the kit's workers on every platform: the box's CPU emulation (--check, 96 of 96 vector lanes), the fleet's CUDA 4090 (--check and --bench at 2^24, base nonce 0), the Mac's Metal (proto-metal/packbench.swift --pack) and Apple OpenCL (proto-opencl/host.c --pack --bench-pack), PC 1's RTX 5090 and RX 7600 (tools/class-v5/pc1-v6-bench.ps1), PC 2's Arc B580 (tools/class-v5/arc-v6-bench.ps1); the fingerprint of the 2^24 outputs at base nonce 0 equal on every platform for the all pack and for its known-failed partner, the two distinct", - "box_class": "build box + pods + Mac + PC 1 + PC 2", + "command": "KITS_BOX_SCRIPT=kits-v6-on-box.sh tools/class-v5/kits-remote.sh --box 1 (the kit zip with its emulation check), then the kit's workers on every platform: the box's CPU emulation (--check, 96 of 96 vector lanes), the fleet's CUDA 4090 (--check and --bench at 2^24, base nonce 0), the Mac's Metal (proto-metal/packbench.swift --pack) and Apple OpenCL (proto-opencl/host.c --pack --bench-pack), the project's first rig's RTX 5090 and RX 7600 (tools/class-v5/pc1-v6-bench.ps1), the project's second rig's Arc B580 (tools/class-v5/arc-v6-bench.ps1); the fingerprint of the 2^24 outputs at base nonce 0 equal on every platform for the all pack and for its known-failed partner, the two distinct", + "box_class": "build box + pods + Mac + the project's two rigs", "fixtures": [ "F0", "F2" diff --git a/tools/ci/test-record.mjs b/tools/ci/test-record.mjs index d292cae29..62d922f26 100644 --- a/tools/ci/test-record.mjs +++ b/tools/ci/test-record.mjs @@ -21,6 +21,24 @@ const MAP = process.env.TEST_MAP || path.join(ROOT, 'tools/ci/test-map.json'); const ACCEPT_KEYS = ['accept', 'acceptance', 'accept_text', 'criteria', 'expected']; // whichever the registry uses; all are frozen const DECISIONS = new Set(['NOT RUN', 'BLOCKED', 'FAIL', 'PASS']); const METHODS = new Set(['native', 'GPU', 'SP1', 'model', 'static', 'team-reported']); +export const ISLAND_LABEL = 'on an island, not a network'; +export const ISLAND_SINCE = '2026-10-08T19:00:00Z'; // 20:00 UK on 8 October 2026: devnet-4 has been seventeen islands since the epoch-3 cut (main's word through the coordinator, 22:2x UK) +const ISLAND_RE = /devnet-4|devnet 4|2\.0 devnet|chain id 4465|igneum-devnet-4/i; +export function labelIslands(reg, since = ISLAND_SINCE, label = ISLAND_LABEL) { // every record measured on the 2.0 devnet after `since` carries the label until the fleet is one chain + let n = 0; + for (const c of casesOf(reg)) { + for (const r of Object.values(c.evidence_records || {})) { + if (!r || typeof r !== 'object') continue; + const at = String(r.at || ''); if (!at || at < since) continue; + if (!(r.decision === 'PASS' || r.decision === 'FAIL') || r.method === 'static') { if (r.network_label === label) { delete r.network_label; r.note = String(r.note || '').replace(/ ?\(on an island, not a network: devnet-4 has been islands[^)]*\)/, ''); } continue; } // a measurement is a verdict from a run; a build fact, a reason or a BLOCKED placeholder is not on any network + if (r.network_label === label) continue; + const txt = JSON.stringify([r.release_identity?.network_object, r.evidence, r.note, r.cell, c.evidence_path]); + if (!ISLAND_RE.test(txt)) continue; + r.network_label = label; r.note = (r.note ? r.note + ' ' : '') + `(${label}: devnet-4 has been islands since the epoch-3 cut; labelled ${new Date().toISOString()}.)`; c.updated = new Date().toISOString(); n++; + } + } + return n; +} export function normalize(reg) { // the one-time pass over rows written before the vocabulary: RUNNING -> NOT RUN in progress; DEFERRED -> NOT RUN with the note let n = 0; const now = new Date().toISOString(); for (const c of casesOf(reg)) { @@ -105,6 +123,8 @@ function record(reg, map, batch) { release_identity: { commit: ri.commit || batch.manifest_sha || '', lockfile: ri.lockfile || '', binary: ri.binary || '', network_object: ri.network_object || '', activation: ri.activation || '', profile_hashes: ri.profile_hashes || '' }, claim_impact: cell.claim_impact || batch.claim_impact || '', reviewer: cell.reviewer || batch.reviewer || '', at: now, ...(missing.length ? { blocked_on: missing, reason: `INT-17: missing ${missing.join(', ')}; never PASS without them` } : {}) }; + if (cell.network_label) c.evidence_record.network_label = cell.network_label; + if (!c.evidence_record.network_label && (status === 'PASS' || status === 'FAIL') && method !== 'static' && ISLAND_RE.test(JSON.stringify([c.evidence_record.release_identity?.network_object, c.evidence_record.evidence, c.evidence_record.note]))) c.evidence_record.network_label = ISLAND_LABEL; c.evidence_records[cell.cell] = c.evidence_record; // a lifted legacy 'record' entry that carries only a no-harness reason (no run) is not a run: it never counts in the combined // decision and is dropped once a real cell lands (8 October 2026, 21:5x UK: R2-F03-R01 read NOT RUN on master beside its PASS cell) @@ -154,6 +174,19 @@ if (args.includes('--self-test')) { if (!badMethod) { console.log('self-test failed: a batch with no method was accepted (methods are never conflated)'); fails = 1; } const regO = { cases: [{ id: 'O1', method: 'Automated', accept: 'a', run_status: 'RUNNING', updated: 't', evidence_record: { cell: 'suite:x' } }, { id: 'O2', method: 'Automated', accept: 'b', run_status: 'DEFERRED' }] }; normalize(regO); if (!(regO.cases[0].run_status === 'NOT RUN' && regO.cases[0].in_progress_since === 't' && regO.cases[0].evidence_record.method === 'native' && regO.cases[1].run_status === 'NOT RUN' && /deferred/.test(regO.cases[1].deferral_note))) { console.log(`self-test failed: normalize: ${JSON.stringify(regO)}`); fails = 1; } + // the island label: a record on the 2.0 devnet after the cut takes the label; one before it, or off the devnet, does not; a cell may carry it + const regI = { cases: [ + { id: 'I1', method: 'Automated', accept: 'a', run_status: 'PASS', evidence_records: { x: { decision: 'PASS', at: '2026-10-08T21:00:00Z', release_identity: { network_object: 'igneum-devnet-4, chain id 4465' }, evidence: '/e' } } }, + { id: 'I2', method: 'Automated', accept: 'b', run_status: 'PASS', evidence_records: { x: { decision: 'PASS', at: '2026-10-08T18:00:00Z', release_identity: { network_object: 'igneum-devnet-4' }, evidence: '/e' } } }, + { id: 'I3', method: 'Automated', accept: 'c', run_status: 'PASS', evidence_records: { x: { decision: 'PASS', at: '2026-10-08T21:00:00Z', release_identity: { network_object: 'a research object' }, evidence: '/e' } } }, + { id: 'I4', method: 'Automated', accept: 'd', run_status: 'PASS', evidence_records: { x: { decision: 'PASS', method: 'static', at: '2026-10-08T21:00:00Z', release_identity: { network_object: 'igneum-devnet-4, chain id 4465' }, evidence: '/e' } } }, + { id: 'I5', method: 'Automated', accept: 'e', run_status: 'BLOCKED', evidence_records: { x: { decision: 'BLOCKED', method: 'team-reported', at: '2026-10-08T21:00:00Z', release_identity: { network_object: 'igneum-devnet-4' }, evidence: '/e', network_label: 'on an island, not a network' } } } ] }; + const ni = labelIslands(regI); + if (!(ni === 1 && regI.cases[0].evidence_records.x.network_label === ISLAND_LABEL && !regI.cases[1].evidence_records.x.network_label && !regI.cases[2].evidence_records.x.network_label && !regI.cases[3].evidence_records.x.network_label && !regI.cases[4].evidence_records.x.network_label)) { console.log(`self-test failed: the island label did not land on the devnet-4 record after the cut alone: ${ni}`); fails = 1; } + if (labelIslands(regI) !== 0) { console.log('self-test failed: the island label was applied twice'); fails = 1; } + const regC = { cases: [{ id: 'C9', method: 'Automated', accept: 'a' }] }; + record(regC, { cells: { dn: { command: 'x', box_class: 'b', fixtures: [], cases: ['C9'] } }, not_run: {} }, { run_id: 'rdn', manifest_sha: 'abc', method: 'native', release_identity: { network_object: 'igneum-devnet-4, chain id 4465' }, cells: [{ cell: 'dn', status: 'PASS', evidence: '/e/dn.log' }] }); + if (regC.cases[0].evidence_record.network_label !== ISLAND_LABEL) { console.log('self-test failed: a record naming the 2.0 devnet at record time did not take the island label'); fails = 1; } // a lifted reason-only record beside a real cell: the row reads the cell's decision and the placeholder is gone const regL = { cases: [{ id: 'L1', method: 'Automated', accept: 'a', run_status: 'NOT RUN', evidence_records: { record: { decision: 'NOT RUN', reason: 'no harness yet', at: 't' } } }] }; record(regL, { cells: { lc: { command: 'x', box_class: 'b', fixtures: [], cases: ['L1'] } }, not_run: {} }, { run_id: 'rl', manifest_sha: 'abc', method: 'native', cells: [{ cell: 'lc', status: 'PASS', evidence: '/e/l.log' }] }); @@ -201,6 +234,7 @@ if (args.includes('--self-test')) { } const reg = load(REG); const map = load(MAP); if (args.includes('--check')) { const r = check(reg, map); for (const l of r.lines) console.error(`test-record: ${l}`); console.log(`test-record: ${r.automated} Automated cases, ${r.mapped} mapped to cells, ${r.notRun} NOT RUN with a reason${r.bad ? `, ${r.bad} problems` : ''}`); process.exit(r.bad ? 1 : 0); } +if (args.includes('--label-islands')) { const n = labelIslands(reg); fs.writeFileSync(REG, JSON.stringify(reg, null, 2) + '\n'); console.log(`test-record: ${n} record(s) measured on the 2.0 devnet since ${ISLAND_SINCE} labelled "${ISLAND_LABEL}"`); process.exit(0); } if (args.includes('--normalize')) { const n = normalize(reg); fs.writeFileSync(REG, JSON.stringify(reg, null, 2) + '\n'); console.log(`test-record: normalized ${n} rows to the decision vocabulary and the record schema`); process.exit(0); } if (arg('--cases')) { console.log(((map.cells || {})[arg('--cases')]?.cases || []).join(',')); process.exit(0); } if (arg('--note-file')) { const n = load(arg('--note-file')); args.push('--note', n.suite, n.text); } From 2ba31c89d747074fe22ee49d33cd0b59112e6fd4 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 21:33:51 +0000 Subject: [PATCH 2/3] The zone word scrubbed from two batch notes (the served registry); a landing stopped by its pid file releases the master-landing lock (INT and TERM) Co-Authored-By: Claude Fable 5.1 --- docs/plans/igneum-2.0-test-registry.json | 6 +++--- tools/ci/batches/canary-miner-fix-7cfa422a.json | 15 +++++++++++---- .../batches/incident-u64-coinbase-2026-10-08.json | 15 +++++++++++---- tools/ci/merge-to-master.sh | 2 +- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/docs/plans/igneum-2.0-test-registry.json b/docs/plans/igneum-2.0-test-registry.json index 13cc6ea32..e2caee07b 100644 --- a/docs/plans/igneum-2.0-test-registry.json +++ b/docs/plans/igneum-2.0-test-registry.json @@ -10005,7 +10005,7 @@ "run_status": "FAIL", "evidence_path": "docs/release/evidence/ux-shipper-2026-10-08.md", "run_id": "incident-u64-coinbase-2026-10-08", - "updated": "2026-10-08T21:21:37.484Z", + "updated": "2026-10-08T21:33:46.962Z", "evidence_record": { "requirement_id": "UX-06", "decision": "FAIL", @@ -10026,7 +10026,7 @@ }, "claim_impact": "no miner could take the work templates the network gave it above 18.4 IGN of merged subsidy", "reviewer": "", - "at": "2026-10-08T21:21:37.484Z" + "at": "2026-10-08T21:33:46.962Z" }, "approvals": { "scope_approved": null, @@ -10055,7 +10055,7 @@ }, "claim_impact": "no miner could take the work templates the network gave it above 18.4 IGN of merged subsidy", "reviewer": "", - "at": "2026-10-08T21:21:37.484Z" + "at": "2026-10-08T21:33:46.962Z" } } }, diff --git a/tools/ci/batches/canary-miner-fix-7cfa422a.json b/tools/ci/batches/canary-miner-fix-7cfa422a.json index 84a18e38d..28733951d 100644 --- a/tools/ci/batches/canary-miner-fix-7cfa422a.json +++ b/tools/ci/batches/canary-miner-fix-7cfa422a.json @@ -3,9 +3,16 @@ "manifest_sha": "7cfa422a", "evidence_dir": "docs/release/evidence", "cells": [ - {"cell": "suite:miner", "cases": ["UX-06"], "status": "PASS", "method": "team-reported", - "evidence": "docs/release/evidence/ux-shipper-2026-10-08.md", - "note": "the fixed miner 7cfa422a on build-1's seed, 20:05:11 to 20:06:11 BST: 49 templates taken in 60 s, no template error, no amount-high-word refusal, no NODE SLOW; MINER SUMMARY 0.006 MH/s (cpu), VOTER votes 20 of 20; lp-4090-11 on the kit from 20:31: zero refusals, 186 blocks accepted in 320 s; the whole fleet's miners on it by 21:48", - "claim_impact": "the miner takes every template the network gives it, including coinbases above a u64"} + { + "cell": "suite:miner", + "cases": [ + "UX-06" + ], + "status": "PASS", + "method": "team-reported", + "evidence": "docs/release/evidence/ux-shipper-2026-10-08.md", + "note": "the fixed miner 7cfa422a on build-1's seed, 20:05:11 to 20:06:11 UK: 49 templates taken in 60 s, no template error, no amount-high-word refusal, no NODE SLOW; MINER SUMMARY 0.006 MH/s (cpu), VOTER votes 20 of 20; lp-4090-11 on the kit from 20:31: zero refusals, 186 blocks accepted in 320 s; the whole fleet's miners on it by 21:48", + "claim_impact": "the miner takes every template the network gives it, including coinbases above a u64" + } ] } diff --git a/tools/ci/batches/incident-u64-coinbase-2026-10-08.json b/tools/ci/batches/incident-u64-coinbase-2026-10-08.json index 4b54c8321..ad0f18458 100644 --- a/tools/ci/batches/incident-u64-coinbase-2026-10-08.json +++ b/tools/ci/batches/incident-u64-coinbase-2026-10-08.json @@ -3,9 +3,16 @@ "manifest_sha": "4cdcc488", "evidence_dir": "docs/release/evidence", "cells": [ - {"cell": "suite:miner", "cases": ["UX-06"], "status": "FAIL", "method": "team-reported", - "evidence": "docs/release/evidence/ux-shipper-2026-10-08.md", - "note": "the shipped miner (4cdcc488, ef0f2ed8) refused every block template whose coinbase exceeded a u64 (rpc/core/src/error.rs:131; the base unit installed only for `inspect`); the fleet fell to a two-key branch, 0 blocks per minute at 19:54 BST", - "claim_impact": "no miner could take the work templates the network gave it above 18.4 IGN of merged subsidy"} + { + "cell": "suite:miner", + "cases": [ + "UX-06" + ], + "status": "FAIL", + "method": "team-reported", + "evidence": "docs/release/evidence/ux-shipper-2026-10-08.md", + "note": "the shipped miner (4cdcc488, ef0f2ed8) refused every block template whose coinbase exceeded a u64 (rpc/core/src/error.rs:131; the base unit installed only for `inspect`); the fleet fell to a two-key branch, 0 blocks per minute at 19:54 UK", + "claim_impact": "no miner could take the work templates the network gave it above 18.4 IGN of merged subsidy" + } ] } diff --git a/tools/ci/merge-to-master.sh b/tools/ci/merge-to-master.sh index a342687fd..669e196be 100755 --- a/tools/ci/merge-to-master.sh +++ b/tools/ci/merge-to-master.sh @@ -349,7 +349,7 @@ else fi # rule 24 (8 October 2026, 17:2x UK): a diff that touches a .rs, Cargo.toml, Cargo.lock, build.rs or .cargo/config runs cargo check # and the crate suite on the box at gate priority for every crate it touches before the merge; docs/ and site/ alone skip it -if [ "$SELF_TEST" != 1 ]; then lock_acquire "$BRANCH" || exit 1; trap 'lock_release; rm -f "$MERGE_PID_FILE" 2>/dev/null' EXIT; fi +if [ "$SELF_TEST" != 1 ]; then lock_acquire "$BRANCH" || exit 1; trap 'lock_release; rm -f "$MERGE_PID_FILE" 2>/dev/null' EXIT; trap 'lock_release; rm -f "$MERGE_PID_FILE" 2>/dev/null; exit 143' INT TERM; fi # a landing stopped by its pid file releases the lock too (22:3x UK: a killed landing left its holder on build-1 until the hand removed it) # inside the lock master cannot move under this landing; when master is ahead of the branch, the branch takes master first (the # registry rebuilt from master's copy with the branch's batches replayed, the map merged structurally, the page regenerated), and that # merge commit carries the branch's green stamp forward as the union of two gated parents (the branch fully, master's tip on its own From 135637e068141946bc7eb8ae5370b6361332199f Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 21:42:28 +0000 Subject: [PATCH 3/3] The zone word scrubbed from two more batch notes landed after the branch point (the served registry) Co-Authored-By: Claude Fable 5.1 --- docs/plans/igneum-2.0-test-registry.json | 90 +++++++++++---------- tools/ci/batches/family-gate-20261008c.json | 12 ++- tools/ci/batches/same-work-20261008-02.json | 6 +- 3 files changed, 59 insertions(+), 49 deletions(-) diff --git a/docs/plans/igneum-2.0-test-registry.json b/docs/plans/igneum-2.0-test-registry.json index 94f777dd9..2efa58fef 100644 --- a/docs/plans/igneum-2.0-test-registry.json +++ b/docs/plans/igneum-2.0-test-registry.json @@ -1431,7 +1431,7 @@ "run_status": "NOT RUN", "evidence_path": "docs/analysis/review-2026-10-08-b/f10/packfile-test.log;docs/analysis/review-2026-10-08-b/f10/geometry-check-mini.log; docs/analysis/class-v6/family-gate.md; docs/analysis/class-v6/rows/chainseed-census-1a938abe4.md; docs/analysis/class-v6/rows/pairing-20261008.md", "run_id": "family-gate-20261008c", - "updated": "2026-10-08T21:39:59.800Z", + "updated": "2026-10-08T21:42:25.136Z", "evidence_record": { "requirement_id": "POW-02", "decision": "NOT RUN", @@ -1452,7 +1452,7 @@ }, "claim_impact": "", "reviewer": "", - "at": "2026-10-08T21:39:59.800Z" + "at": "2026-10-08T21:42:25.136Z" }, "in_progress_since": "2026-10-08T20:07:26.255Z", "approvals": { @@ -1506,7 +1506,7 @@ }, "claim_impact": "", "reviewer": "", - "at": "2026-10-08T21:39:59.800Z" + "at": "2026-10-08T21:42:25.136Z" }, "census:class-v6": { "requirement_id": "POW-02", @@ -3570,7 +3570,7 @@ "run_status": "NOT RUN", "evidence_path": "docs/analysis/class-v6/family-gate.md", "run_id": "family-gate-20261008c", - "updated": "2026-10-08T21:39:59.800Z", + "updated": "2026-10-08T21:42:25.136Z", "evidence_record": { "requirement_id": "ROT-07", "decision": "NOT RUN", @@ -3591,7 +3591,7 @@ }, "claim_impact": "", "reviewer": "", - "at": "2026-10-08T21:39:59.800Z" + "at": "2026-10-08T21:42:25.136Z" }, "in_progress_since": "2026-10-08 18:3x UK", "approvals": { @@ -3643,7 +3643,7 @@ }, "claim_impact": "", "reviewer": "", - "at": "2026-10-08T21:39:59.800Z" + "at": "2026-10-08T21:42:25.136Z" } } }, @@ -3676,7 +3676,7 @@ "run_status": "NOT RUN", "evidence_path": "docs/analysis/class-v6/family-gate.md", "run_id": "family-gate-20261008c", - "updated": "2026-10-08T21:39:59.800Z", + "updated": "2026-10-08T21:42:25.136Z", "evidence_record": { "requirement_id": "ROT-08", "decision": "NOT RUN", @@ -3697,7 +3697,7 @@ }, "claim_impact": "", "reviewer": "", - "at": "2026-10-08T21:39:59.800Z" + "at": "2026-10-08T21:42:25.136Z" }, "approvals": { "scope_approved": null, @@ -3726,7 +3726,7 @@ }, "claim_impact": "", "reviewer": "", - "at": "2026-10-08T21:39:59.800Z" + "at": "2026-10-08T21:42:25.136Z" } } } @@ -12100,30 +12100,31 @@ "POW-01", "ROT-02" ], - "run_id": "same-work-20261008-03", - "evidence_path": "docs/design/class-v5-stored-state.md; build-1:/srv/artefacts/packs/packs-class-v6-20261008T202808Z.zip; build-1:/srv/builds/_log/v5-class/kits-20261008T202808Z/emu-check.log; build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-03/state-epoch2.igsd1", - "updated": "2026-10-08T21:36:08.520Z", + "run_id": "same-work-20261008-02", + "evidence_path": "docs/design/class-v5-stored-state.md; build-1:/srv/artefacts/packs/packs-class-v6-20261008T202808Z.zip; build-1:/srv/builds/_log/v5-class/kits-20261008T202808Z/emu-check.log; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-3.json", + "updated": "2026-10-08T21:42:25.085Z", "evidence_record": { "requirement_id": "R2-F03-R02", "decision": "NOT RUN", "method": "GPU", "cell": "harness:same-work", "manifest_sha": "c30ab32c", - "run_id": "same-work-20261008-03", - "evidence": "build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-03/state-epoch2.igsd1", + "run_id": "same-work-20261008-02", + "evidence": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-3.json", "in_progress": false, "coverage": "partial until every reader has run: bit-for-bit agreement per nonce across node, CPU reference, CUDA, OpenCL, Metal and pool on one job context", "release_identity": { - "commit": "c30ab32c (release-2.0.1; the class v5 freeze 1c420786, fingerprint cbc5bd0a); the CUDA reader the kit's gen 5 worker 9bfcf728", + "commit": "c30ab32c (packaging/release-manifest.json on release-2.0.1; node 7cfa422a); the readers: node same-work-node cc23f9bd (igneum-node, off class-v6-node-review e8773ff5, paired with class-v6 1a938abe4), CPU reference class-v6 1a938abe4, CUDA the kit's gen 6 worker 804a6f7f, pool pool-recheck-202 00c7e1db over class-v6-node-review e8773ff5", "lockfile": "", - "binary": "igneum-pow sha256 7ba781db... (release-2.0.1 c30ab32c, built on build-4); igneum-worker-cuda gen 5 sha256 9bfcf728...", - "network_object": "igneum-devnet-4's class v5 object at epoch 2: id 0x81fbfa3aa413173f, epoch seed 3c3fab43... (the epoch-2 seed block, chain block 3423, common to every chain tonight: the split came after it), day 20734, era 0 seed 7c36b833... (class v5 reads no era; the id is the same under era zero), state stream state-epoch2.igsd1 (sha256 f36e6bba..., 21,132 bytes, 224 records, root 0xf798d1d8...) pulled at 22:18 UK from build-1's seed EVM RPC 27810", + "binary": "igneum-miner recheck-vectors sha256 9d563c41...; igneum-pow sha256 0d3f3fca...; igneum-worker-cuda sha256 804a6f7f...; igneum-pool sha256 b9fb3a60... (D1 pairing) and 2f6378e4... (kit)", + "network_object": "the chain-seed class v6 object: epoch seed af89be5d... (the node1 state stream's block 159357, root 1c583d35..., stream sha256 abb58003...) with the genesis era seed edc4fa84..., generator 6, id 0x2a1d6caab4c24564 (the hash lane's 22:00 UK ruling; their independent export hl-v6-all-cs a4742bfe... equals packs/chain-seed-d20730 file by file)", "activation": "none (a re-check of hashes against one job context, no chain state changes)", "profile_hashes": "" }, - "claim_impact": "the same-work test's live-chain half (the coordinator's third row, 22:1x UK): the readers on the chain's own class v5 object at epoch 2 across the day switch 20734 to 20735; the node and pool readers run it on their release-line engines, the row those two can PASS without the class v6 branch", + "claim_impact": "R2-F03-R02 and R03 on one job context (the chain-seed class v6 object) across the readers that can run it tonight: node, CPU reference, CUDA and pool on three phases with the dataset-day switch at nonce 1572864; PASS only when every reader agrees bit for bit on every nonce; Metal and OpenCL are the morning's", "reviewer": "", - "at": "2026-10-08T21:36:08.520Z" + "at": "2026-10-08T21:42:25.085Z", + "network_label": "on an island, not a network" }, "evidence_records": { "kit:class-v6-fingerprints": { @@ -12154,21 +12155,22 @@ "method": "GPU", "cell": "harness:same-work", "manifest_sha": "c30ab32c", - "run_id": "same-work-20261008-03", - "evidence": "build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-03/state-epoch2.igsd1", + "run_id": "same-work-20261008-02", + "evidence": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-3.json", "in_progress": false, "coverage": "partial until every reader has run: bit-for-bit agreement per nonce across node, CPU reference, CUDA, OpenCL, Metal and pool on one job context", "release_identity": { - "commit": "c30ab32c (release-2.0.1; the class v5 freeze 1c420786, fingerprint cbc5bd0a); the CUDA reader the kit's gen 5 worker 9bfcf728", + "commit": "c30ab32c (packaging/release-manifest.json on release-2.0.1; node 7cfa422a); the readers: node same-work-node cc23f9bd (igneum-node, off class-v6-node-review e8773ff5, paired with class-v6 1a938abe4), CPU reference class-v6 1a938abe4, CUDA the kit's gen 6 worker 804a6f7f, pool pool-recheck-202 00c7e1db over class-v6-node-review e8773ff5", "lockfile": "", - "binary": "igneum-pow sha256 7ba781db... (release-2.0.1 c30ab32c, built on build-4); igneum-worker-cuda gen 5 sha256 9bfcf728...", - "network_object": "igneum-devnet-4's class v5 object at epoch 2: id 0x81fbfa3aa413173f, epoch seed 3c3fab43... (the epoch-2 seed block, chain block 3423, common to every chain tonight: the split came after it), day 20734, era 0 seed 7c36b833... (class v5 reads no era; the id is the same under era zero), state stream state-epoch2.igsd1 (sha256 f36e6bba..., 21,132 bytes, 224 records, root 0xf798d1d8...) pulled at 22:18 UK from build-1's seed EVM RPC 27810", + "binary": "igneum-miner recheck-vectors sha256 9d563c41...; igneum-pow sha256 0d3f3fca...; igneum-worker-cuda sha256 804a6f7f...; igneum-pool sha256 b9fb3a60... (D1 pairing) and 2f6378e4... (kit)", + "network_object": "the chain-seed class v6 object: epoch seed af89be5d... (the node1 state stream's block 159357, root 1c583d35..., stream sha256 abb58003...) with the genesis era seed edc4fa84..., generator 6, id 0x2a1d6caab4c24564 (the hash lane's 22:00 UK ruling; their independent export hl-v6-all-cs a4742bfe... equals packs/chain-seed-d20730 file by file)", "activation": "none (a re-check of hashes against one job context, no chain state changes)", "profile_hashes": "" }, - "claim_impact": "the same-work test's live-chain half (the coordinator's third row, 22:1x UK): the readers on the chain's own class v5 object at epoch 2 across the day switch 20734 to 20735; the node and pool readers run it on their release-line engines, the row those two can PASS without the class v6 branch", + "claim_impact": "R2-F03-R02 and R03 on one job context (the chain-seed class v6 object) across the readers that can run it tonight: node, CPU reference, CUDA and pool on three phases with the dataset-day switch at nonce 1572864; PASS only when every reader agrees bit for bit on every nonce; Metal and OpenCL are the morning's", "reviewer": "", - "at": "2026-10-08T21:36:08.520Z" + "at": "2026-10-08T21:42:25.085Z", + "network_label": "on an island, not a network" } }, "in_progress_since": "2026-10-08T21:18:18.084Z", @@ -12210,30 +12212,31 @@ "POW-01", "ROT-02" ], - "run_id": "same-work-20261008-03", - "evidence_path": "build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json", - "updated": "2026-10-08T21:36:08.520Z", + "run_id": "same-work-20261008-02", + "evidence_path": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json", + "updated": "2026-10-08T21:42:25.085Z", "evidence_record": { "requirement_id": "R2-F03-R03", "decision": "NOT RUN", "method": "GPU", "cell": "harness:same-work", "manifest_sha": "c30ab32c", - "run_id": "same-work-20261008-03", - "evidence": "build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json", + "run_id": "same-work-20261008-02", + "evidence": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json", "in_progress": false, "coverage": "partial: the day-boundary transition in phase 2 (the one transition every live network crosses hourly at 60x); a class rotation is the same test on a research object until a v6 floor is set", "release_identity": { - "commit": "c30ab32c (release-2.0.1; the class v5 freeze 1c420786, fingerprint cbc5bd0a); the CUDA reader the kit's gen 5 worker 9bfcf728", + "commit": "c30ab32c (packaging/release-manifest.json on release-2.0.1; node 7cfa422a); the readers: node same-work-node cc23f9bd (igneum-node, off class-v6-node-review e8773ff5, paired with class-v6 1a938abe4), CPU reference class-v6 1a938abe4, CUDA the kit's gen 6 worker 804a6f7f, pool pool-recheck-202 00c7e1db over class-v6-node-review e8773ff5", "lockfile": "", - "binary": "igneum-pow sha256 7ba781db... (release-2.0.1 c30ab32c, built on build-4); igneum-worker-cuda gen 5 sha256 9bfcf728...", - "network_object": "igneum-devnet-4's class v5 object at epoch 2: id 0x81fbfa3aa413173f, epoch seed 3c3fab43... (the epoch-2 seed block, chain block 3423, common to every chain tonight: the split came after it), day 20734, era 0 seed 7c36b833... (class v5 reads no era; the id is the same under era zero), state stream state-epoch2.igsd1 (sha256 f36e6bba..., 21,132 bytes, 224 records, root 0xf798d1d8...) pulled at 22:18 UK from build-1's seed EVM RPC 27810", + "binary": "igneum-miner recheck-vectors sha256 9d563c41...; igneum-pow sha256 0d3f3fca...; igneum-worker-cuda sha256 804a6f7f...; igneum-pool sha256 b9fb3a60... (D1 pairing) and 2f6378e4... (kit)", + "network_object": "the chain-seed class v6 object: epoch seed af89be5d... (the node1 state stream's block 159357, root 1c583d35..., stream sha256 abb58003...) with the genesis era seed edc4fa84..., generator 6, id 0x2a1d6caab4c24564 (the hash lane's 22:00 UK ruling; their independent export hl-v6-all-cs a4742bfe... equals packs/chain-seed-d20730 file by file)", "activation": "none (a re-check of hashes against one job context, no chain state changes)", "profile_hashes": "" }, - "claim_impact": "the same-work test's live-chain half (the coordinator's third row, 22:1x UK): the readers on the chain's own class v5 object at epoch 2 across the day switch 20734 to 20735; the node and pool readers run it on their release-line engines, the row those two can PASS without the class v6 branch", + "claim_impact": "R2-F03-R02 and R03 on one job context (the chain-seed class v6 object) across the readers that can run it tonight: node, CPU reference, CUDA and pool on three phases with the dataset-day switch at nonce 1572864; PASS only when every reader agrees bit for bit on every nonce; Metal and OpenCL are the morning's", "reviewer": "", - "at": "2026-10-08T21:36:08.520Z" + "at": "2026-10-08T21:42:25.085Z", + "network_label": "on an island, not a network" }, "evidence_records": { "harness:same-work": { @@ -12242,21 +12245,22 @@ "method": "GPU", "cell": "harness:same-work", "manifest_sha": "c30ab32c", - "run_id": "same-work-20261008-03", - "evidence": "build-1:/srv/artefacts/tas/same-work-20261008-03/job-context.json", + "run_id": "same-work-20261008-02", + "evidence": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json", "in_progress": false, "coverage": "partial: the day-boundary transition in phase 2 (the one transition every live network crosses hourly at 60x); a class rotation is the same test on a research object until a v6 floor is set", "release_identity": { - "commit": "c30ab32c (release-2.0.1; the class v5 freeze 1c420786, fingerprint cbc5bd0a); the CUDA reader the kit's gen 5 worker 9bfcf728", + "commit": "c30ab32c (packaging/release-manifest.json on release-2.0.1; node 7cfa422a); the readers: node same-work-node cc23f9bd (igneum-node, off class-v6-node-review e8773ff5, paired with class-v6 1a938abe4), CPU reference class-v6 1a938abe4, CUDA the kit's gen 6 worker 804a6f7f, pool pool-recheck-202 00c7e1db over class-v6-node-review e8773ff5", "lockfile": "", - "binary": "igneum-pow sha256 7ba781db... (release-2.0.1 c30ab32c, built on build-4); igneum-worker-cuda gen 5 sha256 9bfcf728...", - "network_object": "igneum-devnet-4's class v5 object at epoch 2: id 0x81fbfa3aa413173f, epoch seed 3c3fab43... (the epoch-2 seed block, chain block 3423, common to every chain tonight: the split came after it), day 20734, era 0 seed 7c36b833... (class v5 reads no era; the id is the same under era zero), state stream state-epoch2.igsd1 (sha256 f36e6bba..., 21,132 bytes, 224 records, root 0xf798d1d8...) pulled at 22:18 UK from build-1's seed EVM RPC 27810", + "binary": "igneum-miner recheck-vectors sha256 9d563c41...; igneum-pow sha256 0d3f3fca...; igneum-worker-cuda sha256 804a6f7f...; igneum-pool sha256 b9fb3a60... (D1 pairing) and 2f6378e4... (kit)", + "network_object": "the chain-seed class v6 object: epoch seed af89be5d... (the node1 state stream's block 159357, root 1c583d35..., stream sha256 abb58003...) with the genesis era seed edc4fa84..., generator 6, id 0x2a1d6caab4c24564 (the hash lane's 22:00 UK ruling; their independent export hl-v6-all-cs a4742bfe... equals packs/chain-seed-d20730 file by file)", "activation": "none (a re-check of hashes against one job context, no chain state changes)", "profile_hashes": "" }, - "claim_impact": "the same-work test's live-chain half (the coordinator's third row, 22:1x UK): the readers on the chain's own class v5 object at epoch 2 across the day switch 20734 to 20735; the node and pool readers run it on their release-line engines, the row those two can PASS without the class v6 branch", + "claim_impact": "R2-F03-R02 and R03 on one job context (the chain-seed class v6 object) across the readers that can run it tonight: node, CPU reference, CUDA and pool on three phases with the dataset-day switch at nonce 1572864; PASS only when every reader agrees bit for bit on every nonce; Metal and OpenCL are the morning's", "reviewer": "", - "at": "2026-10-08T21:36:08.520Z" + "at": "2026-10-08T21:42:25.085Z", + "network_label": "on an island, not a network" } }, "approvals": { diff --git a/tools/ci/batches/family-gate-20261008c.json b/tools/ci/batches/family-gate-20261008c.json index d10613a0d..9b2e12621 100644 --- a/tools/ci/batches/family-gate-20261008c.json +++ b/tools/ci/batches/family-gate-20261008c.json @@ -2,10 +2,16 @@ "run_id": "family-gate-20261008c", "manifest_sha": "1a938abe4", "method": "native", - "cut_tip": "class-v6 1a938abe4 (section 6.13: the chain-seed draw through the acceptance at both era inputs; by the hash lane's 22:00 BST ruling the era-edc4fa84 column, id 2a1d6caab4c24564, is the signing object's and passes, clean of the bit-R class; the era-af89be5d column is the pack hl-v6-all-chainseed's reproduction, void for F0); ac86d7910 for 6.12 and before (family-gate-20261008b)", + "cut_tip": "class-v6 1a938abe4 (section 6.13: the chain-seed draw through the acceptance at both era inputs; by the hash lane's 22:00 UK ruling the era-edc4fa84 column, id 2a1d6caab4c24564, is the signing object's and passes, clean of the bit-R class; the era-af89be5d column is the pack hl-v6-all-chainseed's reproduction, void for F0); ac86d7910 for 6.12 and before (family-gate-20261008b)", "evidence_dir": "docs/analysis/class-v6/logs", - "boxes": ["build-6"], + "boxes": [ + "build-6" + ], "cells": [ - {"cell": "harness:family-gate", "status": "NOT RUN", "evidence": "docs/analysis/class-v6/family-gate.md"} + { + "cell": "harness:family-gate", + "status": "NOT RUN", + "evidence": "docs/analysis/class-v6/family-gate.md" + } ] } diff --git a/tools/ci/batches/same-work-20261008-02.json b/tools/ci/batches/same-work-20261008-02.json index 08a8dcc0d..e4c4a1174 100644 --- a/tools/ci/batches/same-work-20261008-02.json +++ b/tools/ci/batches/same-work-20261008-02.json @@ -20,7 +20,7 @@ }, "claim_impact": "R2-F03-R02 and R03 on one job context (the chain-seed class v6 object) across the readers that can run it tonight: node, CPU reference, CUDA and pool on three phases with the dataset-day switch at nonce 1572864; PASS only when every reader agrees bit for bit on every nonce; Metal and OpenCL are the morning's", "network_label": "on an island, not a network", - "note": "The same-work run (the coordinator's ruling 22:0x UK: six readers on one context; the frozen-object context 01 is the CUDA and CPU-only row). The node1 state stream (block af89be5d..., written on build-4 at 15:34 UK, before the 20:00 UK split) keys every item; every cell carries the island label by main's 22:2x UK rule. Day D = 20730 (bytes ...2ffa50), D+1 = 20731 (...2ffb50); phase 2 switches at 1572864 (the midpoint, 32-aligned); genesis day index 20730 and dataset 2^28 words for the engine's growth rule (doublings 0 on both days). CPU reference: igneum-pow hash-bound (class-v6 1a938abe4, binary 0d3f3fca...) on build-4, 21:48 to 21:57 UK, ref-D 7c7be9b5... over [0, 1572864), ref-D1 cad7849f... over [1572864, 3145728); the hash lane's independent million-nonce reference hl-v6-all-cs.txt (b77c61d8..., 22:03 UK) equals ref-D's first million lines byte for byte. Node reader: PASS on all three phases (22:17, 22:21, 22:25 UK; 1,048,576 agree each, 0 disagree, 0 missing; the boundary switched: d28fcfd70ba70a64 before, 45905ff3d608dc12 after, both equal to the reference; the program id unchanged across the day). Reader faults recorded, not disagreements: the node reader's first phase 1 at 22:10 UK read FAIL on every nonce with the program id equal because the standalone engine held the genesis day at 0 and the growth rule doubled the cache fourteen times (fixed at cc23f9bd: install_pow_genesis from the context and the pack, the live miner's own call); the pool lane's D1-pairing run at 22:17 UK hit the same class (its nonce 0 and 1 hashes equal the pre-fix node hashes byte for byte), fix sent 22:18 UK, rerun pending. The pool on the 2.0.2 kit as pinned (release-2.0.2 00c7e1db, node 7cfa422a) is BLOCKED: its node's ProgramClass enum ends at V5, so a class=v6 job line is unnameable (pool/kit-row/pool-{1,2,3}.json carry that refusal in the driver's shape). CUDA: the 5090's phase 1 PASS at 22:00 and 22:24 UK (gen 6 worker 804a6f7f, 47.6 s); phases 2 and 3 running at the time of this record (the fleet lane's runner restarted at 22:22 UK for the three-context file; its stray phase 2 and 3 lines at 22:23 were the restart's artefact, overwritten by the clean sequence). Rule 24 on same-work-node cc23f9bd on build-2: crate check rc 0, igneum-miner suite 30 passed 0 failed.", + "note": "The same-work run (the coordinator's ruling 22:0x UK: six readers on one context; the frozen-object context 01 is the CUDA and CPU-only row). The node1 state stream (block af89be5d..., written on build-4 at 15:34 UK, before the 20:00 UK split) keys every item; every cell carries the island label by main's 22:2x UK rule. Day D = 20730 (bytes ...2ffa50), D+1 = 20731 (...2ffb50); phase 2 switches at 1572864 (the midpoint, 32-aligned); genesis day index 20730 and dataset 2^28 words for the engine's growth rule (doublings 0 on both days). CPU reference: igneum-pow hash-bound (class-v6 1a938abe4, binary 0d3f3fca...) on build-4, 21:48 to 21:57 UK, ref-D 7c7be9b5... over [0, 1572864), ref-D1 cad7849f... over [1572864, 3145728); the hash lane's independent million-nonce reference hl-v6-all-cs.txt (b77c61d8..., 22:03 UK) equals ref-D's first million lines byte for byte. Node reader: PASS on all three phases (22:17, 22:21, 22:25 UK; 1,048,576 agree each, 0 disagree, 0 missing; the boundary switched: d28fcfd70ba70a64 before, 45905ff3d608dc12 after, both equal to the reference; the program id unchanged across the day). Reader faults recorded, not disagreements: the node reader's first phase 1 at 22:10 UK read FAIL on every nonce with the program id equal because the standalone engine held the genesis day at 0 and the growth rule doubled the cache fourteen times (fixed at cc23f9bd: install_pow_genesis from the context and the pack, the live miner's own call); the pool lane's D1-pairing run at 22:17 UK hit the same class (its nonce 0 and 1 hashes equal the pre-fix node hashes byte for byte), fix sent 22:18 UK, rerun pending. The pool on the 2.0.2 kit as pinned (release-2.0.2 00c7e1db, node 7cfa422a) is BLOCKED: its node's ProgramClass enum ends at V5, so a class=v6 job line is unnameable (pool/kit-row/pool-{1,2,3}.json carry that refusal in the driver's shape). CUDA: the 5090's phase 1 PASS at 22:00 and 22:24 UK (gen 6 worker 804a6f7f, 47.6 s); phases 2 and 3 running at the time of this record (the fleet lane's runner restarted at 22:22 UK for the three-context file; its stray phase 2 and 3 lines at 22:23 were the restart's artefact, overwritten by the clean sequence). Rule 24 on same-work-node cc23f9bd on build-2: crate check rc 0, igneum-miner suite 30 passed 0 failed. (served-page words scrubbed at 22:4x UK, the steward's identity landing.)", "cells": [ { "cell": "harness:same-work", @@ -30,7 +30,7 @@ "status": "NOT RUN", "method": "GPU", "evidence": "build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node-3.json; build-1:/srv/artefacts/tas/same-work-20261008-02/node/node.log; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/references/ref-D1.txt; build-1:/srv/artefacts/tas/same-work-20261008-02/job-context.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-1.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-2.json; build-1:/srv/artefacts/tas/same-work-20261008-02/pool/kit-row/pool-3.json", - "note": "node PASS x3, CPU reference written and cross-checked, CUDA 5090 phase 1 PASS and phases 2 and 3 running, pool D1 pairing rerun pending after the install fix, pool kit row BLOCKED by its V5 pins, Metal and OpenCL NOT RUN until the morning (Metal 08:30 UK on the mini, OpenCL 08:30 UK on PC 1); the case stays NOT RUN in progress until every reader has read", + "note": "node PASS x3, CPU reference written and cross-checked, CUDA 5090 phase 1 PASS and phases 2 and 3 running, pool D1 pairing rerun pending after the install fix, pool kit row BLOCKED by its V5 pins, Metal and OpenCL NOT RUN until the morning (Metal 08:30 UK on the mini, OpenCL 08:30 UK on the project's first rig); the case stays NOT RUN in progress until every reader has read", "network_label": "on an island, not a network", "in_progress": true }, @@ -47,4 +47,4 @@ "in_progress": true } ] -} \ No newline at end of file +}