)]}'
{
  "log": [
    {
      "commit": "16d599e48cb5b0fbfb2205ac800fa9f14cc4f2e8",
      "tree": "18abdac2c00f41b455de977c13b27dc81f36ae0e",
      "parents": [
        "42e63ec3bdb69c360e1e9f3e1635ad540b7fbda7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu May 07 07:22:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 07:22:26 2026 +0200"
      },
      "message": "Bump org.postgresql:postgresql (#3035)\n\nBumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.7 to 42.7.11.\n- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)\n- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.7...REL42.7.11)\n\n---\nupdated-dependencies:\n- dependency-name: org.postgresql:postgresql\n  dependency-version: 42.7.11\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "42e63ec3bdb69c360e1e9f3e1635ad540b7fbda7",
      "tree": "de2338c624bc7f9a955a951f5676d48b9699da10",
      "parents": [
        "0fb42e04bca79757fd8528f351693bef291b1d97"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon May 04 15:48:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 15:48:17 2026 +0200"
      },
      "message": "[UPGRADE] Adopt MIME4J 0.8.14 (#3032)"
    },
    {
      "commit": "0fb42e04bca79757fd8528f351693bef291b1d97",
      "tree": "2a465764a099124eb5e8f57d6bb5c059270bd389",
      "parents": [
        "bbd2df8c6b6922672528cbc2a826951352616ef4"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 30 19:03:27 2026 +0200"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon May 04 06:59:26 2026 +0200"
      },
      "message": "JAMES-4203 Correct memory app bundle\n"
    },
    {
      "commit": "bbd2df8c6b6922672528cbc2a826951352616ef4",
      "tree": "f64931f84678c0ea77a920043d8869a8cb17e766",
      "parents": [
        "54994e8fc6549ce0205471c13073ec37cb2e207f"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 30 11:40:47 2026 +0200"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon May 04 06:59:26 2026 +0200"
      },
      "message": "JAMES-4203 Scala fix\n"
    },
    {
      "commit": "54994e8fc6549ce0205471c13073ec37cb2e207f",
      "tree": "00c3e4b4b5c539e7e96da5a9998917da391e6f15",
      "parents": [
        "8b7faca047a9acacf525a747a6f2ff3a801d15f6"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 30 10:57:49 2026 +0200"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon May 04 06:59:26 2026 +0200"
      },
      "message": "JAMES-4203 Fix pre-existing warning in Data JMAP test suite\n"
    },
    {
      "commit": "8b7faca047a9acacf525a747a6f2ff3a801d15f6",
      "tree": "267f60f950ccf34f9b8e41e01476804bea30ba56",
      "parents": [
        "85cd12424ca3c6b39a580cffacdc227cb328c8bb"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 30 10:50:36 2026 +0200"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon May 04 06:59:26 2026 +0200"
      },
      "message": "JAMES-4203 Plug Ientity events into CustomIdentityDAO\n"
    },
    {
      "commit": "85cd12424ca3c6b39a580cffacdc227cb328c8bb",
      "tree": "8c831e5e6dbe6b5f9781ee8ae07f8e9e1f36fbde",
      "parents": [
        "214c689f21579c3bbbc89d6b58b0d1be18915d11"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 30 09:59:16 2026 +0200"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon May 04 06:59:26 2026 +0200"
      },
      "message": "JAMES-4203 Identity events serialization\n"
    },
    {
      "commit": "214c689f21579c3bbbc89d6b58b0d1be18915d11",
      "tree": "fb7645d826d356e4fa823cc49c074d997a0c254d",
      "parents": [
        "71e33d997f4990bc0a415912a5b3bc83433fd10a"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 30 09:45:20 2026 +0200"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon May 04 06:59:26 2026 +0200"
      },
      "message": "JAMES-4203 Add Identity events\n"
    },
    {
      "commit": "71e33d997f4990bc0a415912a5b3bc83433fd10a",
      "tree": "d137a0a1d37825e8865f953af227b0c3a09a9df0",
      "parents": [
        "403ef62b1300061e77e20f1f82eaefb21bfa7bf2"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 30 07:33:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 07:33:14 2026 +0200"
      },
      "message": "JAMES-4193 Correct boring ssl tls 1.3 cipher suite sanitizing that led to disabled tls 1.3 (#3029)"
    },
    {
      "commit": "403ef62b1300061e77e20f1f82eaefb21bfa7bf2",
      "tree": "22eb1f3db32c8a987be5b8fc1f6e9dcadc25948e",
      "parents": [
        "95be93f3c554fe3eb356f5cb0ba5f6c75c298d82"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 30 00:39:42 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 00:39:42 2026 +0200"
      },
      "message": "Update download page following MIME4J 0.8.14 (#3031)"
    },
    {
      "commit": "95be93f3c554fe3eb356f5cb0ba5f6c75c298d82",
      "tree": "50316fe55984f03729e4c6d99479953ec9867093",
      "parents": [
        "60f73aa3e4f6d7ef5673cc487791ab988eea3280"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 30 00:37:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 00:37:20 2026 +0200"
      },
      "message": "Update download page following MIME4J 0.8.14 (#3030)"
    },
    {
      "commit": "60f73aa3e4f6d7ef5673cc487791ab988eea3280",
      "tree": "e2fb437c5379a8c05fc956ba0a5473f19d8fcc79",
      "parents": [
        "6b45c01cd3d80a506b5f0c4eb7975dd8cef2893f"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Wed Apr 29 23:43:16 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 23:43:16 2026 +0200"
      },
      "message": "Blog post for MIME4J 0.8.14 (#3020)"
    },
    {
      "commit": "6b45c01cd3d80a506b5f0c4eb7975dd8cef2893f",
      "tree": "1103ec22add06e5cbf96d38268154bda4d76ab28",
      "parents": [
        "6c2283cf4096944fd60c75788a30ba6b7d536d2b"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Tue Apr 28 09:55:07 2026 +0700"
      },
      "committer": {
        "name": "Trần Hồng Quân",
        "email": "55171818+quantranhong1999@users.noreply.github.com",
        "time": "Wed Apr 29 10:44:15 2026 +0700"
      },
      "message": "JAMES-4182 content-transfer-encoding -\u003e content-encoding header\n\n`content-encoding` is more a standard S3 header.\n"
    },
    {
      "commit": "6c2283cf4096944fd60c75788a30ba6b7d536d2b",
      "tree": "3314c1aeea8ff39ec56c1d158560c635d312d7e8",
      "parents": [
        "e90ec2e9554c08e924aedca58f67c3eadb458657"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Tue Apr 28 07:56:38 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 07:56:38 2026 +0200"
      },
      "message": "[UPGRADE] RSpamD 3.12.0 -\u003e 3.14.3 + kvrocks 2.12.1 -\u003e 2.15.0 (#3027)"
    },
    {
      "commit": "e90ec2e9554c08e924aedca58f67c3eadb458657",
      "tree": "b0e05c8817c34fc26304b4dc6c638d4330009c25",
      "parents": [
        "5d9f29746e5e9817d76214d4a709a4c9696750c8"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Fri Apr 24 17:26:13 2026 +0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Tue Apr 28 09:10:44 2026 +0700"
      },
      "message": "JAMES-4182 `compression.enabled` -\u003e `compression.enable`\n\nTo align with other configs:\ncache.enable\nencryption.aes.enable\ndeduplication.enable\n"
    },
    {
      "commit": "5d9f29746e5e9817d76214d4a709a4c9696750c8",
      "tree": "3a061171422a925349af6b22779000fa7e7f6966",
      "parents": [
        "c2700af5cdd3b86b323f456419acf0de08dd7e6d"
      ],
      "author": {
        "name": "Leonid Furman",
        "email": "leo.furman@virtru.com",
        "time": "Fri Apr 24 14:19:10 2026 -0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Tue Apr 28 09:04:11 2026 +0700"
      },
      "message": "[UPGRADE] Upgrade Netty 4.1.126.Final → 4.1.132.Final (CVE-2025-67735)\n"
    },
    {
      "commit": "c2700af5cdd3b86b323f456419acf0de08dd7e6d",
      "tree": "a053be6c1c363cc09af51c0ffc96aba8856b6725",
      "parents": [
        "0fd97a477b59f0a98d4f4cbf8c0f75e09e8fd710"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 23 15:57:14 2026 +0200"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 24 12:29:14 2026 +0700"
      },
      "message": "[FIX] Improve leak management when error occurs\n"
    },
    {
      "commit": "0fd97a477b59f0a98d4f4cbf8c0f75e09e8fd710",
      "tree": "97728f32a90c633bda7f2a05895a3d37b4224274",
      "parents": [
        "d8d6f8717fe3e409c20b771203010ea4f0bc0570"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 23 15:38:35 2026 +0200"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 24 12:29:14 2026 +0700"
      },
      "message": "[ENHANCEMENT] LeakAware: explicit resource naming to enhance auditability\n"
    },
    {
      "commit": "d8d6f8717fe3e409c20b771203010ea4f0bc0570",
      "tree": "8db5ea19c401b966abe816774398abbabcac2436",
      "parents": [
        "81c2fcb9e0b029176a5d8e7f159648dcd94ccadc"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 23 22:46:57 2026 +0200"
      },
      "committer": {
        "name": "Trần Hồng Quân",
        "email": "55171818+quantranhong1999@users.noreply.github.com",
        "time": "Fri Apr 24 09:58:26 2026 +0700"
      },
      "message": "[UPGRADE] activeMQ 6.2.4 -\u003e 6.2.5 (CVE-2026-41044 CVE-2026-41043 CVE-2026-40466)\n"
    },
    {
      "commit": "81c2fcb9e0b029176a5d8e7f159648dcd94ccadc",
      "tree": "43e5c86e079b37b06c54c40a44d93f81a5fdc377",
      "parents": [
        "0ecbadb0e42984982b7ac4889d5d2acc769a48c1"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 23 07:52:41 2026 +0200"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 24 07:19:57 2026 +0700"
      },
      "message": "JAMES-4202 OpenSearch: Group single uid clauses into a single term\n"
    },
    {
      "commit": "0ecbadb0e42984982b7ac4889d5d2acc769a48c1",
      "tree": "934d259ef6aac16c5f68fb1f6d8114ea85d54ad5",
      "parents": [
        "d38a23184a6b1dceec37db5fdfe234852eacadcb"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 23 10:11:18 2026 +0200"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 24 07:19:15 2026 +0700"
      },
      "message": "JAMES-4123 Improvment for deleted search override: handle ALL criterion\n"
    },
    {
      "commit": "d38a23184a6b1dceec37db5fdfe234852eacadcb",
      "tree": "31587b76408e01631c676d193e3cd4eacf0ba63c",
      "parents": [
        "01065be31f3467c89eb3c41e170c98752a7e8bfc"
      ],
      "author": {
        "name": "Rene Cordier",
        "email": "rcordier@linagora.com",
        "time": "Thu Apr 23 12:29:12 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 07:29:12 2026 +0200"
      },
      "message": "JAMES-4200 ActiveMQ: add a configuration option for adjusting usage l… (#2999)"
    },
    {
      "commit": "01065be31f3467c89eb3c41e170c98752a7e8bfc",
      "tree": "090778469570aece2f6f08172e63f1bba9bb13d4",
      "parents": [
        "5e2e062384712f658bf830915afdc4103d8292e3"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Wed Apr 22 13:55:30 2026 +0700"
      },
      "committer": {
        "name": "Trần Hồng Quân",
        "email": "55171818+quantranhong1999@users.noreply.github.com",
        "time": "Thu Apr 23 09:49:06 2026 +0700"
      },
      "message": "JAMES-4182 Add an integration test for Postgres app + Zstd\n"
    },
    {
      "commit": "5e2e062384712f658bf830915afdc4103d8292e3",
      "tree": "f7b84031769870cf344ecc7e583a2ab6ef770bb2",
      "parents": [
        "5792107ba06bbad84d9ffea1db378b16237f5b26"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Tue Apr 21 17:04:44 2026 +0700"
      },
      "committer": {
        "name": "Trần Hồng Quân",
        "email": "55171818+quantranhong1999@users.noreply.github.com",
        "time": "Thu Apr 23 09:49:06 2026 +0700"
      },
      "message": "JAMES-4182 Guice binding + integration tests + documentation for ZstdBlobStoreDAO\n"
    },
    {
      "commit": "5792107ba06bbad84d9ffea1db378b16237f5b26",
      "tree": "4d066340c74ab45d56b17afa84a8ff85af9bfa34",
      "parents": [
        "5b1e1d5ab0c649c4746e04bb8ab527d9284cfa36"
      ],
      "author": {
        "name": "Trần Hồng Quân",
        "email": "55171818+quantranhong1999@users.noreply.github.com",
        "time": "Wed Apr 22 15:43:31 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 15:43:31 2026 +0700"
      },
      "message": "JAMES-4182 Implement ZstdBlobStoreDAO (#3016)"
    },
    {
      "commit": "5b1e1d5ab0c649c4746e04bb8ab527d9284cfa36",
      "tree": "118bfa1712a4cd1809ad65f6e41942ff0ddfc98c",
      "parents": [
        "a6aee6053bb5338eade57bd0e6a4ee5cac240bd7"
      ],
      "author": {
        "name": "SAY-5",
        "email": "SAY-5@users.noreply.github.com",
        "time": "Thu Apr 16 16:22:18 2026 -0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 17 10:00:42 2026 +0700"
      },
      "message": "Fix occured typo in StoreProcessor.java\n\nSigned-off-by: SAY-5 \u003cSAY-5@users.noreply.github.com\u003e"
    },
    {
      "commit": "a6aee6053bb5338eade57bd0e6a4ee5cac240bd7",
      "tree": "e2aa70532c5083994222264523a322b0e263591a",
      "parents": [
        "78fd5ff12f9175049ec741e31a9ab499be4d58cf"
      ],
      "author": {
        "name": "SAY-5",
        "email": "SAY-5@users.noreply.github.com",
        "time": "Thu Apr 16 16:22:16 2026 -0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 17 10:00:42 2026 +0700"
      },
      "message": "Fix occured typo in FileBlobStoreDAO.java\n\nSigned-off-by: SAY-5 \u003cSAY-5@users.noreply.github.com\u003e"
    },
    {
      "commit": "78fd5ff12f9175049ec741e31a9ab499be4d58cf",
      "tree": "98723b47b1339d3a0e712059716815dd96730a94",
      "parents": [
        "0b5ce4ea8a4931147c142273d833af61ccfaee50"
      ],
      "author": {
        "name": "SAY-5",
        "email": "SAY-5@users.noreply.github.com",
        "time": "Thu Apr 16 16:22:14 2026 -0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 17 10:00:42 2026 +0700"
      },
      "message": "Fix occured typo in MailboxCopierManagement.java\n\nSigned-off-by: SAY-5 \u003cSAY-5@users.noreply.github.com\u003e"
    },
    {
      "commit": "0b5ce4ea8a4931147c142273d833af61ccfaee50",
      "tree": "2aa41fd2fba487daea72fca4339f1cd65c8f8579",
      "parents": [
        "53221c32a7b52bb193e3b34bbaf31ee4aa1d4849"
      ],
      "author": {
        "name": "SAY-5",
        "email": "SAY-5@users.noreply.github.com",
        "time": "Thu Apr 16 16:22:12 2026 -0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 17 10:00:42 2026 +0700"
      },
      "message": "Fix occured typo in MemoryBlobStoreDAO.java\n\nSigned-off-by: SAY-5 \u003cSAY-5@users.noreply.github.com\u003e"
    },
    {
      "commit": "53221c32a7b52bb193e3b34bbaf31ee4aa1d4849",
      "tree": "6b02a7e135ce3fe0fcf27a5dfe876f721e8322c9",
      "parents": [
        "dd3b6cb1a077a2fc16d7b8884f3853748f2fabf2"
      ],
      "author": {
        "name": "SAY-5",
        "email": "SAY-5@users.noreply.github.com",
        "time": "Thu Apr 16 16:22:10 2026 -0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 17 10:00:42 2026 +0700"
      },
      "message": "Fix occured typo in HasException.java\n\nSigned-off-by: SAY-5 \u003cSAY-5@users.noreply.github.com\u003e"
    },
    {
      "commit": "dd3b6cb1a077a2fc16d7b8884f3853748f2fabf2",
      "tree": "aa3286e4966449c8dc648786ff44999c4d41f083",
      "parents": [
        "0cbe36b20e4d5534d2518bbd47dc06c4d74c296b"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 16 21:33:09 2026 +0200"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 17 10:00:11 2026 +0700"
      },
      "message": "JAMES-3893 Allow deleting identities via WebAdmin\n"
    },
    {
      "commit": "0cbe36b20e4d5534d2518bbd47dc06c4d74c296b",
      "tree": "ca261e881dd57f514a8d4f1cf8c0908d2f47145a",
      "parents": [
        "d641a516d2e9bdc60596d5ebcac3004618521696"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Wed Apr 15 16:34:19 2026 +0700"
      },
      "committer": {
        "name": "Trần Hồng Quân",
        "email": "55171818+quantranhong1999@users.noreply.github.com",
        "time": "Thu Apr 16 13:22:50 2026 +0700"
      },
      "message": "JAMES-4182 Implement blob metadata storage for Postgres\n"
    },
    {
      "commit": "d641a516d2e9bdc60596d5ebcac3004618521696",
      "tree": "1a769d946c1fb3605ace18c81983648daa4986e8",
      "parents": [
        "ace0557412f595c276210138977e084cfd3d6bc2"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Wed Apr 15 10:27:28 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Wed Apr 15 08:05:30 2026 +0200"
      },
      "message": "JAMES-4182 Fix a blocking call in CassandraAttachmentMapper::loadAttachmentContent\n\nMade the attachment test failed.\n"
    },
    {
      "commit": "ace0557412f595c276210138977e084cfd3d6bc2",
      "tree": "518492272835495b1d06ada79a79a7b07f450bae",
      "parents": [
        "dd719d67a95e5e680192cea1e58a7114455333b8"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Wed Apr 15 10:26:18 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Wed Apr 15 08:05:30 2026 +0200"
      },
      "message": "JAMES-4182 Adapt failure blob query injection for tests\n"
    },
    {
      "commit": "dd719d67a95e5e680192cea1e58a7114455333b8",
      "tree": "8bb43b1e04835a8df28b3749657dcb587d3acd7b",
      "parents": [
        "e5751b8b3ad6c430d926d2a3421de5873e8a62fc"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Wed Apr 15 10:04:56 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Wed Apr 15 08:05:30 2026 +0200"
      },
      "message": "JAMES-4182 Better structure for blob metadata upgrade in upgrade-instructions.md\n"
    },
    {
      "commit": "e5751b8b3ad6c430d926d2a3421de5873e8a62fc",
      "tree": "bfce3c81a2f3765e8af5817039d879a8e2fe3644",
      "parents": [
        "f5e18fdc139ce09323618f98d187db16b770bfd7"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Tue Apr 14 16:40:31 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Wed Apr 15 08:05:30 2026 +0200"
      },
      "message": "JAMES-4182 Implement blob metadata storage for Cassandra\n"
    },
    {
      "commit": "f5e18fdc139ce09323618f98d187db16b770bfd7",
      "tree": "3c2cf0cebf27faa2251979817c55ac3e31574812",
      "parents": [
        "6b0f830c32199bec43f7ebc7290dfd182732fbc1"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Fri Apr 10 16:53:34 2026 +0700"
      },
      "committer": {
        "name": "Trần Hồng Quân",
        "email": "55171818+quantranhong1999@users.noreply.github.com",
        "time": "Tue Apr 14 16:34:54 2026 +0700"
      },
      "message": "JAMES-4182 Implement blob metadata storage for file\n"
    },
    {
      "commit": "6b0f830c32199bec43f7ebc7290dfd182732fbc1",
      "tree": "c8349e3062e38c65bbe706621380d632ed6b0b93",
      "parents": [
        "d01747f3d5929b015f257aa603a6296bbb1902f1"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Thu Apr 09 16:04:01 2026 +0700"
      },
      "committer": {
        "name": "Trần Hồng Quân",
        "email": "55171818+quantranhong1999@users.noreply.github.com",
        "time": "Tue Apr 14 16:34:54 2026 +0700"
      },
      "message": "JAMES-4182 Implement blob metadata storage for S3\n"
    },
    {
      "commit": "d01747f3d5929b015f257aa603a6296bbb1902f1",
      "tree": "e01e6ae6eb93ece7d436dcef602a1de4dc11f8ae",
      "parents": [
        "4b366f96df3328e493e107b1634b6ad5d10fb0f6"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Thu Apr 09 16:02:35 2026 +0700"
      },
      "committer": {
        "name": "Trần Hồng Quân",
        "email": "55171818+quantranhong1999@users.noreply.github.com",
        "time": "Tue Apr 14 16:34:54 2026 +0700"
      },
      "message": "JAMES-4182 Add more tests to MetadataAwareBlobStoreDAOContract\n"
    },
    {
      "commit": "4b366f96df3328e493e107b1634b6ad5d10fb0f6",
      "tree": "896d648f6c223eb102545bbd9feea95bfbd7373b",
      "parents": [
        "4da8393d533215a45b422076bf4f46b71409da3b"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Tue Apr 14 08:34:18 2026 +0200"
      },
      "committer": {
        "name": "Trần Hồng Quân",
        "email": "55171818+quantranhong1999@users.noreply.github.com",
        "time": "Tue Apr 14 16:12:41 2026 +0700"
      },
      "message": "[UPGRADE] Spark java 3.0.2 -\u003e 3.0.4 (CVE-2026-1605)\n"
    },
    {
      "commit": "4da8393d533215a45b422076bf4f46b71409da3b",
      "tree": "1b60ce409f64f1be3f19e656cef7988e723d7444",
      "parents": [
        "4a0d46ddba1ea43887d156676d585b2c15372ebc"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Tue Apr 14 08:51:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 08:51:54 2026 +0200"
      },
      "message": "[ENHANCEMENT] Make IMAP ReactiveThrottler more reliable under load (#3012)"
    },
    {
      "commit": "4a0d46ddba1ea43887d156676d585b2c15372ebc",
      "tree": "a5f66c9539bbc744a469817df57d21fea54dbc56",
      "parents": [
        "f77a93e0a86e7b8f4e8cd715e9c6269948f3c24d"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon Apr 13 12:55:48 2026 +0200"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Tue Apr 14 09:19:35 2026 +0700"
      },
      "message": "[BUILD] EmailQueryMethodContract: isolate using different users\n"
    },
    {
      "commit": "f77a93e0a86e7b8f4e8cd715e9c6269948f3c24d",
      "tree": "e8648709fe577ca33ace49618d8d626e0956ea9e",
      "parents": [
        "c1091f86b5cd1c14a7ee84aee571c2aa26859ae6"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon Apr 13 10:33:59 2026 +0200"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Tue Apr 14 09:19:35 2026 +0700"
      },
      "message": "[BUILD] EmailSetMethodContract: isolate using different users\n"
    },
    {
      "commit": "c1091f86b5cd1c14a7ee84aee571c2aa26859ae6",
      "tree": "12d7a45fa36b9ed8e3947c0c7c6c537012c04a89",
      "parents": [
        "7f30707eb3eab0f442d51250f62a79ed3d13d984"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon Apr 13 08:15:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 08:15:04 2026 +0200"
      },
      "message": "[BUILD] EmailGetMethodContract: isolate using different users and reu… (#3010)"
    },
    {
      "commit": "7f30707eb3eab0f442d51250f62a79ed3d13d984",
      "tree": "e285f82c2fb521fe3ef4bdf597a9f3cb3ceca663",
      "parents": [
        "a706c662ef465fd042d43ad806e8c7664a94a1d8"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon Apr 13 08:14:38 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 08:14:38 2026 +0200"
      },
      "message": "[FIX] Async connection checks in IMAP (#3009)"
    },
    {
      "commit": "a706c662ef465fd042d43ad806e8c7664a94a1d8",
      "tree": "62b404338fd915ace49ed07a2b259d2176a9a4ef",
      "parents": [
        "3f8b9f4846dbb4f6ce03206fc46c27a546c307bb"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon Apr 13 07:27:52 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 07:27:52 2026 +0200"
      },
      "message": "[FIX] EhloCommandHandler should handle domain label starting by numbers (#3006)"
    },
    {
      "commit": "3f8b9f4846dbb4f6ce03206fc46c27a546c307bb",
      "tree": "41f77ee99c0f693fb0f72bc7ed2429815abd2f04",
      "parents": [
        "1e74c6d064f72b3c33c0293150466599adb831eb"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon Apr 13 07:27:41 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 07:27:41 2026 +0200"
      },
      "message": "[FIX] LDAP user listing should ignore invalid users (#3003)"
    },
    {
      "commit": "1e74c6d064f72b3c33c0293150466599adb831eb",
      "tree": "41ce03428c837ea6edc9e81f5d34992c1233c6b7",
      "parents": [
        "5999e6a345ca6a67f215c032811fa735cd520152"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon Apr 13 07:27:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 07:27:17 2026 +0200"
      },
      "message": "JAMES-4182 Metadata storage in BlobStoreDAO interface (#2960)\n\nCo-authored-by: Quan Tran \u003chqtran@linagora.com\u003e"
    },
    {
      "commit": "5999e6a345ca6a67f215c032811fa735cd520152",
      "tree": "acf92869a467157d376265cef30bb3faf821781a",
      "parents": [
        "93c5bb2863c90bbf0a70f3043f669a7489cc0a48"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon Apr 13 07:16:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 07:16:11 2026 +0200"
      },
      "message": "[FIX] Prevent stackoverflow in IMAP SEARCH (#3007)"
    },
    {
      "commit": "93c5bb2863c90bbf0a70f3043f669a7489cc0a48",
      "tree": "a3953c8094aefe6bf3a25b795378ba9af3253083",
      "parents": [
        "9da46f92acdef837aab8231e875d58b6098d5ffc"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Sun Apr 12 07:43:22 2026 +0200"
      },
      "committer": {
        "name": "Trần Hồng Quân",
        "email": "55171818+quantranhong1999@users.noreply.github.com",
        "time": "Mon Apr 13 10:33:22 2026 +0700"
      },
      "message": "JAMES-4200 Allow configuring ActiveMQ disk and use sain default of 10GB\n"
    },
    {
      "commit": "9da46f92acdef837aab8231e875d58b6098d5ffc",
      "tree": "91f2ec325b91b821318205cf3ae56c4624f8f43f",
      "parents": [
        "40d3ab812abcb391ce78d76ea531204ba2980014"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon Apr 13 05:14:58 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 10:14:58 2026 +0700"
      },
      "message": "[FIX] jakarta.mail.internet.ParseException: Unbalanced quoted string (#3002)"
    },
    {
      "commit": "40d3ab812abcb391ce78d76ea531204ba2980014",
      "tree": "53d2d7c479d4cc7ce72d29d61c8b549f1d6ffddb",
      "parents": [
        "2f500a7fd9f464498c5302780ce5500c234a3255"
      ],
      "author": {
        "name": "Rene Cordier",
        "email": "rcordier@linagora.com",
        "time": "Fri Apr 10 15:32:24 2026 +0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Mon Apr 13 09:06:55 2026 +0700"
      },
      "message": "JAMES-4201 Webadmin documentation for password.readonly and password.nodelete\n"
    },
    {
      "commit": "2f500a7fd9f464498c5302780ce5500c234a3255",
      "tree": "9d28a2fabcee2ac4d5cfd3e6203a470af9e08fe6",
      "parents": [
        "eff0d9f0c96087f65a4750c43ed7329250982d98"
      ],
      "author": {
        "name": "Rene Cordier",
        "email": "rcordier@linagora.com",
        "time": "Fri Apr 10 15:29:17 2026 +0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Mon Apr 13 09:06:55 2026 +0700"
      },
      "message": "JAMES-4201 Implement granular password access control in PasswordFilter\n"
    },
    {
      "commit": "eff0d9f0c96087f65a4750c43ed7329250982d98",
      "tree": "4848c624e16d5e1829ac593c3f2f9168cf6850f0",
      "parents": [
        "3df6cab49c5ab5696949970c6030893249771232"
      ],
      "author": {
        "name": "Rene Cordier",
        "email": "rcordier@linagora.com",
        "time": "Fri Apr 10 15:05:11 2026 +0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Mon Apr 13 09:06:55 2026 +0700"
      },
      "message": "JAMES-4201 Add password.readonly and password.nodelete options to webadmin configuration\n"
    },
    {
      "commit": "3df6cab49c5ab5696949970c6030893249771232",
      "tree": "9d86c0db8686b1e39d10041511ef5b457123bfef",
      "parents": [
        "ac9388f68f8b18f89cbc9517aa2a5cef2f443169"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Apr 10 23:34:37 2026 +0200"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Sat Apr 11 11:37:46 2026 +0200"
      },
      "message": "[UPGRADE] Log4J 2.24.3 -\u003e 2.25.4 (CVE-2026-34477 CVE-2026-34479 CVE-2026-34478 CVE-2026-34480)\n"
    },
    {
      "commit": "ac9388f68f8b18f89cbc9517aa2a5cef2f443169",
      "tree": "0da370302aa3708693eb4f74958eaff100f38a39",
      "parents": [
        "d010001b6325bef3a1a3933299591686fd61c030"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 09 16:16:59 2026 +0200"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 10 11:23:07 2026 +0700"
      },
      "message": "[UPGRADE] ActiveMQ 6.2.3 -\u003e 6.2.4 (CVE-2026-40046 CVE-2026-39304)\n"
    },
    {
      "commit": "d010001b6325bef3a1a3933299591686fd61c030",
      "tree": "720e9d290ce5fdeeaa488679ca24919e642e3ad0",
      "parents": [
        "2a9ef7bbc56622aee38c5a2814e8a3669efe5aa5"
      ],
      "author": {
        "name": "Rene Cordier",
        "email": "rcordier@linagora.com",
        "time": "Tue Apr 07 14:37:49 2026 +0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 10 08:22:24 2026 +0700"
      },
      "message": "JAMES-4197 Add a SerializationResult interface for serialization results in EventSerializer\n"
    },
    {
      "commit": "2a9ef7bbc56622aee38c5a2814e8a3669efe5aa5",
      "tree": "3b81155427f40f06a3fc12489dc772d9fed0013b",
      "parents": [
        "b36450f394af14a2b97f3dc847778707d9528535"
      ],
      "author": {
        "name": "Rene Cordier",
        "email": "rcordier@linagora.com",
        "time": "Tue Apr 07 11:31:37 2026 +0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 10 08:22:24 2026 +0700"
      },
      "message": "JAMES-4197 Add a DeserializationResult interface for deserialization results in EventSerializer\n"
    },
    {
      "commit": "b36450f394af14a2b97f3dc847778707d9528535",
      "tree": "49c479984459a3c6a81cd0f48ebf5142437f5cfa",
      "parents": [
        "27246a391888758ec39b6955f968beb3a2692357"
      ],
      "author": {
        "name": "Rene Cordier",
        "email": "rcordier@linagora.com",
        "time": "Fri Apr 03 16:40:51 2026 +0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 10 08:22:24 2026 +0700"
      },
      "message": "JAMES-4197 EventSerializer refactoring\n\nThe goal is to have methods return Optional, so the EventSerializersAggregator stops relying on json (de)serialization failures until finding the right serializer.\n"
    },
    {
      "commit": "27246a391888758ec39b6955f968beb3a2692357",
      "tree": "cfee833d4df37f60910850a5e12ab648bfb3f7c5",
      "parents": [
        "2445eb406a4ad2430675936a70cb4bbaafd09324"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Sun Apr 05 19:17:49 2026 +0200"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 09 12:53:48 2026 +0200"
      },
      "message": "JAMES-4198 Heuristic to skip attachment parsing based on message headers\n"
    },
    {
      "commit": "2445eb406a4ad2430675936a70cb4bbaafd09324",
      "tree": "50333b50665dd5376846454019462d170a5da3d4",
      "parents": [
        "ccd07105629dc070fd41eef97c7726588fe84f1d"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Sun Apr 05 19:06:10 2026 +0200"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 09 12:53:48 2026 +0200"
      },
      "message": "JAMES-4198 Drop PropertyBuilder from Message POJO\n\nOnly used by IMAP FETCH BODYSTRUCTURE. We can easily reparse this at read time and\nleverage a DB space gain as well as save time gains. 10% DB size reduction.\n"
    },
    {
      "commit": "ccd07105629dc070fd41eef97c7726588fe84f1d",
      "tree": "c5c35575864c2fb431caec1cba0f86ef9620c398",
      "parents": [
        "56fdbe0b19ac697619e118c67676523600c2ea3a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Apr 08 11:04:43 2026 +0000"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Apr 09 06:53:46 2026 +0200"
      },
      "message": "Bump addressable from 2.8.9 to 2.9.0 in /src/homepage\n\nBumps [addressable](https://github.com/sporkmonger/addressable) from 2.8.9 to 2.9.0.\n- [Changelog](https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/sporkmonger/addressable/compare/addressable-2.8.9...addressable-2.9.0)\n\n---\nupdated-dependencies:\n- dependency-name: addressable\n  dependency-version: 2.9.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "56fdbe0b19ac697619e118c67676523600c2ea3a",
      "tree": "e01bf84bf4c7781378180429b389e02452914406",
      "parents": [
        "9dc05da10b3c5720ea8f0c0cac871283cb1c24cf"
      ],
      "author": {
        "name": "ouvtam",
        "email": "ouvtam@8n4.pw",
        "time": "Tue Apr 07 13:59:32 2026 +0200"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Wed Apr 08 09:30:56 2026 +0700"
      },
      "message": "JAMES-4200 ActiveMQ: set adjustUsageLimits to false for BrokerService to prevent the embedded broker to claim up to 70% of JVM memory that might cause memory drain of James\n"
    },
    {
      "commit": "9dc05da10b3c5720ea8f0c0cac871283cb1c24cf",
      "tree": "7a606c6b0a72d7ac2166031eb054f91ddb0850e5",
      "parents": [
        "9dcc5422e2173f6114f15e4c8cd8dd163c10d678"
      ],
      "author": {
        "name": "ouvtam",
        "email": "ouvtam@8n4.pw",
        "time": "Tue Apr 07 08:37:31 2026 +0200"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Tue Apr 07 16:43:08 2026 +0700"
      },
      "message": "JAMES-4199 refactor ActiveMQ browsing code for better readability\n"
    },
    {
      "commit": "9dcc5422e2173f6114f15e4c8cd8dd163c10d678",
      "tree": "f3e4ed34f39beb6820685b7368e01b82c02ef1c1",
      "parents": [
        "7b7815319729ad570c680a2808a3fc0f14f0567b"
      ],
      "author": {
        "name": "ouvtam",
        "email": "ouvtam@8n4.pw",
        "time": "Tue Apr 07 08:31:44 2026 +0200"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Tue Apr 07 16:43:08 2026 +0700"
      },
      "message": "JAMES-4199 ensure MailQueueIterator is closed to prevent memory leaks (e.g. ActiveMQ leaking open browsers)\n"
    },
    {
      "commit": "7b7815319729ad570c680a2808a3fc0f14f0567b",
      "tree": "70cf2fc4c8a4c96b653f6d8649b0f8e59168f069",
      "parents": [
        "73d549cd5ab2365a6c400a88dda33a06b206961d"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Tue Apr 07 06:48:44 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 01:48:44 2026 +0200"
      },
      "message": "[UPGRADE] ActiveMQ 6.2.1 -\u003e 6.2.3 (CVE-2026-33227 + CVE-2026-34197) (#2994)"
    },
    {
      "commit": "73d549cd5ab2365a6c400a88dda33a06b206961d",
      "tree": "7106e08d0dba364618219d276f988a5b715d9528",
      "parents": [
        "99956108d0396faf600130533c7a317dae81e504"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Apr 03 14:01:01 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 09:01:01 2026 +0200"
      },
      "message": "JAMES-4196 Allow CRUD operation on shared folder for JMAP (#2988)"
    },
    {
      "commit": "99956108d0396faf600130533c7a317dae81e504",
      "tree": "b0d5527024af6de6414dbd9808663ccc7dcb9086",
      "parents": [
        "c198f468ea8178f40b040e9b012963718fd734ba"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Apr 03 13:59:59 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 08:59:59 2026 +0200"
      },
      "message": "[FIX] DKIMHook: Lenient address mode (#2990)\n\nThe exception was propagated and thus bypassed\nerror recovery down the stack."
    },
    {
      "commit": "c198f468ea8178f40b040e9b012963718fd734ba",
      "tree": "be69814e5e54bb2afb5159a8745d99f72964564c",
      "parents": [
        "dece20343d3b84329da6f11314d1b8a7a4aca06b"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Sat Mar 28 19:09:21 2026 +0100"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 03 09:07:21 2026 +0700"
      },
      "message": "JAMES-4193 Provide TCNativeEncryptionFactory\n"
    },
    {
      "commit": "dece20343d3b84329da6f11314d1b8a7a4aca06b",
      "tree": "e0d69effb5f4f9e0980c0c12c2b9f1e9054b3477",
      "parents": [
        "e7a24c98a0ce58d73c4adee0d3ca01c4e1b42448"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Sat Mar 28 16:28:25 2026 +0100"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 03 09:07:21 2026 +0700"
      },
      "message": "JAMES-4193 Configurable SSL session cache\n"
    },
    {
      "commit": "e7a24c98a0ce58d73c4adee0d3ca01c4e1b42448",
      "tree": "1ee84c09898ed81cb580ca5a881357fc09af4001",
      "parents": [
        "793491ce57796cebf22e3273f62907e364af2820"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Sat Mar 28 15:58:48 2026 +0100"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Apr 03 09:07:21 2026 +0700"
      },
      "message": "JAMES-4193 Use dependency injections to inject Encryption.Factory\n"
    },
    {
      "commit": "793491ce57796cebf22e3273f62907e364af2820",
      "tree": "f7d37ebe92f3d5cc4cd4fe8407ab445d9337bdc0",
      "parents": [
        "799bc6d6cedd366a1a2fdce764f952763b77336d"
      ],
      "author": {
        "name": "Rene Cordier",
        "email": "rcordier@linagora.com",
        "time": "Wed Apr 01 12:19:36 2026 +0700"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Thu Apr 02 09:14:38 2026 +0700"
      },
      "message": "[FIX] Strenghten DeletedMessageVault Integration Tests to solve flaky test issues\n"
    },
    {
      "commit": "799bc6d6cedd366a1a2fdce764f952763b77336d",
      "tree": "07b34ff15e9c4184f2c1eaed2a66998a292b8d7f",
      "parents": [
        "a6725a2cc4eba483f98915ac42047e7af4c17838"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Mar 27 15:08:39 2026 +0100"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Wed Apr 01 09:24:46 2026 +0700"
      },
      "message": "JAMES-4091 Paginate and sort connected users\n"
    },
    {
      "commit": "a6725a2cc4eba483f98915ac42047e7af4c17838",
      "tree": "b5f92e6a8847965fc957775c4235f0917ed4bc49",
      "parents": [
        "5da8b6ea8f80a879bf6c7a605f51cbb168764a13"
      ],
      "author": {
        "name": "Rene Cordier",
        "email": "rcordier@linagora.com",
        "time": "Wed Apr 01 09:20:08 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 01 09:20:08 2026 +0700"
      },
      "message": "JAMES-4194 Tiering: max threading window (#2987)"
    },
    {
      "commit": "5da8b6ea8f80a879bf6c7a605f51cbb168764a13",
      "tree": "63c8549c5198df8763e5da9c9630f58518e6134b",
      "parents": [
        "7e9bbc71a8c59d5e2a4f3ee66c56ba67acb033b4"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Mon Mar 30 13:47:57 2026 +0700"
      },
      "committer": {
        "name": "Trần Hồng Quân",
        "email": "55171818+quantranhong1999@users.noreply.github.com",
        "time": "Tue Mar 31 08:51:52 2026 +0700"
      },
      "message": "JAMES-3498 Make NamingStrategy an interface\n\nAllow extensions to implement their own naming strategy (e.g. partitioned queues to better leverage RabbitMQ\u0027s CPU cores)\n"
    },
    {
      "commit": "7e9bbc71a8c59d5e2a4f3ee66c56ba67acb033b4",
      "tree": "516f93086a683e76f9fa414e37a6fcdf416f0f73",
      "parents": [
        "64afb1e31cb3f8752680b8da420ddccbde1dcdba"
      ],
      "author": {
        "name": "Trần Hồng Quân",
        "email": "55171818+quantranhong1999@users.noreply.github.com",
        "time": "Fri Mar 27 12:48:14 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 27 06:48:14 2026 +0100"
      },
      "message": "JAMES-4191 DeletedMessageVaultIntegrationTest: fix some flaky tests (#2983)\n\nSometime, the listener did not append the deleted message to DMV in time, making the assertion failed."
    },
    {
      "commit": "64afb1e31cb3f8752680b8da420ddccbde1dcdba",
      "tree": "9a4bea276bf295ddc87f7bc68597e3ee8f9ad628",
      "parents": [
        "fec352e77059dbe8ece17b9f59792cc1b7c05d73"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon Mar 23 15:29:20 2026 +0100"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Tue Mar 24 11:19:30 2026 +0700"
      },
      "message": "[AUDIT TRAIL] Log message moves in JMAP\n"
    },
    {
      "commit": "fec352e77059dbe8ece17b9f59792cc1b7c05d73",
      "tree": "582f25fecff564e817b735eadccc5ad194e59208",
      "parents": [
        "8f7838c9bfbfb3e6d4641d225866a64746d747ea"
      ],
      "author": {
        "name": "Tejas Attarde",
        "email": "201814263+tejasae-afk@users.noreply.github.com",
        "time": "Mon Mar 23 02:45:21 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 23 07:45:21 2026 +0100"
      },
      "message": "Close BufferedReader in addProtocolLines (#2981)"
    },
    {
      "commit": "8f7838c9bfbfb3e6d4641d225866a64746d747ea",
      "tree": "c1a9454f004fd4ed71f1710b97ee6f54c08c87f0",
      "parents": [
        "b2544721c076f94d472ae64e11dc99712768e572"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Mar 20 15:35:32 2026 +0100"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Mon Mar 23 12:01:20 2026 +0700"
      },
      "message": "[FIX] MailboxManager::create should not propagate lookup only\n"
    },
    {
      "commit": "b2544721c076f94d472ae64e11dc99712768e572",
      "tree": "c8f81f646e7613978b234321a88341b6dfbb1d0e",
      "parents": [
        "e776cc3287f14d5d80984c30028332c47f4bb9c2"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Thu Mar 19 16:50:34 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Mar 20 15:28:33 2026 +0100"
      },
      "message": "JAMES-4191 MessageFastViewProjectionDeletionListener: only delete message fast view if no longer referenced\n"
    },
    {
      "commit": "e776cc3287f14d5d80984c30028332c47f4bb9c2",
      "tree": "e8dc4f42b0f9bd96b6756011b7f321b5aff7fb0d",
      "parents": [
        "95b343b1d85a59d51327faf8b2896ccb38aac471"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Thu Mar 19 16:15:30 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Mar 20 15:28:33 2026 +0100"
      },
      "message": "JAMES-4191 [Memory] DeletedMessageVaultHook should append vault only when owner no longer has reference to the deleted message\n"
    },
    {
      "commit": "95b343b1d85a59d51327faf8b2896ccb38aac471",
      "tree": "1b73f80682bc032522455aefc652009802a9023e",
      "parents": [
        "a818a65eb8ab13e01c3705ead34917bc989e83d1"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Thu Mar 19 16:11:43 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Mar 20 15:28:33 2026 +0100"
      },
      "message": "JAMES-4191 MessageIdMapper: add findMailboxesReactive(MessageId messageId) API\n"
    },
    {
      "commit": "a818a65eb8ab13e01c3705ead34917bc989e83d1",
      "tree": "d37279306db01a73f04fb7bbaf05a5a3089261ff",
      "parents": [
        "7715e6b25b364772c90534bd4fae7b9e9ef7cb61"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Thu Mar 19 15:16:04 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Mar 20 15:28:33 2026 +0100"
      },
      "message": "JAMES-4191 DeletedMessageVaultDeletionListener: only append deleted message to the vault if owner no longer has reference to the message\n\nGiven we do emit `MessageContentDeletionEvent` upon sharee delete message/mailbox now, we need to check if the owner still has reference to the message, before actually append to the vault.\n"
    },
    {
      "commit": "7715e6b25b364772c90534bd4fae7b9e9ef7cb61",
      "tree": "37ca635cf77708f0914d1aadf372fb84095cdd99",
      "parents": [
        "1e020547fb209438acb6e2bd644671d2dfb7487f"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Thu Mar 19 10:50:33 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Mar 20 15:28:33 2026 +0100"
      },
      "message": "JAMES-4191 DeleteMessageListener: relax dispatching MessageContentDeletionEvent\n\nEmit always upon message deletion. No longer emit only when global unreferenced.\n"
    },
    {
      "commit": "1e020547fb209438acb6e2bd644671d2dfb7487f",
      "tree": "4eb74fc2a3639fb215df423f7a9df7531ff64c09",
      "parents": [
        "fd8f3728a9d1167dd62add7cd62cdcb95a6c4e44"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Wed Mar 18 16:07:09 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Mar 20 15:28:33 2026 +0100"
      },
      "message": "JAMES-4191 Enrich MessageContentDeletionEvent with mailboxACL\n"
    },
    {
      "commit": "fd8f3728a9d1167dd62add7cd62cdcb95a6c4e44",
      "tree": "d14bd2cd09fba637ef4fa0bf0742cb7b082b2a0b",
      "parents": [
        "0d6bbe3b0e29b63728227273cad044dd5b4e539e"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Wed Mar 18 13:29:11 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Mar 20 15:28:33 2026 +0100"
      },
      "message": "JAMES-4191 Deleted message vault: Add more share mailbox integration tests\n"
    },
    {
      "commit": "0d6bbe3b0e29b63728227273cad044dd5b4e539e",
      "tree": "fc01c9296e5c984956528c70b1c7e72d771d3e6b",
      "parents": [
        "ecbfe49af84ea6b3d6acf6abdab32c877ceb932e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Mar 19 12:57:32 2026 +0000"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Fri Mar 20 10:54:26 2026 +0700"
      },
      "message": "Bump json from 2.18.1 to 2.19.2 in /src/homepage\n\nBumps [json](https://github.com/ruby/json) from 2.18.1 to 2.19.2.\n- [Release notes](https://github.com/ruby/json/releases)\n- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)\n- [Commits](https://github.com/ruby/json/compare/v2.18.1...v2.19.2)\n\n---\nupdated-dependencies:\n- dependency-name: json\n  dependency-version: 2.19.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "ecbfe49af84ea6b3d6acf6abdab32c877ceb932e",
      "tree": "8ae5601316bec9daa0c45810ff91bb9e8a3befaa",
      "parents": [
        "0d644ec12a50d23dad795d6e1d2e8c08301a00ec"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Wed Mar 18 14:52:39 2026 +0100"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Thu Mar 19 09:12:55 2026 +0700"
      },
      "message": "JAMES-4185 Allow subclassing RestoreService\n"
    },
    {
      "commit": "0d644ec12a50d23dad795d6e1d2e8c08301a00ec",
      "tree": "6f6aab9d75ed185223e92d73040b6bd40c186d69",
      "parents": [
        "76d999ef8a2a9676430e51b892b9ab9898e0709f"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Wed Mar 18 12:48:48 2026 +0100"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Thu Mar 19 09:12:55 2026 +0700"
      },
      "message": "JAMES-4185 Add mailboxPath to deletion events\n\nVery convenient when writing extensions\n"
    },
    {
      "commit": "76d999ef8a2a9676430e51b892b9ab9898e0709f",
      "tree": "09305077848bdb8d4793061286f8439003ec024c",
      "parents": [
        "c51b7c799847633744f89ab8c87a721b7f529487"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Wed Mar 18 10:59:23 2026 +0100"
      },
      "committer": {
        "name": "Rene Cordier",
        "email": "rene.cordier@gmail.com",
        "time": "Thu Mar 19 09:12:55 2026 +0700"
      },
      "message": "JAMES-4185 Allow working with the vault of deleted users\n"
    },
    {
      "commit": "c51b7c799847633744f89ab8c87a721b7f529487",
      "tree": "4824fdc391aadb8fae62f8ba8f3769b39c1a902e",
      "parents": [
        "3629f5a2b0f5abece2cd78d2978ea3c90ea1c27f"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon Mar 16 22:10:32 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 16 22:10:32 2026 +0100"
      },
      "message": "[FIX] Subscribe Restored-Messages for the mailbox to be visible in IMAP (#2976)"
    },
    {
      "commit": "3629f5a2b0f5abece2cd78d2978ea3c90ea1c27f",
      "tree": "8b12b012fb897786037e978c1a7604cec38948e4",
      "parents": [
        "4f95fb4ecf915ecaa9fbfe42957da657d4a763fd"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Mon Mar 16 03:53:05 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 16 09:53:05 2026 +0700"
      },
      "message": "JAMES-4190 Allow registering read only IMAP annotations (#2975)"
    },
    {
      "commit": "4f95fb4ecf915ecaa9fbfe42957da657d4a763fd",
      "tree": "cf2526aa3c89bf05e67a4f5c9dc95646fb159e1e",
      "parents": [
        "53b40cdffc5826a94c9a16593e72ad98f49019d3"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Mar 13 15:22:41 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 13 15:22:41 2026 +0100"
      },
      "message": "[PERF] Precompute ResultSet indexes on large IMAP processings (#2974)\n\nOutlook and other IMAP clients relies heavily on\n\nC: UID FETCH 1:* (FLAGS)\n\nFor their resync and we spend ~50% of the compute of driver deserialization\nrecomputing the same integer indexes over, and over again on the DB driver threads.\n\nThis patch proposes precomputation on the first row of those indexes for reuse, saving\neasily this precious time."
    },
    {
      "commit": "53b40cdffc5826a94c9a16593e72ad98f49019d3",
      "tree": "5b08eef732c702e84b749cee26fc1bd3a32dd4f3",
      "parents": [
        "0d5a9953a70c7af6d85fa1854786c5482880b31f"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Mar 12 16:32:18 2026 +0100"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Mar 13 15:11:47 2026 +0100"
      },
      "message": "JAMES-4189 Handle UsersRepository::listUsersOfADomainReactive without virtualHosting\n"
    },
    {
      "commit": "0d5a9953a70c7af6d85fa1854786c5482880b31f",
      "tree": "3cd07827bfe6bbe4bbafc529dff5914763f41d39",
      "parents": [
        "4845993e7bccc382be9e69e1eaa70a48e7b7cd22"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Thu Mar 12 16:06:52 2026 +0100"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Mar 13 15:11:47 2026 +0100"
      },
      "message": "JAMES-4189 UsersRepository::supportVirtualHosting never throws\n\nThrowing for accessing config is a non sense that needlessly complexify the code.\n"
    },
    {
      "commit": "4845993e7bccc382be9e69e1eaa70a48e7b7cd22",
      "tree": "a8fe35b117ba89feaa46473b57ddcc78fe53d515",
      "parents": [
        "a2c03ed263fd61ab907eb73952b06daa9cb867bf"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Tue Mar 10 09:47:23 2026 +0100"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Fri Mar 13 15:11:47 2026 +0100"
      },
      "message": "JAMES-4189 Ability to list users by domain\n"
    },
    {
      "commit": "a2c03ed263fd61ab907eb73952b06daa9cb867bf",
      "tree": "0170d3fec68c281b866d87ed6642af5f3f3febfa",
      "parents": [
        "e42a22130054a96bfa039bb27c32dd1cad5af014"
      ],
      "author": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Wed Mar 11 03:57:33 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 11 09:57:33 2026 +0700"
      },
      "message": "JAMES-4188 Improve range optimization to account for non-contiguous r… (#2972)"
    },
    {
      "commit": "e42a22130054a96bfa039bb27c32dd1cad5af014",
      "tree": "8c255658cec7617b4e5b197874985219fe82619b",
      "parents": [
        "927cbe3d5f6f10298d7e9da510d6398925e05cc4"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Tue Mar 10 09:57:22 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Tue Mar 10 08:46:28 2026 +0100"
      },
      "message": "JAMES-4187 Fix failing tests\n"
    },
    {
      "commit": "927cbe3d5f6f10298d7e9da510d6398925e05cc4",
      "tree": "4347bd64bf734130189cd6e3b99aaa401e83e743",
      "parents": [
        "d7bd1be50dc857340d79068cd24ed6c07cfb22c9"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Mon Mar 09 16:04:04 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Tue Mar 10 08:46:28 2026 +0100"
      },
      "message": "JAMES-4187 MessageContentDeletionEvent: enrich Flags\n\nAllow listener could handle flags of deleted messages.\n"
    },
    {
      "commit": "d7bd1be50dc857340d79068cd24ed6c07cfb22c9",
      "tree": "81995e4a682bec2ca01a3b659f7530bbc7c5f570",
      "parents": [
        "a452c744e71b9e8590a93c839aeee56f9381369b"
      ],
      "author": {
        "name": "Quan Tran",
        "email": "hqtran@linagora.com",
        "time": "Mon Mar 09 15:17:20 2026 +0700"
      },
      "committer": {
        "name": "Benoit TELLIER",
        "email": "btellier@linagora.com",
        "time": "Tue Mar 10 08:46:28 2026 +0100"
      },
      "message": "JAMES-4187 Drop Cassandra email query view look up table\n\nBy refactoring EmailQueryView::delete(MailboxId mailboxId, MessageId messageId) to take into account receivedAt also.\n"
    }
  ],
  "next": "a452c744e71b9e8590a93c839aeee56f9381369b"
}
