{
  "$schema": "https://verifymcp.io/schemas/changelog.json",
  "server": "pattrnlabs-grain",
  "component": "grain-tools",
  "generated_at": "2026-09-20T17:29:51.194Z",
  "tracking_since": "2026-09-14",
  "counts": {
    "critical": 0,
    "security": 9,
    "functional": 0,
    "cosmetic": 0
  },
  "events": [
    {
      "id": "chg_01a0bf1e-8e48-7f3a-bfe2-e13a66165aa5",
      "kind": "check.reason",
      "family": "tool-safety-injection",
      "subject_kind": "check",
      "subject": "tool-safety-injection",
      "subject_child": "",
      "from_code": "toolsafety.sandbox_failed",
      "to_code": "toolsafety.sandbox_pending",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {
        "reason": "version_superseded"
      },
      "occurred_on": "2026-09-20",
      "occurred_at": "2026-09-20 14:00:45.267703+00",
      "observed_since": "2026-09-19",
      "source": "scan",
      "summary": "Tool safety (Tool safety not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet.)",
      "link": "https://verifymcp.io/servers/pattrnlabs-grain/grain-tools#chg-chg_01a0bf1e-8e48-7f3a-bfe2-e13a66165aa5"
    },
    {
      "id": "chg_01a0bf1e-8e4f-7347-8dba-0b8ccbdd1bad",
      "kind": "check.reason",
      "family": "stability",
      "subject_kind": "check",
      "subject": "stability",
      "subject_child": "",
      "from_code": "stability.sandbox_failed",
      "to_code": "stability.sandbox_pending",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {
        "reason": "version_superseded"
      },
      "occurred_on": "2026-09-20",
      "occurred_at": "2026-09-20 14:00:45.267703+00",
      "observed_since": "2026-09-19",
      "source": "scan",
      "summary": "Stability (Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.)",
      "link": "https://verifymcp.io/servers/pattrnlabs-grain/grain-tools#chg-chg_01a0bf1e-8e4f-7347-8dba-0b8ccbdd1bad"
    },
    {
      "id": "chg_01a0a862-d4ea-7ba3-8448-34a09d4cf9b8",
      "kind": "check.reverified",
      "family": "vulnerabilities",
      "subject_kind": "check",
      "subject": "vulnerabilities",
      "subject_child": "",
      "from_code": "cve.inconclusive",
      "to_code": "cve.direct",
      "from_value": "unverified",
      "to_value": "fail",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "path": "snowflake-sdk",
        "refs": "[\"CVE-2026-54285\",\"CVE-2026-59892\",\"CVE-2026-41650\",\"CVE-2026-44294\",\"CVE-2026-44293\",\"CVE-2026-44289\",\"CVE-2026-44291\",\"CVE-2026-54269\",\"CVE-2026-44292\",\"CVE-2026-59877\",\"CVE-2026-45740\",\"CVE-2026-44290\",\"CVE-2026-44288\",\"CVE-2026-48712\",\"CVE-2025-46328\",\"CVE-2025-24791\",\"CVE-2026-77465\",\"CVE-2026-63376\",\"CVE-2026-41907\",\"CVE-2026-41907\"]",
        "seen": "575",
        "direct": "1",
        "package": "snowflake-sdk",
        "version": "1.15.0",
        "assessed": "401",
        "resolved": "400",
        "severity": "medium",
        "transitive": "7",
        "unresolved": "175",
        "vulnerable": "[{\"name\":\"@opentelemetry/core\",\"version\":\"2.7.1\",\"depth\":2,\"path\":[\"@opentelemetry/exporter-trace-otlp-http\",\"@opentelemetry/core\"],\"refs\":[\"CVE-2026-54285\"]},{\"name\":\"@opentelemetry/propagator-jaeger\",\"version\":\"2.7.1\",\"depth\":2,\"path\":[\"@opentelemetry/sdk-node\",\"@opentelemetry/propagator-jaeger\"],\"refs\":[\"CVE-2026-59892\"]},{\"name\":\"fast-xml-parser\",\"version\":\"4.5.7\",\"depth\":2,\"path\":[\"snowflake-sdk\",\"fast-xml-parser\"],\"refs\":[\"CVE-2026-41650\"]},{\"name\":\"protobufjs\",\"version\":\"8.0.1\",\"depth\":3,\"path\":[\"@op",
        "tree_source": "registry",
        "tree_status": "partial"
      },
      "occurred_on": "2026-09-16",
      "occurred_at": "2026-09-16 04:04:04.332828+00",
      "observed_since": "2026-09-15",
      "source": "scan",
      "summary": "Known CVEs (unverified → fail)",
      "link": "https://verifymcp.io/servers/pattrnlabs-grain/grain-tools#chg-chg_01a0a862-d4ea-7ba3-8448-34a09d4cf9b8"
    },
    {
      "id": "chg_01a0a862-d4eb-7895-a559-9e588c91054a",
      "kind": "check.reason",
      "family": "stability",
      "subject_kind": "check",
      "subject": "stability",
      "subject_child": "",
      "from_code": "stability.sandbox_pending",
      "to_code": "stability.sandbox_failed",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {
        "reason": "needs_declared_env",
        "status": "unreachable"
      },
      "occurred_on": "2026-09-16",
      "occurred_at": "2026-09-16 04:04:04.332828+00",
      "observed_since": "2026-09-15",
      "source": "scan",
      "summary": "Stability (Stability not yet verified: this server's registry entry declares environment variables (an API key or similar) that our sandbox does not supply, so we have no schema to compare.)",
      "link": "https://verifymcp.io/servers/pattrnlabs-grain/grain-tools#chg-chg_01a0a862-d4eb-7895-a559-9e588c91054a"
    },
    {
      "id": "chg_01a0a862-d4eb-7d83-b86c-dcddf45e219d",
      "kind": "check.reason",
      "family": "tool-safety-injection",
      "subject_kind": "check",
      "subject": "tool-safety-injection",
      "subject_child": "",
      "from_code": "toolsafety.sandbox_pending",
      "to_code": "toolsafety.sandbox_failed",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {
        "reason": "needs_declared_env",
        "status": "unreachable"
      },
      "occurred_on": "2026-09-16",
      "occurred_at": "2026-09-16 04:04:04.332828+00",
      "observed_since": "2026-09-15",
      "source": "scan",
      "summary": "Tool safety (Tool safety not yet verified: this server's registry entry declares environment variables (an API key or similar) that our sandbox does not supply, so we have no tool text to scan.)",
      "link": "https://verifymcp.io/servers/pattrnlabs-grain/grain-tools#chg-chg_01a0a862-d4eb-7d83-b86c-dcddf45e219d"
    },
    {
      "id": "chg_01a0a3aa-1d20-7a9e-92aa-f18bbf201dbc",
      "kind": "check.unverifiable",
      "family": "vulnerabilities",
      "subject_kind": "check",
      "subject": "vulnerabilities",
      "subject_child": "",
      "from_code": "cve.direct",
      "to_code": "cve.inconclusive",
      "from_value": "fail",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "reason": "root_version_missing"
      },
      "occurred_on": "2026-09-15",
      "occurred_at": "2026-09-15 06:03:49.777786+00",
      "observed_since": "2026-09-14",
      "source": "scan",
      "summary": "Known CVEs (fail → unverified)",
      "link": "https://verifymcp.io/servers/pattrnlabs-grain/grain-tools#chg-chg_01a0a3aa-1d20-7a9e-92aa-f18bbf201dbc"
    },
    {
      "id": "chg_01a0a3aa-1d22-7f34-a892-92a83b97d2dc",
      "kind": "check.reason",
      "family": "tool-safety-injection",
      "subject_kind": "check",
      "subject": "tool-safety-injection",
      "subject_child": "",
      "from_code": "toolsafety.sandbox_failed",
      "to_code": "toolsafety.sandbox_pending",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {
        "reason": "version_superseded"
      },
      "occurred_on": "2026-09-15",
      "occurred_at": "2026-09-15 06:03:49.777786+00",
      "observed_since": "2026-09-14",
      "source": "scan",
      "summary": "Tool safety (Tool safety not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet.)",
      "link": "https://verifymcp.io/servers/pattrnlabs-grain/grain-tools#chg-chg_01a0a3aa-1d22-7f34-a892-92a83b97d2dc"
    },
    {
      "id": "chg_01a0a3aa-1d23-7575-a331-56b77458537d",
      "kind": "check.reason",
      "family": "stability",
      "subject_kind": "check",
      "subject": "stability",
      "subject_child": "",
      "from_code": "stability.sandbox_failed",
      "to_code": "stability.sandbox_pending",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {
        "reason": "version_superseded"
      },
      "occurred_on": "2026-09-15",
      "occurred_at": "2026-09-15 06:03:49.777786+00",
      "observed_since": "2026-09-14",
      "source": "scan",
      "summary": "Stability (Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.)",
      "link": "https://verifymcp.io/servers/pattrnlabs-grain/grain-tools#chg-chg_01a0a3aa-1d23-7575-a331-56b77458537d"
    },
    {
      "id": "chg_01a0a33c-f3dc-71c8-892b-4ef98d9e345d",
      "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 04:04:35.843174+00",
      "observed_since": "2026-09-14",
      "source": "scan",
      "summary": "Malware scan (unverified → pass)",
      "link": "https://verifymcp.io/servers/pattrnlabs-grain/grain-tools#chg-chg_01a0a33c-f3dc-71c8-892b-4ef98d9e345d"
    }
  ],
  "days": [
    {
      "date": "2026-09-20",
      "total": 32,
      "delta": -3,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 8
    },
    {
      "date": "2026-09-16",
      "total": 35,
      "delta": 7,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 7
    },
    {
      "date": "2026-09-15",
      "total": 28,
      "delta": 8,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 9
    },
    {
      "date": "2026-09-14",
      "total": 20,
      "delta": null,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 0
    }
  ]
}