fix: make the ledger gate check the column it claims to check
Adversarial re-verification of the gate itself found three holes. The disposition check matched the finding's verdict anywhere in the table row, and every row also carries the prior verdict — so `| NS-01 | PARTIAL | FIXED |` satisfied a receipt that said either. It now reads the disposition from its own column, which is the check the gate was supposed to be performing all along. An evidence path only had to exist. A row could point at an unrelated suite and look substantiated, so each evidence file must now name the finding it is evidence for; rows the review labelled differently declare their own markers rather than the check being loosened. The file-transfer bundle budget was a number typed into prose next to a number in config, which is exactly the evidence drift the cross-audit raised. The gate now compares them. Each hole was confirmed by breaking the input and watching the gate fail: a disposition disagreement, a budget changed to 60,000, and NS-07 pointed at the public cache suite. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
d5e7f4127a
commit
8157ad4029
@@ -120,6 +120,7 @@
|
||||
"previous": "PARTIAL",
|
||||
"disposition": "FIXED",
|
||||
"summary": "The shared abort primitive settles once by observation order, and all four consumers use it with bound timer snapshots.",
|
||||
"markers": ["X-AUDIT-01", "X-AUDIT-02"],
|
||||
"evidence": [
|
||||
"tests/unit/abortable-operation.test.ts",
|
||||
"tests/unit/image-cdn-runtime.test.ts",
|
||||
@@ -180,6 +181,7 @@
|
||||
"previous": "OPEN",
|
||||
"disposition": "FIXED",
|
||||
"summary": "Duplicate abort mechanics were consolidated onto the shared primitive and the file-transfer budget was reset to cover the remaining correctness code.",
|
||||
"markers": [],
|
||||
"evidence": ["config/recipes/frontend-capability-recipes.json"]
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user