{
 "bundle": "ip-hardening-batch3-2026-10-07",
 "generated": "2026-10-07T19:19:49+00:00",
 "defects": [
  {
   "id": "B3-01",
   "commit": "00553056",
   "invention": "PBFT commit certificates",
   "defect": "a PREPARE_QC (a quorum prepared, nothing committed) was accepted as a commit by the gateway, snapshot re-verification and the public verifiers; one lying replica could make the hosted consensus stage authorize",
   "fix": "every consumer of 'committed' requires a COMMIT_QC or FAST_COMMIT_QC; all 12 published PBFT bundles still verify"
  },
  {
   "id": "B3-02",
   "commit": "642830a7",
   "invention": "signed decision records",
   "defect": "caller text containing the 0x1F field separator let a database writer re-split a DENIED record into an ALLOWED one with the same digest, so the original signature still verified",
   "fix": "0x1F in caller text is replaced; a digest refuses it; the public verifier gains an ENCODING check (0 of 9,316 live records affected)"
  },
  {
   "id": "B3-03",
   "commit": "eec2b1fc",
   "invention": "offline evidence verifier",
   "defect": "printed ALL PASSED for a DENY record re-signed as ALLOW with a forger's own key, for an empty bundle and for a single file with no records",
   "fix": "signer key must be pinned; binding fields hashed; one tenant and unique ids per bundle; empty bundle fails"
  },
  {
   "id": "B3-04",
   "commit": "25e8042d",
   "invention": "CATCP control evaluator and gate",
   "defect": "four ALLOW holes: missing revocation state treated as not revoked; tool not bound to its context; denied actions never enforced; risk ceilings not attenuated",
   "fix": "each denies; the Python and Go clean-room verifiers now check every attenuation rule"
  },
  {
   "id": "B3-05",
   "commit": "6a29f185",
   "invention": "trust kernel primitives",
   "defect": "the public verify primitive returned VALID for an unsigned, made-up capability token; self-signed passports were VALID; algorithm manifests could be unsigned",
   "fix": "signature required and the signer must be the kernel's key; malformed expiry fails closed"
  },
  {
   "id": "B3-06",
   "commit": "bbb5c3a7",
   "invention": "live-cluster browser verifier",
   "defect": "a PREPARE_QC in the commit slot was shown as 'COMMIT votes' / 'CHAIN INTACT'",
   "fix": "the page requires a deciding certificate in the commit slot"
  },
  {
   "id": "B3-07",
   "commit": "69ee0b9b",
   "invention": "hosted risk screen",
   "defect": "nesting the payload one level ({'args': {'q': ...}}) left no scannable text, and 'skipped' is not a denial",
   "fix": "every key and scalar leaf is screened; a payload deeper than 64 levels blocks"
  },
  {
   "id": "B3-08",
   "commit": "96104a15",
   "invention": "human-approval rule",
   "defect": "an unreadable approval threshold or spend ('$100', NaN) switched the approval rule off",
   "fix": "unreadable values hold the action for a human"
  },
  {
   "id": "B3-09",
   "commit": "4771fe3a",
   "invention": "public universal-proof and WORM verifiers",
   "defect": "a self-signed universal proof with no sub-proofs was VALID; an unsigned WORM package was VERIFIED_AUTHENTIC (both reproduced live before the fix)",
   "fix": "issuer keys pinned; empty composition is INSUFFICIENT_EVIDENCE; WORM requires this node's signature"
  },
  {
   "id": "B3-10",
   "commit": "b3f55b6e",
   "invention": "cross-benchmark attestation",
   "defect": "verify-attestation trusted the key inside the report, so invented benchmark results verified",
   "fix": "only the engine's own attestation key is accepted"
  },
  {
   "id": "B3-11",
   "commit": "a450297c",
   "invention": "live decision stream",
   "defect": "recorded decisions never reached SSE/SIEM subscribers (only dry runs did, and those were dropped)",
   "fix": "published after every successful record"
  }
 ],
 "tests": {
  "tests": 315,
  "passed": 314,
  "failures": 1,
  "errors": 0,
  "skipped": 0
 },
 "failed_cases": [
  "tests.test_pbft_qc_public_bundle::test_published_copies_are_identical_and_verifier_matches_source"
 ],
 "failed_cases_cause": "not a batch-3 defect: another session's uncommitted edit adds an October-2026 banner to the published copy of pbft-evolution2-2026-09-24/index.html, so it no longer matches its source; reported to the owner, not edited here",
 "deploy": "both gateway instances restarted after the last batch-3 commit (green 2026-10-07T14:17Z, blue 2026-10-07T18:54Z); verified by the live check below",
 "live_after_deploy": {
  "check": "self-signed universal proof with sub_proofs=[] (was VALID before 4771fe3a)",
  "at": "2026-10-07T19:19:49Z",
  "verdicts": {
   "cainstudio.online": [
    "INSUFFICIENT_EVIDENCE",
    "INSUFFICIENT_EVIDENCE",
    "INSUFFICIENT_EVIDENCE",
    "INSUFFICIENT_EVIDENCE"
   ],
   "mcpgate.online": [
    "INSUFFICIENT_EVIDENCE",
    "INSUFFICIENT_EVIDENCE",
    "INSUFFICIENT_EVIDENCE",
    "INSUFFICIENT_EVIDENCE"
   ],
   "clawx.click": [
    "INSUFFICIENT_EVIDENCE",
    "INSUFFICIENT_EVIDENCE",
    "INSUFFICIENT_EVIDENCE",
    "INSUFFICIENT_EVIDENCE"
   ]
  },
  "refused": 12,
  "of": 12
 },
 "independence": "same-project, self-verified; not third-party",
 "source_published": false
}
