{
  "all_passed": true,
  "mutation_check": "tests/test_cain42_e37_federation.py::test_race_oracle_catches_a_broken_gate",
  "oracle": "at every MCPGate ALLOW, a dry-run of the same request against the CURRENT state must also ALLOW",
  "repetitions_per_race": 100,
  "rows": [
    {
      "deterministic_replay": true,
      "executions_observed": 50,
      "exhaustive_schedules": 5,
      "id": "RT-E37-01",
      "name": "revocation vs execution",
      "op": "revocation",
      "passed": true,
      "random_schedules": 100,
      "violations": []
    },
    {
      "deterministic_replay": true,
      "executions_observed": 58,
      "exhaustive_schedules": 5,
      "id": "RT-E37-02",
      "name": "policy change vs authorization",
      "op": "policy_change",
      "passed": true,
      "random_schedules": 100,
      "violations": []
    },
    {
      "deterministic_replay": true,
      "executions_observed": 56,
      "exhaustive_schedules": 5,
      "id": "RT-E37-03",
      "name": "authority change vs authorization",
      "op": "authority_shrink",
      "passed": true,
      "random_schedules": 100,
      "violations": []
    },
    {
      "deterministic_replay": true,
      "executions_observed": 54,
      "exhaustive_schedules": 5,
      "id": "RT-E37-04",
      "name": "concurrent dispute",
      "op": "dispute",
      "passed": true,
      "random_schedules": 100,
      "violations": []
    },
    {
      "deterministic_replay": true,
      "executions_observed": 43,
      "exhaustive_schedules": 5,
      "id": "RT-E37-05",
      "name": "concurrent termination",
      "op": "termination",
      "passed": true,
      "random_schedules": 100,
      "violations": []
    },
    {
      "deterministic_replay": true,
      "executions_observed": 50,
      "exhaustive_schedules": 5,
      "id": "RT-E37-06",
      "name": "emergency vs execution",
      "op": "emergency_suspend",
      "passed": true,
      "random_schedules": 100,
      "violations": []
    },
    {
      "deterministic_replay": true,
      "executions_observed": 45,
      "exhaustive_schedules": 5,
      "id": "RT-E37-07",
      "name": "network partition vs contract state",
      "op": "partition_fork",
      "passed": true,
      "random_schedules": 100,
      "violations": []
    },
    {
      "deterministic_replay": true,
      "executions_observed": 150,
      "exhaustive_schedules": 5,
      "id": "RT-E37-08",
      "name": "contract update / concurrent renewal vs execution",
      "op": "contract_renewal",
      "passed": true,
      "random_schedules": 100,
      "violations": []
    },
    {
      "deterministic_replay": true,
      "executions_observed": 60,
      "exhaustive_schedules": 5,
      "id": "RT-E37-09",
      "name": "assurance expiry vs execution",
      "op": "assurance_expiry",
      "passed": true,
      "random_schedules": 100,
      "violations": []
    },
    {
      "deterministic_replay": true,
      "executions_observed": 205,
      "exhaustive_schedules": 5,
      "id": "RT-E37-10",
      "name": "duplicate execution / cross-domain MCPGate race",
      "op": "noop_duplicate_exec",
      "passed": true,
      "random_schedules": 100,
      "violations": []
    }
  ],
  "thread_race_history": "c88441cd had no lock: with a 2 ms fault injected between the gate checks and tool start, a tool could start after a revocation had returned (peer session E38: 94/100; this builder's mutation test reproduces it). Fixed by one domain lock over checks, consumption, token and tool START; the tool is awaited outside the lock.",
  "thread_races": [
    {
      "allow": 116,
      "block": 84,
      "id": "RT-E37-11",
      "injected_delay_s": 0.0,
      "name": "revocation || MCPGate on real threads (tool start linearized)",
      "passed": true,
      "tool_started_after_revocation": 0,
      "trials": 200
    },
    {
      "allow": 114,
      "block": 86,
      "id": "RT-E37-11",
      "injected_delay_s": 0.002,
      "name": "revocation || MCPGate on real threads (tool start linearized)",
      "passed": true,
      "tool_started_after_revocation": 0,
      "trials": 200
    }
  ]
}
