)]}'
{
  "log": [
    {
      "commit": "c9bdc953a7d28d461f868c2f22e6a704a43f37b8",
      "tree": "436c994e239d5ddea9c00af860ced04cfe9579cd",
      "parents": [
        "b04f48a0ce83fa7586e83ee5c59d5330901d6f95"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Apr 11 08:30:19 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Apr 11 08:30:19 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932982 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b04f48a0ce83fa7586e83ee5c59d5330901d6f95",
      "tree": "553faf2e8332946e46c9b8de04828419a1046e4e",
      "parents": [
        "a0da2823db3d8fc99338644254ab4ba6d04082a7"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Apr 11 01:04:36 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Apr 11 01:04:36 2026 +0000"
      },
      "message": "Retire VALIDITY subrules to avoid problems\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932973 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a0da2823db3d8fc99338644254ab4ba6d04082a7",
      "tree": "cca0ecd6c5ee29f45553eb10c07b4ae9c4d58307",
      "parents": [
        "67f9d7ffde82be7a2f27c6c3c27bc4fb6cf2a216"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Fri Apr 10 15:02:25 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Fri Apr 10 15:02:25 2026 +0000"
      },
      "message": "Beating Validity to death, decapitating, and staking the heart\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932968 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "67f9d7ffde82be7a2f27c6c3c27bc4fb6cf2a216",
      "tree": "37eee6905e5855ed8c52639aba9b0be49970fed3",
      "parents": [
        "05a587519db8374263b41a4ad498aac78f3cb17b"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Apr 10 08:30:20 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Apr 10 08:30:20 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932943 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "05a587519db8374263b41a4ad498aac78f3cb17b",
      "tree": "5a248f40ededa7352a6c4d472eaf97ac192281df",
      "parents": [
        "3147e9898644557696c021cd25edeb5629fcf731"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Apr 10 03:36:37 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Apr 10 03:36:37 2026 +0000"
      },
      "message": "Add another phone scam number, work around replacetags \"falsy\" bug\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932938 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3147e9898644557696c021cd25edeb5629fcf731",
      "tree": "d35d2e57f79f298ec8e4e86b6a40126bbd2ed748",
      "parents": [
        "84e80ca6eb65a1fc05122d4a6b76871a0ea309a1"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Apr 10 03:34:56 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Apr 10 03:34:56 2026 +0000"
      },
      "message": "Work around ReplaceTags subjecting tag names to perl \"falsy\" logic\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932937 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "84e80ca6eb65a1fc05122d4a6b76871a0ea309a1",
      "tree": "739ebb0bc847629c0f8d78933c2cadb8d6ac99e2",
      "parents": [
        "9df8fcfd7ac3d3f86d03e27d015ff637a90eae0c"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Apr 09 08:30:20 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Apr 09 08:30:20 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932921 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9df8fcfd7ac3d3f86d03e27d015ff637a90eae0c",
      "tree": "fe62c77378c369b96da0125e8ca8e68b13a0e7e6",
      "parents": [
        "71a4d872a022bf22f5ff499549a3d4bf67c68b4a"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Thu Apr 09 01:17:08 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Thu Apr 09 01:17:08 2026 +0000"
      },
      "message": "Add new phone scam number\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932918 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "71a4d872a022bf22f5ff499549a3d4bf67c68b4a",
      "tree": "56127ab93006555abeeeb9fbb18344bb91fc45e4",
      "parents": [
        "c23adf711db6b3b88dd558675107adae69a82654"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Apr 08 08:30:21 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Apr 08 08:30:21 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932897 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c23adf711db6b3b88dd558675107adae69a82654",
      "tree": "57fa0348dc742f7d4fe467d74fd590fb3bd53e2e",
      "parents": [
        "57ad54911e77bd2912e33cec79514130cd25d0f7"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Apr 08 06:42:02 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Apr 08 06:42:02 2026 +0000"
      },
      "message": "improve locking and retrain algorithm\nimprove forget method\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932887 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "57ad54911e77bd2912e33cec79514130cd25d0f7",
      "tree": "9f3e4428554799fd684ba8f2804d9bac7a13f116",
      "parents": [
        "bf71e88184b4546c2885129e6a474eb37fb89126"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Wed Apr 08 02:49:37 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Wed Apr 08 02:49:37 2026 +0000"
      },
      "message": "Update generated ruleset\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932885 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "bf71e88184b4546c2885129e6a474eb37fb89126",
      "tree": "816e1c3e75b8a7c92f92393a38ec0789bee33c73",
      "parents": [
        "e4d12d29153076032545bbab8c78dcd40c92f009"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Tue Apr 07 16:54:23 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Tue Apr 07 16:54:23 2026 +0000"
      },
      "message": "add Inky\u0027s redirector\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932882 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e4d12d29153076032545bbab8c78dcd40c92f009",
      "tree": "4836058cf2fe5139526c045efe9e3b091a8952ad",
      "parents": [
        "e2eb0d7457746bf51513f3514ea55c0687bf71d1"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Apr 07 08:30:17 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Apr 07 08:30:17 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932879 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e2eb0d7457746bf51513f3514ea55c0687bf71d1",
      "tree": "91eb117870cf3bbc7022d1a7fef71b3dd555e886",
      "parents": [
        "554923ff57936b78fb49dd6792da6fae05a9cd6c"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Tue Apr 07 07:21:37 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Tue Apr 07 07:21:37 2026 +0000"
      },
      "message": "ARC: only trust contiguous run of trusted sealers at top of chain\n\nWhen collecting trusted ARC instances, walk the chain from newest to\noldest and stop at the first untrusted sealer.  An untrusted hop means\nanything older than it cannot be trusted either, since that untrusted\nintermediary could have forged the older AAR headers.  Previously any\nseal signed by a trusted domain was accepted regardless of position,\nwhich could allow a trusted sealer downstream of an untrusted hop to\nvouch for results that were never actually verified by a trusted party.\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932878 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "554923ff57936b78fb49dd6792da6fae05a9cd6c",
      "tree": "e93e1e9c13341310306e5c63e56778412de33808",
      "parents": [
        "e9f30a69215eb5ee7c0523150ecd86e56726fc9d"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Apr 06 08:30:20 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Apr 06 08:30:20 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932862 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e9f30a69215eb5ee7c0523150ecd86e56726fc9d",
      "tree": "1e8bd2917beec204743e827b112f1620ee208b70",
      "parents": [
        "b715424ff139664c0080714cb95f3a72c522d150"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sun Apr 05 18:22:54 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sun Apr 05 18:22:54 2026 +0000"
      },
      "message": "Allow for 3TLD only-one-domain bug\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932860 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b715424ff139664c0080714cb95f3a72c522d150",
      "tree": "482218128edee6ba9d17454d62576c9de6f6f2da",
      "parents": [
        "d00e4d9dc530b298efde8cf7bdb69ddc3138f6ed"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Apr 05 08:30:18 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Apr 05 08:30:18 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932854 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d00e4d9dc530b298efde8cf7bdb69ddc3138f6ed",
      "tree": "f0ea713e006c4446e03f9926a69e8d08170e23e6",
      "parents": [
        "59b695059e6f84acc1ece23315cf2eeb42cf6de2"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sat Apr 04 14:26:16 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sat Apr 04 14:26:16 2026 +0000"
      },
      "message": "Honor skip_uribl_checks in AskDNS plugin\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932846 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "59b695059e6f84acc1ece23315cf2eeb42cf6de2",
      "tree": "43f64dd2f52d95afb35d3324228b33983d05600d",
      "parents": [
        "7cceefcb794be658f6d60397a5c9ca03a87cf342"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Apr 04 08:30:16 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Apr 04 08:30:16 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932839 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7cceefcb794be658f6d60397a5c9ca03a87cf342",
      "tree": "e6963ef1c38e434fcd458a05e270787461895f40",
      "parents": [
        "fae03f5bc8d86ce409d51730577edeb4b37bf142"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Apr 04 02:45:14 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Apr 04 02:45:14 2026 +0000"
      },
      "message": "updated scores for revision 1932729 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932836 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fae03f5bc8d86ce409d51730577edeb4b37bf142",
      "tree": "e986bb4ea1b622535ef7eb362d47a27341aa8555",
      "parents": [
        "cb120f43261c2035971485cd5e404a2cfcfa7884"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Apr 03 08:30:20 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Apr 03 08:30:20 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932778 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "cb120f43261c2035971485cd5e404a2cfcfa7884",
      "tree": "e521a8f5c058d7346f530f0f0a93dfc36c51e79e",
      "parents": [
        "a5fd904d44f621c01fe9bb9a8d4b8d2bdbabc654"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Fri Apr 03 07:07:17 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Fri Apr 03 07:07:17 2026 +0000"
      },
      "message": "add url shortener\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932777 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a5fd904d44f621c01fe9bb9a8d4b8d2bdbabc654",
      "tree": "acfc90c2a459f91bf6f7271b8600609659cbb905",
      "parents": [
        "b126b002cbc46508ef502457793225110c241aae"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Apr 03 02:48:22 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Apr 03 02:48:22 2026 +0000"
      },
      "message": "updated scores for revision 1932696 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932774 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b126b002cbc46508ef502457793225110c241aae",
      "tree": "610d1a274f1ac66145dbec140cf499ff8cd2dd70",
      "parents": [
        "ba2faa867542c6e51efae88d629dbee04aeb427d"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Apr 02 08:30:18 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Apr 02 08:30:18 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932729 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ba2faa867542c6e51efae88d629dbee04aeb427d",
      "tree": "01cb5f3f74c0fdc934c200e40c0b656263a2d5e8",
      "parents": [
        "ee8d87119df46e0ffb9ad5e99efbf74d7eb3e691"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Apr 02 02:47:07 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Apr 02 02:47:07 2026 +0000"
      },
      "message": "updated scores for revision 1932677 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932726 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ee8d87119df46e0ffb9ad5e99efbf74d7eb3e691",
      "tree": "76dae0946fb14e9a1b2d766cb3d3e07aa92c1063",
      "parents": [
        "efc56f17c5a1c7d7064cea9c3bee78353fadaa3c"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Thu Apr 02 02:40:05 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Thu Apr 02 02:40:05 2026 +0000"
      },
      "message": "Add misleading MailChimp account name rule\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932725 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "efc56f17c5a1c7d7064cea9c3bee78353fadaa3c",
      "tree": "1ff9c51484a8d8088bcbad7b8a604b3463581eee",
      "parents": [
        "705e2346092cc29e2a7055a8bdc88801c8b7c4b6"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Thu Apr 02 02:36:19 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Thu Apr 02 02:36:19 2026 +0000"
      },
      "message": "Add list-manage.com regional subdomains as 3TLDs, the subdomain below that is user-controlled.\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932724 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "705e2346092cc29e2a7055a8bdc88801c8b7c4b6",
      "tree": "c8959a2496ccbd30a631527c126de0f614270210",
      "parents": [
        "9dbd10bee950fd10f9858961f0923001266e33da"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Apr 01 08:30:15 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Apr 01 08:30:15 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932696 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9dbd10bee950fd10f9858961f0923001266e33da",
      "tree": "811dc2f7f873afddf90f8d76265c39d862386d11",
      "parents": [
        "63032a91aa7c37318b1f7b54c69febf9fe49cd50"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Apr 01 06:37:43 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Apr 01 06:37:43 2026 +0000"
      },
      "message": "add url shorteners\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932694 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "63032a91aa7c37318b1f7b54c69febf9fe49cd50",
      "tree": "20f77149f3454f0da826a071872506d3d6497e5a",
      "parents": [
        "58b007eec615c40f95b1bc5ebf93376ad961c65f"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Mar 31 08:30:16 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Mar 31 08:30:16 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932677 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "58b007eec615c40f95b1bc5ebf93376ad961c65f",
      "tree": "3d430088665034da5452b1c8964162a68e186b9f",
      "parents": [
        "ab55539bd53d3cbfe501665784dda225323848a2"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Tue Mar 31 02:21:05 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Tue Mar 31 02:21:05 2026 +0000"
      },
      "message": "Update generated ruleset\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932674 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ab55539bd53d3cbfe501665784dda225323848a2",
      "tree": "70cf49385f5a913df7d296b05f39a02cd02caa37",
      "parents": [
        "a24c14af62596ccc8cf6303bc7d2ae31561bf899"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Mon Mar 30 19:09:51 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Mon Mar 30 19:09:51 2026 +0000"
      },
      "message": "testing .world with its own rule...\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932669 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a24c14af62596ccc8cf6303bc7d2ae31561bf899",
      "tree": "d5bc305eb8bbd16f56441215a703bea4d1074833",
      "parents": [
        "38e2d819cb4df98878a2463aff08f3856ae2e9f2"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Mar 30 08:30:17 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Mar 30 08:30:17 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932661 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "38e2d819cb4df98878a2463aff08f3856ae2e9f2",
      "tree": "59c1634ee44dff0d181a1edbad52cfff5f9a875e",
      "parents": [
        "8493b4283a201804e107d2493777ff73fb382af4"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Mar 29 08:30:20 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Mar 29 08:30:20 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932652 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8493b4283a201804e107d2493777ff73fb382af4",
      "tree": "6a2636f2df5cd0f1c3a4091fe0ad6613a498715f",
      "parents": [
        "892308ea443992891a481cf274d617e9c4d64f0c"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Mar 29 02:47:23 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Mar 29 02:47:23 2026 +0000"
      },
      "message": "updated scores for revision 1932603 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932650 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "892308ea443992891a481cf274d617e9c4d64f0c",
      "tree": "ce2a8c946ddc5c7c606a6335905c8b38f965f5fe",
      "parents": [
        "9e881e62f6830593781417438cc1ee923433a2dd"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Mar 28 08:30:16 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Mar 28 08:30:16 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932603 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9e881e62f6830593781417438cc1ee923433a2dd",
      "tree": "1707a84a4012cdcce490706894ae9260a98da0b5",
      "parents": [
        "1822c4aa20e969cdbdb3d7307cadd49652c260fd"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Mar 28 02:44:00 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Mar 28 02:44:00 2026 +0000"
      },
      "message": "updated scores for revision 1932591 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932600 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1822c4aa20e969cdbdb3d7307cadd49652c260fd",
      "tree": "d82580e7b99822041f2f2421d53a90b9d5bb17c8",
      "parents": [
        "9419f60eceab05f46f14fe79da6896066e71fbfb"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 17:16:58 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 17:16:58 2026 +0000"
      },
      "message": "FP Avoidance tuning, promote a rule to scored\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932597 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9419f60eceab05f46f14fe79da6896066e71fbfb",
      "tree": "8248d0fc718f99d7a7a079e36fd0b43bbddd9f9e",
      "parents": [
        "f6e9dca4e6fe68bf9efeb333e2b8c8cf4d155401"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 16:42:56 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 16:42:56 2026 +0000"
      },
      "message": "Added another scam phone number\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932596 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f6e9dca4e6fe68bf9efeb333e2b8c8cf4d155401",
      "tree": "2b79d36c267ab64f19312a38ded0725b2271f2e7",
      "parents": [
        "7280d1d7db125febdc1a8e0ab8c34ca60ffa2d36"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 16:25:10 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 16:25:10 2026 +0000"
      },
      "message": "Fix incomplete emoji byte range\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932595 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7280d1d7db125febdc1a8e0ab8c34ca60ffa2d36",
      "tree": "44e6ed6612dd1dde68ad8a4f75540c1bb9286701",
      "parents": [
        "cf78b07722a47e805b98775e5674af354d080dd6"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Mar 27 08:30:24 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Mar 27 08:30:24 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932591 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "cf78b07722a47e805b98775e5674af354d080dd6",
      "tree": "da50e0acb15ab96e00c71b37aa15a1027eea1a61",
      "parents": [
        "9cbe68d7ad75da2a74f5b8d81d902e76f43fc494"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Fri Mar 27 08:17:35 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Fri Mar 27 08:17:35 2026 +0000"
      },
      "message": "avoid warnings SpamAssassin versions older then trunk\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932590 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9cbe68d7ad75da2a74f5b8d81d902e76f43fc494",
      "tree": "75215a29aea29d1f5ec8d8af1d64171e7b8e6244",
      "parents": [
        "99f3eb1d2c97288c5918f4bb13810c3e6d470f81"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Mar 27 04:41:53 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Mar 27 04:41:53 2026 +0000"
      },
      "message": "updated scores for revision 1932573 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932588 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "99f3eb1d2c97288c5918f4bb13810c3e6d470f81",
      "tree": "dfbe5cac9874d40b4cc137d32327dddf1ca61ca3",
      "parents": [
        "cec0ab2858a7336c613d0032ad3f64616e16b763"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 01:37:10 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 01:37:10 2026 +0000"
      },
      "message": "Add rule to check legitimacy of suspicious Google infra URL\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932584 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "cec0ab2858a7336c613d0032ad3f64616e16b763",
      "tree": "d322c596ac7fdcd6493895641d050f7c4f156e09",
      "parents": [
        "bc0492c7923e70db1a040163a9cd3628d73632c6"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 01:18:03 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 01:18:03 2026 +0000"
      },
      "message": "Add subrules for emoji(s) in subject and from name\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932583 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "bc0492c7923e70db1a040163a9cd3628d73632c6",
      "tree": "b4f5cec946927b7e618ca7108df9fc93809e1d7d",
      "parents": [
        "551aa7b5755247ba91c743dd36a1306bfbbf9936"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 00:46:09 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 00:46:09 2026 +0000"
      },
      "message": "Add new numbers, FP avoidance tuning\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932582 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "551aa7b5755247ba91c743dd36a1306bfbbf9936",
      "tree": "959e5a91f671def44cf719ae061b106291142a38",
      "parents": [
        "8c93d12be9d36fbd4e413aa51ed09b633d1da8a4"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 00:44:33 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Mar 27 00:44:33 2026 +0000"
      },
      "message": "Add EMOJI and EMOJI_BROAD replace tokens\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932581 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8c93d12be9d36fbd4e413aa51ed09b633d1da8a4",
      "tree": "31742fc20e9b53d80c60354b73b1bb680593275f",
      "parents": [
        "6f0117ca43ade92191ab94578fa57677461e39f1"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Mar 26 08:30:19 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Mar 26 08:30:19 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932572 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6f0117ca43ade92191ab94578fa57677461e39f1",
      "tree": "614452625f41b89f8765c4f9ea886bcfd9538d4b",
      "parents": [
        "56d2cc42ce335c4d1eea159ffa77f3b00078b19f"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Mar 26 02:43:51 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Mar 26 02:43:51 2026 +0000"
      },
      "message": "updated scores for revision 1932525 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932559 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "56d2cc42ce335c4d1eea159ffa77f3b00078b19f",
      "tree": "bad28a33558bb5ae0a2ab6239e69be8818681628",
      "parents": [
        "bb231cdb790fe078ae7676f08d6abb80b2a1600b"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Mar 25 08:30:23 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Mar 25 08:30:23 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932525 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "bb231cdb790fe078ae7676f08d6abb80b2a1600b",
      "tree": "ea613bcc05feac11fe5f31aa23268ddbc0685b55",
      "parents": [
        "5e796b8e698e09dedc6a180c5656cd3e70c357d0"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Mar 25 02:43:46 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Mar 25 02:43:46 2026 +0000"
      },
      "message": "updated scores for revision 1932497 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932521 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5e796b8e698e09dedc6a180c5656cd3e70c357d0",
      "tree": "dc0c31157e9718b22703855da924e15ed12153af",
      "parents": [
        "dcb7b444d2f50d4c3e9aee6924e1965465c33562"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Tue Mar 24 20:24:04 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Tue Mar 24 20:24:04 2026 +0000"
      },
      "message": "Handle DMARC permerror/temperror without falling back to Mail::DMARC::PurePerl\n\nWhen an Authentication-Results header contains dmarc\u003dpermerror or\ndmarc\u003dtemperror, these are terminal results that should not trigger a\nfallback to Mail::DMARC::PurePerl for a redundant DNS lookup.\n\nAlso fixes the Mail::DMARC::PurePerl path where \"too many policies\"\nwas incorrectly setting dmarc_policy to \"no policy available\", which\ncaused check_dmarc_missing to fire instead of the more accurate\npermerror result.\n\nAdds new check_dmarc_permerror and check_dmarc_temperror eval rules\nwith corresponding DMARC_PERMERROR and DMARC_TEMPERROR rules.\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932516 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "dcb7b444d2f50d4c3e9aee6924e1965465c33562",
      "tree": "9c5cac2ba4043648d96e5bb2841fe0f615d1836d",
      "parents": [
        "5e6fdddc4ca432f7fce215f9fd21fdc4c4ddda3e"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Mar 24 08:30:24 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Mar 24 08:30:24 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932497 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5e6fdddc4ca432f7fce215f9fd21fdc4c4ddda3e",
      "tree": "98a41ac1507acc4bfa80050b4c73bb4d82ebdaf6",
      "parents": [
        "957f97f73e28c92ef704346f9f0611910ac3d595"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Mar 24 02:43:11 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Mar 24 02:43:11 2026 +0000"
      },
      "message": "updated scores for revision 1932474 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932492 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "957f97f73e28c92ef704346f9f0611910ac3d595",
      "tree": "ecc04ba448bfc8dbc437868d376ef200d6d7249a",
      "parents": [
        "a23bfbdfa7e94fc1e8374d770c6c0ff6897dc63d"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Mar 23 18:24:20 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Mar 23 18:24:20 2026 +0000"
      },
      "message": "Fix uninitialized value warnings from queue-based MIME traversal\n\nThe queue-based tree walk bypassed find_parts(), which was responsible\nfor triggering lazy body parsing via parse_body(). Add explicit\nparse_body() call before traversal to ensure the MIME tree is built.\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932487 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a23bfbdfa7e94fc1e8374d770c6c0ff6897dc63d",
      "tree": "0a997632bff331a45836c18ad9299da6c15e346b",
      "parents": [
        "de75d26717a437301ce9566bfd25b7627ec958b4"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Mar 23 08:30:22 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Mar 23 08:30:22 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932474 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "de75d26717a437301ce9566bfd25b7627ec958b4",
      "tree": "2c045c95b6a962b26663f19fd944e344f089cc71",
      "parents": [
        "049caec3463ee856e032ffd2f1b44b76f02a7fcc"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Mar 23 02:43:37 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Mar 23 02:43:37 2026 +0000"
      },
      "message": "updated scores for revision 1932446 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932470 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "049caec3463ee856e032ffd2f1b44b76f02a7fcc",
      "tree": "ad8fd03456a45955c025c04ecd1384d777392619",
      "parents": [
        "97bf1d3ecf6abd30528361309f7c324092980b78"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sun Mar 22 17:17:43 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sun Mar 22 17:17:43 2026 +0000"
      },
      "message": "Phone number FP reduction\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932464 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "97bf1d3ecf6abd30528361309f7c324092980b78",
      "tree": "59c917bff4bf0ccfbf07b12637d56bef94103836",
      "parents": [
        "b0795ef34848357d8ae1ecaa269d58c2158c63de"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Mar 22 08:30:17 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Mar 22 08:30:17 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932446 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b0795ef34848357d8ae1ecaa269d58c2158c63de",
      "tree": "1952c90d8fa59c777f83d6942530db1096339ca6",
      "parents": [
        "b7b21097d0ab5463034b24dca3beefa63e066ec5"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Mar 22 02:43:06 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Mar 22 02:43:06 2026 +0000"
      },
      "message": "updated scores for revision 1932430 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932441 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b7b21097d0ab5463034b24dca3beefa63e066ec5",
      "tree": "c1b65d7a1a05b6f72f5ef2078c7203b404391378",
      "parents": [
        "02cc834aaa71b013ea77771a9a665e333a96939d"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Mar 21 08:30:11 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Mar 21 08:30:11 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932430 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "02cc834aaa71b013ea77771a9a665e333a96939d",
      "tree": "17b5fc9cc38d39a93effb5132b46f3fda5be57e1",
      "parents": [
        "d67a42c87da5992dedfe566d3c3549d6b6d14159"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Sat Mar 21 08:06:50 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Sat Mar 21 08:06:50 2026 +0000"
      },
      "message": "rewrite locking logic using `Mail::SpamAssassin::Locker`\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932429 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d67a42c87da5992dedfe566d3c3549d6b6d14159",
      "tree": "6fe4031cc39dbadc6b0420a3bb4a8aca1e8ed338",
      "parents": [
        "5799c8ce01c76b3f081dd202fb74aa9f920ff655"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sat Mar 21 04:35:43 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sat Mar 21 04:35:43 2026 +0000"
      },
      "message": "Add multipart_alternative_preferred_part config option\n\nNew setting allows choosing which part of a multipart/alternative\nsection to use for rendered body text (text/html or text/plain),\nskipping the other alternative. Defaults to empty (all parts included,\npreserving existing behavior).\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932428 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5799c8ce01c76b3f081dd202fb74aa9f920ff655",
      "tree": "09a90248077b0959ca153bb584c1bf1f417cbb0c",
      "parents": [
        "c0497336aced9869cf7308afca8147513908a72a"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sat Mar 21 04:31:44 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sat Mar 21 04:31:44 2026 +0000"
      },
      "message": "DMARC plugin: fix undef warnings when ARC overrides DMARC result\n\nWhen ARC overrides a DMARC fail to pass, the code then tried to look up\nthe published policy via $result-\u003epublished-\u003ep, which dies because the\noriginal validation was a failure with no pass-path policy. This left\ndmarc_policy unset, causing \u0027uninitialized value\u0027 warnings in the eval\nclosures and a logged exception.\n\nFix by setting dmarc_policy from the original disposition when ARC\noverrides, and wrapping $result-\u003epublished-\u003ep in eval for the normal\npass path. Added defined checks on dmarc_policy in all eval closures\nas a safety net.\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932427 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c0497336aced9869cf7308afca8147513908a72a",
      "tree": "1ae176672c67ffa325dbb9246a4216c4d267ed03",
      "parents": [
        "c14a63ac955aa80dfc24c8cda298999faaf2bb3b"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Mar 21 02:26:05 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Mar 21 02:26:05 2026 +0000"
      },
      "message": "Update generated ruleset\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932425 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c14a63ac955aa80dfc24c8cda298999faaf2bb3b",
      "tree": "59ba059a10ade43a938f647cda507a0a674c21dd",
      "parents": [
        "ab40b42290982aa7ee69bfa4d750552c53c7a5eb"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Mar 21 02:24:04 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Mar 21 02:24:04 2026 +0000"
      },
      "message": "use replacetags digit patterns\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932424 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ab40b42290982aa7ee69bfa4d750552c53c7a5eb",
      "tree": "54e224ad3710c02937ee593b08bfa9f32bb7f304",
      "parents": [
        "a6b1f172032eeec9018c482e3e6536990a17e99e"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Mar 21 02:01:36 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Mar 21 02:01:36 2026 +0000"
      },
      "message": "Add replace tag for all digits (like \\d only obfuscation-aware)\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932423 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a6b1f172032eeec9018c482e3e6536990a17e99e",
      "tree": "3d0b5e0d7437cf4176169eda5fc93726c7f5c2c2",
      "parents": [
        "c3c3b66ab5ad9e3d0574536f09c97193de3a6eb7"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Mar 21 01:16:05 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Mar 21 01:16:05 2026 +0000"
      },
      "message": "Add another scam phone number\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932422 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c3c3b66ab5ad9e3d0574536f09c97193de3a6eb7",
      "tree": "5e6a0e413c8bc4430dd80ade17df53a33f2f343c",
      "parents": [
        "d8a7c0b3f2d5bd60b6f5820e20cfdbe3f232d9f6"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Mar 21 01:14:13 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Mar 21 01:14:13 2026 +0000"
      },
      "message": "add replace tags for obfuscated digits\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932421 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d8a7c0b3f2d5bd60b6f5820e20cfdbe3f232d9f6",
      "tree": "cdc94bb5ea6dde5236f8566b85983de5d6273d22",
      "parents": [
        "6c1aa4e2b768aa6fb77ae6a3625af774f40ff9d5"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Fri Mar 20 13:42:56 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Fri Mar 20 13:42:56 2026 +0000"
      },
      "message": "fix destroy method\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932411 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6c1aa4e2b768aa6fb77ae6a3625af774f40ff9d5",
      "tree": "b21535b79940b638912e83b55c9577d043f1a615",
      "parents": [
        "18bbc4ab6a0cb2f3f13614e172789b2218ff08a0"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Mar 20 08:30:13 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Mar 20 08:30:13 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932401 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "18bbc4ab6a0cb2f3f13614e172789b2218ff08a0",
      "tree": "475f75a0b0a2a7bdfdc657f8a432d6a5c14bcf54",
      "parents": [
        "705d0c53e2714b2accc9cc13cf4d70741e7810cf"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Fri Mar 20 07:43:57 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Fri Mar 20 07:43:57 2026 +0000"
      },
      "message": "close open handles on exit\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932400 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "705d0c53e2714b2accc9cc13cf4d70741e7810cf",
      "tree": "071204e2adf9740e2ebfb69244681c3dbaf7c8cf",
      "parents": [
        "b4ea9c457947e638b049a5681f117134fbc6ea2a"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Mar 19 08:30:18 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Mar 19 08:30:18 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932383 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b4ea9c457947e638b049a5681f117134fbc6ea2a",
      "tree": "8ca67b2f5b3c0d40576c0c8e90ce6d65b47fad8c",
      "parents": [
        "5d61b91eb63c7e53adc1a4342e0273f7f0e05182"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Mar 19 08:14:29 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Mar 19 08:14:29 2026 +0000"
      },
      "message": "use a shared or exclusive lock on the model files  \n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932382 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5d61b91eb63c7e53adc1a4342e0273f7f0e05182",
      "tree": "f2e89863849aaf6ce7386cdbe6ecb7bd269ae1d0",
      "parents": [
        "47b08c3d1c6e20d8029d39bc5d382a04690165a2"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Thu Mar 19 06:28:44 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Thu Mar 19 06:28:44 2026 +0000"
      },
      "message": "Fix \"uninitialized value in die\" warning when using AuthRes+DKIM\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932380 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "47b08c3d1c6e20d8029d39bc5d382a04690165a2",
      "tree": "0a8188a7998b12489137c475c6e4e7ea21bd6554",
      "parents": [
        "f0a163ba1e87526dfa1bb4229e705787ad7c1e3e"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Mar 18 17:58:13 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Mar 18 17:58:13 2026 +0000"
      },
      "message": "add `txrep_skip_domain` option in order to completely\nskip TxRep processing for some domains\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932372 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f0a163ba1e87526dfa1bb4229e705787ad7c1e3e",
      "tree": "0dda2b49b8d0aa9a4f0bd5d14c1e122fef700fe3",
      "parents": [
        "acfec86c131d2dd8f8f5b0aa3ccb8e819dde439c"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Mar 18 17:45:19 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Mar 18 17:45:19 2026 +0000"
      },
      "message": "Fix NS queries, A dns queries were always triggered\nbz #8374\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932371 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "acfec86c131d2dd8f8f5b0aa3ccb8e819dde439c",
      "tree": "1d8762d6c01ffac20aa49a1579a0f73e0e988f50",
      "parents": [
        "d53fc665481a9525f92698539fb2eb1182d55151"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Tue Mar 17 19:01:30 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Tue Mar 17 19:01:30 2026 +0000"
      },
      "message": "ARC plugin: re-use arc\u003d results from AuthRes plugin when available\n\nThe ARC plugin now checks for parsed arc\u003d results from the AuthRes\nplugin before performing its own Mail::DKIM::ARC::Verifier-based\ncryptographic verification.  Plugin priorities swapped so AuthRes (-20)\nruns before ARC (-10).\n\nTrusted AAR parsing refactored into a shared helper so it works both\nwith the native verifier path and the AuthRes path (which parses\nARC-Seal headers directly for trusted domain detection).\n\nIf AuthRes is not loaded, behavior is unchanged.\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932360 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d53fc665481a9525f92698539fb2eb1182d55151",
      "tree": "d28f2c755bc0412ab355fe3f5c7fd41b832d42d4",
      "parents": [
        "8c67975504418e8ff18f4cbae2532b9f73039fa3"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Tue Mar 17 18:19:19 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Tue Mar 17 18:19:19 2026 +0000"
      },
      "message": "DMARC plugin: use results from AuthRes plugin when available\n\nWhen the AuthRes plugin has parsed a DMARC result and policy from an\nAuthentication-Results header, use those instead of performing local\nvalidation with Mail::DMARC::PurePerl. Both result and published domain\npolicy (via policy.published-domain-policy property) must be present;\notherwise the plugin falls back to its own validation.\n\nARC override logic extracted into shared _check_arc_override method\nused by both the AuthRes and Mail::DMARC::PurePerl code paths.\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932359 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8c67975504418e8ff18f4cbae2532b9f73039fa3",
      "tree": "74779882323af69ba9df8cd969f88585701d6c1c",
      "parents": [
        "eac9458a6a8f5ff6f0d0016b494b5573cffbe175"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Tue Mar 17 09:52:41 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Tue Mar 17 09:52:41 2026 +0000"
      },
      "message": "Add new rules for specific phone numbers observed in scams.\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932356 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "eac9458a6a8f5ff6f0d0016b494b5573cffbe175",
      "tree": "25de1af9642d44d432165469cf9a6077c171ee9d",
      "parents": [
        "8c9e15dd9df6a0ae22b94b69093ca817fb96d86d"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Mar 17 08:30:15 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Mar 17 08:30:15 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932353 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8c9e15dd9df6a0ae22b94b69093ca817fb96d86d",
      "tree": "f89e3061615582b062d4e00996e85c68dfad0346",
      "parents": [
        "f74c904994fed6775db90a3ddd238e3feb7f5d83"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Mar 16 20:13:53 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Mar 16 20:13:53 2026 +0000"
      },
      "message": "DKIM plugin: re-use results from AuthRes plugin when available\n\nThe DKIM plugin now checks for parsed DKIM results from the AuthRes\nplugin before performing its own Mail::DKIM-based verification.  This\navoids redundant signature verification when Authentication-Results\nheaders have already been parsed by a trusted MTA.\n\nConstructs real Mail::DKIM::Signature objects from AuthRes data so all\nexisting code paths (valid signature checks, author domain signature\ndetection, welcomelist matching) work unchanged.\n\nPriority order: caller-supplied signatures \u003e AuthRes \u003e own verification.\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932347 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f74c904994fed6775db90a3ddd238e3feb7f5d83",
      "tree": "e049b610cdd5c7b6bd1c822a72c11c8f777f42cd",
      "parents": [
        "1e73dca1b49d6a75f9920858b03fe68e14a31b48"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Mar 16 17:47:42 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Mar 16 17:47:42 2026 +0000"
      },
      "message": "Clean up ARC debug output\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932342 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1e73dca1b49d6a75f9920858b03fe68e14a31b48",
      "tree": "641b29e1fbf82e2f67a23958fe6692d04e1c4a69",
      "parents": [
        "4b05e9530e44d14075d45fa144543c3a9d14a021"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Mar 16 17:30:31 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Mar 16 17:30:31 2026 +0000"
      },
      "message": "Fix ARC debug logging: use domain() directly instead of DKIM-style identity extraction\n\nARC signatures use i\u003d for the instance index, not an email identity\nlike DKIM. The identity-based domain extraction was returning undef\nbecause there is no @ in the ARC i\u003d value.\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932341 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4b05e9530e44d14075d45fa144543c3a9d14a021",
      "tree": "9b80ef630c57ad29a07d673b9669325e8c6d64c8",
      "parents": [
        "dd1880f34e23aa79dd1a070834957f639a116412"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Mar 16 11:54:00 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Mar 16 11:54:00 2026 +0000"
      },
      "message": "Fix typo\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932333 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "dd1880f34e23aa79dd1a070834957f639a116412",
      "tree": "911e5b0b2f8800e3148a6d92197a3938e4f40c16",
      "parents": [
        "649982b726a572d2c0a0ebf698d32c7e151902cb"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Mar 16 11:06:43 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Mar 16 11:06:43 2026 +0000"
      },
      "message": "Separate ARC into dedicated plugin from DKIM\n\n  ARC (Authenticated Received Chain, RFC 8617) verification was previously\n  embedded in the DKIM plugin. This moves it to a standalone\n  Mail::SpamAssassin::Plugin::ARC with its own configuration and rules.\n\n  New plugin features:\n  - arc_trusted_sealers config to specify trusted ARC sealer domains\n  - Parses ARC-Authentication-Results headers from trusted sealers\n  - check_arc_trusted eval rule for messages with trusted ARC results\n  - Runs in parsed_metadata phase so results are available to other plugins\n\n  New Mail::SpamAssassin::Header::ArcAuthenticationResults class extends\n  AuthenticationResults to handle the i\u003d instance index prefix in AAR\n  headers.\n\n  DMARC plugin updated to use parsed AAR results: when DMARC fails and a\n  trusted AAR contains dmarc\u003dpass, the result is overridden directly\n  instead of reconstructing validation from SPF+DKIM components.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932331 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "649982b726a572d2c0a0ebf698d32c7e151902cb",
      "tree": "294617016f5c17ba4a2792987a6375dd86f48734",
      "parents": [
        "897c48b3dc2faf2118eef979747f0ad4ee71ffb9"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Mar 16 08:30:15 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Mar 16 08:30:15 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932330 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "897c48b3dc2faf2118eef979747f0ad4ee71ffb9",
      "tree": "374e80ff181a91fcee74beb5dc5d70ded780c5df",
      "parents": [
        "c8cd36c6e0a54a922944f247623232856bab516b"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Mar 15 08:30:15 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Mar 15 08:30:15 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932303 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c8cd36c6e0a54a922944f247623232856bab516b",
      "tree": "cd65be12f30020ed76816ab9f993dfed11c4b1f6",
      "parents": [
        "6df6428adf8c294d03fe3d74ab4e9eaa511f5f17"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Mar 15 05:33:23 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Mar 15 05:33:23 2026 +0000"
      },
      "message": "SPF plugin: prefer AuthRes plugin results over direct header parsing\n\nRestructure _check_spf() to use a three-tier priority for obtaining\nSPF results:\n1. AuthRes plugin ($pms-\u003e{authres_parsed}{spf}) - preferred source\n   since AuthRes already handles trusted header filtering and proper\n   RFC 8601 parsing\n2. Received-SPF headers from internal hosts - unchanged fallback\n3. DNS lookups via Mail::SPF - last resort\n\nRemove the old manual Authentication-Results header regex parsing from\nthe SPF plugin, as this is now handled by the AuthRes plugin.  Extract\nrepeated result-setting code into _set_spf_result() helper.\n\nUpdate UPGRADE to note that users relying on A-R header parsing need\nto enable the AuthRes plugin (v401.pre).\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932302 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6df6428adf8c294d03fe3d74ab4e9eaa511f5f17",
      "tree": "b90834cd6e61ddf48fe72d0de37b758c65a125c1",
      "parents": [
        "89ccda65a24604e80352b83ced96a65c197d82fc"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Mar 14 08:30:13 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Mar 14 08:30:13 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932299 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "89ccda65a24604e80352b83ced96a65c197d82fc",
      "tree": "100ec6ed95418df5138c312eeb8f28b8b2b96e5d",
      "parents": [
        "d8b971c6432eba0ec1d5fcf89e61f3551b6446cd"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sat Mar 14 08:14:50 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sat Mar 14 08:14:50 2026 +0000"
      },
      "message": "Rewrite AuthRes plugin to use new Header::AuthenticationResults parser\n\n  The AuthRes plugin previously hand-rolled a fragile A-R header parser that\n  died (discarding the entire header) on unknown methods or properties.\n  Real-world headers from servers like Mail::Milter::Authentication include\n  extended properties (policy.published-domain-policy) and non-standard\n  methods (x-tls) that caused valid results to be skipped.\n\n  Create Mail::SpamAssassin::Header::AuthenticationResults, inheriting from\n  ParameterHeader, which handles the structural parsing (comment stripping,\n  semicolon tokenization, quoted strings, line unfolding). The subclass adds\n  A-R-specific secondary parsing of method results and ptype.property\u003dvalue\n  pairs.\n\n  Simplify the AuthRes plugin to use the new class. Remove the hand-rolled\n  parser (regex constants, skip_cfws, the old parse_authres), the method/\n  property whitelists, and ARC handling (handled in other plugins). All\n  parsed methods and properties now flow through to $pms-\u003e{authres_parsed}\n  regardless of whether they appear in a whitelist, so check_authres_result\n  works for any method present in the header.\n\n  The $pms-\u003e{authres_parsed} and $pms-\u003e{authres_result} structures are\n  preserved for compatibility with other plugins.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932298 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d8b971c6432eba0ec1d5fcf89e61f3551b6446cd",
      "tree": "5e03eb7b3500fb715f16571c27c3b85d66666945",
      "parents": [
        "6ad9e4af3887dd489bd52c5aad5ec826e77f58a1"
      ],
      "author": {
        "name": "Alex Broens",
        "email": "axb@apache.org",
        "time": "Fri Mar 13 09:52:55 2026 +0000"
      },
      "committer": {
        "name": "Alex Broens",
        "email": "axb@apache.org",
        "time": "Fri Mar 13 09:52:55 2026 +0000"
      },
      "message": "added tr.ee\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932294 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6ad9e4af3887dd489bd52c5aad5ec826e77f58a1",
      "tree": "a7d3bc88ace6b8946f4245f9c853aeeb8eaf7ab6",
      "parents": [
        "b5b4495b337b85f003635bcb9da3f73206fd32d8"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Mar 13 08:30:15 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Mar 13 08:30:15 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932293 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b5b4495b337b85f003635bcb9da3f73206fd32d8",
      "tree": "6d27ae5fc6ff513f879c06437d77c372c22016c4",
      "parents": [
        "c138bc515ca4e7b9e2770790bae8650c864eed8c"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Mar 12 10:18:55 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Mar 12 10:18:55 2026 +0000"
      },
      "message": "avoid a warning if http connection breaks\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932277 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c138bc515ca4e7b9e2770790bae8650c864eed8c",
      "tree": "51882ce40df1b447345325e73d9eac423fe3cb2a",
      "parents": [
        "ab37cbdee186a32c32189029f7c85071dfab487a"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Mar 12 09:01:39 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Mar 12 09:01:39 2026 +0000"
      },
      "message": "reset PerMsgStatus at the correct time, otherwise memory is not always deallocated.\ncorrectly assign username\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932276 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ab37cbdee186a32c32189029f7c85071dfab487a",
      "tree": "ed9d78c14eeca44ae38630ae13d9a89f677a61aa",
      "parents": [
        "cfb0c7373c608b84a34d5d7a3908b7e14bab049b"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Mar 12 08:30:17 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Mar 12 08:30:17 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932275 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "cfb0c7373c608b84a34d5d7a3908b7e14bab049b",
      "tree": "d6e32375dd27554e214b776f75441abdb8926279",
      "parents": [
        "12a94290cf3eb4f01feee2939016710ca71ce327"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Mar 11 18:00:39 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Mar 11 18:00:39 2026 +0000"
      },
      "message": "install v403.pre file\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932267 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "12a94290cf3eb4f01feee2939016710ca71ce327",
      "tree": "154d4946f3b0ff1b7bfd4c9f97693793cf2da9f3",
      "parents": [
        "962b5c5d2b1bdcaa9e4666f1eb1d188e47f23fba"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Mar 11 16:05:06 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Mar 11 16:05:06 2026 +0000"
      },
      "message": "sync with latest changes\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932264 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "962b5c5d2b1bdcaa9e4666f1eb1d188e47f23fba",
      "tree": "5e0be8f811344687622077ac0641482459db7344",
      "parents": [
        "2928a1f8a83023bf227e901648f0365b98aee7b8"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Mar 11 15:59:01 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Mar 11 15:59:01 2026 +0000"
      },
      "message": "add a url shortener\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932263 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2928a1f8a83023bf227e901648f0365b98aee7b8",
      "tree": "1ff22cf012d876d0edcb16c3c998f6dcea257c0e",
      "parents": [
        "08d56f2271c81ad9b326c572343a06abb9ea63fc"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Mar 11 08:30:14 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Mar 11 08:30:14 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1932261 13f79535-47bb-0310-9956-ffa450edef68\n"
    }
  ],
  "next": "08d56f2271c81ad9b326c572343a06abb9ea63fc"
}
