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 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-08 21:20:43 +00:00
parent 70c9128a14
commit 1bf4def2e9
8 changed files with 178 additions and 113 deletions

View file

@ -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

View file

@ -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)."
}
]
}

View file

@ -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.)"
}

View file

@ -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.)"
}

View file

@ -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.)"
}

View file

@ -34,7 +34,12 @@ if [ "${1:-}" = "--self-test" ]; then
# a served site file carrying a pattern: must fail, unscrubbed
printf '<p>a home path /Users/someone/x</p>\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

View file

@ -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"

View file

@ -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); }