tools/ci/kit-isa-check.sh disassembles every executable of a kit (objdump) and is red on any AVX-512 encoding (a zmm register, an EVEX opmask, an EVEX-only mnemonic); self-tested with a fake objdump; in the gate as a self-test, in merge-to-master.sh over any executable a landing adds under packaging/kits or bin, and for the shipper's cut gate over the kit. kill-by-name-check.sh rule 5: a pgrep -f or pkill -f pattern passes only when anchored on the exact command line (^/full/path or ^command), the bracket form, a variable, -x or -F; a bare path, a log name or a word is red; the tree reads clean under it. tools/ci/no-kill-shim/{pkill,killall} exit 97 with the pid-file rule when first in PATH (the one line for a shell rc is in the file; the founder's own shell is his to change). test-record.mjs refuses a batch that declares a cut without the binary's build-N:/srv path, its commit string read back equal to the manifest sha, and the kit check's clean line.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The serving loop read 8 bytes per nonce back over the bus (128 MiB per 2^24-nonce
dispatch) and scanned them on the host under the GPU mutex. Now a tiny
igneum_select kernel, compiled once by NVRTC with no pack involved, writes the hits
(index, hash word) behind an atomic counter plus 34 sentinel words, and the host
reads back a few hundred bytes; the found lines come in nonce order from the sorted
hits, the hash word printed is the kernel's own out[i]. A chunk with more than 256
hits falls back to the full read of that chunk. The sentinels feed the stale-output
detector the OpenCL worker has (an unchanged signature across two chunks exits 3).
--readback full or IGNEUM_READBACK=full keeps the old path; a select pass that fails
to build falls back to it with an info line. The ready line carries "readback
select|full"; a transfers line per 200 jobs and at quit gives the per-chunk budget.
No hash changes: the bound kernel and its result layout are untouched.
The emulation backend learns the select kernel (module S, a host loop in reverse
index order so the sort is exercised). emu/select-check.sh, called from emu/test.sh,
compares select with the full read line for line, known-failed first
(IGNEUM_READBACK_FAULT_TEST skips the counter reset): zero hits, partial hits,
the all-hit overflow with its full fallbacks, a 96-nonce tail with a 32-lane
launch, the high-32 rollover, two queued jobs, hits then a zero chunk, a mismatch
error then a job. Green on build-7 (2255 found lines, 10 jobs, 2 fallbacks).
serve-bench.sh is the serving-mode measurement (production and steady numbers
beside the kernel timer).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Documents only: docs/analysis/class-v6/amd-intel-energy.md and docs/analysis/class-v6/amd-intel-energy/ (the three job scripts, the Level Zero sampler source, the offline-compile prelude and ISA summary).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Documents-only replay of d9e91c5d7 (d9e91c5d7a) for the box mirror master
tools/ci/int-suite.mjs writes the INT suite from docs/plans/igneum-2.0-master/traceability.json's integration_gates (the requirement verbatim as title and accept, source R1, NOT RUN, the owner per the coordinator's crosswalk) and regenerates at the merge like REV; the master's counting note is a registry-level note ("128 original test cases, 18 additional integration gates, 44 updated-stack closure requirements. These sets overlap and are not 190 independent tests."); REC-01's closure evidence (rule v4 on 12424341's line, mode recovery by the founder's ruling, both real-node lines PASS, FIN-02 PASS at 4089e3d31) is a dated note on FIN and on INT for INT-05 and INT-06, RUNNING until the beyond-window healing case runs natively. INT-17 in test-record.mjs: a batch cell that declares prereqs with any oracle, pinned keys or real-proof fixture missing is written BLOCKED with the missing ones named, never PASS; self-tested both ways.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
tools/fleet/box-prover.py point 6: each claimed segment is an eligible job and closes once as paid, expired (unpaid, held_expired) or cancelled (disk, export, cut, chain, timeout, shards, statement, sign, refused), active until then; the row carries outcome, cause, deadline, margin at the claim, seconds spent (wasted unless paid) and the deadline miss; the state carries the counters and the wasted seconds by cause; every close is a RESULT outcome line, the run ends with a RESULT ledger line.
tools/fleet/prover-outcomes.py: the report over state files and logs (a log from before the ledger is reconstructed from its RESULT lines; a state row wins over a log row): outcomes, paid completions (segments, shards, IGN, median end to end, median time to pay, median margin), missed deadlines by cause with the median miss (never negative, none on a stale tip), wasted work by cause, throughput per hour and the paid share of the seconds spent, the open jobs. --self-test to known numbers (known-failed first), run by the gate. tools/fleet/night.py sums the fleet's counters into its hourly row. docs/analysis/proving-outcome-ledger.md: the definitions and how to read the three ratios.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The node lane's lockKind word for a transaction under a recovery lock ("finalised by a recovery lock") reads on the
row as "finalised (recovery lock)" with the why: the surviving majority's lock after a long pause, not a certified
checkpoint, not yet verified here. Known-failed first on build-2 (the word fell through to the label); 22 wallet UI
tests green. Until the node carries the field the pause word stands (wallet-words-20).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
merge-to-master.sh rebuilds the registry from master's copy whenever a landing carries any transform, then regenerates the REV suite from the merged tree's findings and dispatch (review-suite.mjs --write), replays every added batch, and replays every added note file (tools/ci/notes/<id>.json, {suite, text}, through test-record.mjs --note-file), then regenerates the harness page from the structurally merged map. The founder's two rulings ride as note files. test-record.mjs stamps a NOT RUN row only when its status or reason changes (every landing had been colliding on 39 untouched rows, the reference-apps lane's finding).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Documents only. The master (292 pages) governs where it differs from the
plan PDF or the RTF; 18 INT gates and 44 R2 closure requirements become
suites INT and REV in the acceptance registry (CI steward).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
tools/ci/review-suite.mjs writes the REV suite from docs/analysis/review-2026-10-08-b/findings.json and dispatch.md: one case per required regression (REV-F01-1 onward), the regression line verbatim as title and accept, status NOT RUN, the owner lane from the dispatch table, the finding id and priority carried as fields; every unmapped case gets a NOT RUN reason in tools/ci/test-map.json naming its owner lane; the gate's check refuses a registry whose REV suite drifts from the findings. The founder's 19:57 rulings on F04 (the recovery lock kept, always labelled recovery) and F14 (the public miner from 2.0.2 without remote jobs; the lab build for our fleet) are dated notes on the FIN, UX and OPS suites through test-record.mjs --note, and resolved fields in F0. The harness page is regenerated.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Batch 201-7cfa422a-38351afd: node 7cfa422a (the miner base-unit fix, amended after 777214af's self-recursive connect failed to compile under the steward's read) green on the kaspad check and five suites on build-4 over the key-succession pairing; miner cut tip 38351afd (crate identical to 3c13a71c) green on pow and app on build-2. F0 names those pins and records the founder's 19:57 rulings on F04 (the recovery lock kept and always labelled recovery) and F14 (the public miner from 2.0.2 without remote jobs; the lab build for our fleet) as resolved. Tools: proof-rule-bypass-check.sh (F02: the test bypass cannot reach a release build; a cell of the node matrix from now, red until the proving lane's change lands); test-map-merge.py and the page regeneration at the merge (two lanes' cells no longer collide as text); push_race in merge-to-master.sh (a push that lost master's compare-and-swap retries without re-running the hook; twelve tries); review-suite.mjs (the REV suite generated from a review's findings and dispatch, written in the next commit once Review B is on master); test-record.mjs --note (a dated note on a suite, never an accept text).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
GPU-01, GPU-03 and POW-08 take run_status RUNNING with the evidence rows on build-1 under /srv/artefacts/tas/p02-rows; PASS waits on the AMD cells, the 1080 Ti cell and the re-exported v6 packs.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>