{
  "$schema": "https://verifymcp.io/schemas/changelog.json",
  "server": "feiyanglyy-stack-projectkeeper",
  "component": "projectkeeper",
  "generated_at": "2026-11-05T04:50:53.392Z",
  "tracking_since": "2026-10-16",
  "counts": {
    "critical": 0,
    "security": 11,
    "functional": 0,
    "cosmetic": 0
  },
  "events": [
    {
      "id": "chg_01a19059-ad01-7aa4-9568-f96b9660e68c",
      "kind": "advisory.identified",
      "family": "vulnerabilities",
      "subject_kind": "advisory",
      "subject": "CVE-2026-118764",
      "subject_child": "",
      "from_code": null,
      "to_code": "cve.transitive",
      "from_value": null,
      "to_value": "high",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "id": "CVE-2026-118764",
        "severity": "high"
      },
      "occurred_on": "2026-10-31",
      "occurred_at": "2026-10-31 05:05:58.334158+00",
      "observed_since": "2026-10-30",
      "source": "scan",
      "summary": "CVE-2026-118764 affects this package (high)",
      "link": "https://verifymcp.io/servers/feiyanglyy-stack-projectkeeper/projectkeeper#chg-chg_01a19059-ad01-7aa4-9568-f96b9660e68c"
    },
    {
      "id": "chg_01a180e8-1d2a-784f-a38c-48e3ff5aee11",
      "kind": "advisory.identified",
      "family": "vulnerabilities",
      "subject_kind": "advisory",
      "subject": "CVE-2026-109829",
      "subject_child": "",
      "from_code": null,
      "to_code": "cve.transitive",
      "from_value": null,
      "to_value": "high",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "id": "CVE-2026-109829",
        "severity": "high"
      },
      "occurred_on": "2026-10-28",
      "occurred_at": "2026-10-28 05:07:37.639741+00",
      "observed_since": "2026-10-27",
      "source": "scan",
      "summary": "CVE-2026-109829 affects this package (high)",
      "link": "https://verifymcp.io/servers/feiyanglyy-stack-projectkeeper/projectkeeper#chg-chg_01a180e8-1d2a-784f-a38c-48e3ff5aee11"
    },
    {
      "id": "chg_01a180e8-1d2d-7917-a437-c79b8a5f212b",
      "kind": "advisory.identified",
      "family": "vulnerabilities",
      "subject_kind": "advisory",
      "subject": "CVE-2026-109383",
      "subject_child": "",
      "from_code": null,
      "to_code": "cve.transitive",
      "from_value": null,
      "to_value": "high",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "id": "CVE-2026-109383",
        "severity": "high"
      },
      "occurred_on": "2026-10-28",
      "occurred_at": "2026-10-28 05:07:37.639741+00",
      "observed_since": "2026-10-27",
      "source": "scan",
      "summary": "CVE-2026-109383 affects this package (high)",
      "link": "https://verifymcp.io/servers/feiyanglyy-stack-projectkeeper/projectkeeper#chg-chg_01a180e8-1d2d-7917-a437-c79b8a5f212b"
    },
    {
      "id": "chg_01a180e8-1d2e-7085-8ed3-8203befe0479",
      "kind": "advisory.identified",
      "family": "vulnerabilities",
      "subject_kind": "advisory",
      "subject": "CVE-2026-87029",
      "subject_child": "",
      "from_code": null,
      "to_code": "cve.transitive",
      "from_value": null,
      "to_value": "high",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "id": "CVE-2026-87029",
        "severity": "high"
      },
      "occurred_on": "2026-10-28",
      "occurred_at": "2026-10-28 05:07:37.639741+00",
      "observed_since": "2026-10-27",
      "source": "scan",
      "summary": "CVE-2026-87029 affects this package (high)",
      "link": "https://verifymcp.io/servers/feiyanglyy-stack-projectkeeper/projectkeeper#chg-chg_01a180e8-1d2e-7085-8ed3-8203befe0479"
    },
    {
      "id": "chg_01a180e8-1d2e-757f-9274-be80187d0341",
      "kind": "advisory.identified",
      "family": "vulnerabilities",
      "subject_kind": "advisory",
      "subject": "CVE-2026-87018",
      "subject_child": "",
      "from_code": null,
      "to_code": "cve.transitive",
      "from_value": null,
      "to_value": "high",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "id": "CVE-2026-87018",
        "severity": "high"
      },
      "occurred_on": "2026-10-28",
      "occurred_at": "2026-10-28 05:07:37.639741+00",
      "observed_since": "2026-10-27",
      "source": "scan",
      "summary": "CVE-2026-87018 affects this package (high)",
      "link": "https://verifymcp.io/servers/feiyanglyy-stack-projectkeeper/projectkeeper#chg-chg_01a180e8-1d2e-757f-9274-be80187d0341"
    },
    {
      "id": "chg_01a180e8-1d2f-718b-a4c1-8adc19e4fe34",
      "kind": "advisory.identified",
      "family": "vulnerabilities",
      "subject_kind": "advisory",
      "subject": "CVE-2026-109932",
      "subject_child": "",
      "from_code": null,
      "to_code": "cve.transitive",
      "from_value": null,
      "to_value": "high",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "id": "CVE-2026-109932",
        "severity": "high"
      },
      "occurred_on": "2026-10-28",
      "occurred_at": "2026-10-28 05:07:37.639741+00",
      "observed_since": "2026-10-27",
      "source": "scan",
      "summary": "CVE-2026-109932 affects this package (high)",
      "link": "https://verifymcp.io/servers/feiyanglyy-stack-projectkeeper/projectkeeper#chg-chg_01a180e8-1d2f-718b-a4c1-8adc19e4fe34"
    },
    {
      "id": "chg_01a16c4d-4679-7022-9c32-e0616c8852f4",
      "kind": "advisory.identified",
      "family": "vulnerabilities",
      "subject_kind": "advisory",
      "subject": "CVE-2026-109924",
      "subject_child": "",
      "from_code": null,
      "to_code": "cve.transitive",
      "from_value": null,
      "to_value": "high",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "id": "CVE-2026-109924",
        "severity": "high"
      },
      "occurred_on": "2026-10-24",
      "occurred_at": "2026-10-24 05:06:06.042756+00",
      "observed_since": "2026-10-23",
      "source": "scan",
      "summary": "CVE-2026-109924 affects this package (high)",
      "link": "https://verifymcp.io/servers/feiyanglyy-stack-projectkeeper/projectkeeper#chg-chg_01a16c4d-4679-7022-9c32-e0616c8852f4"
    },
    {
      "id": "chg_01a16c4d-4679-7c43-a3cb-31696e1c6681",
      "kind": "advisory.identified",
      "family": "vulnerabilities",
      "subject_kind": "advisory",
      "subject": "CVE-2026-109869",
      "subject_child": "",
      "from_code": null,
      "to_code": "cve.transitive",
      "from_value": null,
      "to_value": "high",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "id": "CVE-2026-109869",
        "severity": "high"
      },
      "occurred_on": "2026-10-24",
      "occurred_at": "2026-10-24 05:06:06.042756+00",
      "observed_since": "2026-10-23",
      "source": "scan",
      "summary": "CVE-2026-109869 affects this package (high)",
      "link": "https://verifymcp.io/servers/feiyanglyy-stack-projectkeeper/projectkeeper#chg-chg_01a16c4d-4679-7c43-a3cb-31696e1c6681"
    },
    {
      "id": "chg_01a16c4d-467a-7580-ae3d-3c22f045b5ed",
      "kind": "check.verdict",
      "family": "vulnerabilities",
      "subject_kind": "check",
      "subject": "vulnerabilities",
      "subject_child": "",
      "from_code": "cve.none",
      "to_code": "cve.transitive",
      "from_value": "pass",
      "to_value": "fail",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "path": "@earendil-works/pi-coding-agent > undici",
        "refs": "[\"CVE-2026-109924\",\"CVE-2026-109841\",\"CVE-2026-109869\"]",
        "seen": "159",
        "package": "undici",
        "version": "8.10.2",
        "assessed": "160",
        "resolved": "159",
        "severity": "high",
        "transitive": "1",
        "vulnerable": "[{\"name\":\"undici\",\"version\":\"8.10.2\",\"depth\":2,\"path\":[\"@earendil-works/pi-coding-agent\",\"undici\"],\"refs\":[\"CVE-2026-109924\",\"CVE-2026-109841\",\"CVE-2026-109869\"]}]",
        "tree_source": "registry",
        "tree_status": "resolved"
      },
      "occurred_on": "2026-10-24",
      "occurred_at": "2026-10-24 05:06:06.042756+00",
      "observed_since": "2026-10-23",
      "source": "scan",
      "summary": "Known CVEs (pass → fail)",
      "link": "https://verifymcp.io/servers/feiyanglyy-stack-projectkeeper/projectkeeper#chg-chg_01a16c4d-467a-7580-ae3d-3c22f045b5ed"
    },
    {
      "id": "chg_01a16c4d-467a-7b30-9bc3-b5f5389406a6",
      "kind": "advisory.identified",
      "family": "vulnerabilities",
      "subject_kind": "advisory",
      "subject": "CVE-2026-109841",
      "subject_child": "",
      "from_code": null,
      "to_code": "cve.transitive",
      "from_value": null,
      "to_value": "high",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "id": "CVE-2026-109841",
        "severity": "high"
      },
      "occurred_on": "2026-10-24",
      "occurred_at": "2026-10-24 05:06:06.042756+00",
      "observed_since": "2026-10-23",
      "source": "scan",
      "summary": "CVE-2026-109841 affects this package (high)",
      "link": "https://verifymcp.io/servers/feiyanglyy-stack-projectkeeper/projectkeeper#chg-chg_01a16c4d-467a-7b30-9bc3-b5f5389406a6"
    },
    {
      "id": "chg_01a15cd9-d514-767c-a49e-e0124fcc8530",
      "kind": "check.verdict",
      "family": "provenance-repo",
      "subject_kind": "check",
      "subject": "provenance-repo",
      "subject_child": "",
      "from_code": "provenance.repo_verified",
      "to_code": "provenance.repo_http_error",
      "from_value": "pass",
      "to_value": "fail",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "status": "404"
      },
      "occurred_on": "2026-10-21",
      "occurred_at": "2026-10-21 05:05:42.134267+00",
      "observed_since": "2026-10-20",
      "source": "scan",
      "summary": "Source repository (pass → fail)",
      "link": "https://verifymcp.io/servers/feiyanglyy-stack-projectkeeper/projectkeeper#chg-chg_01a15cd9-d514-767c-a49e-e0124fcc8530"
    }
  ],
  "days": [
    {
      "date": "2026-11-03",
      "total": 66,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 57,
        "to": 60,
        "delta": 3,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 17,
          "to_days": 18
        },
        "partial": false,
        "compared_to": "2026-11-02",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-11-01",
      "total": 65,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 50,
        "to": 53,
        "delta": 3,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 15,
          "to_days": 16
        },
        "partial": false,
        "compared_to": "2026-10-31",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-10-31",
      "total": 64,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-10-30",
      "total": 64,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 43,
        "to": 47,
        "delta": 4,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 13,
          "to_days": 14
        },
        "partial": false,
        "compared_to": "2026-10-29",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-10-28",
      "total": 63,
      "delta": 1,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 5
    },
    {
      "date": "2026-10-26",
      "total": 62,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 30,
        "to": 33,
        "delta": 3,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 9,
          "to_days": 10
        },
        "partial": false,
        "compared_to": "2026-10-25",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    },
    {
      "date": "2026-10-24",
      "total": 61,
      "delta": -2,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 4
    },
    {
      "date": "2026-10-22",
      "total": 63,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    }
  ]
}