{
  "$schema": "https://verifymcp.io/schemas/changelog.json",
  "server": "dev-dulieu-weather",
  "component": "mcp-dulieu-weather",
  "generated_at": "2026-11-05T12:48:36.442Z",
  "tracking_since": "2026-10-18",
  "counts": {
    "critical": 0,
    "security": 11,
    "functional": 0,
    "cosmetic": 0
  },
  "events": [
    {
      "id": "chg_01a162a8-729b-74c3-9081-a6a35a3a32bb",
      "kind": "check.reverified",
      "family": "https",
      "subject_kind": "check",
      "subject": "https",
      "subject_child": "",
      "from_code": "https.inconclusive",
      "to_code": "https.enforced",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-10-22",
      "occurred_at": "2026-10-22 08:09:28.971025+00",
      "observed_since": "2026-10-21",
      "source": "scan",
      "summary": "HTTPS (unverified → pass)",
      "link": "https://verifymcp.io/servers/dev-dulieu-weather/mcp-dulieu-weather#chg-chg_01a162a8-729b-74c3-9081-a6a35a3a32bb"
    },
    {
      "id": "chg_01a1585c-2225-7e31-86af-42b7d815b0cb",
      "kind": "check.reverified",
      "family": "hsts",
      "subject_kind": "check",
      "subject": "hsts",
      "subject_child": "",
      "from_code": "headers.inconclusive",
      "to_code": "headers.hsts_absent",
      "from_value": "unverified",
      "to_value": "fail",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-10-20",
      "occurred_at": "2026-10-20 08:09:55.477036+00",
      "observed_since": "2026-10-19",
      "source": "scan",
      "summary": "HSTS header (unverified → fail)",
      "link": "https://verifymcp.io/servers/dev-dulieu-weather/mcp-dulieu-weather#chg-chg_01a1585c-2225-7e31-86af-42b7d815b0cb"
    },
    {
      "id": "chg_01a1585c-2226-7771-81d2-87ec0969d36e",
      "kind": "check.reverified",
      "family": "auth-oauth",
      "subject_kind": "check",
      "subject": "auth-oauth",
      "subject_child": "",
      "from_code": "auth.unreachable",
      "to_code": "auth.challenge_only",
      "from_value": "unverified",
      "to_value": "fail",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-10-20",
      "occurred_at": "2026-10-20 08:09:55.477036+00",
      "observed_since": "2026-10-19",
      "source": "scan",
      "summary": "Authorization (unverified → fail)",
      "link": "https://verifymcp.io/servers/dev-dulieu-weather/mcp-dulieu-weather#chg-chg_01a1585c-2226-7771-81d2-87ec0969d36e"
    },
    {
      "id": "chg_01a1585c-2226-7d5a-9321-e237afd3a2d8",
      "kind": "check.unverifiable",
      "family": "https",
      "subject_kind": "check",
      "subject": "https",
      "subject_child": "",
      "from_code": "https.enforced",
      "to_code": "https.inconclusive",
      "from_value": "pass",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "reason": "plaintext_status",
        "status": "401"
      },
      "occurred_on": "2026-10-20",
      "occurred_at": "2026-10-20 08:09:55.477036+00",
      "observed_since": "2026-10-19",
      "source": "scan",
      "summary": "HTTPS (pass → unverified)",
      "link": "https://verifymcp.io/servers/dev-dulieu-weather/mcp-dulieu-weather#chg-chg_01a1585c-2226-7d5a-9321-e237afd3a2d8"
    },
    {
      "id": "chg_01a1585c-2227-73da-b1d4-4412ead9d423",
      "kind": "check.unverifiable",
      "family": "transport",
      "subject_kind": "check",
      "subject": "transport",
      "subject_child": "",
      "from_code": "transport.unreachable",
      "to_code": "transport.auth_gated",
      "from_value": "fail",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "transport": "streamable-http"
      },
      "occurred_on": "2026-10-20",
      "occurred_at": "2026-10-20 08:09:55.477036+00",
      "observed_since": "2026-10-19",
      "source": "scan",
      "summary": "Transport (fail → unverified)",
      "link": "https://verifymcp.io/servers/dev-dulieu-weather/mcp-dulieu-weather#chg-chg_01a1585c-2227-73da-b1d4-4412ead9d423"
    },
    {
      "id": "chg_01a1585c-2227-7aa7-bba2-7310ff96e7f4",
      "kind": "check.reason",
      "family": "tool-safety-injection",
      "subject_kind": "check",
      "subject": "tool-safety-injection",
      "subject_child": "",
      "from_code": "toolsafety.unreachable",
      "to_code": "toolsafety.auth_gated",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-10-20",
      "occurred_at": "2026-10-20 08:09:55.477036+00",
      "observed_since": "2026-10-19",
      "source": "scan",
      "summary": "Tool safety (Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.)",
      "link": "https://verifymcp.io/servers/dev-dulieu-weather/mcp-dulieu-weather#chg-chg_01a1585c-2227-7aa7-bba2-7310ff96e7f4"
    },
    {
      "id": "chg_01a15336-f7e4-72c8-a4bf-939b9ee2a152",
      "kind": "check.unverifiable",
      "family": "auth-oauth",
      "subject_kind": "check",
      "subject": "auth-oauth",
      "subject_child": "",
      "from_code": "auth.challenge_only",
      "to_code": "auth.unreachable",
      "from_value": "fail",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-10-19",
      "occurred_at": "2026-10-19 08:11:13.75352+00",
      "observed_since": "2026-10-18",
      "source": "scan",
      "summary": "Authorization (fail → unverified)",
      "link": "https://verifymcp.io/servers/dev-dulieu-weather/mcp-dulieu-weather#chg-chg_01a15336-f7e4-72c8-a4bf-939b9ee2a152"
    },
    {
      "id": "chg_01a15336-f7e4-7a17-ba8d-54b5d0a88d04",
      "kind": "check.reverified",
      "family": "transport",
      "subject_kind": "check",
      "subject": "transport",
      "subject_child": "",
      "from_code": "transport.auth_gated",
      "to_code": "transport.unreachable",
      "from_value": "unverified",
      "to_value": "fail",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "transport": "streamable-http"
      },
      "occurred_on": "2026-10-19",
      "occurred_at": "2026-10-19 08:11:13.75352+00",
      "observed_since": "2026-10-18",
      "source": "scan",
      "summary": "Transport (unverified → fail)",
      "link": "https://verifymcp.io/servers/dev-dulieu-weather/mcp-dulieu-weather#chg-chg_01a15336-f7e4-7a17-ba8d-54b5d0a88d04"
    },
    {
      "id": "chg_01a15336-f7e6-7cf0-94e8-fba6c94991ca",
      "kind": "check.unverifiable",
      "family": "hsts",
      "subject_kind": "check",
      "subject": "hsts",
      "subject_child": "",
      "from_code": "headers.hsts_absent",
      "to_code": "headers.inconclusive",
      "from_value": "fail",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-10-19",
      "occurred_at": "2026-10-19 08:11:13.75352+00",
      "observed_since": "2026-10-18",
      "source": "scan",
      "summary": "HSTS header (fail → unverified)",
      "link": "https://verifymcp.io/servers/dev-dulieu-weather/mcp-dulieu-weather#chg-chg_01a15336-f7e6-7cf0-94e8-fba6c94991ca"
    },
    {
      "id": "chg_01a15336-f7e7-76ae-9b6d-8fbfb064b1c7",
      "kind": "check.reverified",
      "family": "https",
      "subject_kind": "check",
      "subject": "https",
      "subject_child": "",
      "from_code": "https.inconclusive",
      "to_code": "https.enforced",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-10-19",
      "occurred_at": "2026-10-19 08:11:13.75352+00",
      "observed_since": "2026-10-18",
      "source": "scan",
      "summary": "HTTPS (unverified → pass)",
      "link": "https://verifymcp.io/servers/dev-dulieu-weather/mcp-dulieu-weather#chg-chg_01a15336-f7e7-76ae-9b6d-8fbfb064b1c7"
    },
    {
      "id": "chg_01a15336-f7e7-7d5d-80eb-6448b1ad7a75",
      "kind": "check.reason",
      "family": "tool-safety-injection",
      "subject_kind": "check",
      "subject": "tool-safety-injection",
      "subject_child": "",
      "from_code": "toolsafety.auth_gated",
      "to_code": "toolsafety.unreachable",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-10-19",
      "occurred_at": "2026-10-19 08:11:13.75352+00",
      "observed_since": "2026-10-18",
      "source": "scan",
      "summary": "Tool safety (Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.)",
      "link": "https://verifymcp.io/servers/dev-dulieu-weather/mcp-dulieu-weather#chg-chg_01a15336-f7e7-7d5d-80eb-6448b1ad7a75"
    }
  ],
  "days": [
    {
      "date": "2026-10-22",
      "total": 33,
      "delta": 5,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-10-20",
      "total": 28,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 8
    },
    {
      "date": "2026-10-19",
      "total": 28,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 8
    },
    {
      "date": "2026-10-18",
      "total": 28,
      "delta": null,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 0
    }
  ]
}