INT-07 on kit 2's rule-33 record (the mac block PASS, one of four; NOT RUN in progress until the other three join); F0's rule-33 row; the identity grep covers the canary records and the owner's name in a host string; the recorder takes a cell's in_progress flag (only the legacy word RUNNING had set it)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
9cd4e3e2b3
commit
2e736f2d24
8 changed files with 92 additions and 51 deletions
|
|
@ -54,7 +54,7 @@ The fixture every case of the Test and Acceptance Standard (docs/plans/igneum-2.
|
|||
| The acceptance rule on the candidate (6.13) | PASS under both era inputs in circulation; the edc4fa84 program (the candidate) clean at widths 4 and 1 under the full rule and the crate's own predicate; attack-f8 subset PASS | master 17dee5bc (lane D, 22:40 UK); batch family-gate-20261008c | lane D |
|
||||
| The live class v5 object (context 03) | 81fbfa3aa413173f at epoch 2 (epoch seed 3c3fab43…, day 20734), the live node's own program-id line as the witness; the same-work test's live-chain half, references about 00:25 UK, CUDA after them; labelled on an island, not a network | the hand's context 03 (build-1, sha256 53837a96…) | same-work hand |
|
||||
| 2.0.2 pair gate | Kit 2 (the roll): node release-2.0.2-node 5d53a591 (kit2b-line: fix 2 + the wedge fix on kit 1's tree) and the cut tip release-2.0.2 1176efb9 (the pin and the manifest's node block at 5d53a591, release-manifest-check green; no crate move since 77b5acc5): on build-4 from the key-succession parent with the class v5 freeze (fingerprint cbc5bd0a) the kaspad check with igneum-pow GREEN (rule 19), core 185/0, exec 95/0, miner 33/0, p2p-flows 40/0, consensus 143/0; the miner tip pow 113/0, app 389/0 on 77b5acc5. Batch 202-5d53a591-1176efb9. Kit 1 re-cut (490ebcfe, 5db25637; batch 202-490ebcfe-5db25637, master ff1da144) is the clean fallback. cf32be79 (the record-store fold) read red on the fresh-sync read at 00:55 UK (the store's IBD pre-fetch reads its own store as held while the body rule reads the pool) and rides 2.0.3. Earlier shas stand as records: 94e4c6ba (six cells GREEN, the mac canary FAIL, the wedge at DAA 9,821; master 9b040ab0), d657e490 (the 4,379 stall; master 76041234), a284380b (the pair RED on chain, a fix-2 lock fault; master 26203e35). | the shipper's 01:2x line; build-1:/srv/artefacts/tas/202-5d53a591-1176efb9/ | CI steward, shipper, node lane, HEAL lane |
|
||||
| Rule 33 canary for 2.0.2 | Kit 1 as 94e4c6ba (870c0344): the mac block FAIL on its sync line (the fresh node on the project's macOS machine wedged at DAA 9,821: the executor behind the exec state lock, the exec RPC answering nothing; build-1:/srv/canary/870c0344/mini/00-verdict.txt, 04-sync.txt), recorded on INT-07; the HEAL lane named the class from the code and the re-cut 490ebcfe (5db25637) carries the fix. No 2.0.2 entry publishes until a four-block record reads PASS (publish-manifest's guard holds); the roll and the entries come on kit 2 (cf32be79) on its own PASS record, kit 1's re-cut the clean fallback; the mini's canary re-runs on the fixed node. F0's 2.0.2 row names kit 2 then. | the shipper's 00:0x and 00:2x lines; the coordinator's ruling | shipper, fleet lane, relay lane, HEAL lane |
|
||||
| Rule 33 canary for 2.0.2 | Kit 2 (1176efb9, node 5d53a591): the record tools/ci/canary/1176efb9.json landed on master fa8139bd at 02:29 UK with its mac block PASS (the project's macOS machine, Apple M6: synced from empty in 2,016 s on hub-1's chain, 18 blocks in five minutes at 12.65 MH/s, 0 refusals, shard n/a on Apple silicon, the tip inside ten of the age-adjusted feed, quit in 4 s; build-1:/srv/canary/1176efb9/mini/); the Mac entry published on it at 02:20 UK through publish-manifest's guard (Igneum-Miner-2.0.2-5d53a591-1176efb9.dmg 66137cd8…, the public alias on it); Windows and HiveOS stay 2.0.1 until their own blocks read PASS; the fleet, hive and windows blocks join from their boxes. INT-07 reads NOT RUN in progress on one of four blocks. Kit 1 as 94e4c6ba (870c0344): the mac block FAIL on its sync line (the wedge at DAA 9,821) stands as that sha's record; kit 1 re-cut (5db25637) has its own PASS mac block staged as the fallback's evidence. | the shipper's 02:3x line; the coordinator's ruling | shipper, fleet lane, relay lane, HEAL lane |
|
||||
| Network label | devnet-4 has been islands since the epoch-3 cut: every measurement recorded on the 2.0 devnet after 20:00 UK reads "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) | main's word through the coordinator, 22:2x UK; the recorder's --label-islands | CI steward |
|
||||
|
||||
The block is the steward's read-back of the lanes' own landed lines; the three roles in the signatures table sign by a landing of their own.
|
||||
|
|
|
|||
|
|
@ -50,31 +50,31 @@
|
|||
"manual_page": 18,
|
||||
"owner_lane": "node lane (a283f5f0d364ceef0)",
|
||||
"run_status": "NOT RUN",
|
||||
"evidence_path": "build-1:/srv/artefacts/tas/202-5d53a591-1176efb9/node-5d53a591/box4-kaspad-check.log",
|
||||
"run_id": "202-5d53a591-1176efb9",
|
||||
"updated": "2026-10-09T00:33:39.243Z",
|
||||
"evidence_path": "docs/plans/igneum-2.0-f0-manifest.md; build-4:/srv/builds/igneum-wt-ci-steward-202",
|
||||
"run_id": "f0-signing-20261008-2330",
|
||||
"updated": "2026-10-09T01:31:32.480Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "GOV-01",
|
||||
"decision": "NOT RUN",
|
||||
"method": "native",
|
||||
"method": "static",
|
||||
"cell": "check:freeze",
|
||||
"manifest_sha": "5d53a591",
|
||||
"run_id": "202-5d53a591-1176efb9",
|
||||
"evidence": "build-1:/srv/artefacts/tas/202-5d53a591-1176efb9/node-5d53a591/box4-kaspad-check.log",
|
||||
"manifest_sha": "1a938abe",
|
||||
"run_id": "f0-signing-20261008-2330",
|
||||
"evidence": "docs/plans/igneum-2.0-f0-manifest.md; build-4:/srv/builds/igneum-wt-ci-steward-202",
|
||||
"in_progress": false,
|
||||
"coverage": "partial: the linked igneum-pow tree's fingerprint must match a listed freeze or the build fails, the binary prints which; the manifest (igneum_getManifest) names the object digest; the signed F0 manifest is the node lane's row tonight",
|
||||
"release_identity": {
|
||||
"commit": "5d53a591",
|
||||
"commit": "2a1d6caab4c24564 (the class v6 freeze candidate's draw of tree 1a938abe4)",
|
||||
"lockfile": "",
|
||||
"binary": "",
|
||||
"network_object": "",
|
||||
"network_object": "igneum-devnet-4, chain id 4465 (islands since the epoch-3 cut)",
|
||||
"activation": "",
|
||||
"profile_hashes": ""
|
||||
"profile_hashes": "igneum-pow/src fingerprint 5f4d6dc6199294db89042171004e6420c1e5791e716d4b39b73d375818c10b6f"
|
||||
},
|
||||
"claim_impact": "",
|
||||
"claim_impact": "GOV-01 moves with its page: the F0 manifest carries the signing block (the candidate at its pairing, the same-work and acceptance rows, the 2.0.2 pair gate, the prover row, the canary state); GOV-01 stays NOT RUN in progress until the three roles sign",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-09T00:33:39.243Z",
|
||||
"note": "suite GREEN (rc 0, every test passed); the cell covers its cases partially, so the case reads NOT RUN in progress with this evidence until its own acceptance is exercised; kaspad-check on release-2.0.2-node 5d53a591 with the key-succession parent and the class v5 freeze igneum-pow (box4, 25s) | 2.0.2 pair gate on build-4, 00:26 UTC: kit 2: release-manifest-check green on 1176efb9 (node block kit2b-line 5d53a591); 77b5acc5..1176efb9 moves pool/ and packaging only; 5d53a591 = fix 2 + the wedge fix on kit 1's tree (cf32be79, the record-store fold, read red on the fresh-sync read at 00:55 and rides 2.0.3); kit 2 carries the roll and the entries on its own four-block rule-33 record, kit 1 re-cut 490ebcfe/5db25637 the clean fallback Every suite cell maps its cases partially, so the green suites read NOT RUN in progress with their logs as evidence, never PASS by inference. Kit 2's rule-33 record (four blocks) lands with the entries; INT-07's FAIL on 94e4c6ba stands until then."
|
||||
"at": "2026-10-09T01:31:32.480Z",
|
||||
"note": "the signing block is on the page; the freeze itself is unchanged (class v5 1c420786, fingerprint cbc5bd0a); the candidate's row names 2a1d6caab4c24564 of 1a938abe4 | F0's signing block written at 23:3x UK from the lanes' landed lines; the signatures table is the three roles' own landing."
|
||||
},
|
||||
"in_progress_since": "2026-10-08T19:32:50.856Z",
|
||||
"approvals": {
|
||||
|
|
@ -87,25 +87,25 @@
|
|||
"check:freeze": {
|
||||
"requirement_id": "GOV-01",
|
||||
"decision": "NOT RUN",
|
||||
"method": "native",
|
||||
"method": "static",
|
||||
"cell": "check:freeze",
|
||||
"manifest_sha": "5d53a591",
|
||||
"run_id": "202-5d53a591-1176efb9",
|
||||
"evidence": "build-1:/srv/artefacts/tas/202-5d53a591-1176efb9/node-5d53a591/box4-kaspad-check.log",
|
||||
"manifest_sha": "1a938abe",
|
||||
"run_id": "f0-signing-20261008-2330",
|
||||
"evidence": "docs/plans/igneum-2.0-f0-manifest.md; build-4:/srv/builds/igneum-wt-ci-steward-202",
|
||||
"in_progress": false,
|
||||
"coverage": "partial: the linked igneum-pow tree's fingerprint must match a listed freeze or the build fails, the binary prints which; the manifest (igneum_getManifest) names the object digest; the signed F0 manifest is the node lane's row tonight",
|
||||
"release_identity": {
|
||||
"commit": "5d53a591",
|
||||
"commit": "2a1d6caab4c24564 (the class v6 freeze candidate's draw of tree 1a938abe4)",
|
||||
"lockfile": "",
|
||||
"binary": "",
|
||||
"network_object": "",
|
||||
"network_object": "igneum-devnet-4, chain id 4465 (islands since the epoch-3 cut)",
|
||||
"activation": "",
|
||||
"profile_hashes": ""
|
||||
"profile_hashes": "igneum-pow/src fingerprint 5f4d6dc6199294db89042171004e6420c1e5791e716d4b39b73d375818c10b6f"
|
||||
},
|
||||
"claim_impact": "",
|
||||
"claim_impact": "GOV-01 moves with its page: the F0 manifest carries the signing block (the candidate at its pairing, the same-work and acceptance rows, the 2.0.2 pair gate, the prover row, the canary state); GOV-01 stays NOT RUN in progress until the three roles sign",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-09T00:33:39.243Z",
|
||||
"note": "suite GREEN (rc 0, every test passed); the cell covers its cases partially, so the case reads NOT RUN in progress with this evidence until its own acceptance is exercised; kaspad-check on release-2.0.2-node 5d53a591 with the key-succession parent and the class v5 freeze igneum-pow (box4, 25s) | 2.0.2 pair gate on build-4, 00:26 UTC: kit 2: release-manifest-check green on 1176efb9 (node block kit2b-line 5d53a591); 77b5acc5..1176efb9 moves pool/ and packaging only; 5d53a591 = fix 2 + the wedge fix on kit 1's tree (cf32be79, the record-store fold, read red on the fresh-sync read at 00:55 and rides 2.0.3); kit 2 carries the roll and the entries on its own four-block rule-33 record, kit 1 re-cut 490ebcfe/5db25637 the clean fallback Every suite cell maps its cases partially, so the green suites read NOT RUN in progress with their logs as evidence, never PASS by inference. Kit 2's rule-33 record (four blocks) lands with the entries; INT-07's FAIL on 94e4c6ba stands until then."
|
||||
"at": "2026-10-09T01:31:32.480Z",
|
||||
"note": "the signing block is on the page; the freeze itself is unchanged (class v5 1c420786, fingerprint cbc5bd0a); the candidate's row names 2a1d6caab4c24564 of 1a938abe4 | F0's signing block written at 23:3x UK from the lanes' landed lines; the signatures table is the three roles' own landing."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -15430,59 +15430,62 @@
|
|||
"owner": "CI steward with the hash lane (a690540514aa453d7) and the worker lane (a9e87343f008e0edd)",
|
||||
"manual_page": null,
|
||||
"owner_lane": "CI steward with the hash lane (a690540514aa453d7) and the worker lane (a9e87343f008e0edd)",
|
||||
"run_status": "FAIL",
|
||||
"run_status": "NOT RUN",
|
||||
"master_status": "PROPOSED / NOT RUN",
|
||||
"run_id": "202-94e4c6ba-870c0344",
|
||||
"evidence_path": "build-1:/srv/canary/870c0344/mini/00-verdict.txt; build-1:/srv/canary/870c0344/mini/04-sync.txt",
|
||||
"updated": "2026-10-08T23:23:36.269Z",
|
||||
"run_id": "canary-202-20261009-01",
|
||||
"evidence_path": "tools/ci/canary/1176efb9.json; build-1:/srv/canary/1176efb9/mini/00-verdict.txt",
|
||||
"updated": "2026-10-09T01:32:21.972Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "INT-07",
|
||||
"decision": "FAIL",
|
||||
"decision": "NOT RUN",
|
||||
"method": "team-reported",
|
||||
"cell": "canary:fresh-install",
|
||||
"manifest_sha": "94e4c6ba",
|
||||
"run_id": "202-94e4c6ba-870c0344",
|
||||
"evidence": "build-1:/srv/canary/870c0344/mini/00-verdict.txt; build-1:/srv/canary/870c0344/mini/04-sync.txt",
|
||||
"in_progress": false,
|
||||
"manifest_sha": "5d53a591",
|
||||
"run_id": "canary-202-20261009-01",
|
||||
"evidence": "tools/ci/canary/1176efb9.json; build-1:/srv/canary/1176efb9/mini/00-verdict.txt",
|
||||
"in_progress": true,
|
||||
"coverage": "partial: V6-12's clean-install half (one published object installed fresh, synced, mined, proved and paid on one host per artefact); the cross-host agreement half (node, pool, CPU verifier, each GPU host across activation) is harness:same-work's",
|
||||
"release_identity": {
|
||||
"commit": "94e4c6ba",
|
||||
"commit": "1176efb9 (release-2.0.2 kit 2 tip; node 5d53a591)",
|
||||
"lockfile": "",
|
||||
"binary": "",
|
||||
"network_object": "",
|
||||
"binary": "Igneum-Miner-2.0.2-5d53a591-1176efb9.dmg 66137cd8…",
|
||||
"network_object": "igneum-devnet-4, chain id 4465",
|
||||
"activation": "",
|
||||
"profile_hashes": ""
|
||||
},
|
||||
"claim_impact": "",
|
||||
"claim_impact": "INT-07's clean-install half: kit 2's rule-33 record reads PASS on its mac block (one of four); the row reads NOT RUN in progress until the fleet, hive and windows blocks join, PASS then; the Mac entry published on it at 02:20 UK through publish-manifest's guard",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T23:23:36.269Z",
|
||||
"at": "2026-10-09T01:32:21.972Z",
|
||||
"note": "one PASS block (mac) of four on kit 2's record; the row turns PASS when the fleet, hive and windows blocks read PASS | Kit 2 (tip 1176efb9, node 5d53a591): the mac block PASS under tools/ci/canary-check.sh on master (synced from empty in 2,016 s on hub-1's chain, 18 blocks in five minutes at 12.65 MH/s, 0 refusals, shard n/a on Apple silicon, tip 16731 against the feed's 16722 at 1 s, quit in 4 s); the record landed as fa8139bd at 02:29 UK; the fleet, hive and windows blocks join from their boxes when their canaries read. Kit 1's 94e4c6ba FAIL (the wedge) stands as that sha's record.",
|
||||
"network_label": "on an island, not a network"
|
||||
},
|
||||
"evidence_records": {
|
||||
"canary:fresh-install": {
|
||||
"requirement_id": "INT-07",
|
||||
"decision": "FAIL",
|
||||
"decision": "NOT RUN",
|
||||
"method": "team-reported",
|
||||
"cell": "canary:fresh-install",
|
||||
"manifest_sha": "94e4c6ba",
|
||||
"run_id": "202-94e4c6ba-870c0344",
|
||||
"evidence": "build-1:/srv/canary/870c0344/mini/00-verdict.txt; build-1:/srv/canary/870c0344/mini/04-sync.txt",
|
||||
"in_progress": false,
|
||||
"manifest_sha": "5d53a591",
|
||||
"run_id": "canary-202-20261009-01",
|
||||
"evidence": "tools/ci/canary/1176efb9.json; build-1:/srv/canary/1176efb9/mini/00-verdict.txt",
|
||||
"in_progress": true,
|
||||
"coverage": "partial: V6-12's clean-install half (one published object installed fresh, synced, mined, proved and paid on one host per artefact); the cross-host agreement half (node, pool, CPU verifier, each GPU host across activation) is harness:same-work's",
|
||||
"release_identity": {
|
||||
"commit": "94e4c6ba",
|
||||
"commit": "1176efb9 (release-2.0.2 kit 2 tip; node 5d53a591)",
|
||||
"lockfile": "",
|
||||
"binary": "",
|
||||
"network_object": "",
|
||||
"binary": "Igneum-Miner-2.0.2-5d53a591-1176efb9.dmg 66137cd8…",
|
||||
"network_object": "igneum-devnet-4, chain id 4465",
|
||||
"activation": "",
|
||||
"profile_hashes": ""
|
||||
},
|
||||
"claim_impact": "",
|
||||
"claim_impact": "INT-07's clean-install half: kit 2's rule-33 record reads PASS on its mac block (one of four); the row reads NOT RUN in progress until the fleet, hive and windows blocks join, PASS then; the Mac entry published on it at 02:20 UK through publish-manifest's guard",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-08T23:23:36.269Z",
|
||||
"at": "2026-10-09T01:32:21.972Z",
|
||||
"note": "one PASS block (mac) of four on kit 2's record; the row turns PASS when the fleet, hive and windows blocks read PASS | Kit 2 (tip 1176efb9, node 5d53a591): the mac block PASS under tools/ci/canary-check.sh on master (synced from empty in 2,016 s on hub-1's chain, 18 blocks in five minutes at 12.65 MH/s, 0 refusals, shard n/a on Apple silicon, tip 16731 against the feed's 16722 at 1 s, quit in 4 s); the record landed as fa8139bd at 02:29 UK; the fleet, hive and windows blocks join from their boxes when their canaries read. Kit 1's 94e4c6ba FAIL (the wedge) stands as that sha's record.",
|
||||
"network_label": "on an island, not a network"
|
||||
}
|
||||
},
|
||||
"in_progress_since": "2026-10-09T01:32:21.972Z",
|
||||
"approvals": {
|
||||
"scope_approved": null,
|
||||
"implementation_complete": null,
|
||||
|
|
|
|||
|
|
@ -43,3 +43,5 @@ outside check
|
|||
waits on its escrow
|
||||
staged and waits
|
||||
the publish word
|
||||
# the owner's first name inside a machine or host name never enters a record (9 October 2026, 02:3x UK: a canary record's box.host carried it)
|
||||
\bJoshs?-[A-Za-z0-9-]+\b
|
||||
|
|
|
|||
32
tools/ci/batches/canary-202-20261009-01.json
Normal file
32
tools/ci/batches/canary-202-20261009-01.json
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"run_id": "canary-202-20261009-01",
|
||||
"manifest_sha": "5d53a591",
|
||||
"method": "team-reported",
|
||||
"evidence_dir": "tools/ci/canary/1176efb9.json; build-1:/srv/canary/1176efb9",
|
||||
"boxes": [
|
||||
"igneum-mini"
|
||||
],
|
||||
"release_identity": {
|
||||
"commit": "1176efb9 (release-2.0.2 kit 2 tip; node 5d53a591)",
|
||||
"lockfile": "",
|
||||
"binary": "Igneum-Miner-2.0.2-5d53a591-1176efb9.dmg 66137cd8\u2026",
|
||||
"network_object": "igneum-devnet-4, chain id 4465",
|
||||
"activation": "",
|
||||
"profile_hashes": ""
|
||||
},
|
||||
"claim_impact": "INT-07's clean-install half: kit 2's rule-33 record reads PASS on its mac block (one of four); the row reads NOT RUN in progress until the fleet, hive and windows blocks join, PASS then; the Mac entry published on it at 02:20 UK through publish-manifest's guard",
|
||||
"note": "Kit 2 (tip 1176efb9, node 5d53a591): the mac block PASS under tools/ci/canary-check.sh on master (synced from empty in 2,016 s on hub-1's chain, 18 blocks in five minutes at 12.65 MH/s, 0 refusals, shard n/a on Apple silicon, tip 16731 against the feed's 16722 at 1 s, quit in 4 s); the record landed as fa8139bd at 02:29 UK; the fleet, hive and windows blocks join from their boxes when their canaries read. Kit 1's 94e4c6ba FAIL (the wedge) stands as that sha's record.",
|
||||
"cells": [
|
||||
{
|
||||
"cell": "canary:fresh-install",
|
||||
"cases": [
|
||||
"INT-07"
|
||||
],
|
||||
"status": "NOT RUN",
|
||||
"in_progress": true,
|
||||
"evidence": "tools/ci/canary/1176efb9.json; build-1:/srv/canary/1176efb9/mini/00-verdict.txt",
|
||||
"network_label": "on an island, not a network",
|
||||
"note": "one PASS block (mac) of four on kit 2's record; the row turns PASS when the fleet, hive and windows blocks read PASS"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
"sha256": "66137cd8303356dacc2a0abc24088a88263ef81f3a85b16ba4b950cc6bcb806f"
|
||||
},
|
||||
"box": {
|
||||
"host": "igneum-mini (Joshs-Mac-mini.local, Apple M6, macOS 27.0.1)",
|
||||
"host": "igneum-mini (Apple M6, macOS 27.0.1)",
|
||||
"isa_line": "arm64: no avx512 (Apple silicon)"
|
||||
},
|
||||
"datadir": {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
"sha256": "3fb3a536229736d87c4900c5daeed08028d12594967ab23efb0203a2cddd1434"
|
||||
},
|
||||
"box": {
|
||||
"host": "igneum-mini (Joshs-Mac-mini.local, Apple M6, macOS 27.0.1)",
|
||||
"host": "igneum-mini (Apple M6, macOS 27.0.1)",
|
||||
"isa_line": "arm64: no avx512 (Apple silicon)"
|
||||
},
|
||||
"datadir": {
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ SITE_FILES="$(find "$REPO/site" -type f \( -name '*.html' -o -name '*.json' -o -
|
|||
# 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)"
|
||||
REG_FILES="$(find "$REPO/tools/ci/batches" "$REPO/tools/ci/notes" "$REPO/tools/ci/canary" -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)"
|
||||
|
|
|
|||
|
|
@ -89,6 +89,7 @@ function record(reg, map, batch) {
|
|||
// 20:3x UK): RUNNING is not a state and becomes NOT RUN with in_progress_since; DEFERRED becomes NOT RUN with the deferral note
|
||||
let status = String(cell.status || '').toUpperCase(); let inProgress = false, deferral = null;
|
||||
if (status === 'RUNNING') { status = 'NOT RUN'; inProgress = true; }
|
||||
if (cell.in_progress === true && status === 'NOT RUN') inProgress = true; // the batch form's own flag (9 October 2026, 02:3x UK: every "in_progress": true written tonight had been dropped; only the legacy word RUNNING set it)
|
||||
if (status === 'DEFERRED') { status = 'NOT RUN'; deferral = cell.deferral || 'deferred by the founder'; }
|
||||
if (!DECISIONS.has(status)) throw new Error(`cell ${cell.cell}: status ${cell.status} is not one of NOT RUN, BLOCKED, FAIL, PASS (RUNNING reads as NOT RUN in progress; DEFERRED as NOT RUN with a deferral note)`);
|
||||
const method = cell.method || batch.method; if (!METHODS.has(method)) throw new Error(`cell ${cell.cell}: method must be one of ${[...METHODS].join(', ')} (never conflated); got ${method}`);
|
||||
|
|
@ -162,6 +163,9 @@ if (args.includes('--self-test')) {
|
|||
if (!(reg.cases[0].evidence_record.method === 'native' && reg.cases[0].evidence_record.decision === 'PASS' && reg.cases[0].evidence_record.requirement_id === 'C1' && reg.cases[0].evidence_record.reviewer === '' && reg.cases[0].approvals.claim_authorised === null)) { console.log(`self-test failed: the p.139 record fields or the four approvals (never inferred) are wrong: ${JSON.stringify(reg.cases[0].evidence_record)} ${JSON.stringify(reg.cases[0].approvals)}`); fails = 1; }
|
||||
record(reg, map, { run_id: 'r1r', manifest_sha: 'abc', method: 'native', cells: [{ cell: 'pow', status: 'RUNNING', evidence: '/e/pow.log' }] });
|
||||
if (!(reg.cases[0].run_status === 'NOT RUN' && reg.cases[0].in_progress_since)) { console.log('self-test failed: RUNNING did not become NOT RUN with in_progress_since'); fails = 1; }
|
||||
const regIP = { cases: [{ id: 'P1', method: 'Automated', accept: 'a' }] };
|
||||
record(regIP, { cells: { pc: { command: 'x', box_class: 'b', fixtures: [], cases: ['P1'] } }, not_run: {} }, { run_id: 'rip', manifest_sha: 'abc', method: 'native', cells: [{ cell: 'pc', status: 'NOT RUN', in_progress: true, evidence: '/e/p.log' }] });
|
||||
if (!(regIP.cases[0].run_status === 'NOT RUN' && regIP.cases[0].in_progress_since && regIP.cases[0].evidence_record.in_progress === true)) { console.log('self-test failed: a cell with "in_progress": true did not mark the row in progress'); fails = 1; }
|
||||
let badStatus = false; try { record(reg, map, { run_id: 'x', manifest_sha: 'abc', method: 'native', cells: [{ cell: 'pow', status: 'GREEN' }] }); } catch { badStatus = true; }
|
||||
delete process.env.TEST_RECORD_NO_TREE; let badPath = ''; try { record(reg, map, { run_id: 'x', manifest_sha: 'abc', method: 'native', cells: [{ cell: 'pow', status: 'FAIL', evidence: `${d}/missing.log`.replace(/^\//, 'rel/') }] }); } catch (e) { badPath = String(e.message); }
|
||||
if (!/not in the tree at record time/.test(badPath)) { console.log(`self-test failed: an evidence path not in the tree was accepted at record time: ${badPath}`); fails = 1; }
|
||||
|
|
|
|||
Loading…
Reference in a new issue