diff --git a/docs/plans/igneum-2.0-test-harness-map.md b/docs/plans/igneum-2.0-test-harness-map.md index 24e0c15ed..9e6b8d6de 100644 --- a/docs/plans/igneum-2.0-test-harness-map.md +++ b/docs/plans/igneum-2.0-test-harness-map.md @@ -1,6 +1,6 @@ # Igneum 2.0 test harness map -Generated from tools/ci/test-map.json by tools/ci/test-map-doc.mjs; edit the JSON, never this page. Registry: docs/plans/igneum-2.0-test-registry.json (128 cases). +Generated from tools/ci/test-map.json by tools/ci/test-map-doc.mjs; edit the JSON, never this page. Registry: docs/plans/igneum-2.0-test-registry.json (172 cases). Rule: a case maps to a cell only where the cell's tests visibly answer it; coverage names what the cell proves and what remains; a mapped cell's green writes RUNNING, PASS only when coverage is full and the evidence file exists; an automated case with no cell reads NOT RUN with its reason, never PASS by inference. @@ -295,7 +295,51 @@ Rule: a case maps to a cell only where the cell's tests visibly answer it; cover - LEAD-05 Measure control and dependency concentration: observation window - LEAD-06 Complete the reliability observation window: observation window - LEAD-08 Keep leadership claims valid after release: observation window +- REV-F01-1 Valid proof A, warm cache, carried statement B: refuse exactly as a cold node does.: F01 (P0, the external review): the regression's harness is the owner lane's (proving lane, node lane); not yet named in the map +- REV-F01-2 Run valid/invalid contexts in both orders, concurrently and across cache eviction/restart.: F01 (P0, the external review): the regression's harness is the owner lane's (proving lane, node lane); not yet named in the map +- REV-F01-3 Change payout, network, kind, program ID and activation context; no accepted misbinding.: F01 (P0, the external review): the regression's harness is the owner lane's (proving lane, node lane); not yet named in the map +- REV-F01-4 A native two-node test must agree on block validity and payouts despite different cache histories.: F01 (P0, the external review): the regression's harness is the owner lane's (proving lane, node lane); not yet named in the map +- REV-F02-1 Release build cannot activate test bypass.: F02 (P0, the external review): the regression's harness is the owner lane's (proving lane, CI steward); not yet named in the map +- REV-F02-2 Missing oracle or pinned keys prevents service readiness after enforcement activation.: F02 (P0, the external review): the regression's harness is the owner lane's (proving lane, CI steward); not yet named in the map +- REV-F02-3 Missing proof bytes retry without incorrectly marking a valid block permanently invalid.: F02 (P0, the external review): the regression's harness is the owner lane's (proving lane, CI steward); not yet named in the map +- REV-F03-1 Clean build from one manifest, including the pool and workers, with no unpublished vendor tree.: F03 (P0, the external review): the regression's harness is the owner lane's (CI steward, hash lane (ProgramClass::V6 on freeze), pool lane); not yet named in the map +- REV-F03-2 Same job context produces identical accepted work in node, CPU reference, CUDA, Metal, OpenCL and pool.: F03 (P0, the external review): the regression's harness is the owner lane's (CI steward, hash lane (ProgramClass::V6 on freeze), pool lane); not yet named in the map +- REV-F03-3 Cross every scheduled transition with old/new client behavior documented and identical rule identities.: F03 (P0, the external review): the regression's harness is the owner lane's (CI steward, hash lane (ProgramClass::V6 on freeze), pool lane); not yet named in the map +- REV-F04-1 Native multi-node 40/40/20 partition, equivocation and dust-valid mining on both sides past the window.: F04 (P0, the external review): the regression's harness is the owner lane's (node lane, reference apps, site (explorer)); not yet named in the map +- REV-F04-2 Proof that the chosen recovery guarantee matches the public finality claim; two valid contradictory certificates are a hard failure for strong finality.: F04 (P0, the external review): the regression's harness is the owner lane's (node lane, reference apps, site (explorer)); not yet named in the map +- REV-F04-3 Pause-only resume with historical backfill, missing historical data and all old keys returning.: F04 (P0, the external review): the regression's harness is the owner lane's (node lane, reference apps, site (explorer)); not yet named in the map +- REV-F04-4 Wallet, receipt and oracle consumers distinguish any weaker recovery state.: F04 (P0, the external review): the regression's harness is the owner lane's (node lane, reference apps, site (explorer)); not yet named in the map +- REV-F05-1 Native reference-vs-incremental expression equivalence across all source registers and real instruction updates.: F05 (P1, the external review): the regression's harness is the owner lane's (hash lane, adversary lane, floor lane 3); not yet named in the map +- REV-F05-2 Full-kernel output equivalence, registers, spills, wall power and accepted throughput across target GPUs.: F05 (P1, the external review): the regression's harness is the owner lane's (hash lane, adversary lane, floor lane 3); not yet named in the map +- REV-F05-3 Adversary physical design includes prefix caching/recomputation cost; no assumed full 63-read cost on every load.: F05 (P1, the external review): the regression's harness is the owner lane's (hash lane, adversary lane, floor lane 3); not yet named in the map +- REV-F06-1 Acceptance/reference/emitter evaluate the same activated schedule.: F06 (P1, the external review): the regression's harness is the owner lane's (hash lane, research lane D); not yet named in the map +- REV-F06-2 Full live-dataset census on unseen seeds and the complete v6 pack.: F06 (P1, the external review): the regression's harness is the owner lane's (hash lane, research lane D); not yet named in the map +- REV-F06-3 A failed experimental rule does not silently exhaust generation or bypass the intended resource requirement.: F06 (P1, the external review): the regression's harness is the owner lane's (hash lane, research lane D); not yet named in the map +- REV-F07-1 Same final v6 configuration: mine -> evict -> prove -> aggregate -> submit -> rebuild -> resume; no leaked reservations.: F07 (P1, the external review): the regression's harness is the owner lane's (app lane, fleet lane); not yet named in the map +- REV-F07-2 OOM, process crash and stale work recover without losing wallet state or silently consuming power.: F07 (P1, the external review): the regression's harness is the owner lane's (app lane, fleet lane); not yet named in the map +- REV-F07-3 16 GB+ simultaneous mode only after measured peak plus next-epoch headroom; smaller-card modes labelled separately.: F07 (P1, the external review): the regression's harness is the owner lane's (app lane, fleet lane); not yet named in the map +- REV-F08-1 Report every eligible job outcome, including expired work; a bounded list cannot hide losses.: F08 (P1, the external review): the regression's harness is the owner lane's (proving lane, fleet lane, site (ops page)); not yet named in the map +- REV-F08-2 Consumer tiers complete and receive payment for declared jobs before claims about income.: F08 (P1, the external review): the regression's harness is the owner lane's (proving lane, fleet lane, site (ops page)); not yet named in the map +- REV-F08-3 Sustained real workload across class transitions, with restart/retry and no publisher intervention.: F08 (P1, the external review): the regression's harness is the owner lane's (proving lane, fleet lane, site (ops page)); not yet named in the map +- REV-F09-1 Generate all pass/fail cells directly from the declared inequalities and inputs.: F09 (P1, the external review): the regression's harness is the owner lane's (research lane, floor lane 3, coordinator); not yet named in the map +- REV-F09-2 Independent feasibility and cost evaluation of the strongest modeled SRAM/hybrid opponent.: F09 (P1, the external review): the regression's harness is the owner lane's (research lane, floor lane 3, coordinator); not yet named in the map +- REV-F09-3 GPU owners and entrants remain viable under the approved scenario envelope without assuming chip absence or death.: F09 (P1, the external review): the regression's harness is the owner lane's (research lane, floor lane 3, coordinator); not yet named in the map +- REV-F10-1 Compare exact found nonce/hash sets with full-read mode, including all-hit overflow and zero-hit cases.: F10 (P2, the external review): the regression's harness is the owner lane's (worker lane (new)); not yet named in the map +- REV-F10-2 Test stale jobs, high-32 rollover, tail batches and asynchronous buffer reuse.: F10 (P2, the external review): the regression's harness is the owner lane's (worker lane (new)); not yet named in the map +- REV-F10-3 Compare production throughput and wall energy, not only the isolated kernel timer.: F10 (P2, the external review): the regression's harness is the owner lane's (worker lane (new)); not yet named in the map +- REV-F11-1 Goal switch from an efficiency prior can explore higher core/power when policy allows.: F11 (P2, the external review): the regression's harness is the owner lane's (Ember lane (new)); not yet named in the map +- REV-F11-2 Driver, workload, dataset, compiler and device changes invalidate certification while retaining optional hints.: F11 (P2, the external review): the regression's harness is the owner lane's (Ember lane (new)); not yet named in the map +- REV-F11-3 Thermal/error/late-share events revert safely, including process or machine crash.: F11 (P2, the external review): the regression's harness is the owner lane's (Ember lane (new)); not yet named in the map +- REV-F12-1 Crash before/after broadcast, response timeout, restart before snapshot: no duplicate payment or silent debt loss.: F12 (P1, the external review): the regression's harness is the owner lane's (pool lane (new)); not yet named in the map +- REV-F12-2 Same signed transaction retried, fee replacement reconciled by intent, not a new payment.: F12 (P1, the external review): the regression's harness is the owner lane's (pool lane (new)); not yet named in the map +- REV-F12-3 Receipt reorg and finality pause leave correct pending obligations.: F12 (P1, the external review): the regression's harness is the owner lane's (pool lane (new)); not yet named in the map +- REV-F13-1 Repeated authorization rejected or atomically replaces and cleans prior state.: F13 (P1, the external review): the regression's harness is the owner lane's (pool lane (new)); not yet named in the map +- REV-F13-2 Oversized unterminated frame rejected within fixed memory/time budget.: F13 (P1, the external review): the regression's harness is the owner lane's (pool lane (new)); not yet named in the map +- REV-F13-3 Slow clients and invalid share floods cannot grow unbounded member, nonce or outgoing state.: F13 (P1, the external review): the regression's harness is the owner lane's (pool lane (new)); not yet named in the map +- REV-F14-1 Public build has no default arbitrary remote execution and a documented least-privilege boundary.: F14 (P1, the external review): the regression's harness is the owner lane's (app lane, relay lane); not yet named in the map +- REV-F14-2 Automatic updates off remains off for urgent manifests until explicit action.: F14 (P1, the external review): the regression's harness is the owner lane's (app lane, relay lane); not yet named in the map +- REV-F14-3 A compromised fleet/update signing key cannot silently acquire wallet access or activate a consensus change.: F14 (P1, the external review): the regression's harness is the owner lane's (app lane, relay lane); not yet named in the map ## Count -109 automated cases: 45 mapped to a cell, 67 NOT RUN with a reason. +153 automated cases: 45 mapped to a cell, 111 NOT RUN with a reason. diff --git a/docs/plans/igneum-2.0-test-registry.json b/docs/plans/igneum-2.0-test-registry.json index 5a18193c6..d3d105cfb 100644 --- a/docs/plans/igneum-2.0-test-registry.json +++ b/docs/plans/igneum-2.0-test-registry.json @@ -3646,6 +3646,12 @@ "at": "2026-10-08T18:38:45.233Z" } } + ], + "notes": [ + { + "at": "2026-10-08T19:06:34.012Z", + "text": "F04 (Review B), the founder's ruling 8 October 19:57 UK: the recovery lock is kept and is always labelled 'recovery', never 'final', on every surface (the checkpoint field, the explorer, receipts, the light client, the oracle, the site)" + } ] }, { @@ -4267,6 +4273,12 @@ "at": "2026-10-08T19:06:33.513Z" } } + ], + "notes": [ + { + "at": "2026-10-08T19:06:34.181Z", + "text": "F14 (Review B), the founder's ruling 8 October 19:57 UK: the public miner ships from 2.0.2 without remote jobs; our own fleet runs the lab build with its own signing root" + } ] }, { @@ -4600,6 +4612,12 @@ "at": "2026-10-08T18:28:32.408Z" } } + ], + "notes": [ + { + "at": "2026-10-08T19:06:34.094Z", + "text": "F14 (Review B), the founder's ruling 8 October 19:57 UK: the public miner ships from 2.0.2 without remote jobs; our own fleet runs the lab build with its own signing root" + } ] }, { @@ -5249,6 +5267,1164 @@ } } ] + }, + { + "code": "REV", + "title": "REV: the external review's required regressions", + "source": "docs/analysis/review-2026-10-08-b/findings.json and docs/analysis/review-2026-10-08-b/dispatch.md", + "gate": "Review findings closed", + "owner": "the owner lanes per the dispatch table", + "fixtures": [ + "F0", + "F5" + ], + "summary": "44 regressions from 14 findings; each reads NOT RUN until its owner lane records a run", + "tests": [ + { + "id": "REV-F01-1", + "title": "Valid proof A, warm cache, carried statement B: refuse exactly as a cold node does.", + "setup": "The regression F01 requires (review finding F01: Proof-verdict cache omits the statement being verified).", + "steps": [ + "Valid proof A, warm cache, carried statement B: refuse exactly as a cold node does." + ], + "accept": "Valid proof A, warm cache, carried statement B: refuse exactly as a cold node does.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F01" + ], + "gate": "Review findings closed", + "owner": "proving lane, node lane", + "manual_page": null, + "finding": "F01", + "finding_title": "Proof-verdict cache omits the statement being verified", + "finding_priority": "P0 - public/value-bearing release blocker", + "owner_lane": "proving lane, node lane", + "run_status": "NOT RUN" + }, + { + "id": "REV-F01-2", + "title": "Run valid/invalid contexts in both orders, concurrently and across cache eviction/restart.", + "setup": "The regression F01 requires (review finding F01: Proof-verdict cache omits the statement being verified).", + "steps": [ + "Run valid/invalid contexts in both orders, concurrently and across cache eviction/restart." + ], + "accept": "Run valid/invalid contexts in both orders, concurrently and across cache eviction/restart.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F01" + ], + "gate": "Review findings closed", + "owner": "proving lane, node lane", + "manual_page": null, + "finding": "F01", + "finding_title": "Proof-verdict cache omits the statement being verified", + "finding_priority": "P0 - public/value-bearing release blocker", + "owner_lane": "proving lane, node lane", + "run_status": "NOT RUN" + }, + { + "id": "REV-F01-3", + "title": "Change payout, network, kind, program ID and activation context; no accepted misbinding.", + "setup": "The regression F01 requires (review finding F01: Proof-verdict cache omits the statement being verified).", + "steps": [ + "Change payout, network, kind, program ID and activation context; no accepted misbinding." + ], + "accept": "Change payout, network, kind, program ID and activation context; no accepted misbinding.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F01" + ], + "gate": "Review findings closed", + "owner": "proving lane, node lane", + "manual_page": null, + "finding": "F01", + "finding_title": "Proof-verdict cache omits the statement being verified", + "finding_priority": "P0 - public/value-bearing release blocker", + "owner_lane": "proving lane, node lane", + "run_status": "NOT RUN" + }, + { + "id": "REV-F01-4", + "title": "A native two-node test must agree on block validity and payouts despite different cache histories.", + "setup": "The regression F01 requires (review finding F01: Proof-verdict cache omits the statement being verified).", + "steps": [ + "A native two-node test must agree on block validity and payouts despite different cache histories." + ], + "accept": "A native two-node test must agree on block validity and payouts despite different cache histories.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F01" + ], + "gate": "Review findings closed", + "owner": "proving lane, node lane", + "manual_page": null, + "finding": "F01", + "finding_title": "Proof-verdict cache omits the statement being verified", + "finding_priority": "P0 - public/value-bearing release blocker", + "owner_lane": "proving lane, node lane", + "run_status": "NOT RUN" + }, + { + "id": "REV-F02-1", + "title": "Release build cannot activate test bypass.", + "setup": "The regression F02 requires (review finding F02: Proof-rule infrastructure can fail open).", + "steps": [ + "Release build cannot activate test bypass." + ], + "accept": "Release build cannot activate test bypass.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F02" + ], + "gate": "Review findings closed", + "owner": "proving lane, CI steward", + "manual_page": null, + "finding": "F02", + "finding_title": "Proof-rule infrastructure can fail open", + "finding_priority": "P0 - release configuration blocker", + "owner_lane": "proving lane, CI steward", + "run_status": "NOT RUN" + }, + { + "id": "REV-F02-2", + "title": "Missing oracle or pinned keys prevents service readiness after enforcement activation.", + "setup": "The regression F02 requires (review finding F02: Proof-rule infrastructure can fail open).", + "steps": [ + "Missing oracle or pinned keys prevents service readiness after enforcement activation." + ], + "accept": "Missing oracle or pinned keys prevents service readiness after enforcement activation.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F02" + ], + "gate": "Review findings closed", + "owner": "proving lane, CI steward", + "manual_page": null, + "finding": "F02", + "finding_title": "Proof-rule infrastructure can fail open", + "finding_priority": "P0 - release configuration blocker", + "owner_lane": "proving lane, CI steward", + "run_status": "NOT RUN" + }, + { + "id": "REV-F02-3", + "title": "Missing proof bytes retry without incorrectly marking a valid block permanently invalid.", + "setup": "The regression F02 requires (review finding F02: Proof-rule infrastructure can fail open).", + "steps": [ + "Missing proof bytes retry without incorrectly marking a valid block permanently invalid." + ], + "accept": "Missing proof bytes retry without incorrectly marking a valid block permanently invalid.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F02" + ], + "gate": "Review findings closed", + "owner": "proving lane, CI steward", + "manual_page": null, + "finding": "F02", + "finding_title": "Proof-rule infrastructure can fail open", + "finding_priority": "P0 - release configuration blocker", + "owner_lane": "proving lane, CI steward", + "run_status": "NOT RUN" + }, + { + "id": "REV-F03-1", + "title": "Clean build from one manifest, including the pool and workers, with no unpublished vendor tree.", + "setup": "The regression F03 requires (review finding F03: The bundle contains a v6 candidate, not a demonstrated integrated v6 release).", + "steps": [ + "Clean build from one manifest, including the pool and workers, with no unpublished vendor tree." + ], + "accept": "Clean build from one manifest, including the pool and workers, with no unpublished vendor tree.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F03" + ], + "gate": "Review findings closed", + "owner": "CI steward, hash lane (ProgramClass::V6 on freeze), pool lane", + "manual_page": null, + "finding": "F03", + "finding_title": "The bundle contains a v6 candidate, not a demonstrated integrated v6 release", + "finding_priority": "P0 - freeze/integration blocker", + "owner_lane": "CI steward, hash lane (ProgramClass::V6 on freeze), pool lane", + "run_status": "NOT RUN" + }, + { + "id": "REV-F03-2", + "title": "Same job context produces identical accepted work in node, CPU reference, CUDA, Metal, OpenCL and pool.", + "setup": "The regression F03 requires (review finding F03: The bundle contains a v6 candidate, not a demonstrated integrated v6 release).", + "steps": [ + "Same job context produces identical accepted work in node, CPU reference, CUDA, Metal, OpenCL and pool." + ], + "accept": "Same job context produces identical accepted work in node, CPU reference, CUDA, Metal, OpenCL and pool.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F03" + ], + "gate": "Review findings closed", + "owner": "CI steward, hash lane (ProgramClass::V6 on freeze), pool lane", + "manual_page": null, + "finding": "F03", + "finding_title": "The bundle contains a v6 candidate, not a demonstrated integrated v6 release", + "finding_priority": "P0 - freeze/integration blocker", + "owner_lane": "CI steward, hash lane (ProgramClass::V6 on freeze), pool lane", + "run_status": "NOT RUN" + }, + { + "id": "REV-F03-3", + "title": "Cross every scheduled transition with old/new client behavior documented and identical rule identities.", + "setup": "The regression F03 requires (review finding F03: The bundle contains a v6 candidate, not a demonstrated integrated v6 release).", + "steps": [ + "Cross every scheduled transition with old/new client behavior documented and identical rule identities." + ], + "accept": "Cross every scheduled transition with old/new client behavior documented and identical rule identities.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F03" + ], + "gate": "Review findings closed", + "owner": "CI steward, hash lane (ProgramClass::V6 on freeze), pool lane", + "manual_page": null, + "finding": "F03", + "finding_title": "The bundle contains a v6 candidate, not a demonstrated integrated v6 release", + "finding_priority": "P0 - freeze/integration blocker", + "owner_lane": "CI steward, hash lane (ProgramClass::V6 on freeze), pool lane", + "run_status": "NOT RUN" + }, + { + "id": "REV-F04-1", + "title": "Native multi-node 40/40/20 partition, equivocation and dust-valid mining on both sides past the window.", + "setup": "The regression F04 requires (review finding F04: Finality v4 recovery deliberately has a weaker safety boundary).", + "steps": [ + "Native multi-node 40/40/20 partition, equivocation and dust-valid mining on both sides past the window." + ], + "accept": "Native multi-node 40/40/20 partition, equivocation and dust-valid mining on both sides past the window.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F04" + ], + "gate": "Review findings closed", + "owner": "node lane, reference apps, site (explorer)", + "manual_page": null, + "finding": "F04", + "finding_title": "Finality v4 recovery deliberately has a weaker safety boundary", + "finding_priority": "P0 - finality guarantee decision", + "owner_lane": "node lane, reference apps, site (explorer)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F04-2", + "title": "Proof that the chosen recovery guarantee matches the public finality claim; two valid contradictory certificates are a hard failure for strong finality.", + "setup": "The regression F04 requires (review finding F04: Finality v4 recovery deliberately has a weaker safety boundary).", + "steps": [ + "Proof that the chosen recovery guarantee matches the public finality claim; two valid contradictory certificates are a hard failure for strong finality." + ], + "accept": "Proof that the chosen recovery guarantee matches the public finality claim; two valid contradictory certificates are a hard failure for strong finality.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F04" + ], + "gate": "Review findings closed", + "owner": "node lane, reference apps, site (explorer)", + "manual_page": null, + "finding": "F04", + "finding_title": "Finality v4 recovery deliberately has a weaker safety boundary", + "finding_priority": "P0 - finality guarantee decision", + "owner_lane": "node lane, reference apps, site (explorer)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F04-3", + "title": "Pause-only resume with historical backfill, missing historical data and all old keys returning.", + "setup": "The regression F04 requires (review finding F04: Finality v4 recovery deliberately has a weaker safety boundary).", + "steps": [ + "Pause-only resume with historical backfill, missing historical data and all old keys returning." + ], + "accept": "Pause-only resume with historical backfill, missing historical data and all old keys returning.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F04" + ], + "gate": "Review findings closed", + "owner": "node lane, reference apps, site (explorer)", + "manual_page": null, + "finding": "F04", + "finding_title": "Finality v4 recovery deliberately has a weaker safety boundary", + "finding_priority": "P0 - finality guarantee decision", + "owner_lane": "node lane, reference apps, site (explorer)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F04-4", + "title": "Wallet, receipt and oracle consumers distinguish any weaker recovery state.", + "setup": "The regression F04 requires (review finding F04: Finality v4 recovery deliberately has a weaker safety boundary).", + "steps": [ + "Wallet, receipt and oracle consumers distinguish any weaker recovery state." + ], + "accept": "Wallet, receipt and oracle consumers distinguish any weaker recovery state.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P0", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F04" + ], + "gate": "Review findings closed", + "owner": "node lane, reference apps, site (explorer)", + "manual_page": null, + "finding": "F04", + "finding_title": "Finality v4 recovery deliberately has a weaker safety boundary", + "finding_priority": "P0 - finality guarantee decision", + "owner_lane": "node lane, reference apps, site (explorer)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F05-1", + "title": "Native reference-vs-incremental expression equivalence across all source registers and real instruction updates.", + "setup": "The regression F05 requires (review finding F05: reg64 address coupling has an exact incremental alternative).", + "steps": [ + "Native reference-vs-incremental expression equivalence across all source registers and real instruction updates." + ], + "accept": "Native reference-vs-incremental expression equivalence across all source registers and real instruction updates.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F05" + ], + "gate": "Review findings closed", + "owner": "hash lane, adversary lane, floor lane 3", + "manual_page": null, + "finding": "F05", + "finding_title": "reg64 address coupling has an exact incremental alternative", + "finding_priority": "P1 - adversarial hardware evaluation", + "owner_lane": "hash lane, adversary lane, floor lane 3", + "run_status": "NOT RUN" + }, + { + "id": "REV-F05-2", + "title": "Full-kernel output equivalence, registers, spills, wall power and accepted throughput across target GPUs.", + "setup": "The regression F05 requires (review finding F05: reg64 address coupling has an exact incremental alternative).", + "steps": [ + "Full-kernel output equivalence, registers, spills, wall power and accepted throughput across target GPUs." + ], + "accept": "Full-kernel output equivalence, registers, spills, wall power and accepted throughput across target GPUs.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F05" + ], + "gate": "Review findings closed", + "owner": "hash lane, adversary lane, floor lane 3", + "manual_page": null, + "finding": "F05", + "finding_title": "reg64 address coupling has an exact incremental alternative", + "finding_priority": "P1 - adversarial hardware evaluation", + "owner_lane": "hash lane, adversary lane, floor lane 3", + "run_status": "NOT RUN" + }, + { + "id": "REV-F05-3", + "title": "Adversary physical design includes prefix caching/recomputation cost; no assumed full 63-read cost on every load.", + "setup": "The regression F05 requires (review finding F05: reg64 address coupling has an exact incremental alternative).", + "steps": [ + "Adversary physical design includes prefix caching/recomputation cost; no assumed full 63-read cost on every load." + ], + "accept": "Adversary physical design includes prefix caching/recomputation cost; no assumed full 63-read cost on every load.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F05" + ], + "gate": "Review findings closed", + "owner": "hash lane, adversary lane, floor lane 3", + "manual_page": null, + "finding": "F05", + "finding_title": "reg64 address coupling has an exact incremental alternative", + "finding_priority": "P1 - adversarial hardware evaluation", + "owner_lane": "hash lane, adversary lane, floor lane 3", + "run_status": "NOT RUN" + }, + { + "id": "REV-F06-1", + "title": "Acceptance/reference/emitter evaluate the same activated schedule.", + "setup": "The regression F06 requires (review finding F06: The v6 acceptance and census gates are not complete for the final execution).", + "steps": [ + "Acceptance/reference/emitter evaluate the same activated schedule." + ], + "accept": "Acceptance/reference/emitter evaluate the same activated schedule.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F06" + ], + "gate": "Review findings closed", + "owner": "hash lane, research lane D", + "manual_page": null, + "finding": "F06", + "finding_title": "The v6 acceptance and census gates are not complete for the final execution", + "finding_priority": "P1 - freeze blocker", + "owner_lane": "hash lane, research lane D", + "run_status": "NOT RUN" + }, + { + "id": "REV-F06-2", + "title": "Full live-dataset census on unseen seeds and the complete v6 pack.", + "setup": "The regression F06 requires (review finding F06: The v6 acceptance and census gates are not complete for the final execution).", + "steps": [ + "Full live-dataset census on unseen seeds and the complete v6 pack." + ], + "accept": "Full live-dataset census on unseen seeds and the complete v6 pack.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F06" + ], + "gate": "Review findings closed", + "owner": "hash lane, research lane D", + "manual_page": null, + "finding": "F06", + "finding_title": "The v6 acceptance and census gates are not complete for the final execution", + "finding_priority": "P1 - freeze blocker", + "owner_lane": "hash lane, research lane D", + "run_status": "NOT RUN" + }, + { + "id": "REV-F06-3", + "title": "A failed experimental rule does not silently exhaust generation or bypass the intended resource requirement.", + "setup": "The regression F06 requires (review finding F06: The v6 acceptance and census gates are not complete for the final execution).", + "steps": [ + "A failed experimental rule does not silently exhaust generation or bypass the intended resource requirement." + ], + "accept": "A failed experimental rule does not silently exhaust generation or bypass the intended resource requirement.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F06" + ], + "gate": "Review findings closed", + "owner": "hash lane, research lane D", + "manual_page": null, + "finding": "F06", + "finding_title": "The v6 acceptance and census gates are not complete for the final execution", + "finding_priority": "P1 - freeze blocker", + "owner_lane": "hash lane, research lane D", + "run_status": "NOT RUN" + }, + { + "id": "REV-F07-1", + "title": "Same final v6 configuration: mine -> evict -> prove -> aggregate -> submit -> rebuild -> resume; no leaked reservations.", + "setup": "The regression F07 requires (review finding F07: VRAM admission and proving deadlines need one operator-level scheduler).", + "steps": [ + "Same final v6 configuration: mine -> evict -> prove -> aggregate -> submit -> rebuild -> resume; no leaked reservations." + ], + "accept": "Same final v6 configuration: mine -> evict -> prove -> aggregate -> submit -> rebuild -> resume; no leaked reservations.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F07" + ], + "gate": "Review findings closed", + "owner": "app lane, fleet lane", + "manual_page": null, + "finding": "F07", + "finding_title": "VRAM admission and proving deadlines need one operator-level scheduler", + "finding_priority": "P1 - miner economics and reliability", + "owner_lane": "app lane, fleet lane", + "run_status": "NOT RUN" + }, + { + "id": "REV-F07-2", + "title": "OOM, process crash and stale work recover without losing wallet state or silently consuming power.", + "setup": "The regression F07 requires (review finding F07: VRAM admission and proving deadlines need one operator-level scheduler).", + "steps": [ + "OOM, process crash and stale work recover without losing wallet state or silently consuming power." + ], + "accept": "OOM, process crash and stale work recover without losing wallet state or silently consuming power.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F07" + ], + "gate": "Review findings closed", + "owner": "app lane, fleet lane", + "manual_page": null, + "finding": "F07", + "finding_title": "VRAM admission and proving deadlines need one operator-level scheduler", + "finding_priority": "P1 - miner economics and reliability", + "owner_lane": "app lane, fleet lane", + "run_status": "NOT RUN" + }, + { + "id": "REV-F07-3", + "title": "16 GB+ simultaneous mode only after measured peak plus next-epoch headroom; smaller-card modes labelled separately.", + "setup": "The regression F07 requires (review finding F07: VRAM admission and proving deadlines need one operator-level scheduler).", + "steps": [ + "16 GB+ simultaneous mode only after measured peak plus next-epoch headroom; smaller-card modes labelled separately." + ], + "accept": "16 GB+ simultaneous mode only after measured peak plus next-epoch headroom; smaller-card modes labelled separately.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F07" + ], + "gate": "Review findings closed", + "owner": "app lane, fleet lane", + "manual_page": null, + "finding": "F07", + "finding_title": "VRAM admission and proving deadlines need one operator-level scheduler", + "finding_priority": "P1 - miner economics and reliability", + "owner_lane": "app lane, fleet lane", + "run_status": "NOT RUN" + }, + { + "id": "REV-F08-1", + "title": "Report every eligible job outcome, including expired work; a bounded list cannot hide losses.", + "setup": "The regression F08 requires (review finding F08: The proving pipeline reports waste and deadline censoring, not sustained capacity).", + "steps": [ + "Report every eligible job outcome, including expired work; a bounded list cannot hide losses." + ], + "accept": "Report every eligible job outcome, including expired work; a bounded list cannot hide losses.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F08" + ], + "gate": "Review findings closed", + "owner": "proving lane, fleet lane, site (ops page)", + "manual_page": null, + "finding": "F08", + "finding_title": "The proving pipeline reports waste and deadline censoring, not sustained capacity", + "finding_priority": "P1 - proving product gate", + "owner_lane": "proving lane, fleet lane, site (ops page)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F08-2", + "title": "Consumer tiers complete and receive payment for declared jobs before claims about income.", + "setup": "The regression F08 requires (review finding F08: The proving pipeline reports waste and deadline censoring, not sustained capacity).", + "steps": [ + "Consumer tiers complete and receive payment for declared jobs before claims about income." + ], + "accept": "Consumer tiers complete and receive payment for declared jobs before claims about income.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F08" + ], + "gate": "Review findings closed", + "owner": "proving lane, fleet lane, site (ops page)", + "manual_page": null, + "finding": "F08", + "finding_title": "The proving pipeline reports waste and deadline censoring, not sustained capacity", + "finding_priority": "P1 - proving product gate", + "owner_lane": "proving lane, fleet lane, site (ops page)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F08-3", + "title": "Sustained real workload across class transitions, with restart/retry and no publisher intervention.", + "setup": "The regression F08 requires (review finding F08: The proving pipeline reports waste and deadline censoring, not sustained capacity).", + "steps": [ + "Sustained real workload across class transitions, with restart/retry and no publisher intervention." + ], + "accept": "Sustained real workload across class transitions, with restart/retry and no publisher intervention.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F08" + ], + "gate": "Review findings closed", + "owner": "proving lane, fleet lane, site (ops page)", + "manual_page": null, + "finding": "F08", + "finding_title": "The proving pipeline reports waste and deadline censoring, not sustained capacity", + "finding_priority": "P1 - proving product gate", + "owner_lane": "proving lane, fleet lane, site (ops page)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F09-1", + "title": "Generate all pass/fail cells directly from the declared inequalities and inputs.", + "setup": "The regression F09 requires (review finding F09: The economic model explicitly retains a failed specialist case).", + "steps": [ + "Generate all pass/fail cells directly from the declared inequalities and inputs." + ], + "accept": "Generate all pass/fail cells directly from the declared inequalities and inputs.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F09" + ], + "gate": "Review findings closed", + "owner": "research lane, floor lane 3, coordinator", + "manual_page": null, + "finding": "F09", + "finding_title": "The economic model explicitly retains a failed specialist case", + "finding_priority": "P1 - founding claim not yet earned", + "owner_lane": "research lane, floor lane 3, coordinator", + "run_status": "NOT RUN" + }, + { + "id": "REV-F09-2", + "title": "Independent feasibility and cost evaluation of the strongest modeled SRAM/hybrid opponent.", + "setup": "The regression F09 requires (review finding F09: The economic model explicitly retains a failed specialist case).", + "steps": [ + "Independent feasibility and cost evaluation of the strongest modeled SRAM/hybrid opponent." + ], + "accept": "Independent feasibility and cost evaluation of the strongest modeled SRAM/hybrid opponent.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F09" + ], + "gate": "Review findings closed", + "owner": "research lane, floor lane 3, coordinator", + "manual_page": null, + "finding": "F09", + "finding_title": "The economic model explicitly retains a failed specialist case", + "finding_priority": "P1 - founding claim not yet earned", + "owner_lane": "research lane, floor lane 3, coordinator", + "run_status": "NOT RUN" + }, + { + "id": "REV-F09-3", + "title": "GPU owners and entrants remain viable under the approved scenario envelope without assuming chip absence or death.", + "setup": "The regression F09 requires (review finding F09: The economic model explicitly retains a failed specialist case).", + "steps": [ + "GPU owners and entrants remain viable under the approved scenario envelope without assuming chip absence or death." + ], + "accept": "GPU owners and entrants remain viable under the approved scenario envelope without assuming chip absence or death.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F09" + ], + "gate": "Review findings closed", + "owner": "research lane, floor lane 3, coordinator", + "manual_page": null, + "finding": "F09", + "finding_title": "The economic model explicitly retains a failed specialist case", + "finding_priority": "P1 - founding claim not yet earned", + "owner_lane": "research lane, floor lane 3, coordinator", + "run_status": "NOT RUN" + }, + { + "id": "REV-F10-1", + "title": "Compare exact found nonce/hash sets with full-read mode, including all-hit overflow and zero-hit cases.", + "setup": "The regression F10 requires (review finding F10: CUDA production readback has an existing OpenCL optimization to borrow).", + "steps": [ + "Compare exact found nonce/hash sets with full-read mode, including all-hit overflow and zero-hit cases." + ], + "accept": "Compare exact found nonce/hash sets with full-read mode, including all-hit overflow and zero-hit cases.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P2", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F10" + ], + "gate": "Review findings closed", + "owner": "worker lane (new)", + "manual_page": null, + "finding": "F10", + "finding_title": "CUDA production readback has an existing OpenCL optimization to borrow", + "finding_priority": "P2 - byte-preserving performance experiment", + "owner_lane": "worker lane (new)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F10-2", + "title": "Test stale jobs, high-32 rollover, tail batches and asynchronous buffer reuse.", + "setup": "The regression F10 requires (review finding F10: CUDA production readback has an existing OpenCL optimization to borrow).", + "steps": [ + "Test stale jobs, high-32 rollover, tail batches and asynchronous buffer reuse." + ], + "accept": "Test stale jobs, high-32 rollover, tail batches and asynchronous buffer reuse.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P2", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F10" + ], + "gate": "Review findings closed", + "owner": "worker lane (new)", + "manual_page": null, + "finding": "F10", + "finding_title": "CUDA production readback has an existing OpenCL optimization to borrow", + "finding_priority": "P2 - byte-preserving performance experiment", + "owner_lane": "worker lane (new)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F10-3", + "title": "Compare production throughput and wall energy, not only the isolated kernel timer.", + "setup": "The regression F10 requires (review finding F10: CUDA production readback has an existing OpenCL optimization to borrow).", + "steps": [ + "Compare production throughput and wall energy, not only the isolated kernel timer." + ], + "accept": "Compare production throughput and wall energy, not only the isolated kernel timer.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P2", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F10" + ], + "gate": "Review findings closed", + "owner": "worker lane (new)", + "manual_page": null, + "finding": "F10", + "finding_title": "CUDA production readback has an existing OpenCL optimization to borrow", + "finding_priority": "P2 - byte-preserving performance experiment", + "owner_lane": "worker lane (new)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F11-1", + "title": "Goal switch from an efficiency prior can explore higher core/power when policy allows.", + "setup": "The regression F11 requires (review finding F11: Ember needs workload-aware identity and objective-aware search).", + "steps": [ + "Goal switch from an efficiency prior can explore higher core/power when policy allows." + ], + "accept": "Goal switch from an efficiency prior can explore higher core/power when policy allows.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P2", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F11" + ], + "gate": "Review findings closed", + "owner": "Ember lane (new)", + "manual_page": null, + "finding": "F11", + "finding_title": "Ember needs workload-aware identity and objective-aware search", + "finding_priority": "P2 - product performance", + "owner_lane": "Ember lane (new)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F11-2", + "title": "Driver, workload, dataset, compiler and device changes invalidate certification while retaining optional hints.", + "setup": "The regression F11 requires (review finding F11: Ember needs workload-aware identity and objective-aware search).", + "steps": [ + "Driver, workload, dataset, compiler and device changes invalidate certification while retaining optional hints." + ], + "accept": "Driver, workload, dataset, compiler and device changes invalidate certification while retaining optional hints.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P2", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F11" + ], + "gate": "Review findings closed", + "owner": "Ember lane (new)", + "manual_page": null, + "finding": "F11", + "finding_title": "Ember needs workload-aware identity and objective-aware search", + "finding_priority": "P2 - product performance", + "owner_lane": "Ember lane (new)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F11-3", + "title": "Thermal/error/late-share events revert safely, including process or machine crash.", + "setup": "The regression F11 requires (review finding F11: Ember needs workload-aware identity and objective-aware search).", + "steps": [ + "Thermal/error/late-share events revert safely, including process or machine crash." + ], + "accept": "Thermal/error/late-share events revert safely, including process or machine crash.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P2", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F11" + ], + "gate": "Review findings closed", + "owner": "Ember lane (new)", + "manual_page": null, + "finding": "F11", + "finding_title": "Ember needs workload-aware identity and objective-aware search", + "finding_priority": "P2 - product performance", + "owner_lane": "Ember lane (new)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F12-1", + "title": "Crash before/after broadcast, response timeout, restart before snapshot: no duplicate payment or silent debt loss.", + "setup": "The regression F12 requires (review finding F12: Pool payouts have a broadcast-before-durable-intent window).", + "steps": [ + "Crash before/after broadcast, response timeout, restart before snapshot: no duplicate payment or silent debt loss." + ], + "accept": "Crash before/after broadcast, response timeout, restart before snapshot: no duplicate payment or silent debt loss.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F12" + ], + "gate": "Review findings closed", + "owner": "pool lane (new)", + "manual_page": null, + "finding": "F12", + "finding_title": "Pool payouts have a broadcast-before-durable-intent window", + "finding_priority": "P1 - payment integrity", + "owner_lane": "pool lane (new)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F12-2", + "title": "Same signed transaction retried, fee replacement reconciled by intent, not a new payment.", + "setup": "The regression F12 requires (review finding F12: Pool payouts have a broadcast-before-durable-intent window).", + "steps": [ + "Same signed transaction retried, fee replacement reconciled by intent, not a new payment." + ], + "accept": "Same signed transaction retried, fee replacement reconciled by intent, not a new payment.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F12" + ], + "gate": "Review findings closed", + "owner": "pool lane (new)", + "manual_page": null, + "finding": "F12", + "finding_title": "Pool payouts have a broadcast-before-durable-intent window", + "finding_priority": "P1 - payment integrity", + "owner_lane": "pool lane (new)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F12-3", + "title": "Receipt reorg and finality pause leave correct pending obligations.", + "setup": "The regression F12 requires (review finding F12: Pool payouts have a broadcast-before-durable-intent window).", + "steps": [ + "Receipt reorg and finality pause leave correct pending obligations." + ], + "accept": "Receipt reorg and finality pause leave correct pending obligations.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F12" + ], + "gate": "Review findings closed", + "owner": "pool lane (new)", + "manual_page": null, + "finding": "F12", + "finding_title": "Pool payouts have a broadcast-before-durable-intent window", + "finding_priority": "P1 - payment integrity", + "owner_lane": "pool lane (new)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F13-1", + "title": "Repeated authorization rejected or atomically replaces and cleans prior state.", + "setup": "The regression F13 requires (review finding F13: Pool admission and membership need bounded resources).", + "steps": [ + "Repeated authorization rejected or atomically replaces and cleans prior state." + ], + "accept": "Repeated authorization rejected or atomically replaces and cleans prior state.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F13" + ], + "gate": "Review findings closed", + "owner": "pool lane (new)", + "manual_page": null, + "finding": "F13", + "finding_title": "Pool admission and membership need bounded resources", + "finding_priority": "P1 - service resilience", + "owner_lane": "pool lane (new)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F13-2", + "title": "Oversized unterminated frame rejected within fixed memory/time budget.", + "setup": "The regression F13 requires (review finding F13: Pool admission and membership need bounded resources).", + "steps": [ + "Oversized unterminated frame rejected within fixed memory/time budget." + ], + "accept": "Oversized unterminated frame rejected within fixed memory/time budget.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F13" + ], + "gate": "Review findings closed", + "owner": "pool lane (new)", + "manual_page": null, + "finding": "F13", + "finding_title": "Pool admission and membership need bounded resources", + "finding_priority": "P1 - service resilience", + "owner_lane": "pool lane (new)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F13-3", + "title": "Slow clients and invalid share floods cannot grow unbounded member, nonce or outgoing state.", + "setup": "The regression F13 requires (review finding F13: Pool admission and membership need bounded resources).", + "steps": [ + "Slow clients and invalid share floods cannot grow unbounded member, nonce or outgoing state." + ], + "accept": "Slow clients and invalid share floods cannot grow unbounded member, nonce or outgoing state.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F13" + ], + "gate": "Review findings closed", + "owner": "pool lane (new)", + "manual_page": null, + "finding": "F13", + "finding_title": "Pool admission and membership need bounded resources", + "finding_priority": "P1 - service resilience", + "owner_lane": "pool lane (new)", + "run_status": "NOT RUN" + }, + { + "id": "REV-F14-1", + "title": "Public build has no default arbitrary remote execution and a documented least-privilege boundary.", + "setup": "The regression F14 requires (review finding F14: Developer fleet control must not silently become the public client trust model).", + "steps": [ + "Public build has no default arbitrary remote execution and a documented least-privilege boundary." + ], + "accept": "Public build has no default arbitrary remote execution and a documented least-privilege boundary.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F14" + ], + "gate": "Review findings closed", + "owner": "app lane, relay lane", + "manual_page": null, + "finding": "F14", + "finding_title": "Developer fleet control must not silently become the public client trust model", + "finding_priority": "P1 - public client/independence gate", + "owner_lane": "app lane, relay lane", + "run_status": "NOT RUN" + }, + { + "id": "REV-F14-2", + "title": "Automatic updates off remains off for urgent manifests until explicit action.", + "setup": "The regression F14 requires (review finding F14: Developer fleet control must not silently become the public client trust model).", + "steps": [ + "Automatic updates off remains off for urgent manifests until explicit action." + ], + "accept": "Automatic updates off remains off for urgent manifests until explicit action.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F14" + ], + "gate": "Review findings closed", + "owner": "app lane, relay lane", + "manual_page": null, + "finding": "F14", + "finding_title": "Developer fleet control must not silently become the public client trust model", + "finding_priority": "P1 - public client/independence gate", + "owner_lane": "app lane, relay lane", + "run_status": "NOT RUN" + }, + { + "id": "REV-F14-3", + "title": "A compromised fleet/update signing key cannot silently acquire wallet access or activate a consensus change.", + "setup": "The regression F14 requires (review finding F14: Developer fleet control must not silently become the public client trust model).", + "steps": [ + "A compromised fleet/update signing key cannot silently acquire wallet access or activate a consensus change." + ], + "accept": "A compromised fleet/update signing key cannot silently acquire wallet access or activate a consensus change.", + "evidence": "The run record of the regression as its owner lane records it through tools/ci/test-record.mjs.", + "priority": "P1", + "profile": "P00", + "cadence": "Every release candidate", + "method": "Automated + independent review", + "status": "NOT RUN", + "source": [ + "F14" + ], + "gate": "Review findings closed", + "owner": "app lane, relay lane", + "manual_page": null, + "finding": "F14", + "finding_title": "Developer fleet control must not silently become the public client trust model", + "finding_priority": "P1 - public client/independence gate", + "owner_lane": "app lane, relay lane", + "run_status": "NOT RUN" + } + ] } ], "profiles": { diff --git a/tools/ci/checks.txt b/tools/ci/checks.txt index b40cbf3e3..3605b81bf 100644 --- a/tools/ci/checks.txt +++ b/tools/ci/checks.txt @@ -77,6 +77,7 @@ P01 part A, the million-vector driver: a clean run is PASS, one wrong hash or on the registry's evidence rules: a PASS names evidence that exists, a touched evidence file moves with its row, stale evidence never reads PASS, a run_status needs the approval (self-test) F02 (Review B): the proof-rule test bypass cannot reach a release build: an env read with no cfg guard or under a default feature is red; a release binary carrying the bypass string is red (self-test) the test map merges structurally at a landing: master's cells plus the branch's, minus what the branch removed and master left (self-test) +the REV suite is generated from Review B's findings and dispatch and matches them (self-test, then the tree) the public ledger (docs/ledger-public.md) is what docs/fud-ledger.md generates: one row per item, no commit ids, times or team names (self-test first) the ledger page reads both entry heading forms (M1 and AP-F8-1) so no in-house pass row is dropped from /ledger (known-failed first) every workflow job carries timeout-minutes (site 15, changes 10, pow 60, sims 45; the hung-job class of 7 October 2026) diff --git a/tools/ci/pre-push.sh b/tools/ci/pre-push.sh index f749c559e..1b0c3fa51 100755 --- a/tools/ci/pre-push.sh +++ b/tools/ci/pre-push.sh @@ -176,6 +176,7 @@ tree_checks() { run "the registry's evidence rules: a PASS names evidence that exists, a touched evidence file moves with its row, stale evidence never reads PASS, a run_status needs the approval (self-test)" bash tools/ci/registry-evidence-check.sh --self-test run "F02 (Review B): the proof-rule test bypass cannot reach a release build: an env read with no cfg guard or under a default feature is red; a release binary carrying the bypass string is red (self-test)" bash tools/ci/proof-rule-bypass-check.sh --self-test run "the test map merges structurally at a landing: master's cells plus the branch's, minus what the branch removed and master left (self-test)" python3 tools/ci/test-map-merge.py --self-test + run "the REV suite is generated from Review B's findings and dispatch and matches them (self-test, then the tree)" bash tools/ci/review-suite-check.sh run "the public ledger (docs/ledger-public.md) is what docs/fud-ledger.md generates: one row per item, no commit ids, times or team names (self-test first)" bash -c 'node tools/ledger/export-public.mjs --self-test && node tools/ledger/export-public.mjs --check' run "the ledger page reads both entry heading forms (M1 and AP-F8-1) so no in-house pass row is dropped from /ledger (known-failed first)" node tools/ledger-page.mjs --self-test run "every workflow job carries timeout-minutes (site 15, changes 10, pow 60, sims 45; the hung-job class of 7 October 2026)" bash tools/ci/workflow-timeouts-check.sh --self-test diff --git a/tools/ci/review-suite-check.sh b/tools/ci/review-suite-check.sh new file mode 100755 index 000000000..4830972a0 --- /dev/null +++ b/tools/ci/review-suite-check.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +# The REV suite of the registry matches Review B's findings and dispatch (tools/ci/review-suite.mjs --check), self-test first. +set -euo pipefail +node tools/ci/review-suite.mjs --self-test >/dev/null +node tools/ci/review-suite.mjs --findings docs/analysis/review-2026-10-08-b/findings.json --dispatch docs/analysis/review-2026-10-08-b/dispatch.md --prefix REV --check diff --git a/tools/ci/review-suite.mjs b/tools/ci/review-suite.mjs index 27128c6f8..3f19fb58b 100644 --- a/tools/ci/review-suite.mjs +++ b/tools/ci/review-suite.mjs @@ -47,7 +47,9 @@ if (args.includes('--self-test')) { const reg = { suites: [{ code: 'GOV', tests: [] }, { code: 'REV', tests: [{ id: 'REV-F01-1', run_status: 'RUNNING', run_id: 'r9' }] }] }; const m = merge(JSON.parse(JSON.stringify(reg)), s); const rev = m.suites.find((x) => x.code === 'REV'); if (!(m.suites.length === 2 && rev.tests.length === 3 && rev.tests[0].run_status === 'RUNNING' && rev.tests[0].run_id === 'r9' && rev.tests[1].run_status === 'NOT RUN')) { console.log('self-test failed: a regenerated suite did not keep the existing case\'s live fields or dropped another suite'); fails = 1; } - if (!fails) console.log('self-test passed: one case per required regression with the id --, the line verbatim as title and accept, the owner from the dispatch table, finding and priority carried, NOT RUN; regenerating keeps live fields and the other suites'); + const map = { cells: { c1: { cases: ['REV-F01-1'] } }, not_run: { 'REV-F02-1': 'old' } }; const n = mapReasons(map, s); + if (!(n === 2 && !('REV-F01-1' in map.not_run) && /lane z/.test(map.not_run['REV-F02-1']) && /lane x/.test(map.not_run['REV-F01-2']))) { console.log(`self-test failed: the map's NOT RUN reasons: ${JSON.stringify(map.not_run)} n=${n}`); fails = 1; } + if (!fails) console.log('self-test passed: one case per required regression with the id --, the line verbatim as title and accept, the owner from the dispatch table, finding and priority carried, NOT RUN; regenerating keeps live fields and the other suites; every unmapped case gets a NOT RUN reason naming its owner lane in the map, a mapped one loses it'); process.exit(fails); } const findings = JSON.parse(fs.readFileSync(arg('--findings'), 'utf8')); const dispatch = fs.readFileSync(arg('--dispatch'), 'utf8'); const prefix = arg('--prefix') || 'REV'; @@ -58,5 +60,15 @@ if (args.includes('--check')) { if (JSON.stringify(cur) !== JSON.stringify(want)) { console.error(`review-suite: the registry's ${prefix} suite differs from the generator's output; run --write and commit`); process.exit(1); } console.log(`review-suite: the ${prefix} suite matches its findings (${s.tests.length} cases)`); process.exit(0); } -if (args.includes('--write')) { fs.writeFileSync(REG, JSON.stringify(merge(reg, s), null, 2) + '\n'); console.log(`review-suite: ${prefix} written, ${s.tests.length} cases from ${(findings.findings || []).length} findings`); process.exit(0); } +const MAP = process.env.TEST_MAP || path.join(ROOT, 'tools/ci/test-map.json'); +function mapReasons(map, s) { // every generated case with no cell reads NOT RUN with the owner lane named; a case a cell maps loses its reason + const mapped = new Set(Object.values(map.cells || {}).flatMap((c) => c.cases || [])); map.not_run = map.not_run || {}; let n = 0; + for (const t of s.tests) { if (mapped.has(t.id)) { delete map.not_run[t.id]; continue; } map.not_run[t.id] = `${t.finding} (${t.priority}, the external review): the regression's harness is the owner lane's (${t.owner_lane}); not yet named in the map`; n++; } + return n; +} +if (args.includes('--write')) { + fs.writeFileSync(REG, JSON.stringify(merge(reg, s), null, 2) + '\n'); + let n = 0; if (fs.existsSync(MAP)) { const map = JSON.parse(fs.readFileSync(MAP, 'utf8')); n = mapReasons(map, s); fs.writeFileSync(MAP, JSON.stringify(map, null, 2) + '\n'); } + console.log(`review-suite: ${prefix} written, ${s.tests.length} cases from ${(findings.findings || []).length} findings; ${n} NOT RUN reasons in the map`); process.exit(0); +} console.error('usage: review-suite.mjs --findings f --dispatch d [--prefix REV] --write|--check | --self-test'); process.exit(2); diff --git a/tools/ci/test-map.json b/tools/ci/test-map.json index f100892a1..e73e182e1 100644 --- a/tools/ci/test-map.json +++ b/tools/ci/test-map.json @@ -1,466 +1,510 @@ { - "title": "Igneum 2.0 test harness map", - "registry": "docs/plans/igneum-2.0-test-registry.json", - "rule": "a case maps to a cell only where the cell's tests visibly answer it; coverage names what the cell proves and what remains; a mapped cell's green writes RUNNING, PASS only when coverage is full and the evidence file exists; an automated case with no cell reads NOT RUN with its reason, never PASS by inference", - "cells": { - "suite:pow": { - "command": "tools/build-remote.sh --priority gate -- test --release (from igneum-pow/)", - "box_class": "suite (gate priority)", - "fixtures": [ - "F0", - "F1" - ], - "cases": [ - "POW-02", - "POW-07", - "POW-08" - ], - "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" - } + "title": "Igneum 2.0 test harness map", + "registry": "docs/plans/igneum-2.0-test-registry.json", + "rule": "a case maps to a cell only where the cell's tests visibly answer it; coverage names what the cell proves and what remains; a mapped cell's green writes RUNNING, PASS only when coverage is full and the evidence file exists; an automated case with no cell reads NOT RUN with its reason, never PASS by inference", + "cells": { + "suite:pow": { + "command": "tools/build-remote.sh --priority gate -- test --release (from igneum-pow/)", + "box_class": "suite (gate priority)", + "fixtures": [ + "F0", + "F1" + ], + "cases": [ + "POW-02", + "POW-07", + "POW-08" + ], + "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" + } + }, + "suite:app": { + "command": "tools/build-remote.sh --priority gate -- test --release (from app/igneum-app/)", + "box_class": "suite (gate priority)", + "fixtures": [ + "F0", + "F1" + ], + "cases": [ + "UX-02", + "UX-03", + "UX-07", + "VER-08" + ], + "coverage": { + "UX-02": "partial: the engine state machine's pause, stop and knob tests; the operator study is UX-01's", + "UX-03": "partial: the card and earnings rendering tests; the net-earnings model against real bills is COM/ECO evidence", + "UX-07": "partial: the refused-update and manifest tests; the update-return lane's install classes are its own rows", + "VER-08": "partial: the app's own state-word tests; the wallet and light client rows are VER-01 to VER-03" + } + }, + "suite:core": { + "command": "tools/build-remote.sh --priority gate -- test --release -p kaspa-consensus-core (from the node fork)", + "box_class": "suite (gate priority)", + "fixtures": [ + "F0", + "F1" + ], + "cases": [ + "FIN-01", + "INC-01", + "ROT-06" + ], + "coverage": { + "FIN-01": "partial: the finality field and checkpoint tests on the object; ordering under load is the consensus suite and the sim", + "INC-01": "partial: emission, fee and payout arithmetic tests; the reconciliation over a live chain is the economics lane's", + "ROT-06": "partial: the dataset activation and digest tests; a live activation is the fast-time harness" + } + }, + "suite:consensus": { + "command": "tools/build-remote.sh --priority gate -- test --release -p kaspa-consensus (from the node fork)", + "box_class": "suite (gate priority)", + "fixtures": [ + "F0", + "F1" + ], + "cases": [ + "FIN-01", + "FIN-03", + "FIN-04", + "FIN-05", + "FIN-07", + "ROT-05", + "ZKP-01" + ], + "coverage": { + "FIN-01": "partial: the finality processes' agreement tests", + "FIN-03": "partial: rule v4's anchored table and authority expiry tests (bee41b5e)", + "FIN-04": "partial: the frozen table without its time expiry (rule v4)", + "FIN-05": "partial: key succession and another scheme's vote refused", + "FIN-07": "partial: majority-continuity recovery (rule v4)", + "ROT-05": "partial: the finality-stopped pause tests", + "ZKP-01": "partial: a proof-less or wrong-statement block refused by consensus" + } + }, + "suite:exec": { + "command": "tools/build-remote.sh --priority gate -- test --release -p igneum-exec (from the node fork)", + "box_class": "suite (gate priority)", + "fixtures": [ + "F0", + "F1" + ], + "cases": [ + "ZKP-01", + "ZKP-03", + "OPS-04", + "EVM-02" + ], + "coverage": { + "ZKP-01": "partial: a real proof verifies, a wrong statement and garbage are refused (nativeverify)", + "ZKP-03": "partial: a snapshot under another digest refused, the epoch streams bound to the digest", + "OPS-04": "partial: snapshot install, replay and genesis recapture after a crash", + "EVM-02": "partial: the replay tests on the day stream; the signature and chain-id binding vectors are an EVM harness still to map" + } + }, + "suite:miner": { + "command": "tools/build-remote.sh --priority gate -- test --release -p igneum-miner (from the node fork)", + "box_class": "suite (gate priority)", + "fixtures": [ + "F0", + "F1" + ], + "cases": [ + "UX-06", + "UX-04", + "POW-01" + ], + "coverage": { + "UX-06": "partial: the miner's own template selection tests", + "UX-04": "partial: payout label and share accounting tests; custody is the pool lane's row", + "POW-01": "partial: the pack re-check seam against the pack's 96 vectors (recheck_pack); the million-vector campaign is harness:p01-vectors" + } + }, + "suite:p2p-flows": { + "command": "tools/build-remote.sh --priority gate -- test --release -p kaspa-p2p-flows (from the node fork)", + "box_class": "suite (gate priority)", + "fixtures": [ + "F0", + "F1" + ], + "cases": [ + "OPS-06", + "ZKP-06" + ], + "coverage": { + "OPS-06": "partial: malformed relay messages refused; traffic containment under load is an OPS harness", + "ZKP-06": "partial: proof relay coverage tests; aggregation completeness is the proving lane's test set" + } + }, + "gate:pre-push": { + "command": "tools/ci/pre-push.sh (every landing; the heavy checks ship to a box)", + "box_class": "gate", + "fixtures": [ + "F1" + ], + "cases": [ + "GOV-05", + "GOV-06", + "UX-08" + ], + "coverage": { + "GOV-05": "partial: every gate check carries a self-test that fires on a known failure and passes a known success (77 checks); the suites' own oracles are their mutation rows", + "GOV-06": "partial: the launch-gates, forbidden-strings and scope checks on the served site", + "UX-08": "partial: the site gate on every served page, plus docs/build/tuning.md (the published tuning and build-settings half, the hash lane's); the open builds and the fee conditions are the shipper's and the site lane's" + } + }, + "check:freeze": { + "command": "consensus/pow/build.rs rule 19 at every kaspa-pow build; packaging/pow-freeze.txt and packaging/d1-freeze.txt", + "box_class": "build", + "fixtures": [ + "F0" + ], + "cases": [ + "GOV-01" + ], + "coverage": { + "GOV-01": "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" + } + }, + "harness:fast-time-60x": { + "command": "the v5 fast-time harness on the devnet object at 60x (infra/fast-time/override-60x.json; the node lane's run shape)", + "box_class": "harness (lease pool, never build-1)", + "fixtures": [ + "F0", + "F3" + ], + "cases": [ + "ROT-01", + "ROT-02" + ], + "coverage": { + "ROT-01": "partial: hourly boundaries crossed at 60x with every node agreeing", + "ROT-02": "partial: the weekly and family boundary crossings at 60x" + } + }, + "harness:finality-sim": { + "command": "igneum/harness-sim, the finality lane's scenarios (sim/results_v2.md, the Rule v4 section: N1, N1b, N2, N2b, N3, N4, N6 and the real-node known-failed line)", + "box_class": "harness", + "fixtures": [ + "F0", + "F4" + ], + "cases": [ + "FIN-08" + ], + "coverage": { + "FIN-08": "partial: the combined boundary and fault scenarios in the simulator with adversarial schedules; model checking is the formal review" + } + }, + "harness:p01-vectors": { + "command": "tools/ci/p01-vectors.py --worker --pack --reference /srv/artefacts/packs/p01-vectors/.txt --count 1000000 --out : the worker driven with pool.rs's job lines at an all-pass target, every found hash diffed against the CPU reference list (igneum-pow hash-bound --count 1000000, prehash 00..01, the genesis seeds), exit 1 on any disagreement or unanswered nonce", + "box_class": "pods (one backend each)", + "fixtures": [ + "F0", + "F2" + ], + "cases": [ + "POW-01" + ], + "coverage": { + "POW-01": "the million-vector campaign per backend per pack, bit-for-bit; PASS only when every supported backend reads a million vectors with zero disagreement; the malformed-input half is harness:parser-malformed" + } + }, + "harness:parser-malformed": { + "command": "cargo test --release -p igneum-exec --lib -- malformed --nocapture; cargo test --release -p igneum-miner --bins -- malformed --nocapture (node fork branch parser-malformed f0204947, taken into release-2.0.0-node at the node lane's next cut): ten thousand seeded mutations per parser through DayStream::from_bytes plus check, rpc::dispatch over nineteen igneum_ methods, and pool::job_seeds; the summary line per parser is the evidence", + "box_class": "suite", + "fixtures": [ + "F5" + ], + "cases": [ + "POW-06" + ], + "coverage": { + "POW-06": "partial: three parsers of external bytes (the state stream, the igneum_ RPC params, the pool job line), ten thousand seeded malformed cases each, zero panics, every case under 500 ms (the slowest 152 microseconds); 'accepted' counts mutations that left a valid input, not a parser fault; the verifier work bound (the other half of the accept text) is the proving lane's measurement" + } + }, + "bench:pc1-packs": { + "command": "tools/ca3-v4-amend/pc1-ca4-packs.ps1 on PC 1 (RTX 5090, the signed-jobs channel, --cards-off, the Power Helper lock at 1,300 MHz, nvidia-smi at 1 Hz, 250 x 2^24 per row, the kit's CUDA worker --bench)", + "box_class": "PC 1 bench", + "fixtures": [ + "F0", + "F1" + ], + "cases": [ + "GPU-02", + "GPU-03", + "GPU-05", + "POW-08" + ], + "coverage": { + "GPU-02": "partial: the paired stock and locked rows on the same board, host and workload (the rate held, 2.37 against 3.26 microjoules per hash on the class v5 pack); the historical 34 to 41 percent claim's full configuration set is owed", + "GPU-03": "partial: hl-v6-all against hl-v6-foldrw on the 5090, the window's cost per unit of work, registers and blocks per SM, no spill; the mandatory-SKU set is owed", + "GPU-05": "partial: v3-1g, v3-ds29, v3-ds30, ds55, ds4g-ms complete with their fingerprints, energy per step at stock and at the knee on the 5090 and the 7600; the 8.5 and 11.5 GiB candidates are owed", + "POW-08": "partial: rw-w4, rw-w32, rw-w64 and the 1p5x long-program packs as regression controls for the excluded levers" + } + }, + "bench:pc1-amd": { + "command": "tools/ca3-v4-amend/pc1-amd-cardin-bench.ps1 on PC 1 (RX 7600, OpenCL, gfx1102, 30 dispatches of 2^24 per size, rate only)", + "box_class": "PC 1 bench", + "fixtures": [ + "F0", + "F1" + ], + "cases": [ + "GPU-01", + "GPU-05" + ], + "coverage": { + "GPU-01": "partial: the 8 GB AMD cell, fingerprints and rates at 1, 2, 4 and 5.5 GiB; one cell of P02's twelve", + "GPU-05": "partial: the 8 GB tier's fit rows" + } + }, + "bench:fleet-pods": { + "command": "the fleet lane's one-shot RunPod cards (5090, 4090, H100, 3090) with the same worker --bench and nvidia-smi sampling, the lock through nvidia-smi -lgc", + "box_class": "rented pods", + "fixtures": [ + "F0", + "F1" + ], + "cases": [ + "GPU-01", + "GPU-03", + "POW-08" + ], + "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" + } + }, + "census:class-v6": { + "command": "the census lane's harness on class-v6-census-fold: the acceptance rule with (c''') on every candidate, the attempts census, the per-site index-bit read, attack-f8 at 2^22 on the live state", + "box_class": "harness (the lease pool)", + "fixtures": [ + "F0", + "F3" + ], + "cases": [ + "POW-02" + ], + "coverage": { + "POW-02": "partial: the fold's index statistics and the grammar bounds on 256 seeds plus the F8 set; the malformed programs are owed to harness:parser-malformed" + } + }, + "crosscheck:review-harness": { + "command": "python3 run_all.py in docs/analysis/review-2026-10-08/harness.zip (the reviewer's C/Python transcription of the V2 to V4 paths; numpy and cc; about 1 GB) on a box, its all_results.json the evidence; the tree's side is igneum-pow's own pins of the same constants (src/verify.rs, src/bind.rs, proto-cuda/packs/igneum-genesis/vectors.json) under suite:pow", + "box_class": "suite (nice 10)", + "fixtures": [ + "F0", + "F3" + ], + "cases": [ + "POW-01" + ], + "coverage": { + "POW-01": "partial: independent execution agrees with the tree on the V2/V3 genesis program id and op mix, the two closed-form hashes, the three census ids and the eight header-bound memory-hard vectors; the v5 object's and the v6 freeze's vectors are outside the transcription's model (its README) and read NOT RUN for this cell; every backend is harness:p01-vectors" + } + }, + "model:eco05": { + "command": "python3 sim/economy/coexist/eco05.py 0.5 31.65e6 and python3 sim/economy/coexist/eco05.py 0.055 31.65e6 on a build box (python3, no packages; the frozen register docs/analysis/class-v6/eco-05-scenarios.md; the cube to sim/economy/coexist/out/)", + "box_class": "build box (CPU, python3)", + "fixtures": [ + "F0", + "F7" + ], + "cases": [ + "ECO-05" + ], + "coverage": { + "ECO-05": "full on the frozen register's grid and the eight adversarial rows at the team's reconciled specialist rows; the independent reviewer's own adversarial rows (ECO-08) remain" + } + }, + "model:coexist-fixtures": { + "command": "python3 sim/economy/coexist/fixtures.py on a build box (exit 0 = the second implementation of the per-class cost formula agrees with the hand-worked values and the model's own function within 0.5 percent)", + "box_class": "build box (CPU, python3)", + "fixtures": [ + "F7" + ], + "cases": [ + "ECO-01", + "ECO-08" + ], + "coverage": { + "ECO-01": "partial: the hand-worked fixtures and the second implementation; the independent reconciliation of inputs and units remains", + "ECO-08": "partial: the package runs from the served files (README, inputs with sources and labels, fixtures); the independent report, the rerun and the perturbations remain" + } + }, + "harness:finality-sim-fin02": { + "command": "igneum/harness-sim, the split honest populations and boundary splits (the 40/40/20 fixture, the pause valid, zero conflicting final certificates within the bound)", + "box_class": "harness", + "fixtures": [ + "F0", + "F4" + ], + "cases": [ + "FIN-02" + ], + "coverage": { + "FIN-02": "the simulator half of the accept text; the real-node run on the fault network F4 with independent operators is node:finality-realnode" + } + }, + "node:finality-realnode": { + "command": "the node lane's v3.mjs lines on release-2.0.0-node (real nodes, the rule v4 harness; rows in sim/results_v2.md)", + "box_class": "harness (the lease pool)", + "fixtures": [ + "F0", + "F4" + ], + "cases": [ + "FIN-02", + "FIN-07" + ], + "coverage": { + "FIN-02": "partial: the real-node half; independent operators and the review remain", + "FIN-07": "partial: deterministic recovery after reconnection and crash on real nodes (the HEAL reruns)" + } + }, + "harness:proving-enforcement": { + "command": "tools/build-remote.sh --priority gate -- test --release -p kaspa-consensus -p igneum-exec --lib enforced_ (from the node fork; the succession_* and p22_stage_* tests with it); tools/fast-time-remote.sh --node-bin -- node infra/fast-time/proving-enforcement.mjs --floor 240 ... (the crossing) and --succession --window --prior-ids ... --next-ids ... --real-proof ... --next-proof ... (the key-succession crossing)", + "box_class": "suite (gate priority) and a fast-time run (normal class, 3 local nodes)", + "fixtures": [ + "F0", + "F1" + ], + "cases": [ + "ZKP-01", + "ZKP-02", + "ZKP-03", + "ZKP-04", + "ZKP-05", + "ZKP-08", + "EVM-08" + ], + "coverage": { + "ZKP-01": "partial: the seven refusals as named tests (no proof never inserted; a wrong proof and another program id invalidate the block; the honest record paid once) and the fast-time crossing with a modified producer; the genuine-proof positive control through ordinary network paths is the testnet's live read, not run here", + "ZKP-02": "partial: the pinned-id refusal on a real proof, the daemon's start refusal, key succession (the epochs, the accepted ids, a verdict counting only where its pair is accepted, the seven refusals on both sides of the height, the start refusal under a succession, the real-proof refusal of a pair the epoch does not accept) and the fast-time crossing of a scheduled succession with a real proof under each pair; the downgrade through an old node path is not run", + "ZKP-03": "partial: the chain binding (a record signed for another network), the replay, a wrong block, a wrong shard, a stale record outside the window; the fork and replayed-sync steps are not run", + "ZKP-04": "partial: an altered payout address (after signing and re-signed), a statement over altered rewards or payouts vetoed natively, the inputs commitment of P22 stage 1 (shard 0 and the aggregator carry the commitment the node recomputes) and the derivation commitment of stage 2 (the payouts derived in the guest from the carried records); the rewards' proved derivation is P22 stage 3, PENDING", + "ZKP-05": "partial: a duplicate of a paid record pays nothing and the honest record pays once; the race, reorder and crash-recover steps are not run", + "ZKP-08": "partial: the body rule and the payment rule read one floor, a producer with its body rule off still pays nothing on honest nodes (the fast-time crossing); the replacement-prover and authority steps are not run; the proof side of the derivation is P22 stage 3, PENDING", + "EVM-08": "partial: the controlled verifier upgrade as a key succession (both pairs embedded, the window, the start refusal) and its fast-time crossing; the mixed-client crossing on the live network and the failed-distribution step are not run" + } + } }, - "suite:app": { - "command": "tools/build-remote.sh --priority gate -- test --release (from app/igneum-app/)", - "box_class": "suite (gate priority)", - "fixtures": [ - "F0", - "F1" - ], - "cases": [ - "UX-02", - "UX-03", - "UX-07", - "VER-08" - ], - "coverage": { - "UX-02": "partial: the engine state machine's pause, stop and knob tests; the operator study is UX-01's", - "UX-03": "partial: the card and earnings rendering tests; the net-earnings model against real bills is COM/ECO evidence", - "UX-07": "partial: the refused-update and manifest tests; the update-return lane's install classes are its own rows", - "VER-08": "partial: the app's own state-word tests; the wallet and light client rows are VER-01 to VER-03" - } - }, - "suite:core": { - "command": "tools/build-remote.sh --priority gate -- test --release -p kaspa-consensus-core (from the node fork)", - "box_class": "suite (gate priority)", - "fixtures": [ - "F0", - "F1" - ], - "cases": [ - "FIN-01", - "INC-01", - "ROT-06" - ], - "coverage": { - "FIN-01": "partial: the finality field and checkpoint tests on the object; ordering under load is the consensus suite and the sim", - "INC-01": "partial: emission, fee and payout arithmetic tests; the reconciliation over a live chain is the economics lane's", - "ROT-06": "partial: the dataset activation and digest tests; a live activation is the fast-time harness" - } - }, - "suite:consensus": { - "command": "tools/build-remote.sh --priority gate -- test --release -p kaspa-consensus (from the node fork)", - "box_class": "suite (gate priority)", - "fixtures": [ - "F0", - "F1" - ], - "cases": [ - "FIN-01", - "FIN-03", - "FIN-04", - "FIN-05", - "FIN-07", - "ROT-05", - "ZKP-01" - ], - "coverage": { - "FIN-01": "partial: the finality processes' agreement tests", - "FIN-03": "partial: rule v4's anchored table and authority expiry tests (bee41b5e)", - "FIN-04": "partial: the frozen table without its time expiry (rule v4)", - "FIN-05": "partial: key succession and another scheme's vote refused", - "FIN-07": "partial: majority-continuity recovery (rule v4)", - "ROT-05": "partial: the finality-stopped pause tests", - "ZKP-01": "partial: a proof-less or wrong-statement block refused by consensus" - } - }, - "suite:exec": { - "command": "tools/build-remote.sh --priority gate -- test --release -p igneum-exec (from the node fork)", - "box_class": "suite (gate priority)", - "fixtures": [ - "F0", - "F1" - ], - "cases": [ - "ZKP-01", - "ZKP-03", - "OPS-04", - "EVM-02" - ], - "coverage": { - "ZKP-01": "partial: a real proof verifies, a wrong statement and garbage are refused (nativeverify)", - "ZKP-03": "partial: a snapshot under another digest refused, the epoch streams bound to the digest", - "OPS-04": "partial: snapshot install, replay and genesis recapture after a crash", - "EVM-02": "partial: the replay tests on the day stream; the signature and chain-id binding vectors are an EVM harness still to map" - } - }, - "suite:miner": { - "command": "tools/build-remote.sh --priority gate -- test --release -p igneum-miner (from the node fork)", - "box_class": "suite (gate priority)", - "fixtures": [ - "F0", - "F1" - ], - "cases": [ - "UX-06", - "UX-04", - "POW-01" - ], - "coverage": { - "UX-06": "partial: the miner's own template selection tests", - "UX-04": "partial: payout label and share accounting tests; custody is the pool lane's row", - "POW-01": "partial: the pack re-check seam against the pack's 96 vectors (recheck_pack); the million-vector campaign is harness:p01-vectors" - } - }, - "suite:p2p-flows": { - "command": "tools/build-remote.sh --priority gate -- test --release -p kaspa-p2p-flows (from the node fork)", - "box_class": "suite (gate priority)", - "fixtures": [ - "F0", - "F1" - ], - "cases": [ - "OPS-06", - "ZKP-06" - ], - "coverage": { - "OPS-06": "partial: malformed relay messages refused; traffic containment under load is an OPS harness", - "ZKP-06": "partial: proof relay coverage tests; aggregation completeness is the proving lane's test set" - } - }, - "gate:pre-push": { - "command": "tools/ci/pre-push.sh (every landing; the heavy checks ship to a box)", - "box_class": "gate", - "fixtures": [ - "F1" - ], - "cases": [ - "GOV-05", - "GOV-06", - "UX-08" - ], - "coverage": { - "GOV-05": "partial: every gate check carries a self-test that fires on a known failure and passes a known success (77 checks); the suites' own oracles are their mutation rows", - "GOV-06": "partial: the launch-gates, forbidden-strings and scope checks on the served site", - "UX-08": "partial: the site gate on every served page, plus docs/build/tuning.md (the published tuning and build-settings half, the hash lane's); the open builds and the fee conditions are the shipper's and the site lane's" - } - }, - "check:freeze": { - "command": "consensus/pow/build.rs rule 19 at every kaspa-pow build; packaging/pow-freeze.txt and packaging/d1-freeze.txt", - "box_class": "build", - "fixtures": [ - "F0" - ], - "cases": [ - "GOV-01" - ], - "coverage": { - "GOV-01": "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" - } - }, - "harness:fast-time-60x": { - "command": "the v5 fast-time harness on the devnet object at 60x (infra/fast-time/override-60x.json; the node lane's run shape)", - "box_class": "harness (lease pool, never build-1)", - "fixtures": [ - "F0", - "F3" - ], - "cases": [ - "ROT-01", - "ROT-02" - ], - "coverage": { - "ROT-01": "partial: hourly boundaries crossed at 60x with every node agreeing", - "ROT-02": "partial: the weekly and family boundary crossings at 60x" - } - }, - "harness:finality-sim": { - "command": "igneum/harness-sim, the finality lane's scenarios (sim/results_v2.md, the Rule v4 section: N1, N1b, N2, N2b, N3, N4, N6 and the real-node known-failed line)", - "box_class": "harness", - "fixtures": [ - "F0", - "F4" - ], - "cases": [ - "FIN-08" - ], - "coverage": { - "FIN-08": "partial: the combined boundary and fault scenarios in the simulator with adversarial schedules; model checking is the formal review" - } - }, - "harness:p01-vectors": { - "command": "tools/ci/p01-vectors.py --worker --pack --reference /srv/artefacts/packs/p01-vectors/.txt --count 1000000 --out : the worker driven with pool.rs's job lines at an all-pass target, every found hash diffed against the CPU reference list (igneum-pow hash-bound --count 1000000, prehash 00..01, the genesis seeds), exit 1 on any disagreement or unanswered nonce", - "box_class": "pods (one backend each)", - "fixtures": [ - "F0", - "F2" - ], - "cases": [ - "POW-01" - ], - "coverage": { - "POW-01": "the million-vector campaign per backend per pack, bit-for-bit; PASS only when every supported backend reads a million vectors with zero disagreement; the malformed-input half is harness:parser-malformed" - } - }, - "harness:parser-malformed": { - "command": "cargo test --release -p igneum-exec --lib -- malformed --nocapture; cargo test --release -p igneum-miner --bins -- malformed --nocapture (node fork branch parser-malformed f0204947, taken into release-2.0.0-node at the node lane's next cut): ten thousand seeded mutations per parser through DayStream::from_bytes plus check, rpc::dispatch over nineteen igneum_ methods, and pool::job_seeds; the summary line per parser is the evidence", - "box_class": "suite", - "fixtures": [ - "F5" - ], - "cases": [ - "POW-06" - ], - "coverage": { - "POW-06": "partial: three parsers of external bytes (the state stream, the igneum_ RPC params, the pool job line), ten thousand seeded malformed cases each, zero panics, every case under 500 ms (the slowest 152 microseconds); 'accepted' counts mutations that left a valid input, not a parser fault; the verifier work bound (the other half of the accept text) is the proving lane's measurement" - } - }, - "bench:pc1-packs": { - "command": "tools/ca3-v4-amend/pc1-ca4-packs.ps1 on PC 1 (RTX 5090, the signed-jobs channel, --cards-off, the Power Helper lock at 1,300 MHz, nvidia-smi at 1 Hz, 250 x 2^24 per row, the kit's CUDA worker --bench)", - "box_class": "PC 1 bench", - "fixtures": [ - "F0", - "F1" - ], - "cases": [ - "GPU-02", - "GPU-03", - "GPU-05", - "POW-08" - ], - "coverage": { - "GPU-02": "partial: the paired stock and locked rows on the same board, host and workload (the rate held, 2.37 against 3.26 microjoules per hash on the class v5 pack); the historical 34 to 41 percent claim's full configuration set is owed", - "GPU-03": "partial: hl-v6-all against hl-v6-foldrw on the 5090, the window's cost per unit of work, registers and blocks per SM, no spill; the mandatory-SKU set is owed", - "GPU-05": "partial: v3-1g, v3-ds29, v3-ds30, ds55, ds4g-ms complete with their fingerprints, energy per step at stock and at the knee on the 5090 and the 7600; the 8.5 and 11.5 GiB candidates are owed", - "POW-08": "partial: rw-w4, rw-w32, rw-w64 and the 1p5x long-program packs as regression controls for the excluded levers" - } - }, - "bench:pc1-amd": { - "command": "tools/ca3-v4-amend/pc1-amd-cardin-bench.ps1 on PC 1 (RX 7600, OpenCL, gfx1102, 30 dispatches of 2^24 per size, rate only)", - "box_class": "PC 1 bench", - "fixtures": [ - "F0", - "F1" - ], - "cases": [ - "GPU-01", - "GPU-05" - ], - "coverage": { - "GPU-01": "partial: the 8 GB AMD cell, fingerprints and rates at 1, 2, 4 and 5.5 GiB; one cell of P02's twelve", - "GPU-05": "partial: the 8 GB tier's fit rows" - } - }, - "bench:fleet-pods": { - "command": "the fleet lane's one-shot RunPod cards (5090, 4090, H100, 3090) with the same worker --bench and nvidia-smi sampling, the lock through nvidia-smi -lgc", - "box_class": "rented pods", - "fixtures": [ - "F0", - "F1" - ], - "cases": [ - "GPU-01", - "GPU-03", - "POW-08" - ], - "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" - } - }, - "census:class-v6": { - "command": "the census lane's harness on class-v6-census-fold: the acceptance rule with (c''') on every candidate, the attempts census, the per-site index-bit read, attack-f8 at 2^22 on the live state", - "box_class": "harness (the lease pool)", - "fixtures": [ - "F0", - "F3" - ], - "cases": [ - "POW-02" - ], - "coverage": { - "POW-02": "partial: the fold's index statistics and the grammar bounds on 256 seeds plus the F8 set; the malformed programs are owed to harness:parser-malformed" - } - }, - "crosscheck:review-harness": { - "command": "python3 run_all.py in docs/analysis/review-2026-10-08/harness.zip (the reviewer's C/Python transcription of the V2 to V4 paths; numpy and cc; about 1 GB) on a box, its all_results.json the evidence; the tree's side is igneum-pow's own pins of the same constants (src/verify.rs, src/bind.rs, proto-cuda/packs/igneum-genesis/vectors.json) under suite:pow", - "box_class": "suite (nice 10)", - "fixtures": [ - "F0", - "F3" - ], - "cases": [ - "POW-01" - ], - "coverage": { - "POW-01": "partial: independent execution agrees with the tree on the V2/V3 genesis program id and op mix, the two closed-form hashes, the three census ids and the eight header-bound memory-hard vectors; the v5 object's and the v6 freeze's vectors are outside the transcription's model (its README) and read NOT RUN for this cell; every backend is harness:p01-vectors" - } - }, - "model:eco05": { - "command": "python3 sim/economy/coexist/eco05.py 0.5 31.65e6 and python3 sim/economy/coexist/eco05.py 0.055 31.65e6 on a build box (python3, no packages; the frozen register docs/analysis/class-v6/eco-05-scenarios.md; the cube to sim/economy/coexist/out/)", - "box_class": "build box (CPU, python3)", - "fixtures": [ - "F0", - "F7" - ], - "cases": [ - "ECO-05" - ], - "coverage": { - "ECO-05": "full on the frozen register's grid and the eight adversarial rows at the team's reconciled specialist rows; the independent reviewer's own adversarial rows (ECO-08) remain" - } - }, - "model:coexist-fixtures": { - "command": "python3 sim/economy/coexist/fixtures.py on a build box (exit 0 = the second implementation of the per-class cost formula agrees with the hand-worked values and the model's own function within 0.5 percent)", - "box_class": "build box (CPU, python3)", - "fixtures": [ - "F7" - ], - "cases": [ - "ECO-01", - "ECO-08" - ], - "coverage": { - "ECO-01": "partial: the hand-worked fixtures and the second implementation; the independent reconciliation of inputs and units remains", - "ECO-08": "partial: the package runs from the served files (README, inputs with sources and labels, fixtures); the independent report, the rerun and the perturbations remain" - } - }, - "harness:finality-sim-fin02": { - "command": "igneum/harness-sim, the split honest populations and boundary splits (the 40/40/20 fixture, the pause valid, zero conflicting final certificates within the bound)", - "box_class": "harness", - "fixtures": [ - "F0", - "F4" - ], - "cases": [ - "FIN-02" - ], - "coverage": { - "FIN-02": "the simulator half of the accept text; the real-node run on the fault network F4 with independent operators is node:finality-realnode" - } - }, - "node:finality-realnode": { - "command": "the node lane's v3.mjs lines on release-2.0.0-node (real nodes, the rule v4 harness; rows in sim/results_v2.md)", - "box_class": "harness (the lease pool)", - "fixtures": [ - "F0", - "F4" - ], - "cases": [ - "FIN-02", - "FIN-07" - ], - "coverage": { - "FIN-02": "partial: the real-node half; independent operators and the review remain", - "FIN-07": "partial: deterministic recovery after reconnection and crash on real nodes (the HEAL reruns)" - } - }, - "harness:proving-enforcement": { - "command": "tools/build-remote.sh --priority gate -- test --release -p kaspa-consensus -p igneum-exec --lib enforced_ (from the node fork; the succession_* and p22_stage_* tests with it); tools/fast-time-remote.sh --node-bin -- node infra/fast-time/proving-enforcement.mjs --floor 240 ... (the crossing) and --succession --window --prior-ids ... --next-ids ... --real-proof ... --next-proof ... (the key-succession crossing)", - "box_class": "suite (gate priority) and a fast-time run (normal class, 3 local nodes)", - "fixtures": [ - "F0", - "F1" - ], - "cases": [ - "ZKP-01", - "ZKP-02", - "ZKP-03", - "ZKP-04", - "ZKP-05", - "ZKP-08", - "EVM-08" - ], - "coverage": { - "ZKP-01": "partial: the seven refusals as named tests (no proof never inserted; a wrong proof and another program id invalidate the block; the honest record paid once) and the fast-time crossing with a modified producer; the genuine-proof positive control through ordinary network paths is the testnet's live read, not run here", - "ZKP-02": "partial: the pinned-id refusal on a real proof, the daemon's start refusal, key succession (the epochs, the accepted ids, a verdict counting only where its pair is accepted, the seven refusals on both sides of the height, the start refusal under a succession, the real-proof refusal of a pair the epoch does not accept) and the fast-time crossing of a scheduled succession with a real proof under each pair; the downgrade through an old node path is not run", - "ZKP-03": "partial: the chain binding (a record signed for another network), the replay, a wrong block, a wrong shard, a stale record outside the window; the fork and replayed-sync steps are not run", - "ZKP-04": "partial: an altered payout address (after signing and re-signed), a statement over altered rewards or payouts vetoed natively, the inputs commitment of P22 stage 1 (shard 0 and the aggregator carry the commitment the node recomputes) and the derivation commitment of stage 2 (the payouts derived in the guest from the carried records); the rewards' proved derivation is P22 stage 3, PENDING", - "ZKP-05": "partial: a duplicate of a paid record pays nothing and the honest record pays once; the race, reorder and crash-recover steps are not run", - "ZKP-08": "partial: the body rule and the payment rule read one floor, a producer with its body rule off still pays nothing on honest nodes (the fast-time crossing); the replacement-prover and authority steps are not run; the proof side of the derivation is P22 stage 3, PENDING", - "EVM-08": "partial: the controlled verifier upgrade as a key succession (both pairs embedded, the window, the start refusal) and its fast-time crossing; the mixed-client crossing on the live network and the failed-distribution step are not run" - } + "not_run": { + "GOV-02": "the approval is recorded in the registry's approval field; the automated half (thresholds frozen before any run_status) is the gate rule landing by 21:00", + "GOV-04": "the evidence vault F9 (raw and negative evidence preserved) is the gate rule landing by 21:00: a PASS must carry its evidence file", + "GOV-08": "the stale-evidence rule (evidence older than the manifest sha reads NOT RUN) is the gate rule landing by 21:00", + "GPU-04": "the memory-clock ladder has no harness tonight: PC 1 mines nothing under the Devnet 3 off order", + "GPU-06": "accepted work under ordinary connectivity needs the fault network F4", + "GPU-07": "the sustained thermal and power soak has no harness tonight: PC 1 mines nothing under the Devnet 3 off order", + "POW-05": "amortised cheap winning attempts are the attack lanes' grind and era harnesses (tools/attack/f7-era, f9-grind), not in the release matrix; their rows come from those lanes", + "ADV-04": "selective participation needs the economic model F7 and a live chain window", + "ADV-06": "process-advantage separation is the adversary lanes' chip study", + "ADV-07": "lifetime rows are the adversary lanes' models", + "ROT-03": "miner-voted bring-forward needs a vote harness on the fault network F4", + "ROT-04": "seed-selection resistance is the census harness (the class v6 invention lane), not yet in the matrix", + "ROT-07": "layer ablation is a research harness, not a release suite", + "ROT-08": "the no-new-rules counterfactual is a research harness", + "ECO-02": "F7", + "ECO-03": "F7", + "ECO-04": "F7", + "ECO-06": "F7", + "ECO-07": "F7", + "EVM-01": "no EVM conformance-vector harness is mapped tonight; the exec suite does not run the reference test vectors", + "EVM-03": "the two-dimensional fee tests need the proving-limit harness", + "EVM-04": "block context and randomness vectors are an EVM harness still to map", + "EVM-05": "contract journeys need the DEX lane's integration set on Devnet 4", + "EVM-06": "wallet, RPC and indexer validation is the explorer and wallet lanes' rows", + "EVM-07": "execution DoS workloads need the workload catalogue F3", + "CAP-01": "the consumer-shard reproduction is the fleet lane's pods", + "CAP-02": "proving on the mining configuration is the fleet lane's", + "CAP-03": "the request-to-payment path is the proving fleet's measurement", + "CAP-04": "sustained load is the proving fleet's", + "CAP-05": "overload and recovery is the proving fleet's", + "CAP-06": "assignment windows are the proving fleet's", + "CAP-07": "reassignment is the proving fleet's", + "CAP-08": "customer-verifiable output is the reference apps plus the fleet", + "INC-02": "revenue separation is the economics lane's model", + "INC-03": "the modified-client task choice needs an adversarial client harness", + "INC-04": "demand spikes are the economic model", + "INC-05": "reservation abuse needs the capacity harness", + "INC-06": "difficulty and timestamp manipulation needs the fault network F4", + "INC-07": "self-dealing fees need the economic model and a live window", + "INC-08": "failure concentration is a live-window measurement", + "FIN-06": "old-key compromise analysis is the finality lane's long-range scenario, not yet in the sim", + "VER-01": "light-client bootstrap is the reference apps lane (/light); no automated harness mapped tonight", + "VER-02": "the evolving-authority statements are the reference apps lane's", + "VER-03": "payment proof (/receipt) is the reference apps lane's", + "VER-05": "state reconstruction without founder storage is the OPS no-founder exercise", + "VER-06": "withholding and corruption detection needs the fault network F4", + "VER-07": "wallet key protection is the wallet lane's security row", + "OPS-01": "the no-founder exercise is an operations run, not a suite", + "OPS-02": "bootstrap diversity needs the fault network F4", + "OPS-03": "update distribution separation is the update-return lane's row", + "OPS-05": "proving workload isolation is the fleet's pod row", + "OPS-07": "runbook detection is an operations run", + "OPS-08": "repeat independent operation is a cross-release observation", + "UX-05": "voting keys through pooling is the pool lane's row", + "COM-01": "commercial evidence, no automated harness", + "COM-02": "commercial evidence", + "COM-03": "commercial evidence", + "COM-04": "commercial evidence", + "COM-05": "commercial evidence", + "COM-06": "commercial evidence", + "COM-07": "commercial evidence", + "LEAD-02": "leadership comparison, an observation window", + "LEAD-03": "observation window", + "LEAD-04": "observation window", + "LEAD-05": "observation window", + "LEAD-06": "observation window", + "LEAD-08": "observation window", + "REV-F01-1": "F01 (P0, the external review): the regression's harness is the owner lane's (proving lane, node lane); not yet named in the map", + "REV-F01-2": "F01 (P0, the external review): the regression's harness is the owner lane's (proving lane, node lane); not yet named in the map", + "REV-F01-3": "F01 (P0, the external review): the regression's harness is the owner lane's (proving lane, node lane); not yet named in the map", + "REV-F01-4": "F01 (P0, the external review): the regression's harness is the owner lane's (proving lane, node lane); not yet named in the map", + "REV-F02-1": "F02 (P0, the external review): the regression's harness is the owner lane's (proving lane, CI steward); not yet named in the map", + "REV-F02-2": "F02 (P0, the external review): the regression's harness is the owner lane's (proving lane, CI steward); not yet named in the map", + "REV-F02-3": "F02 (P0, the external review): the regression's harness is the owner lane's (proving lane, CI steward); not yet named in the map", + "REV-F03-1": "F03 (P0, the external review): the regression's harness is the owner lane's (CI steward, hash lane (ProgramClass::V6 on freeze), pool lane); not yet named in the map", + "REV-F03-2": "F03 (P0, the external review): the regression's harness is the owner lane's (CI steward, hash lane (ProgramClass::V6 on freeze), pool lane); not yet named in the map", + "REV-F03-3": "F03 (P0, the external review): the regression's harness is the owner lane's (CI steward, hash lane (ProgramClass::V6 on freeze), pool lane); not yet named in the map", + "REV-F04-1": "F04 (P0, the external review): the regression's harness is the owner lane's (node lane, reference apps, site (explorer)); not yet named in the map", + "REV-F04-2": "F04 (P0, the external review): the regression's harness is the owner lane's (node lane, reference apps, site (explorer)); not yet named in the map", + "REV-F04-3": "F04 (P0, the external review): the regression's harness is the owner lane's (node lane, reference apps, site (explorer)); not yet named in the map", + "REV-F04-4": "F04 (P0, the external review): the regression's harness is the owner lane's (node lane, reference apps, site (explorer)); not yet named in the map", + "REV-F05-1": "F05 (P1, the external review): the regression's harness is the owner lane's (hash lane, adversary lane, floor lane 3); not yet named in the map", + "REV-F05-2": "F05 (P1, the external review): the regression's harness is the owner lane's (hash lane, adversary lane, floor lane 3); not yet named in the map", + "REV-F05-3": "F05 (P1, the external review): the regression's harness is the owner lane's (hash lane, adversary lane, floor lane 3); not yet named in the map", + "REV-F06-1": "F06 (P1, the external review): the regression's harness is the owner lane's (hash lane, research lane D); not yet named in the map", + "REV-F06-2": "F06 (P1, the external review): the regression's harness is the owner lane's (hash lane, research lane D); not yet named in the map", + "REV-F06-3": "F06 (P1, the external review): the regression's harness is the owner lane's (hash lane, research lane D); not yet named in the map", + "REV-F07-1": "F07 (P1, the external review): the regression's harness is the owner lane's (app lane, fleet lane); not yet named in the map", + "REV-F07-2": "F07 (P1, the external review): the regression's harness is the owner lane's (app lane, fleet lane); not yet named in the map", + "REV-F07-3": "F07 (P1, the external review): the regression's harness is the owner lane's (app lane, fleet lane); not yet named in the map", + "REV-F08-1": "F08 (P1, the external review): the regression's harness is the owner lane's (proving lane, fleet lane, site (ops page)); not yet named in the map", + "REV-F08-2": "F08 (P1, the external review): the regression's harness is the owner lane's (proving lane, fleet lane, site (ops page)); not yet named in the map", + "REV-F08-3": "F08 (P1, the external review): the regression's harness is the owner lane's (proving lane, fleet lane, site (ops page)); not yet named in the map", + "REV-F09-1": "F09 (P1, the external review): the regression's harness is the owner lane's (research lane, floor lane 3, coordinator); not yet named in the map", + "REV-F09-2": "F09 (P1, the external review): the regression's harness is the owner lane's (research lane, floor lane 3, coordinator); not yet named in the map", + "REV-F09-3": "F09 (P1, the external review): the regression's harness is the owner lane's (research lane, floor lane 3, coordinator); not yet named in the map", + "REV-F10-1": "F10 (P2, the external review): the regression's harness is the owner lane's (worker lane (new)); not yet named in the map", + "REV-F10-2": "F10 (P2, the external review): the regression's harness is the owner lane's (worker lane (new)); not yet named in the map", + "REV-F10-3": "F10 (P2, the external review): the regression's harness is the owner lane's (worker lane (new)); not yet named in the map", + "REV-F11-1": "F11 (P2, the external review): the regression's harness is the owner lane's (Ember lane (new)); not yet named in the map", + "REV-F11-2": "F11 (P2, the external review): the regression's harness is the owner lane's (Ember lane (new)); not yet named in the map", + "REV-F11-3": "F11 (P2, the external review): the regression's harness is the owner lane's (Ember lane (new)); not yet named in the map", + "REV-F12-1": "F12 (P1, the external review): the regression's harness is the owner lane's (pool lane (new)); not yet named in the map", + "REV-F12-2": "F12 (P1, the external review): the regression's harness is the owner lane's (pool lane (new)); not yet named in the map", + "REV-F12-3": "F12 (P1, the external review): the regression's harness is the owner lane's (pool lane (new)); not yet named in the map", + "REV-F13-1": "F13 (P1, the external review): the regression's harness is the owner lane's (pool lane (new)); not yet named in the map", + "REV-F13-2": "F13 (P1, the external review): the regression's harness is the owner lane's (pool lane (new)); not yet named in the map", + "REV-F13-3": "F13 (P1, the external review): the regression's harness is the owner lane's (pool lane (new)); not yet named in the map", + "REV-F14-1": "F14 (P1, the external review): the regression's harness is the owner lane's (app lane, relay lane); not yet named in the map", + "REV-F14-2": "F14 (P1, the external review): the regression's harness is the owner lane's (app lane, relay lane); not yet named in the map", + "REV-F14-3": "F14 (P1, the external review): the regression's harness is the owner lane's (app lane, relay lane); not yet named in the map" } - }, - "not_run": { - "GOV-02": "the approval is recorded in the registry's approval field; the automated half (thresholds frozen before any run_status) is the gate rule landing by 21:00", - "GOV-04": "the evidence vault F9 (raw and negative evidence preserved) is the gate rule landing by 21:00: a PASS must carry its evidence file", - "GOV-08": "the stale-evidence rule (evidence older than the manifest sha reads NOT RUN) is the gate rule landing by 21:00", - "GPU-04": "the memory-clock ladder has no harness tonight: PC 1 mines nothing under the Devnet 3 off order", - "GPU-06": "accepted work under ordinary connectivity needs the fault network F4", - "GPU-07": "the sustained thermal and power soak has no harness tonight: PC 1 mines nothing under the Devnet 3 off order", - "POW-05": "amortised cheap winning attempts are the attack lanes' grind and era harnesses (tools/attack/f7-era, f9-grind), not in the release matrix; their rows come from those lanes", - "ADV-04": "selective participation needs the economic model F7 and a live chain window", - "ADV-06": "process-advantage separation is the adversary lanes' chip study", - "ADV-07": "lifetime rows are the adversary lanes' models", - "ROT-03": "miner-voted bring-forward needs a vote harness on the fault network F4", - "ROT-04": "seed-selection resistance is the census harness (the class v6 invention lane), not yet in the matrix", - "ROT-07": "layer ablation is a research harness, not a release suite", - "ROT-08": "the no-new-rules counterfactual is a research harness", - "ECO-02": "F7", - "ECO-03": "F7", - "ECO-04": "F7", - "ECO-06": "F7", - "ECO-07": "F7", - "EVM-01": "no EVM conformance-vector harness is mapped tonight; the exec suite does not run the reference test vectors", - "EVM-03": "the two-dimensional fee tests need the proving-limit harness", - "EVM-04": "block context and randomness vectors are an EVM harness still to map", - "EVM-05": "contract journeys need the DEX lane's integration set on Devnet 4", - "EVM-06": "wallet, RPC and indexer validation is the explorer and wallet lanes' rows", - "EVM-07": "execution DoS workloads need the workload catalogue F3", - "CAP-01": "the consumer-shard reproduction is the fleet lane's pods", - "CAP-02": "proving on the mining configuration is the fleet lane's", - "CAP-03": "the request-to-payment path is the proving fleet's measurement", - "CAP-04": "sustained load is the proving fleet's", - "CAP-05": "overload and recovery is the proving fleet's", - "CAP-06": "assignment windows are the proving fleet's", - "CAP-07": "reassignment is the proving fleet's", - "CAP-08": "customer-verifiable output is the reference apps plus the fleet", - "INC-02": "revenue separation is the economics lane's model", - "INC-03": "the modified-client task choice needs an adversarial client harness", - "INC-04": "demand spikes are the economic model", - "INC-05": "reservation abuse needs the capacity harness", - "INC-06": "difficulty and timestamp manipulation needs the fault network F4", - "INC-07": "self-dealing fees need the economic model and a live window", - "INC-08": "failure concentration is a live-window measurement", - "FIN-06": "old-key compromise analysis is the finality lane's long-range scenario, not yet in the sim", - "VER-01": "light-client bootstrap is the reference apps lane (/light); no automated harness mapped tonight", - "VER-02": "the evolving-authority statements are the reference apps lane's", - "VER-03": "payment proof (/receipt) is the reference apps lane's", - "VER-05": "state reconstruction without founder storage is the OPS no-founder exercise", - "VER-06": "withholding and corruption detection needs the fault network F4", - "VER-07": "wallet key protection is the wallet lane's security row", - "OPS-01": "the no-founder exercise is an operations run, not a suite", - "OPS-02": "bootstrap diversity needs the fault network F4", - "OPS-03": "update distribution separation is the update-return lane's row", - "OPS-05": "proving workload isolation is the fleet's pod row", - "OPS-07": "runbook detection is an operations run", - "OPS-08": "repeat independent operation is a cross-release observation", - "UX-05": "voting keys through pooling is the pool lane's row", - "COM-01": "commercial evidence, no automated harness", - "COM-02": "commercial evidence", - "COM-03": "commercial evidence", - "COM-04": "commercial evidence", - "COM-05": "commercial evidence", - "COM-06": "commercial evidence", - "COM-07": "commercial evidence", - "LEAD-02": "leadership comparison, an observation window", - "LEAD-03": "observation window", - "LEAD-04": "observation window", - "LEAD-05": "observation window", - "LEAD-06": "observation window", - "LEAD-08": "observation window" - } }