{
  "$schema": "https://verifymcp.io/schemas/changelog.json",
  "server": "app-oddsrail-polymarket-kalshi-arbitrage",
  "component": "oddsrail",
  "generated_at": "2026-09-22T01:03:44.875Z",
  "tracking_since": "2026-08-31",
  "counts": {
    "critical": 0,
    "security": 10,
    "functional": 0,
    "cosmetic": 0
  },
  "events": [
    {
      "id": "chg_01a0b475-8bda-7881-b6a7-f557e0efe45c",
      "kind": "check.reverified",
      "family": "supplychain-malware",
      "subject_kind": "check",
      "subject": "supplychain-malware",
      "subject_child": "",
      "from_code": "supplychain.malware_inconclusive",
      "to_code": "supplychain.malware_clean",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-18",
      "occurred_at": "2026-09-18 12:19:57.037128+00",
      "observed_since": "2026-09-17",
      "source": "scan",
      "summary": "Malware scan (unverified → pass)",
      "link": "https://verifymcp.io/servers/app-oddsrail-polymarket-kalshi-arbitrage/oddsrail#chg-chg_01a0b475-8bda-7881-b6a7-f557e0efe45c"
    },
    {
      "id": "chg_01a0af74-27ea-7581-bcc6-9ee08fcc4855",
      "kind": "check.unverifiable",
      "family": "supplychain-malware",
      "subject_kind": "check",
      "subject": "supplychain-malware",
      "subject_child": "",
      "from_code": "supplychain.malware_clean",
      "to_code": "supplychain.malware_inconclusive",
      "from_value": "pass",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "reason": "vendor_no_verdict"
      },
      "occurred_on": "2026-09-17",
      "occurred_at": "2026-09-17 13:00:19.456758+00",
      "observed_since": "2026-09-16",
      "source": "scan",
      "summary": "Malware scan (pass → unverified)",
      "link": "https://verifymcp.io/servers/app-oddsrail-polymarket-kalshi-arbitrage/oddsrail#chg-chg_01a0af74-27ea-7581-bcc6-9ee08fcc4855"
    },
    {
      "id": "chg_01a0a9ab-76e1-7ab4-9280-80696f8be08f",
      "kind": "check.verdict",
      "family": "vulnerabilities",
      "subject_kind": "check",
      "subject": "vulnerabilities",
      "subject_child": "",
      "from_code": "cve.tree_partial",
      "to_code": "cve.none",
      "from_value": "partial",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {
        "seen": "58",
        "assessed": "59",
        "resolved": "58",
        "tree_source": "registry",
        "tree_status": "resolved"
      },
      "occurred_on": "2026-09-16",
      "occurred_at": "2026-09-16 10:03:01.391197+00",
      "observed_since": "2026-09-15",
      "source": "scan",
      "summary": "Known CVEs (partial → pass)",
      "link": "https://verifymcp.io/servers/app-oddsrail-polymarket-kalshi-arbitrage/oddsrail#chg-chg_01a0a9ab-76e1-7ab4-9280-80696f8be08f"
    },
    {
      "id": "chg_01a0a4bb-4f06-7ea4-b105-27216a259e08",
      "kind": "check.verdict",
      "family": "vulnerabilities",
      "subject_kind": "check",
      "subject": "vulnerabilities",
      "subject_child": "",
      "from_code": "cve.none",
      "to_code": "cve.tree_partial",
      "from_value": "pass",
      "to_value": "partial",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "seen": "59",
        "assessed": "46",
        "resolved": "45",
        "unresolved": "14",
        "tree_source": "registry",
        "tree_status": "partial"
      },
      "occurred_on": "2026-09-15",
      "occurred_at": "2026-09-15 11:02:13.905998+00",
      "observed_since": "2026-09-14",
      "source": "scan",
      "summary": "Known CVEs (pass → partial)",
      "link": "https://verifymcp.io/servers/app-oddsrail-polymarket-kalshi-arbitrage/oddsrail#chg-chg_01a0a4bb-4f06-7ea4-b105-27216a259e08"
    },
    {
      "id": "chg_01a0a4bb-4f0a-7b51-81a8-524bc493296d",
      "kind": "check.reverified",
      "family": "supplychain-malware",
      "subject_kind": "check",
      "subject": "supplychain-malware",
      "subject_child": "",
      "from_code": "supplychain.malware_inconclusive",
      "to_code": "supplychain.malware_clean",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-15",
      "occurred_at": "2026-09-15 11:02:13.905998+00",
      "observed_since": "2026-09-14",
      "source": "scan",
      "summary": "Malware scan (unverified → pass)",
      "link": "https://verifymcp.io/servers/app-oddsrail-polymarket-kalshi-arbitrage/oddsrail#chg-chg_01a0a4bb-4f0a-7b51-81a8-524bc493296d"
    },
    {
      "id": "chg_01a0a000-fdfd-7227-848d-2704e6c5c66b",
      "kind": "check.unverifiable",
      "family": "supplychain-malware",
      "subject_kind": "check",
      "subject": "supplychain-malware",
      "subject_child": "",
      "from_code": "supplychain.malware_clean",
      "to_code": "supplychain.malware_inconclusive",
      "from_value": "pass",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "reason": "vendor_no_verdict"
      },
      "occurred_on": "2026-09-14",
      "occurred_at": "2026-09-14 13:00:14.188763+00",
      "observed_since": "2026-09-13",
      "source": "scan",
      "summary": "Malware scan (pass → unverified)",
      "link": "https://verifymcp.io/servers/app-oddsrail-polymarket-kalshi-arbitrage/oddsrail#chg-chg_01a0a000-fdfd-7227-848d-2704e6c5c66b"
    },
    {
      "id": "chg_01a090c6-7d07-7641-b277-7151ad1eea80",
      "kind": "check.verdict",
      "family": "vulnerabilities",
      "subject_kind": "check",
      "subject": "vulnerabilities",
      "subject_child": "",
      "from_code": "cve.tree_partial",
      "to_code": "cve.none",
      "from_value": "partial",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {
        "seen": "58",
        "assessed": "59",
        "resolved": "58",
        "tree_source": "registry",
        "tree_status": "resolved"
      },
      "occurred_on": "2026-09-11",
      "occurred_at": "2026-09-11 14:02:01.847607+00",
      "observed_since": "2026-09-10",
      "source": "scan",
      "summary": "Known CVEs (partial → pass)",
      "link": "https://verifymcp.io/servers/app-oddsrail-polymarket-kalshi-arbitrage/oddsrail#chg-chg_01a090c6-7d07-7641-b277-7151ad1eea80"
    },
    {
      "id": "chg_01a08afb-7bf3-7399-8598-a747f5750c58",
      "kind": "check.verdict",
      "family": "vulnerabilities",
      "subject_kind": "check",
      "subject": "vulnerabilities",
      "subject_child": "",
      "from_code": "cve.none",
      "to_code": "cve.tree_partial",
      "from_value": "pass",
      "to_value": "partial",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "seen": "62",
        "assessed": "49",
        "resolved": "48",
        "unresolved": "14",
        "tree_source": "registry",
        "tree_status": "partial"
      },
      "occurred_on": "2026-09-10",
      "occurred_at": "2026-09-10 11:02:11.936416+00",
      "observed_since": "2026-09-09",
      "source": "scan",
      "summary": "Known CVEs (pass → partial)",
      "link": "https://verifymcp.io/servers/app-oddsrail-polymarket-kalshi-arbitrage/oddsrail#chg-chg_01a08afb-7bf3-7399-8598-a747f5750c58"
    },
    {
      "id": "chg_01a066ee-03ec-7e18-b4d9-f1228187daf7",
      "kind": "check.reverified",
      "family": "supplychain-malware",
      "subject_kind": "check",
      "subject": "supplychain-malware",
      "subject_child": "",
      "from_code": "supplychain.malware_inconclusive",
      "to_code": "supplychain.malware_clean",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-03",
      "occurred_at": "2026-09-03 11:01:09.654795+00",
      "observed_since": "2026-09-02",
      "source": "scan",
      "summary": "Malware scan (unverified → pass)",
      "link": "https://verifymcp.io/servers/app-oddsrail-polymarket-kalshi-arbitrage/oddsrail#chg-chg_01a066ee-03ec-7e18-b4d9-f1228187daf7"
    },
    {
      "id": "chg_01a06137-3efb-756b-afe8-1eb98cf288c1",
      "kind": "check.unverifiable",
      "family": "supplychain-malware",
      "subject_kind": "check",
      "subject": "supplychain-malware",
      "subject_child": "",
      "from_code": "supplychain.malware_clean",
      "to_code": "supplychain.malware_inconclusive",
      "from_value": "pass",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "reason": "vendor_not_cached"
      },
      "occurred_on": "2026-09-02",
      "occurred_at": "2026-09-02 08:23:25.470626+00",
      "observed_since": "2026-09-01",
      "source": "scan",
      "summary": "Malware scan (pass → unverified)",
      "link": "https://verifymcp.io/servers/app-oddsrail-polymarket-kalshi-arbitrage/oddsrail#chg-chg_01a06137-3efb-756b-afe8-1eb98cf288c1"
    }
  ],
  "days": [
    {
      "date": "2026-09-20",
      "total": 76,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 63,
        "to": 67,
        "delta": 4,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 19,
          "to_days": 20
        },
        "partial": false,
        "compared_to": "2026-09-19",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-09-18",
      "total": 75,
      "delta": 16,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-09-17",
      "total": 59,
      "delta": -15,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-09-16",
      "total": 74,
      "delta": 3,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 2
    },
    {
      "date": "2026-09-15",
      "total": 71,
      "delta": 13,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 3
    },
    {
      "date": "2026-09-14",
      "total": 58,
      "delta": -14,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-09-11",
      "total": 72,
      "delta": 3,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 2
    },
    {
      "date": "2026-09-10",
      "total": 69,
      "delta": -2,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 2
    }
  ]
}