)]}'
{
  "log": [
    {
      "commit": "666e91873c02f2ee25c8f0ec730ccb40f18035f7",
      "tree": "2791bf7c426f55bfaa611ce2b5a3cb3e6052caa1",
      "parents": [
        "9e96a08a603b96c331e49083e7a8840463e5f7f1"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 24 08:30:21 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 24 08:30:21 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936537 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9e96a08a603b96c331e49083e7a8840463e5f7f1",
      "tree": "567a3bf754e8bedce4c3587a8d52132daf7dcc16",
      "parents": [
        "e62c39875bd7748650adf6f2e269e171d836cf4b"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 24 02:52:31 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 24 02:52:31 2026 +0000"
      },
      "message": "updated scores for revision 1936514 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936534 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e62c39875bd7748650adf6f2e269e171d836cf4b",
      "tree": "d1e914edb91ea46c93c878cec8adc9c98458b4e4",
      "parents": [
        "a6b05999411137a8a21fc730c7045dafb911b5ab"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Thu Jul 23 23:04:51 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Thu Jul 23 23:04:51 2026 +0000"
      },
      "message": "Message::Node: fix BOM\u0027d UTF-16 decoding in _normalize\n\ndetect_utf16() returned undef when the data began with a UTF-16 BOM\n(\"let perl figure it out from the BOM\"), but its only caller --\n_normalize()\u0027s UTF-16 branch -- used solely the decoder it returned.\nSo BOM\u0027d UTF-16 fell through to the Windows-1252 last resort and was\nmangled (the BOM bytes ff fe / fe ff decoded to c3 bf c3 be, with the\ninterleaved NUL bytes preserved).\n\nReturn the BOM-aware UTF-16 decoder from detect_utf16() on a BOM instead\nof undef; it consumes the BOM and picks endianness from it. detect_utf16()\nnow returns undef only when the data does not look like UTF-16 at all.\n\nWhile here, bound the endianness heuristic to a 1024-byte prefix instead\nof scanning the whole part: the check is statistical, so a prefix gives\nthe same verdict while avoiding the unpack() of a multi-MB body into\nper-nibble arrays. The BOM pre-check now tests $_[0] directly (only the\nfirst two bytes matter) rather than copying the body first.\n\nAdd t/node_utf16.t: direct unit tests covering detect_utf16() and\n_normalize(\u0027UTF-16\u0027) for BOM\u0027d and BOM-less UTF-16 of either endianness,\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936530 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a6b05999411137a8a21fc730c7045dafb911b5ab",
      "tree": "708ba6e0682e7348bb596d41549352d0db77ef68",
      "parents": [
        "38c7c4df19308138e5dfd440ff41abfeb65a204e"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Jul 23 13:56:10 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Jul 23 13:56:10 2026 +0000"
      },
      "message": "update optional dependencies\nfix #8402\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936522 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "38c7c4df19308138e5dfd440ff41abfeb65a204e",
      "tree": "ef49f8146408dd08509c7d08b01656b50d250da6",
      "parents": [
        "d284d0b36de4fb0dd05facb05b121b6e5011847e"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Jul 23 11:04:23 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Jul 23 11:04:23 2026 +0000"
      },
      "message": "detect Microsoft Oauth2 service abuse\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936520 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d284d0b36de4fb0dd05facb05b121b6e5011847e",
      "tree": "54311505699f4d253b6c8d5e5093fcba3c93e2c7",
      "parents": [
        "77f44bea34a37a62b3ee937af376a300ae53c085"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Jul 23 10:46:30 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Jul 23 10:46:30 2026 +0000"
      },
      "message": "add a warning if Mail::SpamAssassin::Handler::HTML handler is not loaded.\nmight save some debug headache to someone else.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936519 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "77f44bea34a37a62b3ee937af376a300ae53c085",
      "tree": "71c091e68ac9004f44c3a407004b66b7b64f6346",
      "parents": [
        "93ae15b9ad9a3732267d10d6a5b046ca3d8334e7"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 23 08:30:15 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 23 08:30:15 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936514 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "93ae15b9ad9a3732267d10d6a5b046ca3d8334e7",
      "tree": "271848e2d87a8de383976554d99a953c1a1a6ed6",
      "parents": [
        "ac19af1c95837550c0533c93c2c6f6ea6404d76b"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 23 02:51:13 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 23 02:51:13 2026 +0000"
      },
      "message": "updated scores for revision 1936457 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936506 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ac19af1c95837550c0533c93c2c6f6ea6404d76b",
      "tree": "0b4c231b28e073f584c448947dc6b4a54ca666fc",
      "parents": [
        "e86af2b94e84a992ee014eaf615a34bdfce41ca9"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Wed Jul 22 15:22:20 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Wed Jul 22 15:22:20 2026 +0000"
      },
      "message": "PDF: Skip tests when required modules are missing\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936490 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e86af2b94e84a992ee014eaf615a34bdfce41ca9",
      "tree": "cb29962890003d3fa5c0eaa29e3f076e25d3e9c8",
      "parents": [
        "87c02bdb88402588539fa9c629c71b0c92fb09bd"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Jul 22 13:34:40 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Jul 22 13:34:40 2026 +0000"
      },
      "message": "Cache eval-plugin glue methods for the process lifetime, not per message\n\nPerMsgStatus::finish() undefined every register_plugin_eval_glue()\ngenerated wrapper sub (and any register_generated_rule_method() plugin\nsubs) and cleared their tracking hash after every single message, even\nthough this glue is 100% static per-config -- forcing a fresh eval()\ncompile of every distinct eval-plugin function on every message instead\nof once per process, the same \\\"compile once, reuse\\\" pattern Check.pm\nalready uses for its rule subs.\nIt also contradicted register_generated_rule_method()\u0027s\ndocumented contract, which says these methods are destroyed at\nMail::SpamAssassin::finish() (session end), not per-message.\n\nMove the cleanup to Mail::SpamAssassin::finish(), alongside the\nexisting finish_tests plugin-hook cleanup. Since that code runs\noutside the PerMsgStatus package, bare (non-fully-qualified) method\nnames now need explicit qualification to avoid undefining the wrong\nsymbol.\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n\nSubmitted by: Giovanni \u003cg.bechis@snb.it\u003e\n\nGithub: closes #34\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936486 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "87c02bdb88402588539fa9c629c71b0c92fb09bd",
      "tree": "9cb8d88af755bc50af34dfae208a90c4916a48fe",
      "parents": [
        "58dc029153ccd4c9990c4e8398360335eaeb9d8b"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Jul 22 08:30:17 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Jul 22 08:30:17 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936457 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "58dc029153ccd4c9990c4e8398360335eaeb9d8b",
      "tree": "93ed860beb5eea7a01a832819bff20da5ce39269",
      "parents": [
        "f1d64842c4b0c9a54e39a663eff995af33ac8c7a"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Jul 22 07:12:42 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Jul 22 07:12:42 2026 +0000"
      },
      "message": "remove start-of-string anchors and set the rule as lossy, it\u0027s a speed gain in any case\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936449 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f1d64842c4b0c9a54e39a663eff995af33ac8c7a",
      "tree": "8d8a6df4fd0994949ebb8274971404da8d77a314",
      "parents": [
        "ba835bd6ff75cc46100ac46a7324b44216ae612e"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Jul 22 07:10:58 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Jul 22 07:10:58 2026 +0000"
      },
      "message": "document dead code\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936448 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ba835bd6ff75cc46100ac46a7324b44216ae612e",
      "tree": "1aacd9e7b21bc836d61fedee1f3821f4a6d9cb2f",
      "parents": [
        "858abfc7f0301a50200b1ada59fd32a5b02acf5c"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Jul 22 06:40:00 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Jul 22 06:40:00 2026 +0000"
      },
      "message": "precompute the per-hit metadata that run_body_fast_scan() would\notherwise have to re-derive with regexps on every single hit\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936447 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "858abfc7f0301a50200b1ada59fd32a5b02acf5c",
      "tree": "26cab48935dde9295a50d95feecb2a242bcf6456",
      "parents": [
        "55cb60383a6d1e583c5c88e7c7e76a36079ab43d"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Tue Jul 21 16:08:47 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Tue Jul 21 16:08:47 2026 +0000"
      },
      "message": "Make rule compatible with older versions\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936424 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "55cb60383a6d1e583c5c88e7c7e76a36079ab43d",
      "tree": "5a168e95fdbdaaeab6f2647d759e44355a277abe",
      "parents": [
        "c6faf3000b4ef86db809e5d870d97a21424cfab6"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Tue Jul 21 15:27:05 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Tue Jul 21 15:27:05 2026 +0000"
      },
      "message": "limit base64 decoding based on scan size, we do not need to decode a big message\njust to discard it later\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936423 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c6faf3000b4ef86db809e5d870d97a21424cfab6",
      "tree": "eb303645daf0311153205a71236e1613ea7638a0",
      "parents": [
        "a21149230721abfa1affccf0c7d623444d883c4d"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jul 21 08:30:28 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jul 21 08:30:28 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936417 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a21149230721abfa1affccf0c7d623444d883c4d",
      "tree": "3b67b10da7a0b9f88999e5382b65d06cf2586d26",
      "parents": [
        "b3fa064cca94acfb3a9bc76cbee9f6ab4caa726c"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jul 21 02:46:51 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jul 21 02:46:51 2026 +0000"
      },
      "message": "updated scores for revision 1936349 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936410 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b3fa064cca94acfb3a9bc76cbee9f6ab4caa726c",
      "tree": "04329415a75db023d1f2f3b586723f7ae786eb5e",
      "parents": [
        "35a01b22771728780fc19975775a84abb8446e3f"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Jul 20 17:45:00 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Jul 20 17:45:00 2026 +0000"
      },
      "message": "Sync MANIFEST\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936399 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "35a01b22771728780fc19975775a84abb8446e3f",
      "tree": "d5e39ff29c484460ea16f0c7be7ab199cc24f4cb",
      "parents": [
        "444f4ba970e30ef9f48c93964e1932101e544796"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Jul 20 17:42:08 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Jul 20 17:42:08 2026 +0000"
      },
      "message": "ICS: route HTML calendar properties to the HTML handler as sub-parts\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936398 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "444f4ba970e30ef9f48c93964e1932101e544796",
      "tree": "0b349a31c6ee57ba561aa2b990fced9288784ac2",
      "parents": [
        "d50c186dd0e47c2a008d9f4e7f1225d7c301f47b"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Jul 20 08:30:13 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Jul 20 08:30:13 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936348 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d50c186dd0e47c2a008d9f4e7f1225d7c301f47b",
      "tree": "941492eacaf2f78f4ac0c5d6e4b03a3f737a3704",
      "parents": [
        "42a04251527c66ad15b738e957d6f1bca81c0a01"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Jul 20 06:03:43 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Jul 20 06:03:43 2026 +0000"
      },
      "message": "Extract HTML URIs in the HTML handler instead of _process_html_uri_list\n\n  Move HTML URI harvesting out of PerMsgStatus::_process_html_uri_list and\n  into Handler::HTML::handle_html, so that:\n\n    * URIs are extracted from synthetic HTML parts too. Handlers can emit\n      child parts that never appear in the original MIME tree. The old walk\n      iterated metadata-\u003e{html_all}, which only holds parts from the parsed\n      message tree, so it never saw these. Harvesting as each part is\n      rendered by its handler covers synthetic parts as well.\n\n    * HTML-specific code lives in the HTML handler, alongside the rendering\n      it depends on, rather than in PerMsgStatus.\n\n  handle_html now walks html_results-\u003e{uri_detail} and calls\n  add_uri_detail_list (type \u0027html\u0027, copying anchor_text), mirroring what\n  _process_html_uri_list did.\n  \n  get_uri_detail_list now ensures apply_handlers has run before assembling\n  the list, so a caller fetching URIs without a full scan still gets HTML\n  URIs.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936344 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "42a04251527c66ad15b738e957d6f1bca81c0a01",
      "tree": "49f56b17420d04be0310832c81c949390dcd174a",
      "parents": [
        "7251945d468fcc389204a8a0b32c0ea90904bc85"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Jul 20 02:47:25 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Jul 20 02:47:25 2026 +0000"
      },
      "message": "updated scores for revision 1936308 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936341 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7251945d468fcc389204a8a0b32c0ea90904bc85",
      "tree": "4fed8156b6df5adeca5899166fc400405efd3aa9",
      "parents": [
        "f473c5235b5a0a1d6a3c6c4f674461bd86d10cef"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Jul 20 02:47:04 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Jul 20 02:47:04 2026 +0000"
      },
      "message": "Add redirectors (Omnisend)\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936340 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f473c5235b5a0a1d6a3c6c4f674461bd86d10cef",
      "tree": "ad97e423d0cd10754be57b1f8454f670d78a369a",
      "parents": [
        "522eed608ad45fcbf0ac0d22aa3527fb24785a62"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Jul 19 08:30:15 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Jul 19 08:30:15 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936308 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "522eed608ad45fcbf0ac0d22aa3527fb24785a62",
      "tree": "34e99f88762fe29ab5dbc0380bdf0e31926cda79",
      "parents": [
        "605db5fcb5419b97f57e41ee9d650e2508a972a0"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Jul 19 02:49:29 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Jul 19 02:49:29 2026 +0000"
      },
      "message": "updated scores for revision 1936287 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936302 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "605db5fcb5419b97f57e41ee9d650e2508a972a0",
      "tree": "1a6dc422cd8c5b64ad50f68116ae6c44cfefe670",
      "parents": [
        "e7522c582faefb145e2fe74b47ed7d55a7e89154"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sun Jul 19 02:42:05 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sun Jul 19 02:42:05 2026 +0000"
      },
      "message": "Bitcoin rules tuning\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936301 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e7522c582faefb145e2fe74b47ed7d55a7e89154",
      "tree": "aece699cba1f79d4fd81aff72525ada6d4ce4665",
      "parents": [
        "47a5dd6c26f45eb895269fb64e420aa475ae96f7"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sun Jul 19 02:28:01 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sun Jul 19 02:28:01 2026 +0000"
      },
      "message": "Fix backwards FP avoidance\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936300 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "47a5dd6c26f45eb895269fb64e420aa475ae96f7",
      "tree": "4dfcfdfaf8ff92815c9d093fcaf69d2efc2c632a",
      "parents": [
        "95c7c4dc9609071448b991d53a259797ef5605c2"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Sat Jul 18 21:43:27 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Sat Jul 18 21:43:27 2026 +0000"
      },
      "message": "prepare msphish rule for future FP mitigation\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936298 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "95c7c4dc9609071448b991d53a259797ef5605c2",
      "tree": "a0a8dca14478f3294b27b0a809f25d5878c886a9",
      "parents": [
        "eaf726efbd968e63cd867086c639a55e540d2503"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Jul 18 08:30:12 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Jul 18 08:30:12 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936287 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "eaf726efbd968e63cd867086c639a55e540d2503",
      "tree": "f2d0bcef0d489b556d2f1b933d7cdb0d40abd018",
      "parents": [
        "a8758bda8d681af4f5a7a5a5442a66343a94fb2d"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Jul 18 02:51:03 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Jul 18 02:51:03 2026 +0000"
      },
      "message": "updated scores for revision 1936242 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936285 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a8758bda8d681af4f5a7a5a5442a66343a94fb2d",
      "tree": "da63e3a546c8ea0042c8de0d3063d92677d7ccdd",
      "parents": [
        "10e4a96d87638ca6b84ec5902b6e2cffc60c691c"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Fri Jul 17 18:51:33 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Fri Jul 17 18:51:33 2026 +0000"
      },
      "message": "simplify bad-referer exclusion\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936281 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "10e4a96d87638ca6b84ec5902b6e2cffc60c691c",
      "tree": "318c079393d88e399da4ad1723a040246965f8d9",
      "parents": [
        "b125164bf63568c6538fd210412c64d0bc043222"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Fri Jul 17 10:44:30 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Fri Jul 17 10:44:30 2026 +0000"
      },
      "message": "silence a warning when saving the DMARC report and no DKIM record is present\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936253 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b125164bf63568c6538fd210412c64d0bc043222",
      "tree": "832d61a77acfee3e9735e9abf7d0e989b9f5c51e",
      "parents": [
        "dd53c977897936451c5cc54d142033799dff24e6"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Fri Jul 17 10:36:54 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Fri Jul 17 10:36:54 2026 +0000"
      },
      "message": "make NeuralNetwork plugin work even without Bayes plugin enabled\nadd a `--plugin` option to sa-learn in order to dump NeuralNetwork stats\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936252 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "dd53c977897936451c5cc54d142033799dff24e6",
      "tree": "9a89276f999e9118f7f6c89d021278fa8e598ec5",
      "parents": [
        "713406206e01e1cb117acca1580fa6c0655a8733"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 17 08:30:12 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 17 08:30:12 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936241 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "713406206e01e1cb117acca1580fa6c0655a8733",
      "tree": "b80c3f9fa5af534f51ac0aa30cf965f1ea09a654",
      "parents": [
        "9a50951f74d709263a9b36e0c1f27d3b7eccbf79"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 17 02:41:00 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 17 02:41:00 2026 +0000"
      },
      "message": "updated scores for revision 1936185 active rules added since last mass-check [set0 carried forward r1936185: insufficient ham contributors]\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936222 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9a50951f74d709263a9b36e0c1f27d3b7eccbf79",
      "tree": "2a7927a433fd943d4eec49459dcf9621f3cc95fd",
      "parents": [
        "953ccd6fb8f489bf1104d8b361f4a8b6c135e5cb"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Jul 16 15:47:09 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Thu Jul 16 15:47:09 2026 +0000"
      },
      "message": "Add a redirector\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936211 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "953ccd6fb8f489bf1104d8b361f4a8b6c135e5cb",
      "tree": "8869d9d1da99046a0d7588a4b45f2a2805f7dbd1",
      "parents": [
        "2349be8600fe8ce1f2f7f49b2412b902cb5ed958"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 16 08:30:13 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 16 08:30:13 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936191 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2349be8600fe8ce1f2f7f49b2412b902cb5ed958",
      "tree": "c6a196def667bd8eccee56c83f514d1db2961b35",
      "parents": [
        "06d9f10f41c0239c70b5cba713127faac197b256"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 16 02:38:07 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 16 02:38:07 2026 +0000"
      },
      "message": "updated scores for revision 1936150 active rules added since last mass-check [set0 carried forward r1936150: insufficient spam message count]\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936185 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "06d9f10f41c0239c70b5cba713127faac197b256",
      "tree": "d9d46edd183edbbd456ca399e618596b4d1f5b39",
      "parents": [
        "bf94db37eeb1af0ef31b83d6ad9b59d9ea3d0c62"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Wed Jul 15 19:34:41 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Wed Jul 15 19:34:41 2026 +0000"
      },
      "message": "Add a calendar rule to sandbox for testing\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936172 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "bf94db37eeb1af0ef31b83d6ad9b59d9ea3d0c62",
      "tree": "48484378436fd31e9aa9fa01ce7ca93862f361cc",
      "parents": [
        "b55d54d7e4b16bfaee21396f183e71ef0282d884"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Wed Jul 15 19:32:04 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Wed Jul 15 19:32:04 2026 +0000"
      },
      "message": "mkrules: recognize ifhandler as a conditional and load handlers for lint\n\nOnly \u0027if\u0027/\u0027ifplugin\u0027 were treated as conditional-openers, so an \u0027ifhandler\u0027\nline in a sandbox rule was dropped and its \u0027endif\u0027 orphaned -- desyncing\nif/endif in the generated 72_active.cf and stripping the handler guard so the\nhandler\u0027s evals linted as \u0027unknown eval\u0027.\n\n- add \u0027ifhandler\u0027 to the conditional-opener regex\n- handle \u0027ifhandler\u0027 in invert_conditional (inverts to if !plugin(...))\n- load rules/v403.pre\u0027s handlers in the lint pretext, guarded by feature_handlers\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936171 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b55d54d7e4b16bfaee21396f183e71ef0282d884",
      "tree": "6804e4a9252d7efec60257a2d665a6c4553d4c7d",
      "parents": [
        "dc9b593904f8c8133c00e27afee0aaeb4f01373a"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Wed Jul 15 19:02:28 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Wed Jul 15 19:02:28 2026 +0000"
      },
      "message": "Add ICS handler for text/calendar parts\n\nHandler::ICS parses text/calendar parts and renders each event\u0027s\nSUMMARY and DESCRIPTION into the body so ordinary body rules can match\nit (SpamAssassin otherwise skips text/calendar); the same text is also\nexposed to the new \"icstext\" rule type, kept separate from the body.\nLinks in the URL, ATTACH and LOCATION properties are added to the URI\ndetail list (type \"ics\"). Provides the check_ics_attendee_count,\ncheck_ics_random_start_time and check_ics_event_prop evals, the last of\nwhich matches a regex against any event property (parameters included)\nfor hunting arbitrary or extension properties.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936170 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "dc9b593904f8c8133c00e27afee0aaeb4f01373a",
      "tree": "494136f24499a07742beac1fe366f6804a27f1c5",
      "parents": [
        "2dcbdcbc3bfa793a1308599c41532887d4f4884f"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Wed Jul 15 17:51:21 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Wed Jul 15 17:51:21 2026 +0000"
      },
      "message": "Bug 6439: Scan text attachments\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936167 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2dcbdcbc3bfa793a1308599c41532887d4f4884f",
      "tree": "f3fc7963c3e655332c2c8d1d56298b2a0b9ef14c",
      "parents": [
        "47a60da45d4bc53b7c5b985c69fb28d7bd2be299"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Wed Jul 15 15:06:49 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Wed Jul 15 15:06:49 2026 +0000"
      },
      "message": "Add wasmer.app free hosting, observed in phishing. Add comments about replit.dev\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936164 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "47a60da45d4bc53b7c5b985c69fb28d7bd2be299",
      "tree": "0e5e3dc97f1ced5159f99965f2907ec6064ad09f",
      "parents": [
        "9263a8a51a0125635b2c0318fd91bc5f4374e51a"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Jul 15 08:30:22 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Jul 15 08:30:22 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936157 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9263a8a51a0125635b2c0318fd91bc5f4374e51a",
      "tree": "9f750f45f4bcf3b077c59d225d71a06c857faf42",
      "parents": [
        "0a73e64b226dde380b1a6f8d1b005c4e73ca7bcf"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Jul 15 02:53:58 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Jul 15 02:53:58 2026 +0000"
      },
      "message": "updated scores for revision 1935146 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936150 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0a73e64b226dde380b1a6f8d1b005c4e73ca7bcf",
      "tree": "3f91472571d4fcccea995d57e194d80f80488839",
      "parents": [
        "ce9c6c427e13eb732938d4043429c417b408b1fc"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Tue Jul 14 17:31:50 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Tue Jul 14 17:31:50 2026 +0000"
      },
      "message": "sync online changes\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936140 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ce9c6c427e13eb732938d4043429c417b408b1fc",
      "tree": "c5b61656ee7f50d1fd8ead8de0b64e4f7cc1dfc9",
      "parents": [
        "a4394b2dac35f112ee94f0beec0451ec8ac55004"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Tue Jul 14 15:16:40 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Tue Jul 14 15:16:40 2026 +0000"
      },
      "message": "make AI::Fann optional\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936135 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a4394b2dac35f112ee94f0beec0451ec8ac55004",
      "tree": "5aa6170ff9734e08c5e680deded42b5cd37e66cf",
      "parents": [
        "4640774382f7c7bba86d3fbeba816dea9e7fdba1"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jul 14 08:30:13 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jul 14 08:30:13 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936128 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4640774382f7c7bba86d3fbeba816dea9e7fdba1",
      "tree": "a47ad89ab11d2b07d7e2aea0d49afe8e46ad3c6e",
      "parents": [
        "de622a96e2b6204c9b8ba84cb2f2d2717e356edb"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Tue Jul 14 07:17:56 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Tue Jul 14 07:17:56 2026 +0000"
      },
      "message": "avoid FPs on KAM_LOTTO2, make it clear that any committer can manage kmcgrail@ sandbox\ncommit on behalf of kmcgrail@\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936126 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "de622a96e2b6204c9b8ba84cb2f2d2717e356edb",
      "tree": "c72637a0cf92bd8e6f04df484e21ce2ebf3a3f73",
      "parents": [
        "fdd76aad510c4df08e5add0d4247d4b55d42e637"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jul 14 02:50:59 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jul 14 02:50:59 2026 +0000"
      },
      "message": "updated scores for revision 1935146 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936121 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fdd76aad510c4df08e5add0d4247d4b55d42e637",
      "tree": "21548546e3c76b26dec5662e1fd522f2cbca333c",
      "parents": [
        "240819041a48789107c381f807ffa17c902a4a5f"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Jul 13 08:30:13 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Jul 13 08:30:13 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936100 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "240819041a48789107c381f807ffa17c902a4a5f",
      "tree": "0b3a1477371322a625d802e0c90249f8f835f695",
      "parents": [
        "ab720b8ca19fc13eddc59da9f042a5caef157083"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Jul 13 04:22:11 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Mon Jul 13 04:22:11 2026 +0000"
      },
      "message": "Skip calendar parts by effective_type\n\nMatch the text/calendar rawbody skip on effective_type()\nso alias MIME types (application/ics, text/x-vcalendar)\nand .ics-named parts are skipped too, consistent with\nthe non-text skip on the line above. \n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936095 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ab720b8ca19fc13eddc59da9f042a5caef157083",
      "tree": "90e479c049fb3ae1d74e082bb92c0307285472c9",
      "parents": [
        "fe42b95932ca1b91ea073d6891e383251111d668"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Jul 13 02:52:33 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Jul 13 02:52:33 2026 +0000"
      },
      "message": "updated scores for revision 1935146 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936093 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fe42b95932ca1b91ea073d6891e383251111d668",
      "tree": "3ec8296e4e5c24cab558afdfdc6b77cbe23389a6",
      "parents": [
        "d154632e6d66568716918071af10de5d674fd5fa"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Jul 12 15:57:08 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Jul 12 15:57:08 2026 +0000"
      },
      "message": "put a null between parts so they don\u0027t collapse together\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936091 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d154632e6d66568716918071af10de5d674fd5fa",
      "tree": "af9c7bbed4bd35604e42800b1634b30dbdde8459",
      "parents": [
        "cd058155553b634b91e78b18908ef6822068b8ea"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Jul 12 08:30:12 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Jul 12 08:30:12 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936081 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "cd058155553b634b91e78b18908ef6822068b8ea",
      "tree": "42552c14d2277973cb5daf593ea1c1136b63502c",
      "parents": [
        "eca940762ad2fd04e4a7487925df1cf731918f0f"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Jul 12 04:07:57 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Jul 12 04:07:57 2026 +0000"
      },
      "message": "Add URL shortener spoo.me\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936071 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "eca940762ad2fd04e4a7487925df1cf731918f0f",
      "tree": "d771faf364a0163347203964cb40ce23cde2fd4d",
      "parents": [
        "50fe7b96b945ed4d5f18766e316f201f812c171c"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Jul 12 02:53:33 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Jul 12 02:53:33 2026 +0000"
      },
      "message": "updated scores for revision 1936050 active rules added since last mass-check\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936069 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "50fe7b96b945ed4d5f18766e316f201f812c171c",
      "tree": "4769c39d6e0f1415556a4d4e9c2bde87e7807c5f",
      "parents": [
        "f6fd0eb1a41ac070ac3f40c2adfa4531f5025f84"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Jul 11 08:30:13 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Jul 11 08:30:13 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936050 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f6fd0eb1a41ac070ac3f40c2adfa4531f5025f84",
      "tree": "8fecbcec29d5b70e0bf6c9ae70f7f8804aaf25a8",
      "parents": [
        "0b713aeb5e82f5bb57d9ddb5878b141c501fd2f5"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Jul 11 02:38:46 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Jul 11 02:38:46 2026 +0000"
      },
      "message": "updated scores for revision 1935146 active rules added since last mass-check [set1 carried forward r1936033: insufficient spam message count]\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936048 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0b713aeb5e82f5bb57d9ddb5878b141c501fd2f5",
      "tree": "0265a37a36686e638196748cdbadb4cebe945100",
      "parents": [
        "e4d8f7f24ef2677369982f9b36e6f71643c1a446"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Fri Jul 10 15:28:03 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Fri Jul 10 15:28:03 2026 +0000"
      },
      "message": "add subrule for MS phishing\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936045 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e4d8f7f24ef2677369982f9b36e6f71643c1a446",
      "tree": "69c5879de4dc087ef249514995f775102be8421f",
      "parents": [
        "244918363e3beb4895028f64f844c6ad983d9545"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Jul 10 14:59:39 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Jul 10 14:59:39 2026 +0000"
      },
      "message": "Fix UPPERCASE_URI insufficient format matching causing FP\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936044 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "244918363e3beb4895028f64f844c6ad983d9545",
      "tree": "391ddfbcf5467d913b3a192ff76a88160bf4aa3f",
      "parents": [
        "4ac93af8733dbd2e78960ec523d7477a056e4c0e"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 10 08:30:14 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 10 08:30:14 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936037 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4ac93af8733dbd2e78960ec523d7477a056e4c0e",
      "tree": "8db64aa6b594e19891a870449228e95b8a822244",
      "parents": [
        "a0dca142afba699a76cf077ec451d6d8c2ac2442"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 10 02:38:56 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 10 02:38:56 2026 +0000"
      },
      "message": "updated scores for revision 1935146 active rules added since last mass-check [set1 carried forward r1936016: insufficient spam message count]\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936033 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a0dca142afba699a76cf077ec451d6d8c2ac2442",
      "tree": "1d9b452cbf028a784030f9f85e4f0439efac8223",
      "parents": [
        "17401877ccb828bb55d1e29bf8ab13366b9a0de8"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Thu Jul 09 14:47:36 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Thu Jul 09 14:47:36 2026 +0000"
      },
      "message": "Update generated ruleset\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936027 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "17401877ccb828bb55d1e29bf8ab13366b9a0de8",
      "tree": "922ef033aa71ee0c66a1e1b76c62de88a2c16712",
      "parents": [
        "9bad8b82783bf13af127cbf9bbf6cdd32deaee25"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 09 08:30:14 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 09 08:30:14 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936020 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9bad8b82783bf13af127cbf9bbf6cdd32deaee25",
      "tree": "99be59922690a78144d872552c5b08e5ca40074b",
      "parents": [
        "14800eafc942933ecda350e5813f06ddb830316a"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 09 02:37:58 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 09 02:37:58 2026 +0000"
      },
      "message": "updated scores for revision 1935146 active rules added since last mass-check [set1 carried forward r1935987: insufficient spam message count]\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1936016 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "14800eafc942933ecda350e5813f06ddb830316a",
      "tree": "b64ff2c089b00864749154771645a8216e8f0214",
      "parents": [
        "01bbeb16af689f8e158a63d6ec51b11faa31ceea"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Jul 08 08:30:17 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Jul 08 08:30:17 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935999 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "01bbeb16af689f8e158a63d6ec51b11faa31ceea",
      "tree": "c148438bbedfbe8dd546847eeec9c9e7fc42610a",
      "parents": [
        "d966eb180010a83c6235509fcad2f95ac4664f6a"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Jul 08 02:39:08 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Jul 08 02:39:08 2026 +0000"
      },
      "message": "updated scores for revision 1935146 active rules added since last mass-check [set1 carried forward r1935966: insufficient spam message count]\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935987 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d966eb180010a83c6235509fcad2f95ac4664f6a",
      "tree": "75dd593306a5f600099e8f2b5df39c8981e51998",
      "parents": [
        "30fa01d9416e0034473008683b319231fc17e504"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jul 07 08:30:14 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jul 07 08:30:14 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935969 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "30fa01d9416e0034473008683b319231fc17e504",
      "tree": "7b31c40b33256f7c22925e45c1eb7c32ad90837f",
      "parents": [
        "47d27847a116603ab8e8315129cbf7ca8a3997be"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jul 07 02:38:05 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jul 07 02:38:05 2026 +0000"
      },
      "message": "updated scores for revision 1935146 active rules added since last mass-check [set1 carried forward r1934956: insufficient spam message count]\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935966 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "47d27847a116603ab8e8315129cbf7ca8a3997be",
      "tree": "ba18a258e5b1fc5fffd85025d17034bc4659a565",
      "parents": [
        "901e005d563cb397249512d42c0a9a61aa27c727"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Jul 06 08:30:13 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Mon Jul 06 08:30:13 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935928 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "901e005d563cb397249512d42c0a9a61aa27c727",
      "tree": "b8ab2da75cfe923cefee42a032a139c001bbb175",
      "parents": [
        "4d5cd91df68280b0216e621a8c2e3cc8554b5e99"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Jul 05 08:30:13 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sun Jul 05 08:30:13 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935903 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4d5cd91df68280b0216e621a8c2e3cc8554b5e99",
      "tree": "fd2de9b0b5c68076adba5fc4f1b334b5789daaff",
      "parents": [
        "32a9f6ce910d96f18df7732c31960a5a5aeca203"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Jul 04 08:30:12 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Sat Jul 04 08:30:12 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935869 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "32a9f6ce910d96f18df7732c31960a5a5aeca203",
      "tree": "877f273133df87ec3766ca0ad75c9b88a0570aee",
      "parents": [
        "ce4d4c73c260f106ac2e02bc91d9cbd2bc76645d"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Jul 03 18:32:04 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Jul 03 18:32:04 2026 +0000"
      },
      "message": "Update generated ruleset\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935855 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ce4d4c73c260f106ac2e02bc91d9cbd2bc76645d",
      "tree": "30884ef58f6fa87c6c093439f20af627dad810ad",
      "parents": [
        "376d284be954f7cc1f0b8e6ba3849055e5a1e9b8"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Jul 03 18:31:58 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Fri Jul 03 18:31:58 2026 +0000"
      },
      "message": "Update generated ruleset\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935854 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "376d284be954f7cc1f0b8e6ba3849055e5a1e9b8",
      "tree": "e45cf4a9afff803d07dd2185dad4c3c12b6409fb",
      "parents": [
        "2157dfcf46ee2531f826afb8e98ef313de3f46d9"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 03 08:30:12 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jul 03 08:30:12 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935824 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2157dfcf46ee2531f826afb8e98ef313de3f46d9",
      "tree": "b16955131c85f4d54d72a7bee3c7d4415357b8b8",
      "parents": [
        "8100c05c926d719bc1d57b7bc564015b46ee5558"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 02 08:30:44 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Thu Jul 02 08:30:44 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935792 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8100c05c926d719bc1d57b7bc564015b46ee5558",
      "tree": "1c5ef1c3bd8dd2007d4832cf3491a86746b094b6",
      "parents": [
        "57be0be3c18cae5b9232ae55375c78405f0b0ad7"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Thu Jul 02 04:24:25 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Thu Jul 02 04:24:25 2026 +0000"
      },
      "message": "Add the first six MIME-part handlers to the handler framework\n\nThe handler framework itself shipped in an earlier release; this adds the\nfirst set of handlers that make it useful.  The point of the paradigm is\nto process nested content by chaining handlers together: each handler can\nreturn synthetic child parts that the framework re-dispatches by type, so\nJavaScript embedded in an HTML file inside a rar archive, or text in an\nimage embedded in a PDF, is unwrapped one layer at a time and reaches the\nhandler that can inspect it -- all bounded by handler_max_depth,\nhandler_max_parts, handler_max_bytes, and handler_time_limit.\n\nHandlers (lib/Mail/SpamAssassin/Handler/):\n\n  HTML (text/html) - render HTML parts and surface content with no MIME\n    part of its own (inline data: images, embedded JavaScript) as child\n    parts for the image and JavaScript handlers.\n\n  JavaScript (text/javascript) - collect script text for the new\n    \"script\" rule type and add navigation/redirect URLs to the URI\n    detail list (type \"script\").\n\n  SVG (image/svg+xml) - expose SVG text to the new \"svgtext\" rule type,\n    add links to the URI detail list (type \"svg\"), and surface embedded\n    script for the JavaScript handler.\n\n  Image (image/*) - OCR image parts with tesseract and inject the text\n    into the body.  New \"imagetext\" rule type.\n\n  PDF (application/pdf) - parse PDFs with the new pure-Perl\n    Mail::SpamAssassin::PDF parser, expose metadata via pdf2_* eval rules\n    and _PDF2*_ tags, add URLs to the URI detail list (type \"pdf\"), and\n    extract embedded images for the image handler.\n\n  Archive (application/zip, application/vnd.rar) - unpack zip and rar\n    attachments and return the files inside as child parts for\n    re-dispatch.\n\nHTML, JavaScript, and SVG are loaded by default from v403.pre; Image,\nPDF, and Archive ship commented-out because they depend on external tools\n(tesseract, unrar) or non-core Perl modules (Crypt::RC4, Crypt::Mode::CBC).\n\nAlso adds the pure-Perl PDF parser (lib/Mail/SpamAssassin/PDF/), handler\nand PDF unit tests plus fixtures under t/, and updates HTML.pm and\nMessage/Node.pm to support the handlers.  UPGRADE, MANIFEST, and\nrules/v403.pre updated accordingly.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935791 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "57be0be3c18cae5b9232ae55375c78405f0b0ad7",
      "tree": "1ca32d6e02e2ce0e56f5b05eb4b6555136bc352e",
      "parents": [
        "ac68073bcd6ce18063b233715a98b953a6de48d7"
      ],
      "author": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Jul 01 12:53:30 2026 +0000"
      },
      "committer": {
        "name": "Giovanni Bechis",
        "email": "gbechis@apache.org",
        "time": "Wed Jul 01 12:53:30 2026 +0000"
      },
      "message": "sync\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935766 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ac68073bcd6ce18063b233715a98b953a6de48d7",
      "tree": "aaa1f085f198f0b707f1b262f0feef1564677f91",
      "parents": [
        "39fd6c4d36d76a16e916abdd238e0d351747125c"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Jul 01 08:30:58 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Wed Jul 01 08:30:58 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935761 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "39fd6c4d36d76a16e916abdd238e0d351747125c",
      "tree": "be7dadec8cc5406c3db6b6896dbecaa849646fa4",
      "parents": [
        "c70993a1b79d74b26dd002ffb7e3bf4d41115009"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jun 30 08:30:13 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Tue Jun 30 08:30:13 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935741 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c70993a1b79d74b26dd002ffb7e3bf4d41115009",
      "tree": "f2c39b6c2873ed9002fe2f08390cc7a84d40257e",
      "parents": [
        "e011c6ec1e6e30a1e47a419724ad8552138f5c68"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Mon Jun 29 17:45:23 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Mon Jun 29 17:45:23 2026 +0000"
      },
      "message": "more work on targeted load shedding\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935723 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e011c6ec1e6e30a1e47a419724ad8552138f5c68",
      "tree": "fd023e1a8bc287474b74f3b3be9780e31e6d17a1",
      "parents": [
        "058abf96387638bb444c01dfff55ba18745fe465"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Mon Jun 29 17:42:05 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Mon Jun 29 17:42:05 2026 +0000"
      },
      "message": "more work on targeted load shedding\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935722 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "058abf96387638bb444c01dfff55ba18745fe465",
      "tree": "167091dbe13f8d166c72b5d64a6a3aa1c10cdf58",
      "parents": [
        "c10b3b76941d1f10d73651c2ab0c4de17e623cba"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Mon Jun 29 17:40:32 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Mon Jun 29 17:40:32 2026 +0000"
      },
      "message": "more work on targeted load shedding\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935721 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c10b3b76941d1f10d73651c2ab0c4de17e623cba",
      "tree": "ab5b632b3e71b0638f4523de2017c31e9273a42a",
      "parents": [
        "a7e7ea5dc28cca40fe3af6545352196f3bcaf87e"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Mon Jun 29 16:52:38 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Mon Jun 29 16:52:38 2026 +0000"
      },
      "message": "tuning load shedding\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935720 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a7e7ea5dc28cca40fe3af6545352196f3bcaf87e",
      "tree": "2aa5dd6687cb75c023dad04df209efd0f56d3deb",
      "parents": [
        "2d7f7d18f2d0bb43841e03149e8f198f9f361f42"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Jun 28 06:15:20 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Jun 28 06:15:20 2026 +0000"
      },
      "message": "Add t/handler_aliases.t that should have been in r1935656\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935691 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2d7f7d18f2d0bb43841e03149e8f198f9f361f42",
      "tree": "8ca6a7e6a546005213bf3ec8ab2462612b46043a",
      "parents": [
        "34022dcd78a1170e6b96c38b09f1e9d6699efb76"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Jun 28 04:55:15 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Jun 28 04:55:15 2026 +0000"
      },
      "message": "Add Handler base class that should have been in r1935656\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935690 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "34022dcd78a1170e6b96c38b09f1e9d6699efb76",
      "tree": "23288305f41d1b0259c59026e62218da50836101",
      "parents": [
        "60e304966cf7349d942398fbb8973a3acf9a5fe4"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Jun 28 04:51:44 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Jun 28 04:51:44 2026 +0000"
      },
      "message": "Conf: add feature_handlers flag for gating loadhandler/ifhandler in cf files\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935689 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "60e304966cf7349d942398fbb8973a3acf9a5fe4",
      "tree": "3f9bbac044c2ff1936d67fc2e0387d72ef8a2cbc",
      "parents": [
        "4dcad7950d184431adbc0cbcbed1e032867b3424"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Jun 28 04:03:54 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sun Jun 28 04:03:54 2026 +0000"
      },
      "message": "Remove surveymonkeyuser.com from default welcomelist - actively being abused\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935687 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4dcad7950d184431adbc0cbcbed1e032867b3424",
      "tree": "4d5d1d2f670feec309fc682857036951df7006c6",
      "parents": [
        "a74df6dec2aa4b18c887aa66ea3becd893bd03ee"
      ],
      "author": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Jun 27 17:48:39 2026 +0000"
      },
      "committer": {
        "name": "John Hardin",
        "email": "jhardin@apache.org",
        "time": "Sat Jun 27 17:48:39 2026 +0000"
      },
      "message": "Add PHP-based redirector observed in phishing\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935685 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a74df6dec2aa4b18c887aa66ea3becd893bd03ee",
      "tree": "0bb2df8f03c2b2c62fcfb836a7dad3e9f89904ee",
      "parents": [
        "a4305dcc956ec94f80855272fbe2db450c81a309"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sat Jun 27 01:14:05 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Sat Jun 27 01:14:05 2026 +0000"
      },
      "message": "Redirectors: only extract embedded URIs that actually look like URLs\n\n_extract_embedded_uri turned any url_redirector_params value into an\nembedded URI, prepending http:// to bare tokens. Referral codes and\nlabels such as r\u003dto8ex or redirect\u003dapp-store-no-desktop became bogus\nhttp://to8ex / http://app-store-no-desktop URIs that were added to the\nURI detail list and subjected to URIBL/HASHBL lookups, causing false\npositives.\n\nRequire the captured value to look like a URL (explicit/encoded scheme,\nscheme-relative //host, or bare host.tld/path) before accepting it. Also\nguard against a user-supplied param regex with no capture group, which\nleft $1 undefined and fabricated a bare \"http://\".\n\nAdd regression tests covering both.\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935671 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a4305dcc956ec94f80855272fbe2db450c81a309",
      "tree": "798f653b7ed265080ed1eee35eef769f63911735",
      "parents": [
        "0b1451e3cdc4393542fd9d6c3243f20deb1cd2e2"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Fri Jun 26 19:05:34 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Fri Jun 26 19:05:34 2026 +0000"
      },
      "message": " tweaking load levels for DDoS defense\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935668 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0b1451e3cdc4393542fd9d6c3243f20deb1cd2e2",
      "tree": "79dd6ffb2afff747ba663bb356884c589caafd04",
      "parents": [
        "e57c2aeccbcb98ee1c227a2363b1a8bb49f3d53c"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Fri Jun 26 17:11:37 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Fri Jun 26 17:11:37 2026 +0000"
      },
      "message": "fixed explcit \u0027return undef\u0027 in 3 places to quiet PerlCritic test.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935666 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e57c2aeccbcb98ee1c227a2363b1a8bb49f3d53c",
      "tree": "1eb6db66b1b296ca5ad485711318743aa48a4a8b",
      "parents": [
        "741f8e665e4799e3978ad9031e2c84dad5e05de9"
      ],
      "author": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jun 26 08:30:13 2026 +0000"
      },
      "committer": {
        "name": "spamassassin_role",
        "email": "spamassassin_role@unknown",
        "time": "Fri Jun 26 08:30:13 2026 +0000"
      },
      "message": "promotions validated\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935658 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "741f8e665e4799e3978ad9031e2c84dad5e05de9",
      "tree": "afd834d3dab5ea6900013010701c8776452847ca",
      "parents": [
        "fe271c79156c224995e36c2ffbfd003a423dcbe2"
      ],
      "author": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Fri Jun 26 04:24:07 2026 +0000"
      },
      "committer": {
        "name": "Kent Oyer",
        "email": "fkento@apache.org",
        "time": "Fri Jun 26 04:24:07 2026 +0000"
      },
      "message": "Add Mail::SpamAssassin::Handler base class and loadhandler/tryhandler/ifhandler directives\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935656 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fe271c79156c224995e36c2ffbfd003a423dcbe2",
      "tree": "43bdd6f99703ee809b12ad311e2da4bd160068ec",
      "parents": [
        "6a6c5e8312a82546b02315390cc9e4a48f1d9e44"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Thu Jun 25 21:49:58 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Thu Jun 25 21:49:58 2026 +0000"
      },
      "message": "NO COMMENT!\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935653 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6a6c5e8312a82546b02315390cc9e4a48f1d9e44",
      "tree": "aa85f4fba95d8d6fba2bf6668975da5ccb2fcdd2",
      "parents": [
        "b9af38e6ce7a4314a93e9a2245e7b2ba70d38254"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Thu Jun 25 21:48:12 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Thu Jun 25 21:48:12 2026 +0000"
      },
      "message": "Cargo-culting my own coade... \n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935652 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b9af38e6ce7a4314a93e9a2245e7b2ba70d38254",
      "tree": "e68ea34912a1e28e3a19c83461475b1cd8ca7cbd",
      "parents": [
        "e20384a3f2403119319c7c673c58533a8076e431"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Thu Jun 25 21:44:24 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Thu Jun 25 21:44:24 2026 +0000"
      },
      "message": "I hope this suffices... \n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935651 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e20384a3f2403119319c7c673c58533a8076e431",
      "tree": "52caee769304db7b8c144439e926319d7ab53e7a",
      "parents": [
        "8c24b080570db25ca97835537bcff9f4c6ddadfa"
      ],
      "author": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Thu Jun 25 21:41:36 2026 +0000"
      },
      "committer": {
        "name": "Bill Cole",
        "email": "billcole@apache.org",
        "time": "Thu Jun 25 21:41:36 2026 +0000"
      },
      "message": "BLANK LINES\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/spamassassin/trunk@1935650 13f79535-47bb-0310-9956-ffa450edef68\n"
    }
  ],
  "next": "8c24b080570db25ca97835537bcff9f4c6ddadfa"
}
