{
  "$schema": "https://verifymcp.io/schemas/changelog.json",
  "server": "grahamnotgrant-blacksmith",
  "component": "blacksmith-mcp",
  "generated_at": "2026-09-21T04:29:01.540Z",
  "tracking_since": "2026-07-27",
  "counts": {
    "critical": 0,
    "security": 14,
    "functional": 0,
    "cosmetic": 0
  },
  "events": [
    {
      "id": "chg_01a0a877-22d4-712d-9d02-92cc468a866f",
      "kind": "check.verdict",
      "family": "stability",
      "subject_kind": "check",
      "subject": "stability",
      "subject_child": "",
      "from_code": "stability.building_history",
      "to_code": "stability.stable",
      "from_value": "0.97",
      "to_value": "pass",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-16",
      "occurred_at": "2026-09-16 04:26:14.689891+00",
      "observed_since": "2026-09-15",
      "source": "scan",
      "summary": "Stability (0.97 → pass)",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_01a0a877-22d4-712d-9d02-92cc468a866f"
    },
    {
      "id": "chg_01a07f4d-bd90-7911-9912-d71e175aa369",
      "kind": "check.verdict",
      "family": "stability",
      "subject_kind": "check",
      "subject": "stability",
      "subject_child": "",
      "from_code": "stability.building_history",
      "to_code": "stability.stable",
      "from_value": "0.97",
      "to_value": "pass",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-08",
      "occurred_at": "2026-09-08 04:36:36.228056+00",
      "observed_since": "2026-09-07",
      "source": "scan",
      "summary": "Stability (0.97 → pass)",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_01a07f4d-bd90-7911-9912-d71e175aa369"
    },
    {
      "id": "chg_01a05b45-1193-79aa-bc73-c38ee918a5e5",
      "kind": "check.verdict",
      "family": "stability",
      "subject_kind": "check",
      "subject": "stability",
      "subject_child": "",
      "from_code": "stability.building_history",
      "to_code": "stability.stable",
      "from_value": "0.97",
      "to_value": "pass",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-01",
      "occurred_at": "2026-09-01 04:40:48.237489+00",
      "observed_since": "2026-08-31",
      "source": "scan",
      "summary": "Stability (0.97 → pass)",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_01a05b45-1193-79aa-bc73-c38ee918a5e5"
    },
    {
      "id": "chg_01a03731-9d3f-7de9-bfb3-bcad891926e5",
      "kind": "check.verdict",
      "family": "stability",
      "subject_kind": "check",
      "subject": "stability",
      "subject_child": "",
      "from_code": "stability.building_history",
      "to_code": "stability.stable",
      "from_value": "0.97",
      "to_value": "pass",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-08-25",
      "occurred_at": "2026-08-25 04:33:13.421462+00",
      "observed_since": "2026-08-24",
      "source": "scan",
      "summary": "Stability (0.97 → pass)",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_01a03731-9d3f-7de9-bfb3-bcad891926e5"
    },
    {
      "id": "chg_019fda70-451f-797e-9b54-fba77783b2b5",
      "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": "131",
        "assessed": "132",
        "resolved": "131",
        "tree_source": "registry",
        "tree_status": "resolved"
      },
      "occurred_on": "2026-08-07",
      "occurred_at": "2026-08-07 04:16:58.551524+00",
      "observed_since": "2026-08-06",
      "source": "scan",
      "summary": "Known CVEs (partial → pass)",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_019fda70-451f-797e-9b54-fba77783b2b5"
    },
    {
      "id": "chg_019fd024-fe9f-76ba-907d-30608a248355",
      "kind": "advisory.resolved",
      "family": "vulnerabilities",
      "subject_kind": "advisory",
      "subject": "CVE-2026-69207",
      "subject_child": "",
      "from_code": "cve.transitive",
      "to_code": "cve.tree_partial",
      "from_value": "medium",
      "to_value": null,
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {
        "id": "CVE-2026-69207"
      },
      "occurred_on": "2026-08-05",
      "occurred_at": "2026-08-05 04:18:33.198602+00",
      "observed_since": "2026-08-04",
      "source": "scan",
      "summary": "CVE-2026-69207 no longer affects this package",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_019fd024-fe9f-76ba-907d-30608a248355"
    },
    {
      "id": "chg_019fd024-fea0-7257-872b-e0f70595f924",
      "kind": "check.verdict",
      "family": "vulnerabilities",
      "subject_kind": "check",
      "subject": "vulnerabilities",
      "subject_child": "",
      "from_code": "cve.transitive",
      "to_code": "cve.tree_partial",
      "from_value": "fail",
      "to_value": "partial",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {
        "seen": "134",
        "assessed": "131",
        "resolved": "130",
        "unresolved": "4",
        "tree_source": "registry",
        "tree_status": "partial"
      },
      "occurred_on": "2026-08-05",
      "occurred_at": "2026-08-05 04:18:33.198602+00",
      "observed_since": "2026-08-04",
      "source": "scan",
      "summary": "Known CVEs (fail → partial)",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_019fd024-fea0-7257-872b-e0f70595f924"
    },
    {
      "id": "chg_019fcb0f-0fac-7326-8e9b-32eda4ae1840",
      "kind": "advisory.identified",
      "family": "vulnerabilities",
      "subject_kind": "advisory",
      "subject": "CVE-2026-69207",
      "subject_child": "",
      "from_code": null,
      "to_code": "cve.transitive",
      "from_value": null,
      "to_value": "medium",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "id": "CVE-2026-69207",
        "severity": "medium"
      },
      "occurred_on": "2026-08-04",
      "occurred_at": "2026-08-04 04:36:29.698485+00",
      "observed_since": "2026-08-03",
      "source": "scan",
      "summary": "CVE-2026-69207 affects this package (medium)",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_019fcb0f-0fac-7326-8e9b-32eda4ae1840"
    },
    {
      "id": "chg_019fcb0f-0fad-7295-9f6f-a14dd939b815",
      "kind": "check.verdict",
      "family": "vulnerabilities",
      "subject_kind": "check",
      "subject": "vulnerabilities",
      "subject_child": "",
      "from_code": "cve.tree_partial",
      "to_code": "cve.transitive",
      "from_value": "partial",
      "to_value": "fail",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "path": "@modelcontextprotocol/sdk > hono",
        "refs": "[\"CVE-2026-69207\"]",
        "seen": "134",
        "package": "hono",
        "version": "4.12.33",
        "assessed": "131",
        "resolved": "130",
        "severity": "medium",
        "transitive": "1",
        "unresolved": "4",
        "vulnerable": "[{\"name\":\"hono\",\"version\":\"4.12.33\",\"depth\":2,\"path\":[\"@modelcontextprotocol/sdk\",\"hono\"],\"refs\":[\"CVE-2026-69207\"]}]",
        "tree_source": "registry",
        "tree_status": "partial"
      },
      "occurred_on": "2026-08-04",
      "occurred_at": "2026-08-04 04:36:29.698485+00",
      "observed_since": "2026-08-03",
      "source": "scan",
      "summary": "Known CVEs (partial → fail)",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_019fcb0f-0fad-7295-9f6f-a14dd939b815"
    },
    {
      "id": "chg_019fc4af-5ad0-7949-9d63-a927eefc48ff",
      "kind": "check.reverified",
      "family": "build-provenance",
      "subject_kind": "check",
      "subject": "build-provenance",
      "subject_child": "",
      "from_code": "provenance.inconclusive",
      "to_code": "provenance.none",
      "from_value": "unverified",
      "to_value": "fail",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-08-02",
      "occurred_at": "2026-08-02 22:54:14.147671+00",
      "observed_since": "2026-08-01",
      "source": "scan",
      "summary": "Provenance (unverified → fail)",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_019fc4af-5ad0-7949-9d63-a927eefc48ff"
    },
    {
      "id": "chg_019fc4af-5ad3-7762-921c-0176d9249ae0",
      "kind": "check.reverified",
      "family": "install-scripts",
      "subject_kind": "check",
      "subject": "install-scripts",
      "subject_child": "",
      "from_code": "installscript.inconclusive",
      "to_code": "installscript.none",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {
        "tier": "none"
      },
      "occurred_on": "2026-08-02",
      "occurred_at": "2026-08-02 22:54:14.147671+00",
      "observed_since": "2026-08-01",
      "source": "scan",
      "summary": "Install scripts (unverified → pass)",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_019fc4af-5ad3-7762-921c-0176d9249ae0"
    },
    {
      "id": "chg_019fc4af-5ad5-77d4-ac8f-4db07c3b6188",
      "kind": "check.reverified",
      "family": "vulnerabilities",
      "subject_kind": "check",
      "subject": "vulnerabilities",
      "subject_child": "",
      "from_code": "cve.inconclusive",
      "to_code": "cve.tree_partial",
      "from_value": "unverified",
      "to_value": "partial",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {
        "seen": "134",
        "assessed": "131",
        "resolved": "130",
        "unresolved": "4",
        "tree_source": "registry",
        "tree_status": "partial"
      },
      "occurred_on": "2026-08-02",
      "occurred_at": "2026-08-02 22:54:14.147671+00",
      "observed_since": "2026-08-01",
      "source": "scan",
      "summary": "Known CVEs (unverified → partial)",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_019fc4af-5ad5-77d4-ac8f-4db07c3b6188"
    },
    {
      "id": "chg_019fc4af-5ad6-7d3a-af05-fce4a0d12ade",
      "kind": "check.reason",
      "family": "stability",
      "subject_kind": "check",
      "subject": "stability",
      "subject_child": "",
      "from_code": "stability.sandbox_pending",
      "to_code": "stability.insufficient_history",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-08-02",
      "occurred_at": "2026-08-02 22:54:14.147671+00",
      "observed_since": "2026-08-01",
      "source": "scan",
      "summary": "Stability (Stability not yet verified: not enough scan history yet (needs a 30-day window).)",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_019fc4af-5ad6-7d3a-af05-fce4a0d12ade"
    },
    {
      "id": "chg_019fc259-a05c-7bd3-86e8-669751f0e6f0",
      "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-08-02",
      "occurred_at": "2026-08-02 12:01:21.486466+00",
      "observed_since": "2026-08-01",
      "source": "scan",
      "summary": "Malware scan (unverified → pass)",
      "link": "https://verifymcp.io/servers/grahamnotgrant-blacksmith/blacksmith-mcp#chg-chg_019fc259-a05c-7bd3-86e8-669751f0e6f0"
    }
  ],
  "days": [
    {
      "date": "2026-09-19",
      "total": 83,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-09-18",
      "total": 83,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 83,
        "to": 87,
        "delta": 4,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 25,
          "to_days": 26
        },
        "partial": false,
        "compared_to": "2026-09-17",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-09-17",
      "total": 82,
      "delta": -2,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-09-16",
      "total": 84,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 2
    },
    {
      "date": "2026-09-14",
      "total": 84,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 90,
        "to": 93,
        "delta": 3,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 27,
          "to_days": 28
        },
        "partial": false,
        "compared_to": "2026-09-13",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-09-12",
      "total": 83,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 83,
        "to": 87,
        "delta": 4,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 25,
          "to_days": 26
        },
        "partial": false,
        "compared_to": "2026-09-11",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-09-10",
      "total": 82,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 77,
        "to": 80,
        "delta": 3,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 23,
          "to_days": 24
        },
        "partial": false,
        "compared_to": "2026-09-09",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-09-09",
      "total": 81,
      "delta": -4,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    }
  ]
}