{
 "what": "Continuous verification of the live CAIN-42 surface, every 15 minutes, failures included. Method: scripts/ops/continuous_verify.py.",
 "latest": {
  "at": "2026-11-12T08:45:59Z",
  "passed": 8,
  "total": 9,
  "status": "FAILURES",
  "checks": [
   {
    "check": "site cainstudio.online",
    "pass": true,
    "detail": "HTTP 200 in 0.148 s",
    "seconds": 0.15
   },
   {
    "check": "site mcpgate.online",
    "pass": true,
    "detail": "HTTP 200 in 0.058 s",
    "seconds": 0.06
   },
   {
    "check": "site clawx.click",
    "pass": true,
    "detail": "HTTP 200 in 0.035 s",
    "seconds": 0.04
   },
   {
    "check": "gateway instance :8088",
    "pass": true,
    "detail": "HTTP 200 in 0.014 s",
    "seconds": 0.01
   },
   {
    "check": "gateway instance :8098",
    "pass": true,
    "detail": "HTTP 200 in 0.014 s",
    "seconds": 0.01
   },
   {
    "check": "catalog availability",
    "pass": true,
    "detail": "105 of 105 available; down (excluding the internal actionproof): []",
    "seconds": 0.05
   },
   {
    "check": "decision API",
    "pass": false,
    "detail": "HTTP 402, verdict None, 10.055 s",
    "seconds": 10.06
   },
   {
    "check": "MCP initialize mcpgate.online",
    "pass": true,
    "detail": "HTTP 200 in 10.104 s",
    "seconds": 10.1
   },
   {
    "check": "MCP initialize cainstudio.online",
    "pass": true,
    "detail": "HTTP 200 in 10.092 s",
    "seconds": 10.09
   }
  ]
 },
 "last_24h": {
  "runs": 96,
  "all_pass_runs": 58,
  "checks_run": 936,
  "checks_passed": 861,
  "failures": [
   {
    "at": "2026-11-12T00:30:15Z",
    "check": "catalog availability",
    "detail": "JSONDecodeError: Expecting value: line 1 column 1 (char 0)"
   },
   {
    "at": "2026-11-12T00:30:15Z",
    "check": "decision API",
    "detail": "HTTP 503, verdict None, 0.029 s"
   },
   {
    "at": "2026-11-12T00:30:15Z",
    "check": "MCP initialize mcpgate.online",
    "detail": "HTTP 503 in 0.033 s"
   },
   {
    "at": "2026-11-12T00:30:15Z",
    "check": "MCP initialize cainstudio.online",
    "detail": "HTTP 503 in 0.12 s"
   },
   {
    "at": "2026-11-12T00:45:31Z",
    "check": "gateway instance :8098",
    "detail": "HTTP 0 in 0.001 s"
   },
   {
    "at": "2026-11-12T01:00:34Z",
    "check": "governance end to end (public)",
    "detail": "{\"create\": 200, \"B_cannot_see\": 404, \"stolen_token_refused\": 403, \"alice_votes\": 409, \"hil_approval\": [200, true], \"tally\": [1.0, 0], \"compliance\": [200, true, \"limited\"], \"finalize\": \"pending\", \"audit_A\": \"valid\", \"verdict\": \"FAIL\"}"
   },
   {
    "at": "2026-11-12T02:00:33Z",
    "check": "gateway instance :8088",
    "detail": "HTTP 0 in 0.0 s"
   },
   {
    "at": "2026-11-12T02:00:33Z",
    "check": "governance end to end (public)",
    "detail": "{\"create\": 200, \"B_cannot_see\": 404, \"stolen_token_refused\": 403, \"alice_votes\": 409, \"hil_approval\": [200, true], \"tally\": [1.0, 0], \"compliance\": [200, true, \"limited\"], \"finalize\": \"pending\", \"audit_A\": \"valid\", \"verdict\": \"FAIL\"}"
   },
   {
    "at": "2026-11-12T02:00:33Z",
    "check": "cross-instance revocation + kill switch",
    "detail": "  File \"/usr/lib/python3.14/urllib/request.py\", line 1324, in do_open |     raise URLError(err) | urllib.error.URLError: <urlopen error [Errno 111] Connection refused>"
   },
   {
    "at": "2026-11-12T02:30:34Z",
    "check": "gateway instance :8088",
    "detail": "HTTP 0 in 0.001 s"
   },
   {
    "at": "2026-11-12T02:30:34Z",
    "check": "decision API",
    "detail": "HTTP 0, verdict None, 20.12 s"
   },
   {
    "at": "2026-11-12T03:00:47Z",
    "check": "gateway instance :8088",
    "detail": "HTTP 0 in 0.0 s"
   },
   {
    "at": "2026-11-12T03:00:47Z",
    "check": "governance end to end (public)",
    "detail": "{\"verdict\": \"FAIL\", \"reason\": \"token request failed\"}"
   },
   {
    "at": "2026-11-12T03:00:47Z",
    "check": "cross-instance revocation + kill switch",
    "detail": "  File \"/usr/lib/python3.14/urllib/request.py\", line 1324, in do_open |     raise URLError(err) | urllib.error.URLError: <urlopen error [Errno 111] Connection refused>"
   },
   {
    "at": "2026-11-12T03:15:40Z",
    "check": "decision API",
    "detail": "HTTP 0, verdict None, 20.124 s"
   },
   {
    "at": "2026-11-12T04:00:51Z",
    "check": "gateway instance :8098",
    "detail": "HTTP 0 in 5.026 s"
   },
   {
    "at": "2026-11-12T04:00:51Z",
    "check": "governance end to end (public)",
    "detail": "{\"create\": 200, \"B_cannot_see\": 404, \"stolen_token_refused\": 403, \"alice_votes\": 409, \"hil_approval\": [200, true], \"tally\": [1.0, 0], \"compliance\": [200, true, \"limited\"], \"finalize\": \"pending\", \"audit_A\": \"valid\", \"verdict\": \"FAIL\"}"
   },
   {
    "at": "2026-11-12T04:00:51Z",
    "check": "cross-instance revocation + kill switch",
    "detail": "    return self._sock.recv_into(b) |            ~~~~~~~~~~~~~~~~~~~~^^^ | TimeoutError: timed out"
   },
   {
    "at": "2026-11-12T04:15:26Z",
    "check": "gateway instance :8098",
    "detail": "HTTP 0 in 0.001 s"
   },
   {
    "at": "2026-11-12T05:02:15Z",
    "check": "site mcpgate.online",
    "detail": "HTTP 0 in 20.152 s"
   },
   {
    "at": "2026-11-12T05:02:15Z",
    "check": "gateway instance :8098",
    "detail": "HTTP 0 in 5.025 s"
   },
   {
    "at": "2026-11-12T05:02:15Z",
    "check": "decision API",
    "detail": "HTTP 402, verdict None, 10.144 s"
   },
   {
    "at": "2026-11-12T05:02:15Z",
    "check": "governance end to end (public)",
    "detail": "{\"verdict\": \"FAIL\", \"reason\": \"token request failed\"}"
   },
   {
    "at": "2026-11-12T05:02:15Z",
    "check": "DIDs + Policy Cards + TEE (public)",
    "detail": "{\"identity_create\": 402, \"did_key\": [404, \"\"], \"publish\": 404, \"resolve_public_no_key\": [404, true], \"resolve_after_revoke\": 404, \"policy_card_preview\": [200, [\"deny\"]], \"tee_snp\": [403, null], \"verdict\": \"FAIL\"}"
   },
   {
    "at": "2026-11-12T05:02:15Z",
    "check": "cross-instance revocation + kill switch",
    "detail": "    return self._sock.recv_into(b) |            ~~~~~~~~~~~~~~~~~~~~^^^ | TimeoutError: timed out"
   },
   {
    "at": "2026-11-12T05:16:17Z",
    "check": "gateway instance :8088",
    "detail": "HTTP 0 in 0.001 s"
   },
   {
    "at": "2026-11-12T05:16:17Z",
    "check": "decision API",
    "detail": "HTTP 0, verdict None, 20.154 s"
   },
   {
    "at": "2026-11-12T06:01:17Z",
    "check": "gateway instance :8088",
    "detail": "HTTP 0 in 0.0 s"
   },
   {
    "at": "2026-11-12T06:01:17Z",
    "check": "governance end to end (public)",
    "detail": "    return self._sslobj.read(len, buffer) |            ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ | TimeoutError: The read operation timed out"
   },
   {
    "at": "2026-11-12T06:15:54Z",
    "check": "gateway instance :8088",
    "detail": "HTTP 0 in 0.0 s"
   },
   {
    "at": "2026-11-12T06:30:21Z",
    "check": "gateway instance :8098",
    "detail": "HTTP 0 in 0.002 s"
   },
   {
    "at": "2026-11-12T06:46:01Z",
    "check": "gateway instance :8088",
    "detail": "HTTP 0 in 0.001 s"
   },
   {
    "at": "2026-11-12T06:46:01Z",
    "check": "decision API",
    "detail": "HTTP 0, verdict None, 20.121 s"
   },
   {
    "at": "2026-11-12T07:01:14Z",
    "check": "gateway instance :8088",
    "detail": "HTTP 0 in 0.001 s"
   },
   {
    "at": "2026-11-12T07:01:14Z",
    "check": "decision API",
    "detail": "HTTP 402, verdict None, 16.458 s"
   },
   {
    "at": "2026-11-12T07:01:14Z",
    "check": "MCP initialize mcpgate.online",
    "detail": "HTTP 0 in 20.171 s"
   },
   {
    "at": "2026-11-12T07:01:14Z",
    "check": "MCP initialize cainstudio.online",
    "detail": "HTTP 503 in 0.093 s"
   },
   {
    "at": "2026-11-12T07:01:14Z",
    "check": "governance end to end (public)",
    "detail": "{\"verdict\": \"FAIL\", \"reason\": \"token request failed\"}"
   },
   {
    "at": "2026-11-12T07:01:14Z",
    "check": "DIDs + Policy Cards + TEE (public)",
    "detail": "{\"identity_create\": 503, \"did_key\": [503, \"\"], \"publish\": 503, \"resolve_public_no_key\": [503, true], \"resolve_after_revoke\": 503, \"policy_card_preview\": [503, []], \"tee_snp\": [503, null], \"verdict\": \"FAIL\"}"
   },
   {
    "at": "2026-11-12T07:01:14Z",
    "check": "cross-instance revocation + kill switch",
    "detail": "  File \"/usr/lib/python3.14/urllib/request.py\", line 1324, in do_open |     raise URLError(err) | urllib.error.URLError: <urlopen error [Errno 111] Connection refused>"
   },
   {
    "at": "2026-11-12T07:45:30Z",
    "check": "site cainstudio.online",
    "detail": "HTTP 503 in 0.353 s"
   },
   {
    "at": "2026-11-12T07:45:30Z",
    "check": "site mcpgate.online",
    "detail": "HTTP 503 in 0.029 s"
   },
   {
    "at": "2026-11-12T07:45:30Z",
    "check": "gateway instance :8088",
    "detail": "HTTP 0 in 0.001 s"
   },
   {
    "at": "2026-11-12T07:45:30Z",
    "check": "gateway instance :8098",
    "detail": "HTTP 0 in 5.025 s"
   },
   {
    "at": "2026-11-12T07:45:30Z",
    "check": "catalog availability",
    "detail": "JSONDecodeError: Expecting value: line 1 column 1 (char 0)"
   },
   {
    "at": "2026-11-12T07:45:30Z",
    "check": "decision API",
    "detail": "HTTP 503, verdict None, 0.183 s"
   },
   {
    "at": "2026-11-12T07:45:30Z",
    "check": "MCP initialize mcpgate.online",
    "detail": "HTTP 503 in 0.029 s"
   },
   {
    "at": "2026-11-12T07:45:30Z",
    "check": "MCP initialize cainstudio.online",
    "detail": "HTTP 503 in 0.024 s"
   },
   {
    "at": "2026-11-12T08:00:43Z",
    "check": "governance end to end (public)",
    "detail": "{\"create\": 200, \"B_cannot_see\": 404, \"stolen_token_refused\": 403, \"alice_votes\": 409, \"hil_approval\": [200, true], \"tally\": [1.0, 0], \"compliance\": [200, true, \"limited\"], \"finalize\": \"pending\", \"audit_A\": \"valid\", \"verdict\": \"FAIL\"}"
   },
   {
    "at": "2026-11-12T08:45:59Z",
    "check": "decision API",
    "detail": "HTTP 402, verdict None, 10.055 s"
   }
  ]
 }
}