{
  "$schema": "https://verifymcp.io/schemas/changelog.json",
  "server": "bitterdev-pdf-letter-mcp",
  "component": "pdf-letter-mcp",
  "generated_at": "2026-09-21T14:55:32.902Z",
  "tracking_since": "2026-07-27",
  "counts": {
    "critical": 0,
    "security": 13,
    "functional": 0,
    "cosmetic": 0
  },
  "events": [
    {
      "id": "chg_01a0ae63-525c-71ed-bca4-c1694109edf0",
      "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-17",
      "occurred_at": "2026-09-17 08:02:19.055513+00",
      "observed_since": "2026-09-16",
      "source": "scan",
      "summary": "Stability (0.97 → pass)",
      "link": "https://verifymcp.io/servers/bitterdev-pdf-letter-mcp/pdf-letter-mcp#chg-chg_01a0ae63-525c-71ed-bca4-c1694109edf0"
    },
    {
      "id": "chg_01a08530-34e7-76da-a2e6-049106116f29",
      "kind": "advisory.identified",
      "family": "vulnerabilities",
      "subject_kind": "advisory",
      "subject": "GHSA-rgj7-g3m4-5g8c",
      "subject_child": "",
      "from_code": null,
      "to_code": "cve.direct",
      "from_value": null,
      "to_value": "high",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "id": "GHSA-rgj7-g3m4-5g8c",
        "severity": "high"
      },
      "occurred_on": "2026-09-09",
      "occurred_at": "2026-09-09 08:02:03.93693+00",
      "observed_since": "2026-09-08",
      "source": "scan",
      "summary": "GHSA-rgj7-g3m4-5g8c affects this package (high)",
      "link": "https://verifymcp.io/servers/bitterdev-pdf-letter-mcp/pdf-letter-mcp#chg-chg_01a08530-34e7-76da-a2e6-049106116f29"
    },
    {
      "id": "chg_01a08530-34eb-7a52-a7ed-ca5e548f0e46",
      "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-09",
      "occurred_at": "2026-09-09 08:02:03.93693+00",
      "observed_since": "2026-09-08",
      "source": "scan",
      "summary": "Stability (0.97 → pass)",
      "link": "https://verifymcp.io/servers/bitterdev-pdf-letter-mcp/pdf-letter-mcp#chg-chg_01a08530-34eb-7a52-a7ed-ca5e548f0e46"
    },
    {
      "id": "chg_01a06124-2a13-75cf-ae3f-031b5ea0ea5e",
      "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-02",
      "occurred_at": "2026-09-02 08:02:34.947059+00",
      "observed_since": "2026-09-01",
      "source": "scan",
      "summary": "Stability (0.97 → pass)",
      "link": "https://verifymcp.io/servers/bitterdev-pdf-letter-mcp/pdf-letter-mcp#chg-chg_01a06124-2a13-75cf-ae3f-031b5ea0ea5e"
    },
    {
      "id": "chg_019fc44d-5eab-770c-bfec-f5fffb36f70c",
      "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 21:07:12.664868+00",
      "observed_since": "2026-08-01",
      "source": "scan",
      "summary": "Provenance (unverified → fail)",
      "link": "https://verifymcp.io/servers/bitterdev-pdf-letter-mcp/pdf-letter-mcp#chg-chg_019fc44d-5eab-770c-bfec-f5fffb36f70c"
    },
    {
      "id": "chg_019fc44d-5eab-7ecd-bc44-73fcaae7d42a",
      "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": "sharp",
        "refs": "[\"GHSA-f88m-g3jw-g9cj\"]",
        "seen": "137",
        "direct": "1",
        "package": "sharp",
        "version": "0.34.5",
        "assessed": "134",
        "resolved": "133",
        "severity": "high",
        "unresolved": "4",
        "vulnerable": "[{\"name\":\"sharp\",\"version\":\"0.34.5\",\"depth\":1,\"path\":[\"sharp\"],\"refs\":[\"GHSA-f88m-g3jw-g9cj\"]}]",
        "tree_source": "registry",
        "tree_status": "partial"
      },
      "occurred_on": "2026-08-02",
      "occurred_at": "2026-08-02 21:07:12.664868+00",
      "observed_since": "2026-08-01",
      "source": "scan",
      "summary": "Known CVEs (unverified → fail)",
      "link": "https://verifymcp.io/servers/bitterdev-pdf-letter-mcp/pdf-letter-mcp#chg-chg_019fc44d-5eab-7ecd-bc44-73fcaae7d42a"
    },
    {
      "id": "chg_019fc44d-5eac-7e5b-adaf-7dc9f584536b",
      "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 21:07:12.664868+00",
      "observed_since": "2026-08-01",
      "source": "scan",
      "summary": "Install scripts (unverified → pass)",
      "link": "https://verifymcp.io/servers/bitterdev-pdf-letter-mcp/pdf-letter-mcp#chg-chg_019fc44d-5eac-7e5b-adaf-7dc9f584536b"
    },
    {
      "id": "chg_019fc44d-5ead-73ce-95ba-00953c9b3000",
      "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 21:07:12.664868+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/bitterdev-pdf-letter-mcp/pdf-letter-mcp#chg-chg_019fc44d-5ead-73ce-95ba-00953c9b3000"
    },
    {
      "id": "chg_019fc343-d2cf-7c31-8c10-7a5a6e97d550",
      "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 16:17:09.815553+00",
      "observed_since": "2026-08-01",
      "source": "scan",
      "summary": "Malware scan (unverified → pass)",
      "link": "https://verifymcp.io/servers/bitterdev-pdf-letter-mcp/pdf-letter-mcp#chg-chg_019fc343-d2cf-7c31-8c10-7a5a6e97d550"
    },
    {
      "id": "chg_019fab7d-84d9-7cc4-92bb-c923ebe2fcc9",
      "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-07-29",
      "occurred_at": "2026-07-29 01:29:17.770439+00",
      "observed_since": "2026-07-27",
      "source": "scan",
      "summary": "Provenance (unverified → fail)",
      "link": "https://verifymcp.io/servers/bitterdev-pdf-letter-mcp/pdf-letter-mcp#chg-chg_019fab7d-84d9-7cc4-92bb-c923ebe2fcc9"
    },
    {
      "id": "chg_019fab7d-84db-737b-98d0-4c961bbf0833",
      "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": "sharp",
        "refs": "[\"GHSA-f88m-g3jw-g9cj\"]",
        "seen": "137",
        "direct": "1",
        "package": "sharp",
        "version": "0.34.5",
        "assessed": "134",
        "resolved": "133",
        "severity": "high",
        "unresolved": "4",
        "vulnerable": "[{\"name\":\"sharp\",\"version\":\"0.34.5\",\"depth\":1,\"path\":[\"sharp\"],\"refs\":[\"GHSA-f88m-g3jw-g9cj\"]}]",
        "tree_source": "registry",
        "tree_status": "partial"
      },
      "occurred_on": "2026-07-29",
      "occurred_at": "2026-07-29 01:29:17.770439+00",
      "observed_since": "2026-07-27",
      "source": "scan",
      "summary": "Known CVEs (unverified → fail)",
      "link": "https://verifymcp.io/servers/bitterdev-pdf-letter-mcp/pdf-letter-mcp#chg-chg_019fab7d-84db-737b-98d0-4c961bbf0833"
    },
    {
      "id": "chg_019fab7d-84db-7b47-823b-e4b3c30fb5dc",
      "kind": "advisory.identified",
      "family": "vulnerabilities",
      "subject_kind": "advisory",
      "subject": "GHSA-f88m-g3jw-g9cj",
      "subject_child": "",
      "from_code": null,
      "to_code": "cve.direct",
      "from_value": null,
      "to_value": "high",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "id": "GHSA-f88m-g3jw-g9cj",
        "severity": "high"
      },
      "occurred_on": "2026-07-29",
      "occurred_at": "2026-07-29 01:29:17.770439+00",
      "observed_since": "2026-07-27",
      "source": "scan",
      "summary": "GHSA-f88m-g3jw-g9cj affects this package (high)",
      "link": "https://verifymcp.io/servers/bitterdev-pdf-letter-mcp/pdf-letter-mcp#chg-chg_019fab7d-84db-7b47-823b-e4b3c30fb5dc"
    },
    {
      "id": "chg_019fab7d-84dc-717a-bc4e-99e8af0190f4",
      "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-07-29",
      "occurred_at": "2026-07-29 01:29:17.770439+00",
      "observed_since": "2026-07-27",
      "source": "scan",
      "summary": "Install scripts (unverified → pass)",
      "link": "https://verifymcp.io/servers/bitterdev-pdf-letter-mcp/pdf-letter-mcp#chg-chg_019fab7d-84dc-717a-bc4e-99e8af0190f4"
    }
  ],
  "days": [
    {
      "date": "2026-09-21",
      "total": 75,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 87,
        "to": 90,
        "delta": 3,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 26,
          "to_days": 27
        },
        "partial": false,
        "compared_to": "2026-09-20",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-09-19",
      "total": 74,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 80,
        "to": 83,
        "delta": 3,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 24,
          "to_days": 25
        },
        "partial": false,
        "compared_to": "2026-09-18",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-09-18",
      "total": 73,
      "delta": -3,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-09-17",
      "total": 76,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-09-16",
      "total": 76,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 93,
        "to": 97,
        "delta": 4,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 28,
          "to_days": 29
        },
        "partial": false,
        "compared_to": "2026-09-15",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-09-14",
      "total": 75,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 87,
        "to": 90,
        "delta": 3,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 26,
          "to_days": 27
        },
        "partial": false,
        "compared_to": "2026-09-13",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-09-12",
      "total": 74,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 80,
        "to": 83,
        "delta": 3,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 24,
          "to_days": 25
        },
        "partial": false,
        "compared_to": "2026-09-11",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-09-10",
      "total": 73,
      "delta": -3,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    }
  ]
}