mail-threading 0.1.2

JWZ email threading (RFC 5256). Reconstruct message threads from References/In-Reply-To headers, with subject fallback for broken clients.
Documentation
{
  "name": "message-id-case-sensitive",
  "description": "Message-ID matching is case-sensitive after normalization.",
  "spec": {
    "source": "RFC 5256",
    "url": "https://www.rfc-editor.org/rfc/rfc5256",
    "behavior": "Message ID comparisons are case-sensitive"
  },
  "options": {
    "subject_merge": false
  },
  "input": [
    {
      "id": "case-root-upper",
      "message_id": "<Case@example>",
      "in_reply_to": null,
      "references": [],
      "subject": "Upper case id",
      "date": "2026-05-15T09:00:00Z"
    },
    {
      "id": "case-root-lower",
      "message_id": "<case@example>",
      "in_reply_to": null,
      "references": [],
      "subject": "Lower case id",
      "date": "2026-05-15T09:01:00Z"
    },
    {
      "id": "case-reply",
      "message_id": "<case-reply@example>",
      "in_reply_to": null,
      "references": [
        "<Case@example>"
      ],
      "subject": "Re: Upper case id",
      "date": "2026-05-15T09:02:00Z"
    }
  ],
  "expected": {
    "threads": [
      {
        "root": "case-root-upper",
        "messages": [
          "case-root-upper",
          "case-reply"
        ]
      },
      {
        "root": "case-root-lower",
        "messages": [
          "case-root-lower"
        ]
      }
    ]
  }
}