)]}'
{
  "log": [
    {
      "commit": "b37e2bbacd2c899112f22028b139dfdfb10da712",
      "tree": "c9dac57690b87c8e2c30b95c32c909f1420f5d8a",
      "parents": [
        "577b89f2cdddf0d42cfd3c1b6effdac0cd0e467c"
      ],
      "author": {
        "name": "Jiahua Wang",
        "email": "90542846+wang-jiahua@users.noreply.github.com",
        "time": "Thu Jul 23 23:55:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 23:55:33 2026 +0800"
      },
      "message": "[ISSUE #10639] Reuse a per-thread scratch buffer in CommitLog.checkMessageAndReturnSize (#10640)\n\n* [ISSUE #10639] Reuse a per-thread scratch buffer in CommitLog.checkMessageAndReturnSize\n\n* [ISSUE #10639] Reject corrupt negative totalSize before allocation in checkMessageAndReturnSize\n\n* [ISSUE #10639] Add configurable reuse-buffer cap and unit tests for checkMessageAndReturnSize\n\n* [ISSUE #10639] Default the check-message reuse-buffer cap to 1 MiB\n\n---------\n\nCo-authored-by: wangjiahua.wjh \u003cwangjiahua.wjh@alibaba-inc.com\u003e"
    },
    {
      "commit": "577b89f2cdddf0d42cfd3c1b6effdac0cd0e467c",
      "tree": "25808721631842a77b1411fa3f373b43acba509b",
      "parents": [
        "4f9b187fd75b6a39b7823ab3a05843161521e47b"
      ],
      "author": {
        "name": "Quan",
        "email": "zsjperiod@foxmail.com",
        "time": "Wed Jul 22 11:43:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 11:43:58 2026 +0800"
      },
      "message": "[ISSUE #10644] Add LMQ number gauge metric to Broker observability (#10645)\n\n- Add GAUGE_LMQ_NUM constant in BrokerMetricsConstant\n- Register ObservableLongGauge in BrokerMetricsManager reading from messageStore.getQueueStore().getLmqNum()\n- Expose rocketmq_lmq_number metric for monitoring LMQ resource usage"
    },
    {
      "commit": "4f9b187fd75b6a39b7823ab3a05843161521e47b",
      "tree": "8da7bd516bb359e8e51cc3888b2ee6ee7c660324",
      "parents": [
        "26cfb5f60e47a943bd9d5d25b196c248222cc949"
      ],
      "author": {
        "name": "Quan",
        "email": "zsjperiod@foxmail.com",
        "time": "Mon Jul 20 10:46:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 10:46:46 2026 +0800"
      },
      "message": "[ISSUE #10569] Support Lite Simple Consumer on server side (#10570)\n\n- Broker: add PopLiteLongPollingService to NotificationProcessor for lite consumer notification polling\n- Broker: LiteEventDispatcher notifies both PopLiteMessageProcessor and NotificationProcessor polling services\n- Broker: add hasEvents(clientId) API to LiteEventDispatcher for message availability check\n- Proxy: unify lite/normal pop paths into single popMessage call, route by ProxyContext.isLiteConsumer()\n- Proxy: register LITE_SIMPLE_CONSUMER in ClientActivity and GrpcClientSettingsManager lifecycle\n- Proxy: pass liteTopic property only for lite consumers in filter and response writer\n- Proxy: remove standalone popLiteMessage from MessagingProcessor/ConsumerProcessor\n- Remoting: add isLiteConsumer and clientId fields to NotificationRequestHeader"
    },
    {
      "commit": "26cfb5f60e47a943bd9d5d25b196c248222cc949",
      "tree": "939ccc2ebb4f2fb3ad97ef08c667a6c764c911f5",
      "parents": [
        "3373f284e6d8e5101f63a38be28f1fe3ec9f6773"
      ],
      "author": {
        "name": "Quan",
        "email": "zsjperiod@foxmail.com",
        "time": "Fri Jul 17 22:10:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 17 22:10:39 2026 +0800"
      },
      "message": "[ISSUE #10622] Resolve ConsumerOffsetManager dynamically in LiteEventDispatcher (#10623)\n\n- Remove cached consumerOffsetManager field from LiteEventDispatcher\n- Replace all usages with brokerController.getConsumerOffsetManager() for lazy resolution\n- Allows downstream projects to swap ConsumerOffsetManager after broker init"
    },
    {
      "commit": "3373f284e6d8e5101f63a38be28f1fe3ec9f6773",
      "tree": "abf22c594ddff8112bcc857c5e7bb15a55d1ce75",
      "parents": [
        "45254d5e13e965b8bdece6101ef42fb38472cd89"
      ],
      "author": {
        "name": "Jiahua Wang",
        "email": "90542846+wang-jiahua@users.noreply.github.com",
        "time": "Fri Jul 17 18:43:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 17 18:43:41 2026 +0800"
      },
      "message": "[ISSUE #10613] Fix async request-reply RequestCallback firing multiple times (#10614)\n\n- DefaultMQProducerImpl#request(Message, RequestCallback, long): drop the\n  executeRequestCallback() call in the async send onSuccess so a send success\n  no longer delivers a premature onSuccess(null); align with the other async\n  request overloads which only set sendRequestOk here.\n- RequestResponseFuture: add an AtomicBoolean executeCallbackOnlyOnce guard so\n  the callback fires at most once even if the reply and timeout paths race.\n- RequestFutureHolder#scanExpiredRequest: use ConcurrentHashMap.remove(key) to\n  atomically claim ownership instead of iterator.remove(); also fix the log\n  placeholder concatenation.\n- ClientRemotingProcessor#processReplyMessage: use atomic remove(correlationId)\n  and route the reply through executeRequestCallback so the single-shot guard\n  covers the reply-success path too.\n- Add RequestResponseFutureTest cases for success-then-timeout and concurrent\n  single-callback semantics.\n\nCo-authored-by: wangjiahua.wjh \u003cwangjiahua.wjh@alibaba-inc.com\u003e"
    },
    {
      "commit": "45254d5e13e965b8bdece6101ef42fb38472cd89",
      "tree": "ffa25f46ff8ddf5b3fab000eafd6d784a3d5c548",
      "parents": [
        "74e90f7c283d4030e4c89a35f46dec77419bcb9e"
      ],
      "author": {
        "name": "imzs",
        "email": "imzs@foxmail.com",
        "time": "Tue Jul 14 13:39:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 13:39:34 2026 +0800"
      },
      "message": "[ISSUE #10615] Fix missing long-polling notification under CombineConsumeQueue selective double-write (#10616)"
    },
    {
      "commit": "74e90f7c283d4030e4c89a35f46dec77419bcb9e",
      "tree": "9ef9edea9a84b459fd2df75af1bd2228f52d12cc",
      "parents": [
        "c4ce550a574e938fffd5f3b50b1c564eef426439"
      ],
      "author": {
        "name": "Jiahua Wang",
        "email": "90542846+wang-jiahua@users.noreply.github.com",
        "time": "Mon Jul 13 10:07:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 10:07:43 2026 +0800"
      },
      "message": "[ISSUE #10446] Support batch deletion of topics and subscription groups in broker (#10448)\n\n* [ISSUE #10446] Support batch deletion of topics and subscription groups in broker\n\n- Add DELETE_TOPIC_IN_BROKER_LIST and DELETE_SUBSCRIPTION_GROUP_LIST\n  request codes with corresponding RequestBody types\n- Implement deleteTopicList / deleteSubscriptionGroupList in\n  AdminBrokerProcessor with deduplication and one-shot persist\n- Add deleteTopicConfigList / deleteSubscriptionGroupConfigList in\n  TopicConfigManager / SubscriptionGroupManager (single persist per batch)\n- Add MQClientAPIImpl#deleteTopicInBrokerList /\n  deleteSubscriptionGroupList client APIs\n- Cover changes with unit tests in AdminBrokerProcessorTest\n\n* fix: persist  config after batch delete\n\n* fix: preserve batch delete failure response\n\n---------\n\nCo-authored-by: wangjiahua.wjh \u003cwangjiahua.wjh@alibaba-inc.com\u003e\nCo-authored-by: fuchong \u003cyubao.fyb@alibaba-inc.com\u003e"
    },
    {
      "commit": "c4ce550a574e938fffd5f3b50b1c564eef426439",
      "tree": "9f3cc1a982211fbd9048717f9dbb66bc0602973a",
      "parents": [
        "0e4ccf1b669161453c9381af92652ae2cb9fa4e7"
      ],
      "author": {
        "name": "imzs",
        "email": "imzs@foxmail.com",
        "time": "Fri Jul 10 18:09:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 18:09:59 2026 +0800"
      },
      "message": "[ISSUE #10604] Fix TopicConfig DataVersion not persisted in split registration (#10605)"
    },
    {
      "commit": "0e4ccf1b669161453c9381af92652ae2cb9fa4e7",
      "tree": "3ba671741bdc18e137db9d3a4901b9bef0d02ffb",
      "parents": [
        "2af604f3afc3a14376fc3e980a045c306ffef9fe"
      ],
      "author": {
        "name": "aias00",
        "email": "liuhongyu@apache.org",
        "time": "Tue Jul 07 19:37:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 19:37:13 2026 +0800"
      },
      "message": "[ISSUE #10578] Fix master election maxOffset comparator overflow\n\nDefaultElectPolicy sorted broker candidates by subtracting maxOffset values and casting the long delta to int. Large offset gaps can overflow the comparator result and rank a lower-offset broker first. This replaces subtraction with safe comparator helpers and adds a focused overflow regression test.\n\nConstraint: Preserve existing election order: higher epoch, higher maxOffset, lower electionPriority\n\nRejected: Keep subtraction comparator | unsafe for long offset deltas greater than Integer.MAX_VALUE\n\nConfidence: high\n\nScope-risk: narrow\n\nTested: mvn -q -pl controller -DskipTests\u003dfalse -Dtest\u003dDefaultElectPolicyTest -Djacoco.skip\u003dtrue test\n\nTested: mvn -q -pl controller -DskipTests compile -Dspotbugs.skip\u003dtrue -Dcheckstyle.skip\u003dtrue\n\nTested: mvn -q -DskipTests compile -Dspotbugs.skip\u003dtrue -Dcheckstyle.skip\u003dtrue\n\nNot-tested: Full controller suite on local JDK due existing JaCoCo/Hessian module-access failures\n\nRelated: #10578"
    },
    {
      "commit": "2af604f3afc3a14376fc3e980a045c306ffef9fe",
      "tree": "05e31f55d00bb4bc5bd9c64947088f599ccf6267",
      "parents": [
        "8242c1e9d223c33b68fe1c66d129e83e86f5eba0"
      ],
      "author": {
        "name": "yx9o",
        "email": "yangx_soft@163.com",
        "time": "Mon Jul 06 10:27:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 10:27:33 2026 +0800"
      },
      "message": "[ISSUE #10593] Rename CLusterSendMsgRTCommand to ClusterSendMsgRTCommand (#10594)\n\n* [ISSUE #10593] Rename CLusterSendMsgRTCommand to ClusterSendMsgRTCommand\n\n* Update"
    },
    {
      "commit": "8242c1e9d223c33b68fe1c66d129e83e86f5eba0",
      "tree": "e75e890dc67ebf89d0904c21f6b5a5513e3aea89",
      "parents": [
        "1730dbc040b04a26dca5128490e37796aac9b007"
      ],
      "author": {
        "name": "Quan",
        "email": "zsjperiod@foxmail.com",
        "time": "Wed Jul 01 14:03:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 14:03:54 2026 +0800"
      },
      "message": "[ISSUE #10562] Optimize PopConsumerServiceTest#transferToFsStoreTest to avoid unnecessary background threads (#10563)\n\n- Replace consumerService.start() with consumerService.getPopConsumerStore().start()\n- Replace consumerService.shutdown() with consumerService.getPopConsumerStore().shutdown()\n- Avoid starting revive/cache background threads that are not needed for transferToFsStore verification\n- Reduces test execution time from ~60s to ~1.3s"
    },
    {
      "commit": "1730dbc040b04a26dca5128490e37796aac9b007",
      "tree": "e638121d88e496bd5307b6b5af543998760ecf9f",
      "parents": [
        "88709c56aacae16634e7dc8a6a5f06e4a93b678d"
      ],
      "author": {
        "name": "Quan",
        "email": "zsjperiod@foxmail.com",
        "time": "Wed Jul 01 13:50:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 13:50:53 2026 +0800"
      },
      "message": "[ISSUE #10560] Remove enableLiteEventMode config switch (#10561)\n\n* [ISSUE #10560] Remove enableLiteEventMode config switch\n\n- Remove enableLiteEventMode field, getter and setter from BrokerConfig\n- Remove 5 early-return guard checks in LiteEventDispatcher\n- Remove dead condition in PopLiteMessageProcessor.popLiteTopic\n- Simplify getEventIterator to always use event-set path\n- Delete unused LiteSubscriptionIterator inner class\n- Remove disabled-mode test cases and stale Javadoc references\n\n* chore: retrigger CI"
    },
    {
      "commit": "88709c56aacae16634e7dc8a6a5f06e4a93b678d",
      "tree": "f555df77fd9787465c17736e219961989897777b",
      "parents": [
        "f4c0c4d3a49f46fbd9af23688d037dfe67b32ee6"
      ],
      "author": {
        "name": "SSpirits",
        "email": "admin@lv5.moe",
        "time": "Tue Jun 30 10:26:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 10:26:23 2026 +0800"
      },
      "message": "[ISSUE #10543] resolve data race in ServiceThread wakeup mechanism (#10544)"
    },
    {
      "commit": "f4c0c4d3a49f46fbd9af23688d037dfe67b32ee6",
      "tree": "6fceaba33599e2ea75048af3f9d2793850bf6574",
      "parents": [
        "49102a99852147c2fa90d49250f4ffb0d288f3c8"
      ],
      "author": {
        "name": "Surya Kant",
        "email": "suryakantasahoo533@gmail.com",
        "time": "Mon Jun 29 16:46:54 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 19:16:54 2026 +0800"
      },
      "message": "docs: format README for consistent Markdown style (#10551)\n\nNormalize horizontal rules, blank lines around headings and code\nblocks, list markers, nested list indentation, and trailing whitespace\nwithout changing content."
    },
    {
      "commit": "49102a99852147c2fa90d49250f4ffb0d288f3c8",
      "tree": "946891af22b56a6594bf6d7a14b567d5c38cb36b",
      "parents": [
        "10d498c68aaea5c15ca844d3b3b2d257847d1875"
      ],
      "author": {
        "name": "Quan",
        "email": "zsjperiod@foxmail.com",
        "time": "Mon Jun 29 15:34:00 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 15:34:00 2026 +0800"
      },
      "message": "[ISSUE #10549] Fix lite topic reset offset: memory leak, FIFO block bypass, and offset-0 reset failure (#10550)\n\n* [ISSUE #10549] Fix lite topic reset offset: memory leak, FIFO block bypass, and offset-0 reset failure\n\n- Fix memory leak in removeResetOffset: clean up empty inner map entries from resetOffsetTable\n- Add eraseResetOffset for precise cleanup on lite topic removal\n- Skip FIFO block check in isFifoBlocked when server-side reset offset is pending\n- Fix ResetOffsetByTimeCommand: change resetOffset \u003e 0 to \u003e\u003d 0 to allow resetting to offset 0\n- Add unit tests for eraseResetOffset and isFifoBlocked reset bypass\n\n* chore: empty commit to trigger CI pipeline"
    },
    {
      "commit": "10d498c68aaea5c15ca844d3b3b2d257847d1875",
      "tree": "55c16833cdfa761690bed00472a5012e714f72bf",
      "parents": [
        "2e6632ff404b6210057914cf0530f53d6531ab99"
      ],
      "author": {
        "name": "Quan",
        "email": "zsjperiod@foxmail.com",
        "time": "Thu Jun 25 10:22:35 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 10:22:35 2026 +0800"
      },
      "message": "[ISSUE-10546] Add default implementation for rejectRequest() in NettyRequestProcessor (#10547)"
    },
    {
      "commit": "2e6632ff404b6210057914cf0530f53d6531ab99",
      "tree": "3bc531fe65c8bac896c2a74b1add9f44fbef75f3",
      "parents": [
        "b5bc1ff5d687ab3d1cd95fe0d37260c6d3f0d49d"
      ],
      "author": {
        "name": "chenxu80",
        "email": "chenxu80@meituan.com",
        "time": "Tue Jun 23 17:10:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 17:10:16 2026 +0800"
      },
      "message": "[ISSUE #10417] Fix stale minOffset after consumeQueue truncation (#10418)"
    },
    {
      "commit": "b5bc1ff5d687ab3d1cd95fe0d37260c6d3f0d49d",
      "tree": "1bddd7c43d3bec41a490d835e33c1551c21d4dc9",
      "parents": [
        "c4ae761f09958f001917548cdc43b31021cfa15d"
      ],
      "author": {
        "name": "rongtong",
        "email": "jinrongtong16@mails.ucas.ac.cn",
        "time": "Sun Jun 21 09:37:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 21 09:37:25 2026 +0800"
      },
      "message": "Fix flaky HATest semi-sync replication (#10495)"
    },
    {
      "commit": "c4ae761f09958f001917548cdc43b31021cfa15d",
      "tree": "f4f2ec0d9ea48b9cf9c555c7fe21bd37852a08b8",
      "parents": [
        "bfbbb2a95535374d285e97bf2d159e00b6e26dc8"
      ],
      "author": {
        "name": "LeiXiaoGao",
        "email": "2995484417@qq.com",
        "time": "Sat Jun 20 10:54:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 20 10:54:59 2026 +0800"
      },
      "message": "docs: fix broker container reference and producer typos (#10449)"
    },
    {
      "commit": "bfbbb2a95535374d285e97bf2d159e00b6e26dc8",
      "tree": "255610ca999b587e58a98c6590aafb3eb0f90478",
      "parents": [
        "e2137569717df3567fc51629d7ee3c9b36724628"
      ],
      "author": {
        "name": "echooymxq",
        "email": "echooy.mxq@gmail.com",
        "time": "Sat Jun 20 10:44:49 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 20 10:44:49 2026 +0800"
      },
      "message": "[#10421] Fix Timer message rocksdb use wrong cache key. (#10422)"
    },
    {
      "commit": "e2137569717df3567fc51629d7ee3c9b36724628",
      "tree": "3a8bd2ecdab09c90ef8ab9b2e23bdce21d655763",
      "parents": [
        "c270c60f8592aef32722d40c3d1bb1e3168b3aa1"
      ],
      "author": {
        "name": "yin_bo_",
        "email": "3557545112@qq.com",
        "time": "Sat Jun 20 10:27:55 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 20 10:27:55 2026 +0800"
      },
      "message": "[ISSUE #10419] Fix NPE when class filter route data is missing (#10420)\n\n* [ISSUE #10419] Fix NPE when class filter route data is missing\n\n* [ISSUE #10419] Add class filter route fallback tests"
    },
    {
      "commit": "c270c60f8592aef32722d40c3d1bb1e3168b3aa1",
      "tree": "57ab5228e0ad039ad4582fc00fd2bf472bdb060e",
      "parents": [
        "5977e9cb1f4616c7e308aaeb2d1af2b330385750"
      ],
      "author": {
        "name": "Jiahua Wang",
        "email": "90542846+wang-jiahua@users.noreply.github.com",
        "time": "Fri Jun 19 09:41:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 09:41:57 2026 +0800"
      },
      "message": "[ISSUE #10441] Reduce per-RPC allocation in metrics by caching static AttributeKey instances (#10443)\n\nCo-authored-by: wangjiahua.wjh \u003cwangjiahua.wjh@alibaba-inc.com\u003e"
    },
    {
      "commit": "5977e9cb1f4616c7e308aaeb2d1af2b330385750",
      "tree": "317487ae64411cf7bc6ab525edc9d10bde6ed4c4",
      "parents": [
        "f941dced39e42f4d43a5a53289f82e999fc71410"
      ],
      "author": {
        "name": "Jiahua Wang",
        "email": "90542846+wang-jiahua@users.noreply.github.com",
        "time": "Fri Jun 19 09:41:19 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 09:41:19 2026 +0800"
      },
      "message": "[ISSUE #10522] Reduce Remoting header encoding allocation via FastCodesHeader/RocketMQSerializable optimizations\n\n- Add writeDecimalLong/writeDecimalInt to RocketMQSerializable for direct primitive decimal encoding\n\n- Add writeLong/writeInt helpers to FastCodesHeader\n\n- Optimize writeIfNotNull to route Long/Integer through primitive writers\n\n- Cache single-byte ASCII strings in RocketMQSerializable.readStr\n\n- Right-size HashMap initial capacity in mapDeserialize (128 -\u003e 24)\n\nCo-authored-by: wangjiahua.wjh \u003cwangjiahua.wjh@alibaba-inc.com\u003e"
    },
    {
      "commit": "f941dced39e42f4d43a5a53289f82e999fc71410",
      "tree": "52a803c2f8fd090b486cc043ce85e26d4336780b",
      "parents": [
        "971d568433804ebb586e6c6bdd9342dff9471384"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Wed Jun 17 19:43:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 19:43:16 2026 +0800"
      },
      "message": "[ISSUE #10521] Use madvise(MADV_RANDOM) to disable kernel read-ahead during correctMinOffset binary search (#10523)"
    },
    {
      "commit": "971d568433804ebb586e6c6bdd9342dff9471384",
      "tree": "df671e8c78320fea15627490c940c245965479eb",
      "parents": [
        "9b91157f30ad153663224a601060be6e661a6c09"
      ],
      "author": {
        "name": "Jiahua Wang",
        "email": "90542846+wang-jiahua@users.noreply.github.com",
        "time": "Wed Jun 17 15:01:48 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 15:01:48 2026 +0800"
      },
      "message": "[ISSUE #10515] Fix TransactionMetricsFlushService busy spin bug (#10517)\n\nCo-authored-by: wangjiahua.wjh \u003cwangjiahua.wjh@alibaba-inc.com\u003e"
    },
    {
      "commit": "9b91157f30ad153663224a601060be6e661a6c09",
      "tree": "feb60767ebb02fa3098b181123f441f2428e64ac",
      "parents": [
        "e18f0d2c2c68a800169b9a16ca4e5d2e02bb104c"
      ],
      "author": {
        "name": "Jiahua Wang",
        "email": "90542846+wang-jiahua@users.noreply.github.com",
        "time": "Wed Jun 17 14:11:01 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 14:11:01 2026 +0800"
      },
      "message": "[ISSUE #10486] Add getMessageType(Map) overload to eliminate redundant properties decode (#10487)\n\nBrokerMetricsManager.getMessageType(SendMessageRequestHeader) is called\nonce per send to classify the message. It internally decodes the\nproperties String into a HashMap, but the typical caller\n(SendMessageProcessor) has already decoded the same String moments\nbefore. The result is a redundant decode allocation per send (one\nHashMap + ~14 String substrings + one Node[]).\n\nThis commit adds a public overload getMessageType(Map\u003cString, String\u003e)\nthat lets callers pass an already-decoded Map and reuse it. The\nexisting SendMessageRequestHeader overload now delegates to the new\noverload; behavior is unchanged for callers that don\u0027t have a decoded\nMap. Downstream callers (e.g. SendMessageProcessor) can switch to the\nnew overload in a separate broker-layer commit.\n\nCo-authored-by: wangjiahua.wjh \u003cwangjiahua.wjh@alibaba-inc.com\u003e"
    },
    {
      "commit": "e18f0d2c2c68a800169b9a16ca4e5d2e02bb104c",
      "tree": "fa2d0112007b9c323ccbdd813eb766adf43f8a14",
      "parents": [
        "59a70d9b80a348a2e3fcaa91cd0c52e1c998b308"
      ],
      "author": {
        "name": "Jiahua Wang",
        "email": "90542846+wang-jiahua@users.noreply.github.com",
        "time": "Wed Jun 17 14:10:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 14:10:28 2026 +0800"
      },
      "message": "[ISSUE #10511] Replace Enum.values() loop with static array lookup in LanguageCode and SerializeType (#10513)\n\nCo-authored-by: wangjiahua.wjh \u003cwangjiahua.wjh@alibaba-inc.com\u003e"
    },
    {
      "commit": "59a70d9b80a348a2e3fcaa91cd0c52e1c998b308",
      "tree": "89d9cac179f2e39cc09451409f82ea856dd57843",
      "parents": [
        "226e24faf6975c3bc1e519057d6472e99edb2d98"
      ],
      "author": {
        "name": "KaiQuan Chen",
        "email": "92154428+SummCoder@users.noreply.github.com",
        "time": "Tue Jun 16 13:55:38 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 13:55:38 2026 +0800"
      },
      "message": "Update ACL mqadmin commands in Chinese doc Section 7 (#10504)\n\nReplace five outdated commands (updateAclConfig, deleteAccessConfig,\nupdateGlobalWhiteAddr, clusterAclConfigVersion, getAclConfig) with\nthe six commands available in RocketMQ 5.5.0:\n\n  createAcl, updateAcl, deleteAcl, getAcl, listAcl, copyAcl\n\nVerified: all five old commands return \u0027sub command not exist\u0027 on\nRocketMQ 5.5.0. Each new command documented with parameters and\nusage examples from actual mqadmin -h output.\n\nFixes #10502"
    },
    {
      "commit": "226e24faf6975c3bc1e519057d6472e99edb2d98",
      "tree": "89d9cac179f2e39cc09451409f82ea856dd57843",
      "parents": [
        "4082e31d883dc45453e61a2f4875b6e767988dac"
      ],
      "author": {
        "name": "KaiQuan Chen",
        "email": "92154428+SummCoder@users.noreply.github.com",
        "time": "Mon Jun 15 20:25:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 20:25:30 2026 +0800"
      },
      "message": "Fix outdated constructor signatures in trace documentation (#10501)\n\nThe two-argument constructors DefaultMQProducer(String, boolean) and\nDefaultMQPushConsumer(String, boolean) do not exist in 5.x.\nUpdated to use the three-argument form with null for the default\ntrace topic.\n\nFixes #10500"
    },
    {
      "commit": "4082e31d883dc45453e61a2f4875b6e767988dac",
      "tree": "88b157e55d5c8146eb105036dbf1c30932328d06",
      "parents": [
        "7347c44b0609a34affdd1893a3532e79ac33e325"
      ],
      "author": {
        "name": "KaiQuan Chen",
        "email": "92154428+SummCoder@users.noreply.github.com",
        "time": "Mon Jun 15 20:23:50 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 20:23:50 2026 +0800"
      },
      "message": "[ISSUE #8262]Fix bitsarray off by one (#10506)\n\n* Update ACL mqadmin commands in Chinese doc Section 7\n\nReplace five outdated commands (updateAclConfig, deleteAccessConfig,\nupdateGlobalWhiteAddr, clusterAclConfigVersion, getAclConfig) with\nthe six commands available in RocketMQ 5.5.0:\n\n  createAcl, updateAcl, deleteAcl, getAcl, listAcl, copyAcl\n\nVerified: all five old commands return \u0027sub command not exist\u0027 on\nRocketMQ 5.5.0. Each new command documented with parameters and\nusage examples from actual mqadmin -h output.\n\nFixes #10502\n\n* Fix off-by-one in BitsArray boundary checks and add unit tests\n\n**Bug fix**\ncheckBytePosition and checkBitPosition used \u0027\u003e\u0027 instead of \u0027\u003e\u003d\u0027,\nallowing positions equal to array length to pass validation and\ncause ArrayIndexOutOfBoundsException instead of the intended\nIllegalArgumentException.\n\n**Production impact if not fixed**\nMinimal. getByte/setByte are only called internally by xor/or/and\nwith safe bounds. getBit/setBit positions come from BloomFilterData\nhash functions which always produce in-range values. The incorrect\ncheck has no known production trigger.\n\n**Impact of fix**\nZero negative impact. All valid positions (0 to length-1) unchanged.\nEdge case now correctly throws IllegalArgumentException instead of\nArrayIndexOutOfBoundsException.\n\n**Tests added**\n- BitsArrayTest: 27 tests covering create, bit/byte ops, boundary,\n  including regression tests for the fixed checks\n- PlainAccessConfigTest: 12 tests for getters/setters, equals/hashCode\n\nReferences #8262\n\n* Remove self-comparison assertion flagged as error by CI"
    },
    {
      "commit": "7347c44b0609a34affdd1893a3532e79ac33e325",
      "tree": "3fdecfc2a2c4fe9d234e923e11fe26f5d797359a",
      "parents": [
        "b4d92c06b7a5995d1b6a8211c40e411372fe9a64"
      ],
      "author": {
        "name": "RockteMQ-AI",
        "email": "apache-rocketmq@alibaba-inc.com",
        "time": "Mon Jun 15 16:43:51 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 16:43:51 2026 +0800"
      },
      "message": "[ISSUE #10510] Add gRPC server permit keepalive configuration (#10516)"
    },
    {
      "commit": "b4d92c06b7a5995d1b6a8211c40e411372fe9a64",
      "tree": "e789e49aafdfeae5019cae3d5c67729abc2d832d",
      "parents": [
        "da58317516cfbb034358ef981396576a0719cf6b"
      ],
      "author": {
        "name": "SGloria",
        "email": "57310662+SGloria@users.noreply.github.com",
        "time": "Mon Jun 15 13:42:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 13:42:09 2026 +0800"
      },
      "message": "[ISSUE #10492] Add debug logging for swallowed exceptions in StatsAllSubCommand (#10493)\n\nPreviously, multiple catch blocks in StatsAllSubCommand silently\nswallowed exceptions, making it difficult to diagnose issues when\nthe `mqadmin statsAll` command failed to retrieve statistics from\ncertain brokers.\n\nThis commit adds debug-level logging to all empty catch blocks,\nrecording the exception details along with contextual information\n(topic, group, broker address) to improve observability.\n\nCo-authored-by: fire \u003cgloria_404@126.com\u003e\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e"
    },
    {
      "commit": "da58317516cfbb034358ef981396576a0719cf6b",
      "tree": "32f2d4cb44dc0893bd759adfb475ee8616145e3e",
      "parents": [
        "c4f18d96bb5c34661b65f9cb967bb8971f4b15b2"
      ],
      "author": {
        "name": "SGloria",
        "email": "57310662+SGloria@users.noreply.github.com",
        "time": "Mon Jun 15 13:40:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 13:40:42 2026 +0800"
      },
      "message": "[ISSUE #10216] Fix potential NPE in EscapeBridge when topicPublishInfo is null (#10507)\n\nIn asyncPutMessage() and asyncRemotePutMessageToSpecificQueue(), the\nreturn value of tryToFindTopicPublishInfo() is dereferenced without a\nnull check, causing NullPointerException when topic route information\nis unavailable (e.g., during startup or after nameserver disconnection).\n\nThis commit adds null/validity checks consistent with the existing\npattern in putMessageToRemoteBroker(), returning PUT_TO_REMOTE_BROKER_FAIL\nwith a warning log instead of crashing with NPE.\n\nCo-authored-by: fire \u003cgloria_404@126.com\u003e\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e"
    },
    {
      "commit": "c4f18d96bb5c34661b65f9cb967bb8971f4b15b2",
      "tree": "e324b75c5361fa3baf281c48e160c6ba18f53dc5",
      "parents": [
        "3a568241f9038602e1e9f756e2ff4e0685688bd6"
      ],
      "author": {
        "name": "quzizii",
        "email": "96002356+quzizii@users.noreply.github.com",
        "time": "Mon Jun 15 09:43:26 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 09:43:26 2026 +0800"
      },
      "message": "[DOCS] Fix typos in documentation filenames (#10505)\n\nRename Design_LoadBlancing.md to Design_LoadBalancing.md\nRename Design_Trancation.md to Design_Transaction.md"
    },
    {
      "commit": "3a568241f9038602e1e9f756e2ff4e0685688bd6",
      "tree": "780f94a1b46ad1376765480c901a57d3e210af12",
      "parents": [
        "c8301910cba1a2a02a2a50320a7f92911049345d"
      ],
      "author": {
        "name": "fancy",
        "email": "fancyboi66@gmail.com",
        "time": "Sat Jun 13 11:17:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 13 11:17:28 2026 +0800"
      },
      "message": "docs: fix dead link to tiered store config in tieredstore README (#10484)\n\nThe \u0027Configuration\u0027 section linked to TieredMessageStoreConfig.java under\nthe tieredstore/common package, but that class has been renamed to\nMessageStoreConfig and moved to the tieredstore package root, so the link\nreturns 404. Point it at the current MessageStoreConfig.java, which holds\nthe tiered store configuration fields documented in the table below\n(tieredStoreFilePath, tieredBackendServiceProvider, tieredStorageLevel, ...).\n\nSigned-off-by: fancy-agent \u003cfancyboi66@gmail.com\u003e"
    },
    {
      "commit": "c8301910cba1a2a02a2a50320a7f92911049345d",
      "tree": "b50902cdeda252f79dc0c7e857e1ff309d52e2f0",
      "parents": [
        "91cb333716018d477782754e997bf2232327c97a"
      ],
      "author": {
        "name": "fancy",
        "email": "fancyboi66@gmail.com",
        "time": "Sat Jun 13 11:17:10 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 13 11:17:10 2026 +0800"
      },
      "message": "docs: remove dead Slack invite link from README (#10483)\n\nThe Slack invite link (rocketmq-invite-automation.herokuapp.com) returns\nHTTP 404 — the Heroku-hosted invite app is gone (Heroku retired free\ndynos in Nov 2022). The project site no longer lists Slack anywhere\n(home, docs, and the contact page have no Slack reference), so this\nremoves the dead link to keep the contact list accurate.\n\nSigned-off-by: fancy-agent \u003cfancyboi66@gmail.com\u003e"
    },
    {
      "commit": "91cb333716018d477782754e997bf2232327c97a",
      "tree": "d19b8949f946167ee6205c557aae74e5914436a6",
      "parents": [
        "1ab9689f34db0b14c8f4c548cc5be5b52c83fc29"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Fri Jun 12 15:45:06 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 15:45:06 2026 +0800"
      },
      "message": "[ISSUE #10462] Improve error handling in tiered storage (#10473)"
    },
    {
      "commit": "1ab9689f34db0b14c8f4c548cc5be5b52c83fc29",
      "tree": "10b2473f9f380a66c45accb07cde70a5f6884d2d",
      "parents": [
        "8a589c6a53301a0a3d5e85341f563bd26c107bb4"
      ],
      "author": {
        "name": "imzs",
        "email": "imzs@foxmail.com",
        "time": "Thu Jun 11 21:14:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 21:14:18 2026 +0800"
      },
      "message": "[ISSUE #10450] Selective double-write in CombineConsumeQueueStore (#10452)"
    },
    {
      "commit": "8a589c6a53301a0a3d5e85341f563bd26c107bb4",
      "tree": "69407312430f7e716a65fbeb6bcd61b2a1cc29f9",
      "parents": [
        "cf9113fce91158e2c9d32f1dc38af687946307d6"
      ],
      "author": {
        "name": "imzs",
        "email": "imzs@foxmail.com",
        "time": "Thu Jun 11 21:11:08 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 21:11:08 2026 +0800"
      },
      "message": "[ISSUE #10453] Fix unexpected decrement of lmq counter (#10454)"
    },
    {
      "commit": "cf9113fce91158e2c9d32f1dc38af687946307d6",
      "tree": "9a68a97bee037696dce93d9b420628c21d0e1e4b",
      "parents": [
        "801d6c0a2fef953c475cdc2e0916ef92109bf766"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Thu Jun 11 20:47:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 20:47:54 2026 +0800"
      },
      "message": "[ISSUE #10462] Fix resource leaks and lifecycle issues in tiered storage (#10476)"
    },
    {
      "commit": "801d6c0a2fef953c475cdc2e0916ef92109bf766",
      "tree": "8f7a6e0f9837be982e1a9eef1ee38b36201bd609",
      "parents": [
        "78e680b811f15e7bbb5d5ef40b44ba1b33cf76e0"
      ],
      "author": {
        "name": "Jiahua Wang",
        "email": "90542846+wang-jiahua@users.noreply.github.com",
        "time": "Thu Jun 11 20:26:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 20:26:12 2026 +0800"
      },
      "message": "[ISSUE #10467] Reduce per-message allocation in createUniqID and valueOfMagicCode (#10469)\n\n- MessageClientIDSetter.createUniqID(): reuse a ThreadLocal\u003cchar[]\u003e\n  instead of allocating a new char[LEN*2] on every send.\n- MessageVersion.valueOfMagicCode(): replace Enum.values() array copy +\n  O(n) loop with direct if-else on the two known magic codes.\n\nCo-authored-by: wangjiahua.wjh \u003cwangjiahua.wjh@alibaba-inc.com\u003e\nCo-authored-by: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "78e680b811f15e7bbb5d5ef40b44ba1b33cf76e0",
      "tree": "c7f88999e8182938a223e52de94c4169a887cdf8",
      "parents": [
        "84fc240accc384e576a87873347701065a3ad433"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Thu Jun 11 19:23:52 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 19:23:52 2026 +0800"
      },
      "message": "[ISSUE #10462] Standardize log format across tiered storage module (#10474)"
    },
    {
      "commit": "84fc240accc384e576a87873347701065a3ad433",
      "tree": "411cadc548a9a61f42a43f12919d050ca7a29b3c",
      "parents": [
        "68cc74388160f2fd2b1ab5ada4b73ae04d0574b9"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Thu Jun 11 19:21:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 19:21:09 2026 +0800"
      },
      "message": "[ISSUE #10462] Optimize thread pool sizes for commit and fetch executors (#10472)"
    },
    {
      "commit": "68cc74388160f2fd2b1ab5ada4b73ae04d0574b9",
      "tree": "df277f94df3795b7b2cb1ebd7b03138501a02e91",
      "parents": [
        "976e9a3edd591e28e190b8eedfbd531cb8fe8997"
      ],
      "author": {
        "name": "Harsh Mehta",
        "email": "harshmehta010102@gmail.com",
        "time": "Thu Jun 11 13:44:41 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 16:14:41 2026 +0800"
      },
      "message": "[Fix #10460]: Pre-size ProxyContext map to avoid HashMap resize on request path (#10461)\n\n* fix: initialize HashMap with an initial capacity in ProxyContext\n\nSigned-off-by: Harsh Mehta \u003charshmehta010102@gmail.com\u003e\n\n* fix: initialize HashMap with an initial capacity in ProxyContext\n\nSigned-off-by: Harsh Mehta \u003charshmehta010102@gmail.com\u003e\n\n* fix: changed initial capacity to 64\n\nSigned-off-by: Harsh Mehta \u003charshmehta010102@gmail.com\u003e\n\n---------\n\nSigned-off-by: Harsh Mehta \u003charshmehta010102@gmail.com\u003e"
    },
    {
      "commit": "976e9a3edd591e28e190b8eedfbd531cb8fe8997",
      "tree": "c7ab59b8235d655bdeaf32edd11e6eab51d587d4",
      "parents": [
        "21562bba0e9989dbc2a0052bb408267840f8624e"
      ],
      "author": {
        "name": "Chuan",
        "email": "38578669+chuanxo@users.noreply.github.com",
        "time": "Thu Jun 11 15:36:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 15:36:39 2026 +0800"
      },
      "message": "[ISSUE #10435] Fix shared ClientChannelInfo preventing inactive channel expiry (#10437)"
    },
    {
      "commit": "21562bba0e9989dbc2a0052bb408267840f8624e",
      "tree": "fe4cabad941491b5bdddc95ba18acd1f5c2b0b99",
      "parents": [
        "da9b26bd2d715e57d0ae13cadc9c8765d01413cb"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Thu Jun 11 15:29:56 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 15:29:56 2026 +0800"
      },
      "message": "[ISSUE #10462] Fix concurrency bugs in tiered storage (#10471)"
    },
    {
      "commit": "da9b26bd2d715e57d0ae13cadc9c8765d01413cb",
      "tree": "7f5986066f21ac422548d2badb0d3c780f2ee481",
      "parents": [
        "86d1df4917b84e7a7102c5981079f17e26633d93"
      ],
      "author": {
        "name": "Chuan",
        "email": "38578669+chuanxo@users.noreply.github.com",
        "time": "Thu Jun 11 14:52:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 14:52:43 2026 +0800"
      },
      "message": "[ISSUE #10438] Fix buildTopicConfigSerializeWrapper exposing live topicConfigTable reference (#10439)"
    },
    {
      "commit": "86d1df4917b84e7a7102c5981079f17e26633d93",
      "tree": "01c05c62116180b25ee2f6fcab8fdf4f77faefaa",
      "parents": [
        "50ae7c50930798aced54c4c24467f847eb684aed"
      ],
      "author": {
        "name": "quzizii",
        "email": "96002356+quzizii@users.noreply.github.com",
        "time": "Thu Jun 11 14:24:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 14:24:09 2026 +0800"
      },
      "message": "[ISSUE #10475] Add unit tests for CleanupPolicyUtils"
    },
    {
      "commit": "50ae7c50930798aced54c4c24467f847eb684aed",
      "tree": "ac54a7c471878435562cab19131e80e335da0948",
      "parents": [
        "be38a8211b767e04a7a53aeea3b014a91c8478be"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Thu Jun 11 14:14:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 14:14:11 2026 +0800"
      },
      "message": "[ISSUE #10462] Add memory backpressure to dispatch (#10470)"
    },
    {
      "commit": "be38a8211b767e04a7a53aeea3b014a91c8478be",
      "tree": "9e8b2543c8584fac41f3c93d3e4f0740d63c1236",
      "parents": [
        "8997e8cdf083b74635245aa14721b487e13a7d45"
      ],
      "author": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Thu Jun 11 04:53:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 10:53:22 2026 +0800"
      },
      "message": "Configure GitHub workflows to use concurrency cancel-in-progress for (#10445)\n\nSee recommended best practices at Apache\nhttps://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey\u003dINFRA\u0026title\u003dGitHub+Actions+Recommended+Practices\n\nSigned-off-by: Aurélien Pupier \u003capupier@ibm.com\u003e"
    },
    {
      "commit": "8997e8cdf083b74635245aa14721b487e13a7d45",
      "tree": "1bfa8b5be7508ee48bed91651a9fdbea0f47d448",
      "parents": [
        "63394315af0867661c3a3b320287b3c5702bc799"
      ],
      "author": {
        "name": "LeiXiaoGao",
        "email": "2995484417@qq.com",
        "time": "Thu Jun 11 10:12:22 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 10:12:22 2026 +0800"
      },
      "message": "fix: validate message batch input (#10459)"
    },
    {
      "commit": "63394315af0867661c3a3b320287b3c5702bc799",
      "tree": "60c68dc42cfdee9c02e65d2ad63b30bbbe21ab17",
      "parents": [
        "86ccea07771dc9fa8cb2c6d3718769ce744e1516"
      ],
      "author": {
        "name": "lsq3497",
        "email": "152787369+lsq3497@users.noreply.github.com",
        "time": "Wed Jun 10 17:28:04 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 19:58:04 2026 +0800"
      },
      "message": "docs: fix inaccurate examples and typos across developer guides (#10456)"
    },
    {
      "commit": "86ccea07771dc9fa8cb2c6d3718769ce744e1516",
      "tree": "2578af8bbaf7495a715ddc37b06f0c3da77c9152",
      "parents": [
        "2319d2f99764ae9d38ba69b87730ab6726c5fe01"
      ],
      "author": {
        "name": "LeiXiaoGao",
        "email": "2995484417@qq.com",
        "time": "Wed Jun 10 19:54:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 19:54:45 2026 +0800"
      },
      "message": "docs: fix broker IP typo in startup examples (#10440)"
    },
    {
      "commit": "2319d2f99764ae9d38ba69b87730ab6726c5fe01",
      "tree": "36983a431c1a7d9811ef6bf97614706d54186ef3",
      "parents": [
        "ef6a8c917c86099b82d43ae4e564bcb9007f428c"
      ],
      "author": {
        "name": "bruce",
        "email": "841326226@qq.com",
        "time": "Wed Jun 10 10:40:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 10:40:34 2026 +0800"
      },
      "message": "[ISSUE #10457] Fix RocketmqColdCtr logger level (#10447)"
    },
    {
      "commit": "ef6a8c917c86099b82d43ae4e564bcb9007f428c",
      "tree": "0c31a44fa292f394574c68ba6caaf15dc0cd68b0",
      "parents": [
        "82a6a784ee35b36d94b3ab644bd5394834e2c540"
      ],
      "author": {
        "name": "lsq3497",
        "email": "152787369+lsq3497@users.noreply.github.com",
        "time": "Tue Jun 09 09:46:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 09:46:32 2026 +0800"
      },
      "message": "[ISSUE #10430] Add unit tests for srvutil package (#10431)\n\n* test: add srvutil regression coverage\n\n* test: fix bazel build issues for srvutil tests"
    },
    {
      "commit": "82a6a784ee35b36d94b3ab644bd5394834e2c540",
      "tree": "d49148725fe10d65abb1b41271dc8f875decd08c",
      "parents": [
        "216fc1b5370731f74d6c40fbe14052bb2be86592"
      ],
      "author": {
        "name": "Quan",
        "email": "zsjperiod@foxmail.com",
        "time": "Mon Jun 08 14:15:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 14:15:29 2026 +0800"
      },
      "message": "[ISSUE #10423] Optimize LiteConsumerLagCalculator.getLagCountTopK by deferring getStoreTimestamp to topK results only (#10424)"
    },
    {
      "commit": "216fc1b5370731f74d6c40fbe14052bb2be86592",
      "tree": "11e3d32a1f04f74168d256efb86784964e9b85b6",
      "parents": [
        "7e0cec35a20e10f46cbc7984773bbd72813b937b"
      ],
      "author": {
        "name": "wizcraft_kris",
        "email": "99409434+Kris20030907@users.noreply.github.com",
        "time": "Mon Jun 08 13:54:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 13:54:45 2026 +0800"
      },
      "message": "[ISSUE #10345] fix: preserve lite topic for auto-renew receipt handles (#10346)"
    },
    {
      "commit": "7e0cec35a20e10f46cbc7984773bbd72813b937b",
      "tree": "c3830a2d7c073f22aae6b949c084bc73ba4ba5c5",
      "parents": [
        "527273694e8ed1487ad5c84ebabdbf1f43bda124"
      ],
      "author": {
        "name": "rongtong",
        "email": "jinrongtong16@mails.ucas.ac.cn",
        "time": "Fri Jun 05 09:17:40 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 09:17:40 2026 +0800"
      },
      "message": "[ISSUE #10425] Revert split registration dataVersion change (#10426)"
    },
    {
      "commit": "527273694e8ed1487ad5c84ebabdbf1f43bda124",
      "tree": "b97ceac8f6e39a5e7eed1a301fcfaf557df42779",
      "parents": [
        "2a9560cc986b4bf9aca23c38e8bb154c5159159c"
      ],
      "author": {
        "name": "imzs",
        "email": "imzs@foxmail.com",
        "time": "Thu Jun 04 15:52:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 15:52:20 2026 +0800"
      },
      "message": "[ISSUE #10389] Fix or ignore several flaky tests of PopPriorityIT (#10390)"
    },
    {
      "commit": "2a9560cc986b4bf9aca23c38e8bb154c5159159c",
      "tree": "001cc347d5f6b0602dbfc45822c2af73bee88452",
      "parents": [
        "610acb5da2d6449d781bf43fd9a01129a526c29e"
      ],
      "author": {
        "name": "Quan",
        "email": "zsjperiod@foxmail.com",
        "time": "Tue Jun 02 20:10:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 20:10:44 2026 +0800"
      },
      "message": "[ISSUE #10387] Support runtime hot-reload of maxClientEventCount in LiteEventDispatcher.ClientEventSet (#10388)"
    },
    {
      "commit": "610acb5da2d6449d781bf43fd9a01129a526c29e",
      "tree": "a058beacef5e1c1514ac729eee3ce7fe278fc32b",
      "parents": [
        "a6fb9e2fa0d4e446c88b0051cd4fac233dcee9ec"
      ],
      "author": {
        "name": "Quan",
        "email": "zsjperiod@foxmail.com",
        "time": "Tue Jun 02 20:10:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 20:10:32 2026 +0800"
      },
      "message": "[ISSUE #10384] Enforce Lite exclusive subscription eviction via server-side tombstones (#10386)"
    },
    {
      "commit": "a6fb9e2fa0d4e446c88b0051cd4fac233dcee9ec",
      "tree": "631df192ae13bc96fe16a436066c06c588188210",
      "parents": [
        "78b05467ef354fbd08028bd424c18771f9f4fad9"
      ],
      "author": {
        "name": "rongtong",
        "email": "jinrongtong16@mails.ucas.ac.cn",
        "time": "Mon Jun 01 20:42:10 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 20:42:10 2026 +0800"
      },
      "message": "[ISSUE #10410] Fix RocksDBOptionsFactoryTest compile failure (#10411)"
    },
    {
      "commit": "78b05467ef354fbd08028bd424c18771f9f4fad9",
      "tree": "ce92efa05acfa0d003808f7e41364107e7ebf336",
      "parents": [
        "8561729a1433b1bdb298d476b2dde374a8766990"
      ],
      "author": {
        "name": "qianye",
        "email": "wuxingcan.wxc@alibaba-inc.com",
        "time": "Mon Jun 01 14:21:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 14:21:29 2026 +0800"
      },
      "message": "[ISSUE #10398] Fix native memory leak on TLS certificate hot-reload (#10399)"
    },
    {
      "commit": "8561729a1433b1bdb298d476b2dde374a8766990",
      "tree": "62dd32b4d10d7fed891500386004ae90c3581aa4",
      "parents": [
        "e12d755a7728ec140df7466f4b76882a2945f5ea"
      ],
      "author": {
        "name": "qianye",
        "email": "wuxingcan.wxc@alibaba-inc.com",
        "time": "Mon Jun 01 10:51:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 10:51:36 2026 +0800"
      },
      "message": "[ISSUE #10400] Cache Version.values() in MQVersion to avoid repeated array allocation (#10401)\n\nCo-authored-by: Qoder CLI \u003cnoreply@github.com\u003e\nCo-authored-by: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "e12d755a7728ec140df7466f4b76882a2945f5ea",
      "tree": "69a51499db4e25614485e92a088e05cec0fee54f",
      "parents": [
        "a705dbcb1a36aa1b926978c04371d1275be456e8"
      ],
      "author": {
        "name": "rongtong",
        "email": "jinrongtong16@mails.ucas.ac.cn",
        "time": "Mon Jun 01 10:47:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 10:47:24 2026 +0800"
      },
      "message": "[ISSUE #10344] Parameterize RocksDB CQ size amplification"
    },
    {
      "commit": "a705dbcb1a36aa1b926978c04371d1275be456e8",
      "tree": "2e6ed107d2c955b38af494d091cb290215857858",
      "parents": [
        "9443c6d9db8e681613d6b7da61f8f70be3ca7187"
      ],
      "author": {
        "name": "majialong",
        "email": "majialoong@gmail.com",
        "time": "Fri May 29 13:49:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 13:49:42 2026 +0800"
      },
      "message": "[ISSUE #10393] Fix outdated FAQ documentation URL in FAQUrl (#10394)\n\n* [ISSUE #10201] Fix outdated FAQ documentation URL in FAQUrl\n\n* Update faq url"
    },
    {
      "commit": "9443c6d9db8e681613d6b7da61f8f70be3ca7187",
      "tree": "3657795e2bff9a1da7ed4c267077290a2ea6b82a",
      "parents": [
        "c9e51d625e1d84d878d35e1bd3ad5edbf2392225"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Fri May 29 10:04:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 10:04:20 2026 +0800"
      },
      "message": "[ISSUE #10383] Align Bazel dependencies with Maven pom.xml (#10404)"
    },
    {
      "commit": "c9e51d625e1d84d878d35e1bd3ad5edbf2392225",
      "tree": "67197130b63434ea6d3ea60cecf1c4d9e08b1f96",
      "parents": [
        "41a3a3599013dd9babe6b43108ab9b3fda3e92c4"
      ],
      "author": {
        "name": "Quan",
        "email": "zsjperiod@foxmail.com",
        "time": "Wed May 27 19:02:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 19:02:59 2026 +0800"
      },
      "message": "[ISSUE #10381] Make HashedWheelTimer parameters configurable in QueueLevelConsumerOrderInfoLockManager (#10382)\n\n- Add popOrderLockTimerTickMs and popOrderLockTimerTicksPerWheel to BrokerConfig\n- Replace hardcoded TIMER_TICK_MS constant with configurable values from BrokerConfig\n- Remove unused field consumerOrderInfoManager\n- Default values (tickMs\u003d100, ticksPerWheel\u003d512) preserve backward compatibility"
    },
    {
      "commit": "41a3a3599013dd9babe6b43108ab9b3fda3e92c4",
      "tree": "3296ad8f8d753e16f29122882e4d7cdd9cabac4e",
      "parents": [
        "051ba270f89e1ee37a1397780e068ed4ece1d3ee"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Tue May 26 14:21:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 14:21:17 2026 +0800"
      },
      "message": "[ISSUE #10373] Fix quarantined flaky tests and remove CI rerun workflow (#10379)"
    },
    {
      "commit": "051ba270f89e1ee37a1397780e068ed4ece1d3ee",
      "tree": "8815627f5b86ba3e1c64bebd9caaa62a0f896a8d",
      "parents": [
        "9e2d8770558d7037e78a79d4ea52eb3cb0d988aa"
      ],
      "author": {
        "name": "H145608",
        "email": "1404488274@qq.com",
        "time": "Tue May 26 11:43:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 11:43:18 2026 +0800"
      },
      "message": "[DOCS] Update Chinese docs dependency version from 4.3.0/4.9.1 to 5.5.0 (#10358)\n\n- docs/cn/Example_Simple_cn.md: update version tag and Gradle dependency 4.3.0 -\u003e 5.5.0\n- docs/cn/RocketMQ_Example.md: update Maven version tag 4.9.1 -\u003e 5.5.0 and Gradle dependency 4.3.0 -\u003e 5.5.0\n- Align with the English version (docs/en/Example_Simple.md) which was already updated to 5.5.0\n\nCo-authored-by: H145608 \u003c1404499274@qq.com\u003e"
    },
    {
      "commit": "9e2d8770558d7037e78a79d4ea52eb3cb0d988aa",
      "tree": "ba4ea7ea2594fed1a542cd614fe4fc6fde9e8cc3",
      "parents": [
        "980f3d7f5561c276975ca0aab91d2fb9353d169c"
      ],
      "author": {
        "name": "Quan",
        "email": "zsjperiod@foxmail.com",
        "time": "Mon May 25 23:13:40 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 23:13:40 2026 +0800"
      },
      "message": "[ISSUE #10375] Fix race condition between deleteTopic and FlushConsumeQueueService by removing getLifeCycle indirection (#10376)"
    },
    {
      "commit": "980f3d7f5561c276975ca0aab91d2fb9353d169c",
      "tree": "9e8a8632035f349658af00b221c10626da9bd07b",
      "parents": [
        "eb95ba34197ef08dd04d774b3afd600c0e4ea1d2"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Mon May 25 17:36:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 17:36:36 2026 +0800"
      },
      "message": "[ISSUE #10373] Quarantine flaky tests and add detection plan docs (#10374)\n\n* [ISSUE #10373] Quarantine flaky tests and add detection plan docs\n\nRan all RocketMQ module tests 100x across 10 ECS nodes to identify\nnon-deterministic failures. Quarantined methods with @Ignore across\nbroker, client, filter, and tieredstore modules.\n\nFlaky tests quarantined:\n- broker: LiteLifecycleManagerTest#testCleanByParentTopic (2%)\n- broker: ConsumerOrderInfoManagerLockFreeNotifyTest#testRecover (2%)\n- broker: TransactionalMessageServiceImplTest#testDeletePrepareMessage_maxSize (1%)\n- client: DefaultMQConsumerWithTraceTest#testPullMessage_WithTrace_Success (1%)\n- client: DefaultMQLitePullConsumerWithTraceTest#testSubscribe_PollMessageSuccess_WithCustomizedTraceTopic (5%)\n- client: DefaultMQLitePullConsumerWithTraceTest#testSubscribe_PollMessageSuccess_WithDefaultTraceTopic (6%)\n- filter: BloomFilterTest#testCheckFalseHit (1%)\n- tieredstore: IndexStoreServiceTest#queryCrossFileBoundaryTest (35%)\n- tieredstore: IndexStoreServiceTest#concurrentGetTest (1.5%)\n\nAdditional changes:\n- LiteLifecycleManagerTest: Switch to MockitoJUnitRunner.Silent\n- Add flaky test detection plan docs (CN + EN)\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n\n* [ISSUE #10373] Quarantine flaky PopPriorityIT and fix test cases\n\n- Quarantine PopPriorityIT at class level (multiple methods fail\n  intermittently with \u0027expected:\u003c8\u003e but was:\u003c2\u003e\u0027 due to async race)\n- Fix ConsumerOrderInfoManagerLockFreeNotifyTest\n- Fix IndexStoreServiceTest\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n\n* [ISSUE #10373] Fix flaky test detection plan docs path and naming\n\nMove English doc from docs/cn/ to docs/en/ and rename both files\nto match existing docs naming convention (underscore + PascalCase).\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "eb95ba34197ef08dd04d774b3afd600c0e4ea1d2",
      "tree": "a458f59d6a0350139757118e4c03580e9e6d6e5e",
      "parents": [
        "7e5d22dff8542dfe7176147970d72a177904675d"
      ],
      "author": {
        "name": "H145608",
        "email": "1404488274@qq.com",
        "time": "Mon May 25 11:48:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 11:48:45 2026 +0800"
      },
      "message": "[DOCS] Fix typo in Troubleshooting.md filename (#10360)\n\nRename Troubleshoopting.md -\u003e Troubleshooting.md\nThe original filename had a spelling error (\u0027shoopting\u0027 instead of \u0027shooting\u0027).\n\nCo-authored-by: H145608 \u003c1404499274@qq.com\u003e"
    },
    {
      "commit": "7e5d22dff8542dfe7176147970d72a177904675d",
      "tree": "af8c6700a6fe3ca3cb07cf5928339fa76faff8ce",
      "parents": [
        "1251c9af3ef7942178b70c8aad9b04d46cddbb39"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Mon May 25 10:07:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 10:07:16 2026 +0800"
      },
      "message": "[ISSUE #10334] Make native CqCompactionFilter shim self-contained without rocksdbjni dependency (#10371)"
    },
    {
      "commit": "1251c9af3ef7942178b70c8aad9b04d46cddbb39",
      "tree": "6e0bcf6ae74f71dd4965d109cb66c5398d9d2d02",
      "parents": [
        "54708be637a0d3421cfe9e0b6f8a90ac5a7ef960"
      ],
      "author": {
        "name": "yx9o",
        "email": "yangx_soft@163.com",
        "time": "Sat May 23 17:09:38 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 23 17:09:38 2026 +0800"
      },
      "message": "[ISSUE #10280] Restore opaque when proxy remoting forward fails (#10281)"
    },
    {
      "commit": "54708be637a0d3421cfe9e0b6f8a90ac5a7ef960",
      "tree": "cb1284625efa0968441694bc556d7b4419230c5b",
      "parents": [
        "079038dafc34fc75a46b5eef51593fce5d012786"
      ],
      "author": {
        "name": "H145608",
        "email": "1404488274@qq.com",
        "time": "Fri May 22 22:42:52 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 22:42:52 2026 +0800"
      },
      "message": "[DOCS] Update example dependency version from 4.3.0 to 5.5.0 (#10349)\n\nUpdate rocketmq-client dependency version in Example_Simple.md documentation\nfrom the outdated 4.3.0 to the latest stable release 5.5.0\n\nCo-authored-by: H145608 \u003c1404499274@qq.com\u003e"
    },
    {
      "commit": "079038dafc34fc75a46b5eef51593fce5d012786",
      "tree": "116cd0139a9729f6fd4ad06400e67450dd02a206",
      "parents": [
        "61c493c068db333c268c554f5515f2ffc975a0b1"
      ],
      "author": {
        "name": "yx9o",
        "email": "yangx_soft@163.com",
        "time": "Thu May 21 15:17:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 15:17:27 2026 +0800"
      },
      "message": "[ISSUE #10247] Remove duplicate remove call in InvocationChannel (#10248)"
    },
    {
      "commit": "61c493c068db333c268c554f5515f2ffc975a0b1",
      "tree": "8d3f9d9230148dfc157361ec0f74c14aed76cf65",
      "parents": [
        "a3abd5185a18f9c05a6eaec0a5aa0afb3279bf44"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Thu May 21 10:12:14 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 10:12:14 2026 +0800"
      },
      "message": "[ISSUE #10334] Support native CqCompactionFilter with cross-platform JNI shim (#10335)"
    },
    {
      "commit": "a3abd5185a18f9c05a6eaec0a5aa0afb3279bf44",
      "tree": "1c29d875ed8f9bf107fac68093b01225f21ded16",
      "parents": [
        "17b4e56518f234f2dfe1e85b61f45362033e510d"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Tue May 19 13:34:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 13:34:12 2026 +0800"
      },
      "message": "[ISSUE #10341] Fix Bazel CI build failure caused by Maven Central rate limiting (#10342)"
    },
    {
      "commit": "17b4e56518f234f2dfe1e85b61f45362033e510d",
      "tree": "7c074c63b01da619857d08829bf00a365d861b40",
      "parents": [
        "c6254066487b376687ba8cd959d46aedd6a2c40e"
      ],
      "author": {
        "name": "yx9o",
        "email": "yangx_soft@163.com",
        "time": "Mon May 18 20:49:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 20:49:28 2026 +0800"
      },
      "message": "[ISSUE #10285] Fix preserve popTime when rebuilding AckResult (#10286)"
    },
    {
      "commit": "c6254066487b376687ba8cd959d46aedd6a2c40e",
      "tree": "7e1e36e73ab4274510202dda56e0eb45cf48aee0",
      "parents": [
        "c5a4da5400dca8051bedee5f17114d956b79ab33"
      ],
      "author": {
        "name": "yuz10",
        "email": "845238369@qq.com",
        "time": "Sat May 16 00:16:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 16 00:16:44 2026 +0800"
      },
      "message": "[ISSUE #10291] fix queryMessage default index type (#10292)\n\n* [ISSUE #10110] Plain request process success and response fail when tlsMode\u003denforcing\n\n* fix queryMessage default indexType\n\n* fix"
    },
    {
      "commit": "c5a4da5400dca8051bedee5f17114d956b79ab33",
      "tree": "a705092830b2fbdf0d6325c5c3b7d3a79b8f2b25",
      "parents": [
        "bd903d56e1da5ef3761d8f45f1169662751b0efb"
      ],
      "author": {
        "name": "yx9o",
        "email": "yangx_soft@163.com",
        "time": "Wed May 13 14:42:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 14:42:57 2026 +0800"
      },
      "message": "[ISSUE #10297] Set brokerName for messages returned by proxy local POP path (#10298)"
    },
    {
      "commit": "bd903d56e1da5ef3761d8f45f1169662751b0efb",
      "tree": "2279b8e47527e6913f78671edd7fd4997a87fd21",
      "parents": [
        "c6fc39ab5f1661cab5e2d6ff0c215c0add9c6d1d"
      ],
      "author": {
        "name": "ChineseTony",
        "email": "taowang98@163.com",
        "time": "Tue May 12 09:18:48 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 12 09:18:48 2026 +0800"
      },
      "message": "[ISSUE #10284] Fix consumerOffset deserialization error and add test (#10287)\n\nCo-authored-by: wangtao_ \u003cwangtao684@huawei.com\u003e"
    },
    {
      "commit": "c6fc39ab5f1661cab5e2d6ff0c215c0add9c6d1d",
      "tree": "122b0e2c45e2bdeb56493667c0d8ffa30f5dd88f",
      "parents": [
        "5ad6a3e5ceb4bca604866717c3bdcc61860f65e4"
      ],
      "author": {
        "name": "qianye",
        "email": "wuxingcan.wxc@alibaba-inc.com",
        "time": "Wed May 06 11:23:35 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 11:23:35 2026 +0800"
      },
      "message": "[ISSUE #10276] Fix PopConsumerService changeInvisibilityDuration losing CK record when visibilityTimeout collision (#10277)"
    },
    {
      "commit": "5ad6a3e5ceb4bca604866717c3bdcc61860f65e4",
      "tree": "cb33b0d19272846d396192f9e57139df7b706928",
      "parents": [
        "c08305261c4c0b953089a786a446a0216d9c02c1"
      ],
      "author": {
        "name": "wizcraft_kris",
        "email": "99409434+Kris20030907@users.noreply.github.com",
        "time": "Tue Apr 28 10:35:51 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 10:35:51 2026 +0800"
      },
      "message": "[ISSUE #10274] Fix ForwardMessageToDeadLetterQueue request mapping descriptor (#10275)"
    },
    {
      "commit": "c08305261c4c0b953089a786a446a0216d9c02c1",
      "tree": "2c24ee272c73c51d58d6cb4f8ac18e2694958ec8",
      "parents": [
        "0752ddf89b4f58facb7d1ab7c20fa5fe1aa1ff70"
      ],
      "author": {
        "name": "wizcraft_kris",
        "email": "99409434+Kris20030907@users.noreply.github.com",
        "time": "Thu Apr 23 17:27:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 17:27:45 2026 +0800"
      },
      "message": "[ISSUE #10253] Fix stale wildcardGroupMap entries caused by incorrect parsing during LiteTopic wildcard unregistration (#10254)"
    },
    {
      "commit": "0752ddf89b4f58facb7d1ab7c20fa5fe1aa1ff70",
      "tree": "a3cd75ef85bf59b2655a1a0c01741d46bc240090",
      "parents": [
        "f04eafcd7b0d9739e976e308f4f87a5bde033c78"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Wed Apr 22 17:24:38 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 17:24:38 2026 +0800"
      },
      "message": "[ISSUE #10270] Make Pop RocksDB BlockCache size configurable via MessageStoreConfig (#10271)\n\nCo-authored-by: Claude Opus 4.7 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "f04eafcd7b0d9739e976e308f4f87a5bde033c78",
      "tree": "2d09a9c3eb7595e04d534c8fddd14a77533d8f82",
      "parents": [
        "94fbfcf342fe13fce9cba4a6c31d052aaaf920e1"
      ],
      "author": {
        "name": "Houlong66",
        "email": "32865414+Houlong66@users.noreply.github.com",
        "time": "Tue Apr 21 19:19:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 19:19:30 2026 +0800"
      },
      "message": "[ISSUE #10266] Fix OOM caused by OpenTelemetry 1.44 OtlpGrpcMetricExporter pool race (#10267)\n\nOpenTelemetry Java 1.44.0 ~ 1.46.x ships OtlpGrpcMetricExporter with\nMemoryMode.REUSABLE_DATA by default. The underlying\nMetricReusableDataMarshaler.marshalerPool is a non-thread-safe\nArrayDeque accessed concurrently by the reader thread (poll) and the\nOkHttp callback thread (add, via whenComplete). With\nBatchSplittingMetricExporter issuing N concurrent sub-batch exports\nper cycle, the pool races and leaks marshalers (~132 KiB each) until\nOOM. Fixed upstream in 1.47.0 via open-telemetry/opentelemetry-java#7041\n(ArrayDeque -\u003e ConcurrentLinkedDeque).\n\n- Bump OpenTelemetry to 1.47.0 in pom.xml so the upstream race fix is\n  in effect.\n- Default OtlpGrpcMetricExporter to MemoryMode.IMMUTABLE_DATA to\n  preserve the pre-1.44 default behavior; exposed via\n  brokerConfig.metricsExportOtelMemoryMode (\"IMMUTABLE_DATA\" /\n  \"REUSABLE_DATA\", case-insensitive). Operators may opt in to\n  REUSABLE_DATA when running on OTel \u003e\u003d 1.47.\n- Cap concurrent in-flight sub-batches in BatchSplittingMetricExporter\n  with a Semaphore controlled by\n  brokerConfig.metricsExportBatchMaxConcurrent (default 4; set to 1\n  to serialize and match pre-batch behavior; 0 or Integer.MAX_VALUE\n  means unlimited).\n- Add brokerConfig.metricsExportBatchSplitEnabled (default true) as\n  an escape hatch to bypass BatchSplittingMetricExporter entirely,\n  restoring the raw OtlpGrpcMetricExporter wiring.\n- Defensively snapshot MetricData points before export to avoid\n  ArrayIndexOutOfBoundsException in NumberDataPointMarshaler when\n  async instrument callbacks mutate point collections during export."
    },
    {
      "commit": "94fbfcf342fe13fce9cba4a6c31d052aaaf920e1",
      "tree": "ec5e856ac655e752eb0e0987c1c658ee92b58f0d",
      "parents": [
        "840b18c4542520d5be0e633f7e9674c8316a2e77"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Tue Apr 21 19:15:26 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 19:15:26 2026 +0800"
      },
      "message": "[ISSUE #10268] Fix incorrect time range file selection in IndexStoreService.queryAsync (#10269)\n\nCo-authored-by: lizhimins \u003clizhimins@users.noreply.github.com\u003e"
    },
    {
      "commit": "840b18c4542520d5be0e633f7e9674c8316a2e77",
      "tree": "bb33b3fb29ea1109beb4fc7e7b05abc1940e32dd",
      "parents": [
        "98799686a99c85537cf0a13648b0b521bd16a6b1"
      ],
      "author": {
        "name": "yx9o",
        "email": "yangx_soft@163.com",
        "time": "Tue Apr 21 17:19:55 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 17:19:55 2026 +0800"
      },
      "message": "[ISSUE #10260] Reject delayed transactional messages in gRPC send path (#10261)"
    },
    {
      "commit": "98799686a99c85537cf0a13648b0b521bd16a6b1",
      "tree": "eb7d15b52d2801502cedf55d8d7bf7c937d02afe",
      "parents": [
        "b8aba3bde2c88bd98c3b4136a0782384cd16a439"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Fri Apr 10 17:31:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 17:31:59 2026 +0800"
      },
      "message": "[ISSUE #10238] Release Apache RocketMQ 5.5.0 (#10251)"
    },
    {
      "commit": "b8aba3bde2c88bd98c3b4136a0782384cd16a439",
      "tree": "6434f94caf3135eeece19d733656eb61360b7fc5",
      "parents": [
        "2b5e7094d2561a2d16e78594d583ed0a7d48ac17"
      ],
      "author": {
        "name": "lizhimins",
        "email": "707364882@qq.com",
        "time": "Fri Apr 10 17:30:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 17:30:12 2026 +0800"
      },
      "message": "[ISSUE #10181] Remove lock when resetting offset in PopConsumerService (#10250)"
    },
    {
      "commit": "2b5e7094d2561a2d16e78594d583ed0a7d48ac17",
      "tree": "1ff793f9826bb82ab52adb1980a72b7c48e89abe",
      "parents": [
        "343daa9fb5eaa826382d52739c4df4ecff857d3f"
      ],
      "author": {
        "name": "Vincent Lee",
        "email": "cool8511@gmail.com",
        "time": "Thu Apr 09 16:38:47 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 16:38:47 2026 +0800"
      },
      "message": "[ISSUE #9777 ]feat: use data version from master while sync slave and fix delete co… (#9778)\n\n* feat: use data version from master while sync slave and fix delete config while sync\n\nChange-Id: I42b2e7b1acc6836d3c90973801c9defba5f1325c\n\n* fix: assign new version using master while sync slave\n\nChange-Id: I7ec20607a84499fe5a6607763013c59d726aedc3\n\n* feat: allow set dataVersion directly for topic/group config sync\n\nChange-Id: Ic845794350e8bdaa847bdd0ae4b3e40ab1ad6311\n\n* feat: set data version directly while sync from master\n\nChange-Id: I39e78477a5223b578a4ede3e5cb76f04368d1ca3\n\n* test: adjust slave sync test for version\n\nChange-Id: I9e835568912928ddf6e81816095ee3ed8f93afc0"
    },
    {
      "commit": "343daa9fb5eaa826382d52739c4df4ecff857d3f",
      "tree": "8335712535fbe9a2b681903deef101cbcd2e17af",
      "parents": [
        "7b85a5d6fc5f1b4a382f878d047feb289f756ec6"
      ],
      "author": {
        "name": "imzs",
        "email": "imzs@foxmail.com",
        "time": "Tue Apr 07 17:51:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 17:51:59 2026 +0800"
      },
      "message": "[ISSUE #10173] Improve PopLite: rename RocksDB CQ path and schedule autoClean (#10242)"
    },
    {
      "commit": "7b85a5d6fc5f1b4a382f878d047feb289f756ec6",
      "tree": "e45cf5684c3f57d7079912a9c7db69a4ba4d1eeb",
      "parents": [
        "2c2cc921ba24378ffffbf122441cbfd7d58b5e53"
      ],
      "author": {
        "name": "Houlong66",
        "email": "32865414+Houlong66@users.noreply.github.com",
        "time": "Fri Apr 03 14:29:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 14:29:54 2026 +0800"
      },
      "message": "[ISSUE #10240] Add BatchSplittingMetricExporter to prevent OTLP gRPC export failures (#10239)\n\n* Add BatchSplittingMetricExporter to prevent OTLP gRPC export failures\n\nWhen high-cardinality metrics (consumer_group x topic) produce OTLP export\npayloads exceeding the gRPC 32MB limit or SLS per-RPC processing limit,\nall metrics fail to export. This adds a MetricExporter decorator that:\n\n- Splits large batches of MetricData objects into smaller sub-batches\n- Splits single oversized MetricData objects by their internal data points\n  into multiple smaller MetricData objects (supports all 7 MetricDataType)\n- Configurable via BrokerConfig.metricsExportBatchMaxDataPoints (default 1000)\n- Fast path with zero overhead when data points are within threshold\n- Logs failed batch details for debugging\n\n* fix(metrics): snapshot MetricData points before export to prevent AIOOBE\n\nThe OTel SDK\u0027s NumberDataPointMarshaler.createRepeated allocates an\narray based on points.size() then iterates. If callback threads\nconcurrently add data points between size() and iteration, an\nArrayIndexOutOfBoundsException occurs. This adds a defensive snapshot\nof all data point collections at the start of export(), ensuring\nthe delegate exporter always receives immutable point collections.\n\n* test(metrics): add unit tests for snapshot defensive copy\n\n- testSnapshotCreatesNewMetricData: verify delegate receives\n  snapshotted MetricData, not the original reference\n- testSnapshotFallsBackToOriginal: verify catch block falls\n  back to original when snapshot fails (e.g., mock without type)\n- testSnapshotPointsAreIndependentCopy: verify the snapshotted\n  points collection is a separate instance from the original"
    },
    {
      "commit": "2c2cc921ba24378ffffbf122441cbfd7d58b5e53",
      "tree": "7a225f05a3e3d96f7bad795d8767475d7162c373",
      "parents": [
        "614b81693b8175bb59cff5de5cdc228f3d8b0735"
      ],
      "author": {
        "name": "imzs",
        "email": "imzs@foxmail.com",
        "time": "Fri Apr 03 14:29:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 14:29:42 2026 +0800"
      },
      "message": "[ISSUE #10173] Support LMQ in CombineConsumeQueueStore without migration to RocksDB CQ (#10174)"
    },
    {
      "commit": "614b81693b8175bb59cff5de5cdc228f3d8b0735",
      "tree": "b98fab00554761af0d67ca2c18b84563f308b245",
      "parents": [
        "860de802612da9f510e4ea6e9e33d1631c90b88e"
      ],
      "author": {
        "name": "Quan",
        "email": "zsjperiod@foxmail.com",
        "time": "Fri Apr 03 11:23:08 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 11:23:08 2026 +0800"
      },
      "message": "[ISSUE #10203] Support wildcard subscription and and consumer suspend for LiteTopic (#10204)\n\n- Add wildcard (*) subscription support for liteTopic\n- Implement consume suspend mechanism with invalid scan count threshold\n- Refactor subscriber query interface with SubscriberWrapper for flexible retrieval\n- Add wildcard client cache with 30s TTL for performance optimization\n- Update related components and enhance test coverage\n\nChange-Id: I4ecaceec7daa2f4364d911437007df98dc49d542"
    },
    {
      "commit": "860de802612da9f510e4ea6e9e33d1631c90b88e",
      "tree": "318192416449b73c26baf75e5dd4339c860e2fa9",
      "parents": [
        "d68d5a54614db19256f935f6cfcc40be29cf131c"
      ],
      "author": {
        "name": "wizcraft_kris",
        "email": "99409434+Kris20030907@users.noreply.github.com",
        "time": "Fri Apr 03 11:05:37 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 11:05:37 2026 +0800"
      },
      "message": "[ISSUE #10183] Fix incorrect brokerName when constructing processQueueTable with static topic (#10186)"
    },
    {
      "commit": "d68d5a54614db19256f935f6cfcc40be29cf131c",
      "tree": "67da36b16d4067c59cd8dd0997602530066a2254",
      "parents": [
        "9c0cc510dce93ec73cdde3b66227545a0c4d76e9"
      ],
      "author": {
        "name": "wizcraft_kris",
        "email": "99409434+Kris20030907@users.noreply.github.com",
        "time": "Thu Apr 02 14:23:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 02 14:23:27 2026 +0800"
      },
      "message": "[ISSUE #10183] Fix incorrect brokerName when constructing ProcessQueueTable with static topic (#10184)"
    },
    {
      "commit": "9c0cc510dce93ec73cdde3b66227545a0c4d76e9",
      "tree": "ba4d18cbcfad466d88ad672992c21ddd31820164",
      "parents": [
        "459d27b39f699f880e00d613d0b3e86bd05c10f5"
      ],
      "author": {
        "name": "wizcraft_kris",
        "email": "99409434+Kris20030907@users.noreply.github.com",
        "time": "Tue Mar 31 17:04:47 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 31 17:04:47 2026 +0800"
      },
      "message": "[ISSUE #10189] Remove unused fetchRemoteConfigExecutorService in MQClientInstance (#10190)"
    }
  ],
  "next": "459d27b39f699f880e00d613d0b3e86bd05c10f5"
}
