)]}'
{
  "log": [
    {
      "commit": "d10dd2fca088dd290f168d3b9b715f0d706d1e5b",
      "tree": "a0c32c661843085e955f36e9e70045a3505f4f18",
      "parents": [
        "a311ccd1c4ffdc2073c1b054dd57378e102dfed9"
      ],
      "author": {
        "name": "Vadim Ogievetsky",
        "email": "vadim@ogievetsky.com",
        "time": "Wed Oct 28 20:30:30 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 20:30:30 2026 -0700"
      },
      "message": "fix: web console workbench result menu, Mod+Enter, and BigInt cells (#20777)\n\n- Result column header menu (no parsed query) showed DESC for both copy items\n- Mod+Enter in the query editor also inserted a blank line via CodeMirror\u0027s defaultKeymap\n- BigInt values in numeric result columns were not formatted with digit grouping"
    },
    {
      "commit": "a311ccd1c4ffdc2073c1b054dd57378e102dfed9",
      "tree": "e2927d5d4b4ad8443ec61d80f398f254ccc6ed85",
      "parents": [
        "bd56b5a01540e9e59d2b52f56b4b5df29b095bf9"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 29 09:34:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 09:34:21 2026 +0800"
      },
      "message": "build(deps): bump qs from 6.15.2 to 6.15.4 in /website (#20763)\n\nBumps [qs](https://github.com/ljharb/qs) from 6.15.2 to 6.15.4.\n- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ljharb/qs/compare/v6.15.2...v6.15.4)\n\n---\nupdated-dependencies:\n- dependency-name: qs\n  dependency-version: 6.15.4\n  dependency-type: indirect\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": "bd56b5a01540e9e59d2b52f56b4b5df29b095bf9",
      "tree": "af62ed93d54e1f3070084a4221ed43a49b9a500e",
      "parents": [
        "63e3c2422df8a67435de1cd47d2651f2434a35b4"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 29 09:33:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 09:33:36 2026 +0800"
      },
      "message": "build(deps): bump qs from 6.16.0 to 6.17.0 in /web-console (#20762)\n\nBumps [qs](https://github.com/ljharb/qs) from 6.16.0 to 6.17.0.\n- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ljharb/qs/compare/v6.16.0...v6.17.0)\n\n---\nupdated-dependencies:\n- dependency-name: qs\n  dependency-version: 6.17.0\n  dependency-type: indirect\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": "63e3c2422df8a67435de1cd47d2651f2434a35b4",
      "tree": "ed3c8bf42c98706fac1a23493309c508b0d94770",
      "parents": [
        "d5a6bc76c9680143d5dae2b59ebff2ba2e20034e"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Wed Oct 28 09:56:57 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 09:56:57 2026 -0600"
      },
      "message": "fix: Stop HttpRemoteTaskRunner from launching tasks killed while pending (#20740)\n\n* Stop HttpRemoteTaskRunner from launching tasks killed while pending\n\nHttpRemoteTaskRunner.shutdown() only acted on RUNNING and COMPLETE work\nitems. A task killed while PENDING or PENDING_WORKER_ASSIGN stayed in\npendingTaskIds, so the pending task executor assigned it to the next free\nworker even though TaskQueue had already marked it FAILED and released\nits locks. It ran until the next storage sync dropped the queue entry and\nthe management loop shut it down again.\n\nshutdown() now removes pending work items from pendingTaskIds under\nstatusLock and completes them with a FAILED status outside the lock. The\nitem stays in tasks as COMPLETE, so a worker that still starts an\nin-flight assignment gets the task killed through the existing COMPLETE\ncase in taskAddedOrUpdated(), and the next shutdown() call removes it.\n\n* Only complete strict PENDING items on HttpRemoteTaskRunner shutdown\n\nCompleting a PENDING_WORKER_ASSIGN item from shutdown() races with the\nassigning thread, which may revert the item to PENDING outside\nstatusLock and leave it PENDING with a completed future. shutdown() now\nonly removes such an item from pendingTaskIds so it cannot be assigned\nagain. If the worker starts the task, the next shutdown() call kills it\non the worker; if the assignment fails, the item goes back to PENDING\nand the next shutdown() call completes it.\n\nAlso checks the failure reason in the pending task test, makes its\nlocals final and stops the task runner."
    },
    {
      "commit": "d5a6bc76c9680143d5dae2b59ebff2ba2e20034e",
      "tree": "cb2e95333d26ece46898434eb31aafb31d2a5f83",
      "parents": [
        "c58e62b6be346ef505ba30f8b13e041725059a9b"
      ],
      "author": {
        "name": "Gian Merlino",
        "email": "gianmerlino@gmail.com",
        "time": "Wed Oct 28 07:27:58 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 07:27:58 2026 -0700"
      },
      "message": "feat: sqlTimeCondition context parameter. (#20607)\n\nThis patch adds the context parameter \"sqlTimeCondition\", which adds\na time filter to all tables. The filter is ANDed with any other filter\nthat the user may have provided. The goal of this feature is to enable\nUIs and APIs to accept user-written SQL along with having a separate\ncontrol for time.\n\nThis patch also fixes two pre-existing bugs that were discovered\nwhile writing tests for this feature:\n\n1) In some cases, WHERE on time + ORDER BY non-time over a join could\n   lose the time filter. This is fixed by passing scan.getIntervals()\n   to WindowOperatorQuery in DruidQuery#toScanAndSortQuery.\n   testLeftJoinWithTimeFilterAndNonTimeOrderBy is a regression test.\n\n2) The SQL planner would produce \"intervals\" rather than a __time filter\n   for certain time filters over a join of a left-hand subquery. This\n   would cause execution to fail, because execution assumes that\n   \"intervals\" are only used for regular tables. This is fixed by\n   adjusting ExecutionVertexExplorer to avoid traversing through\n   noncollapsible subqueries, making such a query no longer viewed\n   by the SQL planner as table-based. The regression test is in\n   testJoinWithSubqueryOnLeftAndOuterTimeFilter."
    },
    {
      "commit": "c58e62b6be346ef505ba30f8b13e041725059a9b",
      "tree": "1d0e3de59739c396f58ca185719938f9cb6f893f",
      "parents": [
        "01be49c916a7a3969e0ddcac8879877ec63f61b5"
      ],
      "author": {
        "name": "Kashif Faraz",
        "email": "kashif.faraz@gmail.com",
        "time": "Wed Oct 28 17:33:23 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 17:33:23 2026 +0530"
      },
      "message": "minor: Use running average values for processing rate and poll idle ratio (#20708)\n\nChanges:\n- Use running average metrics for Kafka poll-idle-ratio and average processing rate (records / second)\n- The average is taken over the entire lifecycle of a task and is not exponentially weighted on purpose.\n- This makes it easy to reason about the metric, and is driven by the dominant behavior in the task duration.\n- The poll-idle-ratio is reported by the Kafka consumer but is averaged over a 30s window by default.\nThis often leads to volatile metric values and the value at the exact time of the decision wins.\nIn production setups, this is a die roll since even though the metric had been consistently reporting\na certain value, a momentary spike or dip would cause the auto-scaler to make a bad decision.\n- The `usePollIdleRatio: false` setting was also unusable before this patch due to avg processing rate metric\nbeing volatile."
    },
    {
      "commit": "01be49c916a7a3969e0ddcac8879877ec63f61b5",
      "tree": "ff5e7b657c0ff6483dc299e26002b513ef9a798b",
      "parents": [
        "19c0a8dae5ad60e178c6eadb363a975bcfe5a65f"
      ],
      "author": {
        "name": "Karan Kumar",
        "email": "karankumar1100@gmail.com",
        "time": "Wed Oct 28 08:53:51 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 08:53:51 2026 +0530"
      },
      "message": "feat: Add missed KMS support in msq durable storage and exports (#20543)\n\n* Add missed KMS support\n\n* Minor comment."
    },
    {
      "commit": "19c0a8dae5ad60e178c6eadb363a975bcfe5a65f",
      "tree": "b49ae07a96489fd0a14a5d236183c18781325298",
      "parents": [
        "dc77ea95e7337bca1e598122542a4c648cda259b"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Tue Oct 27 20:48:09 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 10:48:09 2026 +0800"
      },
      "message": "fix: correct per-module versions in licenses.yaml (#20737)\n\n* Correct per-module versions in licenses.yaml\n\nThese entries no longer matched what their module ships. check-licenses.py\ndid not notice because it matches versions across all modules, so another\nmodule registering the shipped version was enough.\n\n- commons-collections4 4.6.0 and gson 2.14.0 in druid-kubernetes-extensions\n- gson 2.14.0 in druid-avro-extensions and druid-protobuf-extensions\n- hadoop-client-api 3.5.0 in druid-hdfs-storage\n- protobuf-java 4.36.2 in java-core\n- eventstream ships at 1.0.1 in lib/, not at the AWS SDK version, so it\n  gets its own java-core entry instead of being listed under the SDK\n- druid-avro-extensions bundles avro 1.12.2 but not avro-mapred, avro-ipc\n  or avro-ipc-jetty, so those libraries and their notices are removed\n- druid-avro-extensions had two kafka-clients entries (6.2.12-ccs and\n  5.5.1-ccs); it ships 8.3.2-ccs, so one entry is updated and the other\n  removed\n\n* Remove unshipped netty-codec-classes-quic from licenses.yaml\n\nNo dependency report and no jar in the -Pdist tarball contain it, and\nno POM references it. Leaving it in the java-core Netty entry makes\nrefresh-license-versions.py flag every Netty bump for a manual edit.\n\n* Name the Gson entry of druid-kubernetes-extensions after Gson\n\nThe entry was named \"io.swagger swagger-annotations\", so the binary\nLICENSE described the bundled Gson jar as swagger-annotations."
    },
    {
      "commit": "dc77ea95e7337bca1e598122542a4c648cda259b",
      "tree": "40e611dc3aa1ecf3bd90880bb9d3d16448a65fc6",
      "parents": [
        "0a7a044da179817c297ff9c7f1b1ee0d9f4a04fa"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Tue Oct 27 20:23:08 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 10:23:08 2026 +0800"
      },
      "message": "ci: run Maven Dependabot updates weekly and group them (#20733)\n\n* Run Maven Dependabot updates weekly and group them\n\nMaven version updates now run once a week instead of daily. All minor\nand patch updates go into one grouped PR; major updates still get one\nPR each. Security updates are grouped per ecosystem (Maven, website,\nweb-console, GitHub Actions), with zstd-jni kept out of the Maven\nsecurity group.\n\n* Group npm security updates across website and web-console\n\nMerge the two npm entries into one with `directories`, so a security fix\nfor a package used in both directories opens one PR instead of two.\nExplain why zstd-jni is kept out of the Maven security group.\n\n* Drop the maven-resolver Dependabot group\n\nAll org.apache.maven.resolver artifacts share the maven.resolver.version\nproperty, so Dependabot already bumps them together in one PR, and their\nminor and patch updates now go into maven-minor-patch."
    },
    {
      "commit": "0a7a044da179817c297ff9c7f1b1ee0d9f4a04fa",
      "tree": "3ff04b977de86437f33eac50b20d364264e83606",
      "parents": [
        "ca64cda922e91221141702b8da7bb0e9382c3ae5"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Tue Oct 27 20:22:45 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 10:22:45 2026 +0800"
      },
      "message": "build: add script to refresh licenses.yaml versions (#20736)\n\n* Add a script that refreshes licenses.yaml versions from the dependency reports\n\nrefresh-license-versions.py reads the same Maven dependency reports as\ncheck-licenses.py and updates the version of each licenses.yaml entry\nwhose libraries all moved to one new version. Only the version line of\nan entry changes, so comments, ordering and notices stay as they are.\n\nEntries are matched against the report of their own module, and a\nversion another entry of that module registers is never taken. Entries\nwhose libraries moved to different versions, entries with libraries in\nno report, and entries of one module that would move to the same\nversion are listed for a manual edit instead, and the script then exits\nnon-zero.\n\nThe report-reading loop moves out of check_licenses() into\nread_dependency_reports() so both scripts share it.\n\n* Compare licenses.yaml entries with their own module\u0027s report\n\nAn entry counted as current whenever any module still shipped its\nversion, so an extension that moved to a new version kept its stale\nentry as long as another module shipped the old one. The refresh script\nnow uses the entry\u0027s own module report whenever there is one.\n\n* Simplify the licenses.yaml refresh script\n\nKeep each entry\u0027s fields in a namespace instead of positional tuples, build the\nregistered versions while reading the entries, and capture the version line\u0027s\nnewline once. Split documents only at a \u0027---\u0027 line in the first column, so an\nindented \u0027---\u0027 inside a block scalar no longer ends a document.\n\nThe report parser\u0027s license notes now go to stderr, so stdout only lists the\nchanges. The \"No dependency reports are found\" check moves into\nread_dependency_reports, and the tests load check-licenses.py once.\n\n* Test the cross-module fallback with reports Maven can produce\n\nA module\u0027s dependency report lists one version per library, so two tests that\ngave java-core two versions of the same library could not happen. They now get\nthose versions from extension reports, which also covers matching an entry\nagainst other modules\u0027 reports when its own module does not ship the library.\n\n* Point contributors to the refresh script when updating licenses.yaml\n\n* Flag entries that still list a library another entry registers\n\nWhen one library of an entry moved to a new version but every reported\nversion of another library is registered by a different entry, the script\nrewrote the whole entry. That could register a library twice in one module,\nor at a version its module does not ship. List such an entry for a manual\nedit instead."
    },
    {
      "commit": "ca64cda922e91221141702b8da7bb0e9382c3ae5",
      "tree": "f8e599781161a31cf39bed2a52574d53dbb49401",
      "parents": [
        "c53272f4718745e973fddf96a01f3e6ec8bfce26"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 28 09:40:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 09:40:21 2026 +0800"
      },
      "message": "build(deps): bump oshi.version from 7.7.0 to 7.7.1 (#20743)\n\n* build(deps): bump oshi.version from 7.7.0 to 7.7.1\n\nBumps `oshi.version` from 7.7.0 to 7.7.1.\n\nUpdates `com.github.oshi:oshi-core` from 7.7.0 to 7.7.1\n- [Release notes](https://github.com/oshi/oshi/releases)\n- [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/oshi/oshi/compare/oshi-parent-7.7.0...oshi-parent-7.7.1)\n\nUpdates `com.github.oshi:oshi-common` from 7.7.0 to 7.7.1\n- [Release notes](https://github.com/oshi/oshi/releases)\n- [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/oshi/oshi/compare/oshi-parent-7.7.0...oshi-parent-7.7.1)\n\n---\nupdated-dependencies:\n- dependency-name: com.github.oshi:oshi-core\n  dependency-version: 7.7.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: com.github.oshi:oshi-common\n  dependency-version: 7.7.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* ci: update OSHI license metadata\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "c53272f4718745e973fddf96a01f3e6ec8bfce26",
      "tree": "17b93f8b6005f5888b8810d6d52d31338a43a41d",
      "parents": [
        "54e68936c210910946c99e9728d8fff6cd56c51c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 28 09:39:19 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 09:39:19 2026 +0800"
      },
      "message": "build(deps): bump com.github.wnameless.json:json-flattener (#20744)\n\nBumps [com.github.wnameless.json:json-flattener](https://github.com/wnameless/json-flattener) from 0.18.4 to 0.18.6.\n- [Changelog](https://github.com/wnameless/json-flattener/blob/master/release-notes)\n- [Commits](https://github.com/wnameless/json-flattener/compare/json-flattener-0.18.4...json-flattener-0.18.6)\n\n---\nupdated-dependencies:\n- dependency-name: com.github.wnameless.json:json-flattener\n  dependency-version: 0.18.6\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\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": "54e68936c210910946c99e9728d8fff6cd56c51c",
      "tree": "4c3cf3fb6af13c562d088449399a6e2dff38dd97",
      "parents": [
        "addd152afd411354d8ea46e7a8033eaba99c1770"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 28 09:38:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 09:38:13 2026 +0800"
      },
      "message": "build(deps): bump org.immutables:value-annotations from 2.12.2 to 2.12.3 (#20746)\n\nBumps [org.immutables:value-annotations](https://github.com/immutables/immutables) from 2.12.2 to 2.12.3.\n- [Release notes](https://github.com/immutables/immutables/releases)\n- [Commits](https://github.com/immutables/immutables/compare/2.12.2...2.12.3)\n\n---\nupdated-dependencies:\n- dependency-name: org.immutables:value-annotations\n  dependency-version: 2.12.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\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": "addd152afd411354d8ea46e7a8033eaba99c1770",
      "tree": "9f649d45a5a1ee314dbae6d2c8d7bc0be3fc8613",
      "parents": [
        "6be09603e04d5dce66b1378b82a3b6a5dbaf8461"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 28 09:37:04 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 09:37:04 2026 +0800"
      },
      "message": "build(deps): bump org.xerial.snappy:snappy-java from 1.1.10.11 to 1.1.10.12 (#20745)\n\n* build(deps): bump org.xerial.snappy:snappy-java\n\nBumps [org.xerial.snappy:snappy-java](https://github.com/xerial/snappy-java) from 1.1.10.11 to 1.1.10.12.\n- [Release notes](https://github.com/xerial/snappy-java/releases)\n- [Commits](https://github.com/xerial/snappy-java/compare/v1.1.10.11...v1.1.10.12)\n\n---\nupdated-dependencies:\n- dependency-name: org.xerial.snappy:snappy-java\n  dependency-version: 1.1.10.12\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* ci: update snappy-java license metadata\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "6be09603e04d5dce66b1378b82a3b6a5dbaf8461",
      "tree": "611d3583d7380a60717277c1f42718b32ee779de",
      "parents": [
        "bfce8a27d5e7bd89c00e75d18b80fbaf241edcf5"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 28 09:35:50 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 09:35:50 2026 +0800"
      },
      "message": "build(deps): bump com.azure:azure-sdk-bom from 1.3.8 to 1.3.9 (#20747)\n\n* build(deps): bump com.azure:azure-sdk-bom from 1.3.8 to 1.3.9\n\nBumps [com.azure:azure-sdk-bom](https://github.com/azure/azure-sdk-for-java) from 1.3.8 to 1.3.9.\n- [Release notes](https://github.com/azure/azure-sdk-for-java/releases)\n- [Commits](https://github.com/azure/azure-sdk-for-java/compare/azure-digitaltwins-core_1.3.8...azure-digitaltwins-core_1.3.9)\n\n---\nupdated-dependencies:\n- dependency-name: com.azure:azure-sdk-bom\n  dependency-version: 1.3.9\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* build(deps): update Azure dependency license metadata\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "bfce8a27d5e7bd89c00e75d18b80fbaf241edcf5",
      "tree": "5363cd762de2257a06df4d4843c43cc21efd1b41",
      "parents": [
        "7f398f90326e1bc049e6ee7c994893e4acbea03c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 28 09:33:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 09:33:58 2026 +0800"
      },
      "message": "build(deps): bump postcss-selector-parser in /website (#20748)\n\nBumps  and [postcss-selector-parser](https://github.com/postcss/postcss-selector-parser). These dependencies needed to be updated together.\n\nUpdates `postcss-selector-parser` from 6.1.4 to 6.1.5\n- [Release notes](https://github.com/postcss/postcss-selector-parser/releases)\n- [Changelog](https://github.com/postcss/postcss-selector-parser/blob/6.1.5/CHANGELOG.md)\n- [Commits](https://github.com/postcss/postcss-selector-parser/compare/6.1.4...6.1.5)\n\nUpdates `postcss-selector-parser` from 7.1.5 to 7.1.7\n- [Release notes](https://github.com/postcss/postcss-selector-parser/releases)\n- [Changelog](https://github.com/postcss/postcss-selector-parser/blob/6.1.5/CHANGELOG.md)\n- [Commits](https://github.com/postcss/postcss-selector-parser/compare/6.1.4...6.1.5)\n\n---\nupdated-dependencies:\n- dependency-name: postcss-selector-parser\n  dependency-version: 6.1.5\n  dependency-type: indirect\n- dependency-name: postcss-selector-parser\n  dependency-version: 7.1.7\n  dependency-type: indirect\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": "7f398f90326e1bc049e6ee7c994893e4acbea03c",
      "tree": "21608a2333abebf54c9f6b85dfd6de899e3039ff",
      "parents": [
        "57ebb4d6e1f79c83aba9cc711c0f9b038de8714c"
      ],
      "author": {
        "name": "Karan Kumar",
        "email": "karankumar1100@gmail.com",
        "time": "Wed Oct 28 04:05:06 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 04:05:06 2026 +0530"
      },
      "message": "Fix query driver. (#20755)"
    },
    {
      "commit": "57ebb4d6e1f79c83aba9cc711c0f9b038de8714c",
      "tree": "5d4f06b48bcda47d3ebb22b717c7ed642b48a54f",
      "parents": [
        "25de11864a25d0cba7b12224a939a997a0f3289d"
      ],
      "author": {
        "name": "Karan Kumar",
        "email": "karankumar1100@gmail.com",
        "time": "Wed Oct 28 03:39:36 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 28 03:39:36 2026 +0530"
      },
      "message": "Use checkstyle:check in pre-push hook (#20753)"
    },
    {
      "commit": "25de11864a25d0cba7b12224a939a997a0f3289d",
      "tree": "12750986d61b939d4a34e40ec0bddb499a833de0",
      "parents": [
        "63db6623bfcf17712bf00369b76f0d8e3e2bf3fe"
      ],
      "author": {
        "name": "Gian Merlino",
        "email": "gianmerlino@gmail.com",
        "time": "Tue Oct 27 14:07:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 14:07:36 2026 -0700"
      },
      "message": "feat: PostgreSQL-style :: cast operator. (#20702)\n\nThis patch adds cast syntax like x::BIGINT as shorthand for\nCAST(x AS BIGINT)."
    },
    {
      "commit": "63db6623bfcf17712bf00369b76f0d8e3e2bf3fe",
      "tree": "8bc382c2937a90a569ad6f5bf2e77ffbe009cc91",
      "parents": [
        "ce9886ae1c8dc5fe97c03405cbd5c6532a2bec0c"
      ],
      "author": {
        "name": "Zoltan Haindrich",
        "email": "kirk@rxd.hu",
        "time": "Tue Oct 27 10:08:13 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 10:08:13 2026 +0100"
      },
      "message": "feat: Make Coordinator client maxAttempts configurable (#20442)"
    },
    {
      "commit": "ce9886ae1c8dc5fe97c03405cbd5c6532a2bec0c",
      "tree": "0fd1fe3863ccd816518296ae2375bfb694410398",
      "parents": [
        "b370343252334018cc943976061f2d0c7817dfee"
      ],
      "author": {
        "name": "Gian Merlino",
        "email": "gianmerlino@gmail.com",
        "time": "Mon Oct 26 21:53:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 21:53:21 2026 -0700"
      },
      "message": "fix: Time-ordered scan correctness and limit performance. (#20655)\n\nThree changes related to how Scan queries schedule segments\nfor processing:\n\n1) ScanQueryRunnerFactory#stableLimitingSort (the priority queue\n   strategy that runs when ordering by time with a low limit) now\n   skips segments that cannot possibly contribute to the results.\n   There was previously some logic partially doing this, but it\n   scanned time chunks beyond what was really necessary.\n\n2) ScanQueryRunnerFactory#stableLimitingSort now truncates the\n   interval of segments being scanned, such that we avoid gathering\n   rows from within a segment when those rows cannot possibly\n   contribute to the result.\n\n3) ServerManager now builds one segment runner per descriptor in\n   descriptor order when calling QueryRunnerFactory#mergeRunners.\n   This enables ScanQueryRunnerFactory to correctly match up segments\n   and intervals. Previously this could cause out-of-order results\n   with VSF on-demand loading."
    },
    {
      "commit": "b370343252334018cc943976061f2d0c7817dfee",
      "tree": "23fa80498cecfe281a3b4977ac8876aa937fc25a",
      "parents": [
        "1bb2415568f79b9c9645b04f897c11f4a84a4648"
      ],
      "author": {
        "name": "Frank Chen",
        "email": "frank.chen021@outlook.com",
        "time": "Tue Oct 27 10:03:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 10:03:28 2026 +0800"
      },
      "message": "build: fix grpc-query build on macOS 27 without Rosetta (#20730)\n\nThe gRPC code generator was hard-coded at 1.52.0, whose osx-aarch_64\nartifact is an x86_64 binary, so building grpc-query failed on macOS 27\nwithout Rosetta. grpc-java ships a universal binary since 1.76.0.\n\nAdd a grpc.version property shared by grpc-bom and protoc-gen-grpc-java,\nmoving the code generator to the runtime\u0027s 1.84.2. Dependabot can\u0027t see\nthe version inside the plugin configuration, so sharing the property\nalso keeps the two in step."
    },
    {
      "commit": "1bb2415568f79b9c9645b04f897c11f4a84a4648",
      "tree": "519b67f800f3a0e90a3471cb6cc101d30f07293f",
      "parents": [
        "9733020550c22999e00f0d1920f634e5f6b1ba02"
      ],
      "author": {
        "name": "Akshat Lakhera",
        "email": "akshatlnct2024@gmail.com",
        "time": "Tue Oct 27 07:32:14 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 10:02:14 2026 +0800"
      },
      "message": "test: remove deprecated testExpressionString from SQL expression tests (#20722)\n\n* Remove deprecated testExpressionString from SQL expression tests\n\nMove all callers to testExpression, which compares the whole DruidExpression, and fix the expected values to match.\n\nSigned-off-by: Akshat Lakhera \u003cakshatlnct2024@gmail.com\u003e\n\n* Address review: build expected expressions with helpers\n\nSigned-off-by: Akshat Lakhera \u003cakshatlnct2024@gmail.com\u003e\n\n* Use QueryContextParameters.SQL_USE_EXTRACTION_FNS in ExpressionTestHelper\n\nSigned-off-by: Akshat Lakhera \u003cakshatlnct2024@gmail.com\u003e\n\n---------\n\nSigned-off-by: Akshat Lakhera \u003cakshatlnct2024@gmail.com\u003e"
    },
    {
      "commit": "9733020550c22999e00f0d1920f634e5f6b1ba02",
      "tree": "e5eb507dda175668e61879e68787626adccc6d30",
      "parents": [
        "b2ca05f5020591cf5c7cda1eb75033c32636d3d1"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Mon Oct 26 10:01:31 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 10:01:31 2026 -0600"
      },
      "message": "fix: Stop task count metrics from leaking dimensions across rows (#20726)\n\n* Fix dimensions leaking across rows in TaskCountStatsMonitor\n\nTaskCountStatsMonitor reused one ServiceMetricEvent.Builder for every row of a\ntask count metric. Builder dimensions accumulate, so a row without supervisorId\ninherited the previous row\u0027s value, and an empty row key inherited the previous\nrow\u0027s dataSource and taskType. Create a new builder per row.\n\n* Simplify TaskCountStatsMonitor regression test setup"
    },
    {
      "commit": "b2ca05f5020591cf5c7cda1eb75033c32636d3d1",
      "tree": "317b4c736a41d9158008bf4b3e177cd92c139206",
      "parents": [
        "434de02b20f69fb2476bb6d1f13f7ad66ebe37d8"
      ],
      "author": {
        "name": "Mahesh Rijal",
        "email": "62394512+maheshrijal@users.noreply.github.com",
        "time": "Mon Oct 26 19:34:21 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 22:04:21 2026 +0800"
      },
      "message": "test: fix flaky HistoricalCloningTest coordinator leader switch (#20728)"
    },
    {
      "commit": "434de02b20f69fb2476bb6d1f13f7ad66ebe37d8",
      "tree": "8d0e2a88992229c10606d9c9a57f701911fd1573",
      "parents": [
        "c081b77dfd0e4fe9c9dbba3e0744ecbbaf18c9c1"
      ],
      "author": {
        "name": "Mahesh Rijal",
        "email": "62394512+maheshrijal@users.noreply.github.com",
        "time": "Mon Oct 26 09:20:03 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 11:50:03 2026 +0800"
      },
      "message": "test: fix flaky ReservoirSegmentSamplerTest tolerance (#20724)\n\n* test: fix flaky ReservoirSegmentSamplerTest tolerance\n\n* test: apply statistical tolerance to equal-server sampler test"
    },
    {
      "commit": "c081b77dfd0e4fe9c9dbba3e0744ecbbaf18c9c1",
      "tree": "fbb64dca9792d4fe31faac690e9f5924affbee88",
      "parents": [
        "f33b377c584347c3a78d3a26906a47afb926e830"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 26 09:46:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 09:46:33 2026 +0800"
      },
      "message": "ci: bump org.checkerframework:checker-qual from 4.3.0 to 4.3.1 (#20699)\n\n* ci: bump org.checkerframework:checker-qual from 4.3.0 to 4.3.1\n\nBumps [org.checkerframework:checker-qual](https://github.com/typetools/checker-framework) from 4.3.0 to 4.3.1.\n- [Release notes](https://github.com/typetools/checker-framework/releases)\n- [Changelog](https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md)\n- [Commits](https://github.com/typetools/checker-framework/compare/checker-framework-4.3.0...checker-framework-4.3.1)\n\n---\nupdated-dependencies:\n- dependency-name: org.checkerframework:checker-qual\n  dependency-version: 4.3.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* ci: update checker-qual license metadata\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "f33b377c584347c3a78d3a26906a47afb926e830",
      "tree": "dd0dc2327da74839faf6f3edb3d614f5d0a13a66",
      "parents": [
        "344ccb1718f3f8eab9d0a16ec33445122279821e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 26 09:45:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 09:45:13 2026 +0800"
      },
      "message": "build(deps): bump graaljs.version from 25.3.4.1 to 25.4.4.1.1 (#20703)\n\n* build(deps): bump graaljs.version from 25.3.4.1 to 25.4.4.1.1\n\nBumps `graaljs.version` from 25.3.4.1 to 25.4.4.1.1.\n\nUpdates `org.graalvm.js:js` from 25.3.4.1 to 25.4.4.1.1\n- [Release notes](https://github.com/oracle/graaljs/releases)\n- [Changelog](https://github.com/oracle/graaljs/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/oracle/graaljs/compare/vm-25.3.4.1...vm-25.4.4.1.1)\n\nUpdates `org.graalvm.js:js-scriptengine` from 25.3.4.1 to 25.4.4.1.1\n- [Release notes](https://github.com/oracle/graaljs/releases)\n- [Changelog](https://github.com/oracle/graaljs/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/oracle/graaljs/compare/vm-25.3.4.1...vm-25.4.4.1.1)\n\nUpdates `org.graalvm.sdk:nativeimage` from 25.3.4.1 to 25.4.4.1.1\n- [Release notes](https://github.com/oracle/graal/releases)\n- [Commits](https://github.com/oracle/graal/compare/vm-25.3.4.1...vm-25.4.4.1.1)\n\nUpdates `org.graalvm.sdk:word` from 25.3.4.1 to 25.4.4.1.1\n- [Release notes](https://github.com/oracle/graal/releases)\n- [Commits](https://github.com/oracle/graal/compare/vm-25.3.4.1...vm-25.4.4.1.1)\n\n---\nupdated-dependencies:\n- dependency-name: org.graalvm.js:js\n  dependency-version: 25.4.4.1.1\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n- dependency-name: org.graalvm.js:js-scriptengine\n  dependency-version: 25.4.4.1.1\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n- dependency-name: org.graalvm.sdk:nativeimage\n  dependency-version: 25.4.4.1.1\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n- dependency-name: org.graalvm.sdk:word\n  dependency-version: 25.4.4.1.1\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* build(deps): update GraalVM license metadata\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "344ccb1718f3f8eab9d0a16ec33445122279821e",
      "tree": "9bec4b5d789ee074e72a6f5c98bf3b1fff3e108b",
      "parents": [
        "afb396f99355916df565a9af1ef996f63b2fc7bb"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 26 09:43:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 09:43:53 2026 +0800"
      },
      "message": "build(deps-dev): bump fast-uri from 3.1.8 to 3.1.9 in /web-console (#20712)\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.8 to 3.1.9.\n- [Release notes](https://github.com/fastify/fast-uri/releases)\n- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.8...v3.1.9)\n\n---\nupdated-dependencies:\n- dependency-name: fast-uri\n  dependency-version: 3.1.9\n  dependency-type: indirect\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": "afb396f99355916df565a9af1ef996f63b2fc7bb",
      "tree": "abb3c1ea42d8c5d20fcef97d704d7027db50ccf3",
      "parents": [
        "540d212e9b56686451b93f2f17118f42ad7123a1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 26 09:41:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 09:41:46 2026 +0800"
      },
      "message": "build(deps-dev): bump undici from 6.29.0 to 6.29.1 in /web-console (#20713)\n\nBumps [undici](https://github.com/nodejs/undici) from 6.29.0 to 6.29.1.\n- [Release notes](https://github.com/nodejs/undici/releases)\n- [Commits](https://github.com/nodejs/undici/compare/v6.29.0...v6.29.1)\n\n---\nupdated-dependencies:\n- dependency-name: undici\n  dependency-version: 6.29.1\n  dependency-type: indirect\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": "540d212e9b56686451b93f2f17118f42ad7123a1",
      "tree": "bfc567d935e9307b6d63b9af61bd201978ef5a63",
      "parents": [
        "a8af29eaa8c03d3da778c3e790c7b9fdab2e6bfa"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 26 09:40:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 09:40:17 2026 +0800"
      },
      "message": "build(deps): bump opentelemetry.version from 1.66.0 to 1.67.0 (#20710)\n\n* build(deps): bump opentelemetry.version from 1.66.0 to 1.67.0\n\nBumps `opentelemetry.version` from 1.66.0 to 1.67.0.\n\nUpdates `io.opentelemetry:opentelemetry-bom` from 1.66.0 to 1.67.0\n- [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases)\n- [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.66.0...v1.67.0)\n\nUpdates `io.opentelemetry:opentelemetry-bom-alpha` from 1.66.0-alpha to 1.67.0-alpha\n- [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases)\n- [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/open-telemetry/opentelemetry-java/commits)\n\n---\nupdated-dependencies:\n- dependency-name: io.opentelemetry:opentelemetry-bom\n  dependency-version: 1.67.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n- dependency-name: io.opentelemetry:opentelemetry-bom-alpha\n  dependency-version: 1.67.0-alpha\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* fix: correct OpenTelemetry BOM version pairing\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "a8af29eaa8c03d3da778c3e790c7b9fdab2e6bfa",
      "tree": "8789669267ed20d8a2dd650e87700a07917e7fda",
      "parents": [
        "608a898d62a335545d34f3b42add5ef5b9f70794"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 26 09:38:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 09:38:42 2026 +0800"
      },
      "message": "build(deps): bump fast-uri from 3.1.8 to 3.1.9 in /website (#20714)\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.8 to 3.1.9.\n- [Release notes](https://github.com/fastify/fast-uri/releases)\n- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.8...v3.1.9)\n\n---\nupdated-dependencies:\n- dependency-name: fast-uri\n  dependency-version: 3.1.9\n  dependency-type: indirect\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": "608a898d62a335545d34f3b42add5ef5b9f70794",
      "tree": "631c0f3aab267c41d1bfd3d98d8944337a2b2030",
      "parents": [
        "fe3c938ec2bba564f26d6af5d26c2edca6b1c953"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 26 09:37:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 26 09:37:05 2026 +0800"
      },
      "message": "build(deps): bump body-parser from 1.20.6 to 1.20.9 in /website (#20715)\n\nBumps [body-parser](https://github.com/expressjs/body-parser) from 1.20.6 to 1.20.9.\n- [Release notes](https://github.com/expressjs/body-parser/releases)\n- [Changelog](https://github.com/expressjs/body-parser/blob/1.20.9/HISTORY.md)\n- [Commits](https://github.com/expressjs/body-parser/compare/1.20.6...1.20.9)\n\n---\nupdated-dependencies:\n- dependency-name: body-parser\n  dependency-version: 1.20.9\n  dependency-type: indirect\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": "fe3c938ec2bba564f26d6af5d26c2edca6b1c953",
      "tree": "0c7aa6c2680b000d80db218905ddebeb927931f3",
      "parents": [
        "a9d7cf9629b5e29832c0143df568ad42421ed136"
      ],
      "author": {
        "name": "Kashif Faraz",
        "email": "kashif.faraz@gmail.com",
        "time": "Sun Oct 25 20:20:09 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 20:20:09 2026 +0530"
      },
      "message": "minor: Reset auto-scaling cooldown on streaming task rollover (#20706)\n\nChanges:\n- Always consider a scale up or scale down during task rollover irrespective of the scaling cooldown.\n  - Since the tasks are being restarted anyway, we might as well choose a better task count.\n- Reset scaling cooldown (driven by `minScaleUpDelay` / `minScaleDownDelay`) on task rollover.\n  - Otherwise, if the cooldown elapses soon after the task rollover has finished, we would go through\n  another round of task restart.\n  - Rapid successive task restarts often lead to unnecessary lag buildup and may even cause task\n  failures in case of slow segment publish.\n  - The whole point of the cooldowns is to avoid such task churn.\n- Minor cleanup of the `DynamicAllocationTasksNotice`\n- Does not affect `lagBased` auto-scaler"
    },
    {
      "commit": "a9d7cf9629b5e29832c0143df568ad42421ed136",
      "tree": "51c30c206a2ce9e6d5077221fbd282881bbf707d",
      "parents": [
        "5adb4961209acb4d98fd9bd621b72854b34c8be7"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Sun Oct 25 01:58:18 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 15:58:18 2026 +0800"
      },
      "message": "ci: keep the milestone creation message out of the milestone number (#20694)\n\n* ci: keep the milestone creation message out of the milestone number\n\nget_milestone_number returns the number on stdout, but also echoed\n\"Creating milestone: ...\" there when the milestone did not exist yet.\nThe caller then sent both lines as the milestone and GitHub rejected the\nupdate with HTTP 422, so the first PR merged for a new version got no\nmilestone. Print the message to stderr instead.\n\n* ci: fail the milestone step when the milestone number is not resolved\n\nLook up milestones in every state and across pages, so a closed milestone\nis found instead of being created again. If neither the lookup nor the\ncreate returns a number, for example when two merges race to create the\nsame milestone, fail the step instead of sending an empty milestone and\nreporting success.\n\n* ci: stop the milestone step when the milestone lookup fails\n\nThe lookup was assigned in its `local` declaration, which hid the exit\nstatus of `gh api`. A failed lookup then looked like a missing milestone\nand the script tried to create it. Declare the variable separately and\nreturn early when the lookup fails.\n\n* ci: skip unit tests and CodeQL when only PR automation changes\n\nThe labeler, milestone, backport, PR title check and stale workflows and\ntheir scripts are not used by the build or tests, so a PR that only\nchanges them does not need the unit test matrix or CodeQL. A PR that\nalso changes anything else still runs both.\n\n* ci: check the milestone create call the same way as the lookup\n\nReturn early when the create call fails instead of validating the number\nafterwards, so both gh calls use one guard style.\n\n* ci: also skip unit tests and CodeQL for Dependabot config changes\n\nThe build and tests do not read .github/dependabot.yml either."
    },
    {
      "commit": "5adb4961209acb4d98fd9bd621b72854b34c8be7",
      "tree": "30470d8e59739fdee6ab3740d907f6e2e8140e9d",
      "parents": [
        "35bf5a9bc738d8107b92bf3a4c58d63b4ceaf9c2"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Sun Oct 25 01:58:06 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 15:58:06 2026 +0800"
      },
      "message": "ci: replace `pull_request_target` in labeler and milestone workflows (#20693)\n\n* ci: replace pull_request_target in labeler and milestone workflows\n\nThe ASF disables pull_request_target for its repositories from November\n2026 and already forbids it on workflows that expose GITHUB_TOKEN.\n\nThe labeler now follows the ASF signal pattern: a no-permission\npull_request workflow signals a workflow_run workflow on the default\nbranch, which finds the PR from the head SHA and runs actions/labeler\nwith pr-number. actions/labeler reads head-branch from the pull_request\nevent payload, which workflow_run lacks, so the Backport label is applied\nby a separate step.\n\nThe milestone workflow runs on push to master and finds the merged PR\nfrom the pushed commit.\n\n* ci: fail the PR lookups when the GitHub API call fails\n\nActions runs run: blocks with bash -e but without pipefail, so a failing\ngh call piped into head -n1 looked like \"no pull request\". Use jq\u0027s\nfirst() instead of the pipe.\n\n* ci: note that the milestone lookup expects one merged PR per push"
    },
    {
      "commit": "35bf5a9bc738d8107b92bf3a4c58d63b4ceaf9c2",
      "tree": "73fddb7059c9011143bde6d2eadabbc577d5dbb6",
      "parents": [
        "1ea707c28868018d423ea46fd34c4c917236706b"
      ],
      "author": {
        "name": "Gian Merlino",
        "email": "gianmerlino@gmail.com",
        "time": "Sun Oct 25 00:57:59 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 15:57:59 2026 +0800"
      },
      "message": "fix: ComposingReadableFrameChannel reopening the last channel. (#20716)\n\nComposingReadableFrameChannel was able to read the last channel multiple\ntimes in certain cases, leading to incorrect results. This patch adds\na \"finished\" flag to prevent it."
    },
    {
      "commit": "1ea707c28868018d423ea46fd34c4c917236706b",
      "tree": "120f10e575ec3429059ac0062a488ad2574735b5",
      "parents": [
        "4b1dc6a9a92cf2c26fc576c017190b690b2321be"
      ],
      "author": {
        "name": "Gian Merlino",
        "email": "gianmerlino@gmail.com",
        "time": "Sun Oct 25 00:57:55 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 15:57:55 2026 +0800"
      },
      "message": "fix: Use consumer stage when adjusting shuffle specs. (#20719)\n\nPR #19280 added an ability to adjust shuffle specs such that the\npartition count would be based on the number of workers. However, it\nincorrectly used the number of workers in the producer stage rather\nthan the consumer stage. In the default Dart configuration of\nmaxNonLeafWorkers \u003d 1, this tended to inflate the number of partitions\nfor stages that read from leafs."
    },
    {
      "commit": "4b1dc6a9a92cf2c26fc576c017190b690b2321be",
      "tree": "f89833199cb09f160eebcf62bef082230443f18d",
      "parents": [
        "094858a5151fbe959cdafa97628e71060e275aca"
      ],
      "author": {
        "name": "Gian Merlino",
        "email": "gianmerlino@gmail.com",
        "time": "Sun Oct 25 00:57:51 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 15:57:51 2026 +0800"
      },
      "message": "fix: Improved \"memory needed\" calculations in WorkerMemoryParameters. (#20720)\n\nThis patch updates the calculations of how much memory would be needed,\nas report in a NotEnoughMemoryFault, to properly take into account the\ngrowth of broadcast input memory as bundle size grows. It also adds a\nformula for memory requirements to the class-level javadoc."
    },
    {
      "commit": "094858a5151fbe959cdafa97628e71060e275aca",
      "tree": "af17a15b418286195ec8117cd66c8f9b2d1fbfd2",
      "parents": [
        "ccef29963b7c8e994c8b3bb07c6c2316044c8e75"
      ],
      "author": {
        "name": "Nimish Rao",
        "email": "raonimish25@gmail.com",
        "time": "Sun Oct 25 13:18:57 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 15:48:57 2026 +0800"
      },
      "message": "fix: Track persist and merge time in nanoseconds to fix flaky StreamAppenderatorTest (#20626)\n\n* Fix flaky StreamAppenderatorTest assertions on Windows #20602\n\n* Track persist and merge time in nanoseconds\n\n* Remove unrelated formatting changes from StreamAppenderatorTest\n\n* Fix batch persist and merge time units and remove unrelated formatting changes\n\n* Derive monitor deltas from cumulative millis, inline merge time conversion, update BatchAppenderatorTest\n\n* Inline merge time conversion at log statements"
    },
    {
      "commit": "ccef29963b7c8e994c8b3bb07c6c2316044c8e75",
      "tree": "14b1c5cab727a62fd6c13f1bc8aa8991523074d3",
      "parents": [
        "34b27354cbf4ba45d076f1244f88e2013060fe02"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Oct 25 09:42:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 09:42:03 2026 +0800"
      },
      "message": "build(deps-dev): bump com.google.api.grpc:proto-google-common-protos (#20704)\n\nBumps [com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/google-cloud-java) from 2.64.1 to 2.78.0.\n- [Release notes](https://github.com/googleapis/google-cloud-java/releases)\n- [Changelog](https://github.com/googleapis/google-cloud-java/blob/main/java-document-ai/CHANGELOG.md)\n- [Commits](https://github.com/googleapis/google-cloud-java/commits/gapic-generator-java/v2.78.0)\n\n---\nupdated-dependencies:\n- dependency-name: com.google.api.grpc:proto-google-common-protos\n  dependency-version: 2.78.0\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\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": "34b27354cbf4ba45d076f1244f88e2013060fe02",
      "tree": "e9653e11e788fe2ce7e201cca4b19200b8066abf",
      "parents": [
        "d7b8c0609f2c736a356bda16e221b9b8bf338441"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Oct 25 09:41:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 09:41:05 2026 +0800"
      },
      "message": "build(deps): bump org.codehaus.woodstox:stax2-api from 4.3.1 to 4.3.2 (#20709)\n\nBumps [org.codehaus.woodstox:stax2-api](https://github.com/FasterXML/stax2-api) from 4.3.1 to 4.3.2.\n- [Commits](https://github.com/FasterXML/stax2-api/compare/stax2-api-4.3.1...stax2-api-4.3.2)\n\n---\nupdated-dependencies:\n- dependency-name: org.codehaus.woodstox:stax2-api\n  dependency-version: 4.3.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\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": "d7b8c0609f2c736a356bda16e221b9b8bf338441",
      "tree": "a89ce6fea15abf946e9c6c280b0daae1957751f0",
      "parents": [
        "456815399049f74660732b1250d67c0e48a1ee5d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Oct 25 09:39:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 09:39:45 2026 +0800"
      },
      "message": "build(deps): bump com.rabbitmq:stream-client from 1.11.0 to 1.12.0 (#20711)\n\nBumps [com.rabbitmq:stream-client](https://github.com/rabbitmq/rabbitmq-stream-java-client) from 1.11.0 to 1.12.0.\n- [Release notes](https://github.com/rabbitmq/rabbitmq-stream-java-client/releases)\n- [Commits](https://github.com/rabbitmq/rabbitmq-stream-java-client/compare/v1.11.0...v1.12.0)\n\n---\nupdated-dependencies:\n- dependency-name: com.rabbitmq:stream-client\n  dependency-version: 1.12.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\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": "456815399049f74660732b1250d67c0e48a1ee5d",
      "tree": "f1c9401a4ca028b8a2f94e09e940a5783e3966cd",
      "parents": [
        "5f68651c86fae573ad7c99b91fb554876eae7cc0"
      ],
      "author": {
        "name": "sakshichitnis27",
        "email": "156598682+sakshichitnis27@users.noreply.github.com",
        "time": "Sun Oct 25 01:36:19 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 09:36:19 2026 +0800"
      },
      "message": "fix(sql): avoid reducing constant complex arrays (#20664)\n\n* Fix constant complex array reduction\n\n* fix(sql): handle null and nested constant complex arrays\n\nAddress review feedback on #20664 by covering more constant complex array\ncases:\n\n- DruidRexExecutor now looks through nested arrays when deciding whether an\n  array constant has complex elements, so ARRAY\u003cARRAY\u003cCOMPLEX\u003cjson\u003e\u003e\u003e is left\n  as an expression instead of failing in RexBuilder.makeLiteral.\n- DruidLogicalValuesRule now accepts null ARRAY literals. A JSON_QUERY_ARRAY\n  over a path that does not exist reduces to a null array literal, which was\n  previously rejected with \"Cannot handle literal ... of unsupported type\n  [ARRAY]\".\n- Add tests for an empty array, a missing JSON path, a nested array of\n  constant JSON, and the null array literal.\n\nCo-Authored-By: Claude Sonnet 5.5 \u003cnoreply@anthropic.com\u003e\n\n* Move issue link comments to test method Javadoc\n\n---------\n\nCo-authored-by: Claude Sonnet 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "5f68651c86fae573ad7c99b91fb554876eae7cc0",
      "tree": "54e19ed6ef005549199f1f2cb7b23f4cb7f775b6",
      "parents": [
        "98aa0498fefb746e6bc8b31538eb174af478b8d1"
      ],
      "author": {
        "name": "Frank Chen",
        "email": "frank.chen021@outlook.com",
        "time": "Sat Oct 24 15:38:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 24 00:38:16 2026 -0700"
      },
      "message": "fix!: send query response trailers only to clients that send TE: trailers (#20717)\n\nJDK 17.0.21, 21.0.13 and 25.0.5 (JDK-8383439) make java.net.http.HttpClient\nreject chunked responses with a trailer section (ProtocolException: CR\nexpected). Brokers and Historicals always sent X-Druid-Response-Complete as a\ntrailer, so streamed query responses failed for those clients. Only declare\nand send trailers when the request has TE: trailers (RFC 9110 10.1.4)."
    },
    {
      "commit": "98aa0498fefb746e6bc8b31538eb174af478b8d1",
      "tree": "43a7ab35adac609f0ff92fbfc896ef394774f70d",
      "parents": [
        "6473a9d64b9a2a99ad49a562b56d68ffea681741"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Fri Oct 23 23:40:59 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 24 13:40:59 2026 +0800"
      },
      "message": "fix: license check accepts entries the release LICENSE drops (#20707)\n\n* fix: license check accepts entries the release LICENSE drops\n\nThe release build generates LICENSE.BINARY and NOTICE.BINARY without\nlicenses.yaml entries tagged extensions-contrib/ or\nextensions/druid-testcontainers, but check-licenses.py only required an\nentry under any module. A jar that ships in the release and is registered\nonly under a contrib module passed the check and was left out of the\nrelease LICENSE.\n\ncheck-licenses.py now takes the same --exclude-module-prefix flags as the\nrelease generators and requires a dependency reported by a shipped module\nto have an entry under a module the release keeps. It records every module\nthat reports or registers a dependency instead of keeping only the last\none, and maps report directories to licenses.yaml module tags. Extension\nreports are now named after the artifactId so the tags match. The\nmissing-license rule has unit tests, which the apache-release build runs\nbefore the check.\n\nRegisters net.java.dev.jna:jna-platform 5.19.1 under\nextensions/druid-azure-extensions; it was registered only under\nextensions-contrib/druid-ranger-security.\n\n* Shorten the license check exclusion comment"
    },
    {
      "commit": "6473a9d64b9a2a99ad49a562b56d68ffea681741",
      "tree": "b4f990b3943e9247c007d6e8c2dac77ee735ed3c",
      "parents": [
        "d79e41b6e433a2e305b652a183d04cf75171066c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 24 09:49:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 24 09:49:21 2026 +0800"
      },
      "message": "ci: bump org.postgresql:postgresql from 42.7.13 to 42.7.14 (#20678)\n\n* ci: bump org.postgresql:postgresql from 42.7.13 to 42.7.14\n\nBumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.13 to 42.7.14.\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.13...REL42.7.14)\n\n---\nupdated-dependencies:\n- dependency-name: org.postgresql:postgresql\n  dependency-version: 42.7.14\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* fix: register PostgreSQL JDBC 42.7.14 license\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "d79e41b6e433a2e305b652a183d04cf75171066c",
      "tree": "f09800a1d7dd3be3a0848d5292c4a450c3611bf4",
      "parents": [
        "652ccbda39f32507359444cc581771a3a491491a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 24 09:48:01 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 24 09:48:01 2026 +0800"
      },
      "message": "ci: bump vertx.version from 4.5.34 to 4.5.35 (#20675)\n\n* ci: bump vertx.version from 4.5.34 to 4.5.35\n\nBumps `vertx.version` from 4.5.34 to 4.5.35.\n\nUpdates `io.vertx:vertx-core` from 4.5.34 to 4.5.35\n- [Commits](https://github.com/eclipse/vert.x/compare/4.5.34...4.5.35)\n\nUpdates `io.vertx:vertx-web-client` from 4.5.34 to 4.5.35\n- [Commits](https://github.com/vert-x3/vertx-web/compare/4.5.34...4.5.35)\n\nUpdates `io.vertx:vertx-web-common` from 4.5.34 to 4.5.35\n- [Commits](https://github.com/vert-x3/vertx-web/compare/4.5.34...4.5.35)\n\nUpdates `io.vertx:vertx-auth-common` from 4.5.34 to 4.5.35\n- [Commits](https://github.com/eclipse-vertx/vertx-auth/compare/4.5.34...4.5.35)\n\nUpdates `io.vertx:vertx-web` from 4.5.34 to 4.5.35\n- [Commits](https://github.com/vert-x3/vertx-web/compare/4.5.34...4.5.35)\n\nUpdates `io.vertx:vertx-bridge-common` from 4.5.34 to 4.5.35\n- [Commits](https://github.com/vert-x3/vertx-bridge-common/compare/4.5.34...4.5.35)\n\n---\nupdated-dependencies:\n- dependency-name: io.vertx:vertx-core\n  dependency-version: 4.5.35\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: io.vertx:vertx-web-client\n  dependency-version: 4.5.35\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: io.vertx:vertx-web-common\n  dependency-version: 4.5.35\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: io.vertx:vertx-auth-common\n  dependency-version: 4.5.35\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: io.vertx:vertx-web\n  dependency-version: 4.5.35\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n- dependency-name: io.vertx:vertx-bridge-common\n  dependency-version: 4.5.35\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* fix: update Vert.x license metadata\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "652ccbda39f32507359444cc581771a3a491491a",
      "tree": "c2a8a6cfe0e7b0234f7b9634d141dcc16a75a026",
      "parents": [
        "7a970df459f8ef827a4c8f9ffaa705ecb9e845ea"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 24 09:47:31 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 24 09:47:31 2026 +0800"
      },
      "message": "ci: bump shade.grpc.version from 1.84.0 to 1.84.2 (#20697)\n\nBumps `shade.grpc.version` from 1.84.0 to 1.84.2.\n\nUpdates `io.grpc:grpc-stub` from 1.84.0 to 1.84.2\n- [Release notes](https://github.com/grpc/grpc-java/releases)\n- [Commits](https://github.com/grpc/grpc-java/compare/v1.84.0...v1.84.2)\n\nUpdates `io.grpc:grpc-netty-shaded` from 1.84.0 to 1.84.2\n- [Release notes](https://github.com/grpc/grpc-java/releases)\n- [Commits](https://github.com/grpc/grpc-java/compare/v1.84.0...v1.84.2)\n\n---\nupdated-dependencies:\n- dependency-name: io.grpc:grpc-stub\n  dependency-version: 1.84.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: io.grpc:grpc-netty-shaded\n  dependency-version: 1.84.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\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": "7a970df459f8ef827a4c8f9ffaa705ecb9e845ea",
      "tree": "b74e9407b384354f3409d23f5006f05b182ed54c",
      "parents": [
        "406293832cb0b8a9d39a6129a958d5115b8f1bef"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 24 09:46:35 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 24 09:46:35 2026 +0800"
      },
      "message": "ci: bump redis.clients:jedis from 7.0.0 to 8.0.2 (#20680)\n\nBumps [redis.clients:jedis](https://github.com/redis/jedis) from 7.0.0 to 8.0.2.\n- [Release notes](https://github.com/redis/jedis/releases)\n- [Changelog](https://github.com/redis/jedis/blob/master/docs/release-process.md)\n- [Commits](https://github.com/redis/jedis/compare/v7.0.0...v8.0.2)\n\n---\nupdated-dependencies:\n- dependency-name: redis.clients:jedis\n  dependency-version: 8.0.2\n  dependency-type: direct:production\n  update-type: version-update:semver-major\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": "406293832cb0b8a9d39a6129a958d5115b8f1bef",
      "tree": "23c801ff749a9b1b75500610d1debe37a8a8bc60",
      "parents": [
        "1d31f09f9a470568a6483e205b031af83c95ef14"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 24 09:45:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 24 09:45:32 2026 +0800"
      },
      "message": "ci: bump io.grpc:grpc-bom from 1.84.0 to 1.84.2 (#20698)\n\nBumps [io.grpc:grpc-bom](https://github.com/grpc/grpc-java) from 1.84.0 to 1.84.2.\n- [Release notes](https://github.com/grpc/grpc-java/releases)\n- [Commits](https://github.com/grpc/grpc-java/compare/v1.84.0...v1.84.2)\n\n---\nupdated-dependencies:\n- dependency-name: io.grpc:grpc-bom\n  dependency-version: 1.84.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\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": "1d31f09f9a470568a6483e205b031af83c95ef14",
      "tree": "5d37ce396c88236ba7d38302be5d4e5952de9bbe",
      "parents": [
        "69dac745d501bf622c920a340f42d2319bb8fbde"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 24 09:44:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 24 09:44:45 2026 +0800"
      },
      "message": "ci: bump org.jetbrains.kotlin:kotlin-stdlib from 2.4.20 to 2.4.21 (#20700)\n\n* ci: bump org.jetbrains.kotlin:kotlin-stdlib from 2.4.20 to 2.4.21\n\nBumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 2.4.20 to 2.4.21.\n- [Release notes](https://github.com/JetBrains/kotlin/releases)\n- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)\n- [Commits](https://github.com/JetBrains/kotlin/compare/v2.4.20...v2.4.21)\n\n---\nupdated-dependencies:\n- dependency-name: org.jetbrains.kotlin:kotlin-stdlib\n  dependency-version: 2.4.21\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* fix: update kotlin-stdlib license metadata\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "69dac745d501bf622c920a340f42d2319bb8fbde",
      "tree": "70b9ecc294c6aa90c8f545c4f455167762241772",
      "parents": [
        "b04bd4f1b64d41849b0588edb3f3dc68ba30bc59"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Oct 24 09:42:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 24 09:42:29 2026 +0800"
      },
      "message": "ci: bump dompurify from 3.4.16 to 3.4.17 in /website (#20701)\n\nBumps [dompurify](https://github.com/cure53/DOMPurify) from 3.4.16 to 3.4.17.\n- [Release notes](https://github.com/cure53/DOMPurify/releases)\n- [Commits](https://github.com/cure53/DOMPurify/compare/3.4.16...3.4.17)\n\n---\nupdated-dependencies:\n- dependency-name: dompurify\n  dependency-version: 3.4.17\n  dependency-type: indirect\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": "b04bd4f1b64d41849b0588edb3f3dc68ba30bc59",
      "tree": "122751dd79b70d1c24e3c7aebcee4a995c4ab0f0",
      "parents": [
        "0849af5e5df35e4bb602d28f84429c243989687f"
      ],
      "author": {
        "name": "Lucas Capistrant",
        "email": "capistrant@users.noreply.github.com",
        "time": "Fri Oct 23 14:54:46 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 14:54:46 2026 -0500"
      },
      "message": "suppress some new CVEs (#20689)"
    },
    {
      "commit": "0849af5e5df35e4bb602d28f84429c243989687f",
      "tree": "24cc36a355f58f1e2ed3b0470a71737aed268a65",
      "parents": [
        "cfc85ea16f0958355e5ffecc78adf5941f70aa33"
      ],
      "author": {
        "name": "Adarsh Sanjeev",
        "email": "adarshsanjeev@gmail.com",
        "time": "Fri Oct 23 23:29:54 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 23:29:54 2026 +0530"
      },
      "message": "minor: Add new intermediate S3 role (#20540)\n\n* Add new intermediate chained role\n\n* Fix test\n\n* Add test\n\n* Builds\n\n* Address comments\n\n* Address comments\n\n* Update doc"
    },
    {
      "commit": "cfc85ea16f0958355e5ffecc78adf5941f70aa33",
      "tree": "e598740b76596079d8eaf65f98a4b2f669f42025",
      "parents": [
        "516fa088f4de1528fe4ef9826988bbc338bd2fbe"
      ],
      "author": {
        "name": "Gian Merlino",
        "email": "gianmerlino@gmail.com",
        "time": "Fri Oct 23 06:06:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 21:06:28 2026 +0800"
      },
      "message": "minor: Require withPolicies for LeafDataSources with tables. (#20705)\n\nLeafDataSource implementations that have table names must override\nwithPolicies so they can apply the relevant policies."
    },
    {
      "commit": "516fa088f4de1528fe4ef9826988bbc338bd2fbe",
      "tree": "1d29112f45c45f8e40bc9a044a0926de55f40219",
      "parents": [
        "7a79096488de0cd1ba8ca41f7cbde2174f36fe72"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Fri Oct 23 00:33:49 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 14:33:49 2026 +0800"
      },
      "message": "ci: cancel superseded Cron Job ITs runs on pull requests (#20692)\n\n* ci: cancel superseded Cron Job ITs runs on pull requests\n\nUse the same concurrency group as the other PR workflows, so a new push to\na PR that touches owasp-dependency-check-suppressions.xml cancels the\ndependency check still running for the previous push. Scheduled runs and\nrelease-branch pushes keep a group per run and are never cancelled.\n\n* ci: stop the Cron Job ITs failure message from re-running Maven\n\nThe failure message wrapped \u0027./mvnw dependency-check:check\u0027 in backticks\ninside a double-quoted string, so bash ran it as a command substitution:\nevery failed check started a second Maven run and pasted its output into\nthe message. Quote the command instead."
    },
    {
      "commit": "7a79096488de0cd1ba8ca41f7cbde2174f36fe72",
      "tree": "ed72b3d0f472f5292189cb28ba01836b39c696b0",
      "parents": [
        "32900042d6a82ebd343fc2a330b6cd6bdf543d67"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Fri Oct 23 00:31:28 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 14:31:28 2026 +0800"
      },
      "message": "build: align Google client libraries with libraries-bom (#20673)\n\n* Align the Google client stack with libraries-bom\n\nlib/ shipped google-auth 1.30, grpc 1.70 and google-oauth-client 1.36\nthrough druid-gcp-common, while druid-google-extensions bundles the\nversions google-cloud-storage is built against. Extensions load parent\nfirst, so google-cloud-storage 2.74 ran on the older lib/ copies.\n\nImport com.google.cloud:libraries-bom in the root dependencyManagement,\nafter the explicit entries so those keep precedence, and drop the\nper-artifact Google versions it now manages: google-api-client,\ngoogle-http-client, google-cloud-storage, gax, google-cloud-core and the\ngrpc-api/grpc-context pins. lib/ and druid-google-extensions now\nresolve the same Google versions, and dependabot bumps one property.\n\n- Pin org.graalvm.sdk nativeimage/word and protobuf-java-util so the\n  BOM does not move them.\n- Keep the contrib grpc versions: opentelemetry-emitter imports grpc-bom\n  at shade.grpc.version, grpc-query pins proto-google-common-protos to\n  what grpc-protobuf declares.\n- licenses.yaml: update the moved versions and register api-common and\n  javax.annotation-api, which lib/ now ships.\n\n* Explain the GraalVM SDK pins"
    },
    {
      "commit": "32900042d6a82ebd343fc2a330b6cd6bdf543d67",
      "tree": "9b270fd3db35f2f7f9c200fcdad8395808993a73",
      "parents": [
        "cfcc82027d3bfc7719e311a957ecda0ba4c63db7"
      ],
      "author": {
        "name": "Akshat Lakhera",
        "email": "akshatlnct2024@gmail.com",
        "time": "Fri Oct 23 11:55:58 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 14:25:58 2026 +0800"
      },
      "message": "refactor: replace deprecated URL constructors in production code (#20688)\n\n* refactor: replace deprecated URL constructors in production code\n\nPart of #20525\n\nSigned-off-by: Akshat Lakhera \u003cakshatlnct2024@gmail.com\u003e\n\n* Add URIs.toURL helper and use it for single-string URL construction\n\nSigned-off-by: Akshat Lakhera \u003cakshatlnct2024@gmail.com\u003e\n\n---------\n\nSigned-off-by: Akshat Lakhera \u003cakshatlnct2024@gmail.com\u003e"
    },
    {
      "commit": "cfcc82027d3bfc7719e311a957ecda0ba4c63db7",
      "tree": "3d874f2954824cf5db65572e4dfff1c4a33dd514",
      "parents": [
        "23d0bf6dd93f2fe0b143726edeb0f46cdb8c52df"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Fri Oct 23 00:23:00 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 14:23:00 2026 +0800"
      },
      "message": "Set an explicit commit-message prefix for Maven and npm Dependabot updates (#20691)\n\nWithout an explicit prefix, Dependabot copies the style of its most recent\ncommit on the default branch, whatever the ecosystem. Since the github-actions\ngroup update merged as \"ci: bump ...\", Maven bumps have been titled \"ci:\" even\nthough they change build dependencies.\n\nUse \"build\" with the dependency scope for Maven and both npm entries, so titles\nare \"build(deps): bump ...\" or \"build(deps-dev): bump ...\", matching earlier\nDependabot PRs."
    },
    {
      "commit": "23d0bf6dd93f2fe0b143726edeb0f46cdb8c52df",
      "tree": "e961390271f91f3044d7234219e40e1aa57c8d19",
      "parents": [
        "2ba60a3a31235eee3d1b8e2b0774761ab913384b"
      ],
      "author": {
        "name": "sakshichitnis27",
        "email": "156598682+sakshichitnis27@users.noreply.github.com",
        "time": "Fri Oct 23 03:21:13 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 10:21:13 2026 +0800"
      },
      "message": "fix(web-console): avoid schema discovery for Druid reingestion (#20553)"
    },
    {
      "commit": "2ba60a3a31235eee3d1b8e2b0774761ab913384b",
      "tree": "a48dc741a086b3f7fe2a9917cd8e015644a34ce2",
      "parents": [
        "77e9c222f564fc5e26cb0b9857da3a477628374f"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Thu Oct 22 20:20:32 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 10:20:32 2026 +0800"
      },
      "message": "build: remove unreferenced license files and check licenses/bin against licenses.yaml (#20690)\n\n* Remove unreferenced license files from licenses/bin\n\nNo licenses.yaml entry, LICENSE.BINARY line or script references these\nfiles, but the assembly copies licenses/** wholesale, so they still\nshipped in the binary tarball.\n\n* Check that licenses/bin and licenses.yaml license_file_path entries match\n\ncheck-licenses.py now fails when a license_file_path points at a missing\nfile, or when a file in licenses/bin is not referenced by any\nlicense_file_path. The binary tarball ships the whole licenses directory,\nso unreferenced files would otherwise accumulate unnoticed.\n\n* Delete license files the web console no longer references\n\nscript/licenses rewrites the web console block of licenses.yaml and\ncopies license files in, but left the files of packages that dropped\nout of the production dependencies. It now deletes a license file that\nthe old block referenced when nothing in the new licenses.yaml does."
    },
    {
      "commit": "77e9c222f564fc5e26cb0b9857da3a477628374f",
      "tree": "6c1b64ee1535cdd9a3cf8aa6a98f139ec05c0151",
      "parents": [
        "ed4fb761619d0e4483bba7c9feb61ec1c45870d8"
      ],
      "author": {
        "name": "Lucas Capistrant",
        "email": "capistrant@users.noreply.github.com",
        "time": "Thu Oct 22 21:19:32 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 10:19:32 2026 +0800"
      },
      "message": "minor: cleanup use of some deprecated and marked for removal context keys (#20668)"
    },
    {
      "commit": "ed4fb761619d0e4483bba7c9feb61ec1c45870d8",
      "tree": "3fabed9417e17a75c7767337a4e4e14246b192bc",
      "parents": [
        "6f8c9d0473a922d1349dc9720b8758136457e9ec"
      ],
      "author": {
        "name": "Yahya Kisana",
        "email": "39938170+ykisana@users.noreply.github.com",
        "time": "Thu Oct 22 20:13:51 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 10:13:51 2026 +0800"
      },
      "message": "fix: Don\u0027t report unservable projections as nonexistent (#20685)\n\n#20633 added a \"Projection[%s] does not exist\" check to\nProjections.findMatchingProjection, which runs against whatever projection\nset the caller passes. PartialQueryableIndex.getServableProjection (#20617)\npasses only the servable subset, so a useProjection name that exists in the\nsegment but is not servable was reported as not existing, failing\nPartialQueryableIndexServableBundlesTest.testUseProjectionNamingUnservedProjectionFails.\n\nAdd a findMatchingProjection overload that takes a servable predicate: only\nservable projections are matching candidates, while the existence check\nstill uses the segment\u0027s full projection set. getServableProjection uses it\ninstead of building a filtered copy; other callers are unchanged."
    },
    {
      "commit": "6f8c9d0473a922d1349dc9720b8758136457e9ec",
      "tree": "7a0c30bd20c423b0da136ab6981cacb02bb5128f",
      "parents": [
        "fce10552331592e1ef530f5770ca3bc82be2961b"
      ],
      "author": {
        "name": "Cece Mei",
        "email": "yingqian.mei@gmail.com",
        "time": "Thu Oct 22 16:57:55 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 16:57:55 2026 -0700"
      },
      "message": "ubuntu (#20695)"
    },
    {
      "commit": "fce10552331592e1ef530f5770ca3bc82be2961b",
      "tree": "d1056b324ad78364b02d975d44462a9e05363fff",
      "parents": [
        "76b26715d531d66ff1ff9af22bd6fecc8f5393bc"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Thu Oct 22 08:54:50 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 08:54:50 2026 -0600"
      },
      "message": "build: generate the binary README license labels from licenses.yaml (#20671)\n\n* Fix licenses.yaml entries that point at missing license files\n\n- Remove the Eclipse Aether libraries entry. org.eclipse.aether 0.9.0.M2\n  is no longer a dependency of any module (pull-deps uses Maven Resolver)\n  and does not ship in the binary distribution.\n- Remove the Junit entry. Testcontainers 2.x no longer depends on\n  junit:junit, so nothing pulls it in.\n- Drop the license_file_path from cron-utils. It is Apache-2.0 and ships\n  no NOTICE, so no separate license file is needed.\n- Add licenses/bin/graal.UPL with the UPL 1.0 text from oracle/graal\n  (sdk/LICENSE.md at vm-25.3.4.1). The GraalVM jars ship in lib/.\n\n* Remove license entries for dependencies that do not ship\n\nTesla Aether and the OkHttp Aether connector were replaced by Maven\nResolver and are no longer a dependency of any module. Remove their\nlicenses.yaml entries, license files and LABELS paragraphs, along with\nthe stale Eclipse Aether paragraph in LABELS. Drop the unused\nio.tesla.aether and org.eclipse.aether dependencyManagement entries,\nthe aether.version property, and the no-op aether-api exclusion in\nservices.\n\ndruid-testcontainers is published to Maven but not bundled in the\nbinary distribution. Keep its licenses.yaml entries so check-licenses.py\nstill covers it, but exclude the module from LICENSE.BINARY and\nNOTICE.BINARY. Remove its jakarta.activation entry, which is not one of\nits dependencies, and tag the remaining jakarta.activation entry as\njava-core, since the jar ships in lib/.\n\n* Update LABELS to match what the binary distribution ships\n\nLABELS is concatenated into README.BINARY and ships as the README in the\nbinary tarball, where it serves as the label for bundled weak-copyleft\ncomponents. Most of its paragraphs no longer matched the tarball:\n\n- Font Awesome, JAF 1.1, Servlet API 2.5, stax-api, jsp-api 2.1 and\n  Jersey 1.9 and 1.15 do not ship. Several pointed at license files that\n  do not exist in licenses/bin.\n- The shipped jcip-annotations jar is com.github.stephenc.jcip under\n  Apache 2.0, not the CC-BY 2.5 net.jcip one.\n- JAF ships as javax.activation:javax.activation-api, Jersey 1.x as\n  1.19.4, Servlet API as 4.0.1 and Rhino as 1.9.1.\n\nDrop the paragraphs for components that do not ship, and update the rest\nto the shipped artifacts and versions from licenses.yaml. Point the\nRhino homepage at its GitHub repository, as the old MDN page is gone.\n\nThe list is still not exhaustive: other CDDL, EPL and MPL components\nlisted in LICENSE.BINARY (JAXB Runtime, javax.mail, Javassist, the\njakarta.* EPL 2.0 set and others) have no paragraph here yet.\nLICENSE.BINARY remains the full inventory.\n\n* Keep POM-type dependencies out of lib/\n\norg.graalvm.js:js is a POM-only aggregator that services and\nindexing-service depend on with type pom. The lib/ dependencySet copies\nevery resolved artifact, so js-\u003cversion\u003e.pom ended up in lib/ next to\nthe jars. Exclude all pom-type artifacts from lib/; their transitive\njars still ship.\n\n* Fix weak-copyleft licenses.yaml entries that do not match the binary\n\nCompared the CDDL, EPL and MPL entries in licenses.yaml with the jars in\na -Pdist tarball and with the licenses declared in each jar\u0027s POM:\n\n- Remove entries for jars that ship nowhere in the binary: javax.mail\n  and javax.activation:activation (druid-pac4j), javax.ws.rs-api,\n  jakarta.ws.rs-api and jaxb-impl (druid-avro-extensions),\n  com.sun.activation:javax.activation and stax-ex (java-core), and the\n  com.sun.jersey:contribs POM from the Jersey 1.x entry.\n- Move osgi-resource-locator, jakarta.inject and jakarta.annotation-api\n  1.3.5 to druid-kerberos, and javax.annotation-api 1.3.2 to\n  druid-kubernetes-extensions, where they ship.\n- Drop licenses/bin/javax.activation.CDDL11 and jaxb-runtime.CDDL11,\n  which no entry references any more.\n\nEvery non-contrib CDDL, EPL or MPL entry now matches a jar in the\ntarball. Every shipped jar whose POM lists one of those licenses has an\nentry under it, except Vert.x, which is also offered under Apache 2.0\nand is listed that way. The check-licenses.py from apache/druid#20528\nreports the same missing entries before and after this change.\n\n* Generate the README license labels from licenses.yaml\n\nThe ASF policy for Category B (weak copyleft) binaries asks for a\nprominent label, for example in the README, naming each component, its\nlicense and its homepage. The hand-maintained LABELS file served that\npurpose but drifted from what the binary ships.\n\ngenerate-binary-license.py now takes --labels-path and writes the\nlabels from the same filtered licenses.yaml entries it uses for\nLICENSE.BINARY: every binary entry whose license is CDDL, EPL, MPL or\nSIL OFL. Those entries need a homepage field, and the script fails if\none is missing. The dist profile writes the labels to\ndistribution/target/LABELS, which README.BINARY now concatenates in\nplace of the deleted LABELS file.\n\nThe label follows the license recorded in licenses.yaml. A component\nthat is also offered under a Category A license, such as Jetty, JTS or\nJavassist, is labelled as long as its entry names the Category B\nlicense; to stop labelling it, change the entry.\n\nHomepages come from each artifact\u0027s POM url. Where that site is gone\n(jersey.java.net, jsr311.dev.java.net, java.net) the project\u0027s GitHub\nrepository is used instead. LICENSE.BINARY now also shows the homepage\nfor these entries."
    },
    {
      "commit": "76b26715d531d66ff1ff9af22bd6fecc8f5393bc",
      "tree": "ed439d3bc82b8cbcc21052ee380a12b48c748475",
      "parents": [
        "b8f65b2b393dca183c4146c3eec9b7f5ea94e388"
      ],
      "author": {
        "name": "Cece Mei",
        "email": "yingqian.mei@gmail.com",
        "time": "Wed Oct 21 19:38:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 19:38:44 2026 -0700"
      },
      "message": "feat: Default skipRestartIfUnmodified to true on supervisor update (#20649)\n\n* skip\n\n* Update docs/api-reference/supervisor-api.md\n\nCo-authored-by: Kashif Faraz \u003ckashif.faraz@gmail.com\u003e\n\n* Update docs/api-reference/supervisor-api.md\n\nCo-authored-by: Kashif Faraz \u003ckashif.faraz@gmail.com\u003e\n\n* comment\n\n---------\n\nCo-authored-by: Kashif Faraz \u003ckashif.faraz@gmail.com\u003e"
    },
    {
      "commit": "b8f65b2b393dca183c4146c3eec9b7f5ea94e388",
      "tree": "63d6b3dd56bcf87570996fcfe0ca7a116bc45961",
      "parents": [
        "368a6e7812da96b4caadf507d91891ef65414d22"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 22 09:38:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 09:38:21 2026 +0800"
      },
      "message": "ci: bump follow-redirects from 1.16.0 to 1.16.1 in /website (#20653)\n\nBumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.16.0 to 1.16.1.\n- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)\n- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.16.0...v1.16.1)\n\n---\nupdated-dependencies:\n- dependency-name: follow-redirects\n  dependency-version: 1.16.1\n  dependency-type: indirect\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": "368a6e7812da96b4caadf507d91891ef65414d22",
      "tree": "4a87d21d1de25d2b63e852433d12efada58eb8e1",
      "parents": [
        "3abff1db6335c8b3627b93efbc999ad87b1434ba"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 22 09:37:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 09:37:07 2026 +0800"
      },
      "message": "ci: bump follow-redirects from 1.16.0 to 1.16.1 in /web-console (#20654)\n\nBumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.16.0 to 1.16.1.\n- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)\n- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.16.0...v1.16.1)\n\n---\nupdated-dependencies:\n- dependency-name: follow-redirects\n  dependency-version: 1.16.1\n  dependency-type: indirect\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": "3abff1db6335c8b3627b93efbc999ad87b1434ba",
      "tree": "5772a04071be3031d4141b12b9e905a17070a54e",
      "parents": [
        "2a59e1f29e1f532b7d46ec142b70132eb942f33d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 22 09:35:51 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 09:35:51 2026 +0800"
      },
      "message": "ci: bump netty4.version from 4.2.18.Final to 4.2.19.Final (#20656)\n\n* ci: bump netty4.version from 4.2.18.Final to 4.2.19.Final\n\nBumps `netty4.version` from 4.2.18.Final to 4.2.19.Final.\n\nUpdates `io.netty:netty-bom` from 4.2.18.Final to 4.2.19.Final\n- [Release notes](https://github.com/netty/netty/releases)\n- [Commits](https://github.com/netty/netty/compare/netty-4.2.18.Final...netty-4.2.19.Final)\n\nUpdates `io.netty:netty-common` from 4.2.18.Final to 4.2.19.Final\n- [Release notes](https://github.com/netty/netty/releases)\n- [Commits](https://github.com/netty/netty/compare/netty-4.2.18.Final...netty-4.2.19.Final)\n\nUpdates `io.netty:netty-codec-http` from 4.2.18.Final to 4.2.19.Final\n- [Release notes](https://github.com/netty/netty/releases)\n- [Commits](https://github.com/netty/netty/compare/netty-4.2.18.Final...netty-4.2.19.Final)\n\n---\nupdated-dependencies:\n- dependency-name: io.netty:netty-bom\n  dependency-version: 4.2.19.Final\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: io.netty:netty-common\n  dependency-version: 4.2.19.Final\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n- dependency-name: io.netty:netty-codec-http\n  dependency-version: 4.2.19.Final\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* fix: update Netty license registry\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "2a59e1f29e1f532b7d46ec142b70132eb942f33d",
      "tree": "3d9d4b5d1b642f3953f5cf62da727fb875640b8e",
      "parents": [
        "9318e77f305951e78c5cdf265945e5aaf96fb8b1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 22 09:34:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 09:34:33 2026 +0800"
      },
      "message": "ci: bump org.apache.httpcomponents.client5:httpclient5 from 5.6.4 to 5.6.5 (#20658)\n\n* ci: bump org.apache.httpcomponents.client5:httpclient5\n\nBumps [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client) from 5.6.4 to 5.6.5.\n- [Changelog](https://github.com/apache/httpcomponents-client/blob/rel/v5.6.5/RELEASE_NOTES.txt)\n- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.6.4...rel/v5.6.5)\n\n---\nupdated-dependencies:\n- dependency-name: org.apache.httpcomponents.client5:httpclient5\n  dependency-version: 5.6.5\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* build: update HttpComponents license versions\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "9318e77f305951e78c5cdf265945e5aaf96fb8b1",
      "tree": "c8cbddc37d164421ea28d6dff2bcb46f978899c3",
      "parents": [
        "c82999434eea91092974ce610426297a0280c77f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 22 09:33:10 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 09:33:10 2026 +0800"
      },
      "message": "ci: bump launch-editor from 2.14.1 to 2.14.2 in /web-console (#20660)\n\nBumps [launch-editor](https://github.com/vitejs/launch-editor) from 2.14.1 to 2.14.2.\n- [Commits](https://github.com/vitejs/launch-editor/compare/v2.14.1...v2.14.2)\n\n---\nupdated-dependencies:\n- dependency-name: launch-editor\n  dependency-version: 2.14.2\n  dependency-type: indirect\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": "c82999434eea91092974ce610426297a0280c77f",
      "tree": "e704baebfe26fbdff35d35a0aa521cec8f5b4426",
      "parents": [
        "b3184fbcee47e54e3c107105c5b191df5ce28653"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 22 09:31:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 09:31:07 2026 +0800"
      },
      "message": "ci: bump launch-editor from 2.14.1 to 2.14.2 in /website (#20661)\n\nBumps [launch-editor](https://github.com/vitejs/launch-editor) from 2.14.1 to 2.14.2.\n- [Commits](https://github.com/vitejs/launch-editor/compare/v2.14.1...v2.14.2)\n\n---\nupdated-dependencies:\n- dependency-name: launch-editor\n  dependency-version: 2.14.2\n  dependency-type: indirect\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": "b3184fbcee47e54e3c107105c5b191df5ce28653",
      "tree": "c29b05b2f81903dc791db589bd861276db6e31f4",
      "parents": [
        "96431fe6c40d7eddec988b086a9b622373f70ece"
      ],
      "author": {
        "name": "Gian Merlino",
        "email": "gianmerlino@gmail.com",
        "time": "Wed Oct 21 09:11:20 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 09:11:20 2026 -0700"
      },
      "message": "perf: Improve ScanQueryFrameProcessor\u0027s sharedRunningCountForLimit. (#20589)\n\nThree changes:\n\n1) Check the shared count on every row. The cost of an atomic read\n   should be negligible next to the cost of reading and writing a row.\n\n2) Provide a mechanism for ReadableInputQueue to stop loading and\n   handing out segments once the limit has been reached.\n\n3) Fix a bug where ChainedProcessorManager did not close its first\n   delegate ProcessorManager. This in turn could cause segments to leak\n   from ReadableInputQueue on early exit."
    },
    {
      "commit": "96431fe6c40d7eddec988b086a9b622373f70ece",
      "tree": "598efcda47606c09ebc80b29a36ee83530ea199c",
      "parents": [
        "def86749e8f7768ea230376276ee5a3efbfecf5b"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Wed Oct 21 08:45:28 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 08:45:28 2026 -0600"
      },
      "message": "fix: bundle the OTLP exporter in opentelemetry-emitter (#20648)\n\n* Bundle the OTLP exporter in opentelemetry-emitter\n\nThe emitter builds its SDK with AutoConfiguredOpenTelemetrySdk, which\ndefaults to the OTLP exporter, but the extension did not include it, so\nit failed at startup unless every exporter was set to none. Because the\nextension relocates io.opentelemetry, users could not add the exporter\njar themselves either.\n\nAdd opentelemetry-exporter-otlp with the grpc-managed-channel sender\n(default grpc protocol, on the already shaded grpc-netty-shaded) and the\nJDK HTTP sender (http/protobuf), instead of the default OkHttp sender.\nAlso fix the README collector setup, which no longer parsed.\n\n* Export only spans from opentelemetry-emitter by default\n\nThe SDK defaults metrics and logs to OTLP and exports its own\nself-metrics, which a traces-only collector rejects with a warning every\ninterval. Default otel.metrics.exporter and otel.logs.exporter to none\nthrough addPropertiesSupplier, which environment variables and system\nproperties still override.\n\n* Simplify opentelemetry-emitter tests and pin grpc-stub\n\nDrop the module test that duplicated testDefaultExportersOnlyExportSpans\nand leaked an SDK, and trim testModuleCreatesEmitter to the one property\nthe module does not already default. Pin grpc-stub, pulled in by the\ngRPC sender, to shade.grpc.version so it moves with the bundled gRPC."
    },
    {
      "commit": "def86749e8f7768ea230376276ee5a3efbfecf5b",
      "tree": "16aca4e3c9e27c1a15ea74348706a5044147faf3",
      "parents": [
        "def6c1735bbcc9e34564c908c83a67de0a381886"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Wed Oct 21 06:43:21 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 20:43:21 2026 +0800"
      },
      "message": "fix: license check ignores runtime-scope dependencies (#20652)\n\n* fix: license check ignores runtime-scope dependencies\n\ncheck-licenses.py only parsed compile-scope tables from the dependency\nreports, but runtime-scope dependencies ship in the binary distribution\ntoo (lib/ and pull-deps both resolve runtime scope). Parse the runtime\ntables as well and register the 27 shipped dependencies they surfaced.\n\n- Bump stale entries whose old versions no longer ship: janino and\n  commons-compiler 3.1.12, jboss-logging 3.6.3.Final, jcl-over-slf4j\n  2.0.20, log4j-slf4j-impl replaced by log4j-slf4j2-impl.\n- jaxb-runtime 2.3.9, txw2 2.3.9 and istack-commons-runtime 3.0.12 are\n  under EDL 1.0, not CDDL 1.1 as the 2.3.1/3.0.7 entries were.\n- lib/ ships older google-auth, grpc, google-http-client and\n  google-oauth-client versions than druid-google-extensions; register\n  both sets.\n- Add hibernate-validator, classmate, uzaygezen, perfmark-api, Android\n  annotations, hadoop-aws, hadoop-client-runtime, wildfly-openssl\n  and analyticsaccelerator-s3.\n- detector-resources-support ships at 0.31.0, not with the other\n  Google Cloud OpenTelemetry jars at 0.33.0.\n- Accept the \"Eclipse Public License v. 2.0\" spelling used by\n  jakarta.el-api and expressly.\n\n* List third-party code shaded into hadoop-client-runtime\n\nhadoop-client-runtime relocates its dependencies into the jar and replaces\ntheir LICENSE and NOTICE files with Hadoop\u0027s own, so the binary LICENSE\nhas to account for the non-Apache code inside it. Add an entry per\nnon-Apache component, using the versions from the jar\u0027s embedded poms and\nthe licenses from Hadoop\u0027s LICENSE-binary:\n\n- BSD: JSch, dnsjava, JLine 3, Protocol Buffers, Stax2 API\n- Go license: RE2/J\n- MIT: Checker Framework qualifiers\n- EDL 1.0: Jakarta Activation API, Jakarta XML Binding API\n- EPL 2.0 (chosen over GPLv2 with Classpath Exception): Jakarta\n  Servlet, Server Pages and RESTful Web Services APIs\n- MPL 2.0: the Public Suffix List shipped with Apache HttpClient\n\nAdd the missing license texts for dnsjava, JLine 3, RE2/J and EPL 2.0.\nThe RE2/J and Expressly entries already pointed at license files that did\nnot exist; they now resolve."
    },
    {
      "commit": "def6c1735bbcc9e34564c908c83a67de0a381886",
      "tree": "a5f7eda9be550f21e375afc79dca27ef25694e4d",
      "parents": [
        "5b67e6f120edf77c1b2ec02fd0e383c1f79b5488"
      ],
      "author": {
        "name": "P_K",
        "email": "96111851+BackendArchitectX@users.noreply.github.com",
        "time": "Wed Oct 21 18:09:40 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 20:39:40 2026 +0800"
      },
      "message": "fix: Preserve user error classification from data servers (#20633)\n\n* Fix user error propagation from data servers\n\n* fix: Preserve DruidException propagation and existing exception behavior"
    },
    {
      "commit": "5b67e6f120edf77c1b2ec02fd0e383c1f79b5488",
      "tree": "293c31e07032b58fc5b0fe705ade473173569a80",
      "parents": [
        "7f02bce9602e2ccb75dd260f196721476776bb6a"
      ],
      "author": {
        "name": "Nagarjunanm",
        "email": "gopier.naga@gmail.com",
        "time": "Wed Oct 21 18:03:27 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 20:33:27 2026 +0800"
      },
      "message": "feat: add configurable metric sampling to the Kafka emitter (#20559)\n\n* feat: add configurable metric sampling to the Kafka emitter\n\nAdds optional sampling of ServiceMetricEvents to the kafka-emitter extension,\nso operators can drop a percentage of high-volume metrics before they reach the\nKafka producer.\n\nNew properties under druid.emitter.kafka:\n- samplingRate (0-100, default 100 \u003d no sampling); values outside 0-100 are rejected\n- sampledMetrics: exact metric names eligible for sampling (empty \u003d all)\n- sampledNodeTypes: services eligible for sampling (empty \u003d all)\n\nOnly metric events are sampled; alerts, request logs and segment metadata are\nalways emitted. When an event has an \"id\" dimension, the keep/drop decision is\nbased on a hash of that id, so all metrics for one query are kept or dropped\ntogether; otherwise events are kept at random. The emitter counts sampled and\nemitted metric events and logs a summary every five minutes.\n\nFixes #20246\n\n* fix: advance the sampling summary window every interval\n\nThe emitted-metric baseline only moved forward in intervals that sampled\nsomething. After a quiet interval, the next summary reported emitted and\ntotal counts covering several intervals instead of the past five minutes.\n\nMove the baseline forward on every status check, and keep logging the\nsummary only when the interval sampled events. Adds a test for this case.\n\n* perf: decide on metric sampling before serializing the event\n\nSampled-out metrics were still converted to a map, given extra dimensions,\nserialized to JSON and encoded as UTF-8 before being dropped. At low\nsampling rates that is wasted CPU and allocation on most metrics, and a\nsampled-out event with an unserializable dimension was counted as invalid\ninstead of sampled.\n\nCheck shouldSampleOut() first and return early, so only metrics that will\nbe queued are serialized. Adds a test for this case.\n\n* refactor: rename sampledNodeTypes to sampledServiceTypes; address review\n\n- Rename druid.emitter.kafka.sampledNodeTypes to sampledServiceTypes, to\n  match the \"service\" name used by ServiceMetricEvent.\n- Docs: state that samplingRate is an integer from 0 to 100.\n- Tests: fix a Javadoc that said rate 10 while the test uses 0, and remove\n  testShouldSampleOut_noSamplingWhenSampledMetricsEmpty. It used rate 100,\n  so it could not tell which setting kept the event, and its name described\n  behaviour the feature doesn\u0027t have: an empty sampledMetrics samples every\n  metric. Both real cases are already covered by\n  testShouldSampleOut_rate100OverridesAllFilters and\n  testShouldSampleOut_metricOnlyFilterNonMatchingMetric."
    },
    {
      "commit": "7f02bce9602e2ccb75dd260f196721476776bb6a",
      "tree": "d7f515d0c9f82742c8ddbad403ff1d1c4a6f8ab0",
      "parents": [
        "669e6d1d42bca494271af1e60b081c655af6240b"
      ],
      "author": {
        "name": "Clint Wylie",
        "email": "cwylie@apache.org",
        "time": "Wed Oct 21 04:37:18 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 04:37:18 2026 -0700"
      },
      "message": "perf: optimize some multi-value string operators to allow planning to specialized ListFilteredVirtualColumn without extractionFn (#20469)"
    },
    {
      "commit": "669e6d1d42bca494271af1e60b081c655af6240b",
      "tree": "33a64aa6f4fb7e1b8685c4223567fdb697983807",
      "parents": [
        "523b219e0683d46b0fc5f2d24adf69fbce6d8f07"
      ],
      "author": {
        "name": "Clint Wylie",
        "email": "cwylie@apache.org",
        "time": "Wed Oct 21 04:31:49 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 04:31:49 2026 -0700"
      },
      "message": "minor: add AcquireMode.PARTIAL_RULE_HELD for testing and experimentation (#20617)"
    },
    {
      "commit": "523b219e0683d46b0fc5f2d24adf69fbce6d8f07",
      "tree": "7a335296b0b8cb864d9acd0ddc213967cddf34f6",
      "parents": [
        "587e781a1bd72066711553b4da6ad696251aba0c"
      ],
      "author": {
        "name": "Clint Wylie",
        "email": "cwylie@apache.org",
        "time": "Wed Oct 21 04:18:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 04:18:12 2026 -0700"
      },
      "message": "feat: catalog compaction support for msq and base table spec (#20379)"
    },
    {
      "commit": "587e781a1bd72066711553b4da6ad696251aba0c",
      "tree": "3e52a493c3c7a038acf195799d0ad0fb479806a0",
      "parents": [
        "c2563d0c4fcc179fec4fda8584c263b7d137daf3"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Wed Oct 21 02:58:06 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 16:58:06 2026 +0800"
      },
      "message": "fix: Do not release a stopped streaming task to publish after a prior task group times out (#20651)\n\n* Do not release a stopped streaming task to publish after a prior group times out\n\nWhen a pending-completion task group hits its completion timeout, the\nsupervisor kills it and stops every later group on the same partitions.\nIt then completes the timed-out group, which releases the publish wait of\na later task that is being stopped. The Overlord commits that task\u0027s\nsegments and offsets while the task is interrupted, so the task never sees\nthe publish succeed and does not emit ingest/rows/published.\n\nComplete the publish wait of a task with \"not ready\" whenever the\nsupervisor stops or kills it.\n\nFixes #20604\n\n* Release the pending publish wait in killTaskWithSuccess too"
    },
    {
      "commit": "c2563d0c4fcc179fec4fda8584c263b7d137daf3",
      "tree": "ef7cb1c3f480df628642928e3ce155c8520f0bc5",
      "parents": [
        "3e7595cb64aa20f6b9000ab79722feacdf5d6490"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 20 20:57:31 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 20:57:31 2026 -0600"
      },
      "message": "ci: bump commons-codec:commons-codec from 1.22.1 to 1.23.0 (#20636)\n\n* ci: bump commons-codec:commons-codec from 1.22.1 to 1.23.0\n\nBumps [commons-codec:commons-codec](https://github.com/apache/commons-codec) from 1.22.1 to 1.23.0.\n- [Changelog](https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt)\n- [Commits](https://github.com/apache/commons-codec/compare/rel/commons-codec-1.22.1...rel/commons-codec-1.23.0)\n\n---\nupdated-dependencies:\n- dependency-name: commons-codec:commons-codec\n  dependency-version: 1.23.0\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Update commons-codec version in licenses.yaml\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Andreas Maechler \u003camaechler@gmail.com\u003e"
    },
    {
      "commit": "3e7595cb64aa20f6b9000ab79722feacdf5d6490",
      "tree": "1769f3580a2a123c7e95f8794b1aaaede9c8c4ff",
      "parents": [
        "f258856970158d2038d749594844096c9cccb310"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 09:38:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 09:38:02 2026 +0800"
      },
      "message": "ci: bump org.xerial.snappy:snappy-java from 1.1.10.8 to 1.1.10.11 (#20641)\n\n* ci: bump org.xerial.snappy:snappy-java from 1.1.10.8 to 1.1.10.11\n\nBumps [org.xerial.snappy:snappy-java](https://github.com/xerial/snappy-java) from 1.1.10.8 to 1.1.10.11.\n- [Release notes](https://github.com/xerial/snappy-java/releases)\n- [Commits](https://github.com/xerial/snappy-java/compare/v1.1.10.8...v1.1.10.11)\n\n---\nupdated-dependencies:\n- dependency-name: org.xerial.snappy:snappy-java\n  dependency-version: 1.1.10.11\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* build(deps): update Snappy license metadata\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "f258856970158d2038d749594844096c9cccb310",
      "tree": "2859a0bcdce5bf08cf08227b2943a82130e6aea6",
      "parents": [
        "7b294fbd2a7c77c8c24ecf2deace0bd9503dde6a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 09:37:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 09:37:09 2026 +0800"
      },
      "message": "ci: bump delta-kernel.version from 4.4.0 to 4.4.1 (#20640)\n\nBumps `delta-kernel.version` from 4.4.0 to 4.4.1.\n\nUpdates `io.delta:delta-kernel-api` from 4.4.0 to 4.4.1\n- [Release notes](https://github.com/delta-io/delta/releases)\n- [Commits](https://github.com/delta-io/delta/compare/v4.4.0...v4.4.1)\n\nUpdates `io.delta:delta-kernel-defaults` from 4.4.0 to 4.4.1\n- [Release notes](https://github.com/delta-io/delta/releases)\n- [Commits](https://github.com/delta-io/delta/compare/v4.4.0...v4.4.1)\n\n---\nupdated-dependencies:\n- dependency-name: io.delta:delta-kernel-api\n  dependency-version: 4.4.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: io.delta:delta-kernel-defaults\n  dependency-version: 4.4.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\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": "7b294fbd2a7c77c8c24ecf2deace0bd9503dde6a",
      "tree": "3471e24d6417a5f2a13a1c60b8ae6fd54c261eb0",
      "parents": [
        "2675d0086fb7861f451f8b6b95be3c24703692e7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 09:35:50 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 09:35:50 2026 +0800"
      },
      "message": "ci: bump org.ow2.asm:asm from 9.10.1 to 9.11 (#20637)\n\nBumps org.ow2.asm:asm from 9.10.1 to 9.11.\n\n---\nupdated-dependencies:\n- dependency-name: org.ow2.asm:asm\n  dependency-version: \u00279.11\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\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": "2675d0086fb7861f451f8b6b95be3c24703692e7",
      "tree": "3471e24d6417a5f2a13a1c60b8ae6fd54c261eb0",
      "parents": [
        "4dad4579e104563b3ff8b62defd992041500b228"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 09:34:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 09:34:20 2026 +0800"
      },
      "message": "ci: bump jetty.version from 12.1.13 to 12.1.14 (#20635)\n\n* ci: bump jetty.version from 12.1.13 to 12.1.14\n\nBumps `jetty.version` from 12.1.13 to 12.1.14.\n\nUpdates `org.eclipse.jetty:jetty-client` from 12.1.13 to 12.1.14\n\nUpdates `org.eclipse.jetty:jetty-http` from 12.1.13 to 12.1.14\n\nUpdates `org.eclipse.jetty:jetty-io` from 12.1.13 to 12.1.14\n\nUpdates `org.eclipse.jetty:jetty-server` from 12.1.13 to 12.1.14\n\nUpdates `org.eclipse.jetty.ee8:jetty-ee8-servlet` from 12.1.13 to 12.1.14\n\nUpdates `org.eclipse.jetty.ee8:jetty-ee8-servlets` from 12.1.13 to 12.1.14\n\nUpdates `org.eclipse.jetty.ee8:jetty-ee8-proxy` from 12.1.13 to 12.1.14\n\nUpdates `org.eclipse.jetty:jetty-rewrite` from 12.1.13 to 12.1.14\n\nUpdates `org.eclipse.jetty:jetty-util` from 12.1.13 to 12.1.14\n\nUpdates `org.eclipse.jetty:jetty-security` from 12.1.13 to 12.1.14\n\n---\nupdated-dependencies:\n- dependency-name: org.eclipse.jetty:jetty-client\n  dependency-version: 12.1.14\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: org.eclipse.jetty:jetty-http\n  dependency-version: 12.1.14\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: org.eclipse.jetty:jetty-io\n  dependency-version: 12.1.14\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: org.eclipse.jetty:jetty-server\n  dependency-version: 12.1.14\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: org.eclipse.jetty.ee8:jetty-ee8-servlet\n  dependency-version: 12.1.14\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n- dependency-name: org.eclipse.jetty.ee8:jetty-ee8-servlets\n  dependency-version: 12.1.14\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: org.eclipse.jetty.ee8:jetty-ee8-proxy\n  dependency-version: 12.1.14\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: org.eclipse.jetty:jetty-rewrite\n  dependency-version: 12.1.14\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n- dependency-name: org.eclipse.jetty:jetty-util\n  dependency-version: 12.1.14\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n- dependency-name: org.eclipse.jetty:jetty-security\n  dependency-version: 12.1.14\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* build: update Jetty license metadata\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "4dad4579e104563b3ff8b62defd992041500b228",
      "tree": "0aaf3b6884eb7568c657735adc40f338932f4437",
      "parents": [
        "3075b00284b099c152436cf147d545be3277d728"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 09:32:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 09:32:57 2026 +0800"
      },
      "message": "ci: bump org.roaringbitmap:RoaringBitmap from 1.6.23 to 1.6.24 (#20634)\n\n* ci: bump org.roaringbitmap:RoaringBitmap from 1.6.23 to 1.6.24\n\nBumps [org.roaringbitmap:RoaringBitmap](https://github.com/RoaringBitmap/RoaringBitmap) from 1.6.23 to 1.6.24.\n- [Release notes](https://github.com/RoaringBitmap/RoaringBitmap/releases)\n- [Commits](https://github.com/RoaringBitmap/RoaringBitmap/compare/1.6.23...1.6.24)\n\n---\nupdated-dependencies:\n- dependency-name: org.roaringbitmap:RoaringBitmap\n  dependency-version: 1.6.24\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* build: update RoaringBitmap license metadata\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "3075b00284b099c152436cf147d545be3277d728",
      "tree": "a6ebfdd0ff05085258f22709f16e8aa7cbd7765f",
      "parents": [
        "66f294f29589b92464f04c9bfdbd2d6c8f93129b"
      ],
      "author": {
        "name": "Lucas Capistrant",
        "email": "capistrant@users.noreply.github.com",
        "time": "Tue Oct 20 19:50:35 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 19:50:35 2026 -0500"
      },
      "message": "MSQ tasks dont need the entire worker context passed through to the task context. pass only what is needed (#20650)"
    },
    {
      "commit": "66f294f29589b92464f04c9bfdbd2d6c8f93129b",
      "tree": "89f2e8507b2294c5ee7cda8bdcdf13ad8f3a6a43",
      "parents": [
        "d61f8cf93527d914d0750b3c06a7a24162bf5830"
      ],
      "author": {
        "name": "Gian Merlino",
        "email": "gianmerlino@gmail.com",
        "time": "Tue Oct 20 15:29:26 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 15:29:26 2026 -0700"
      },
      "message": "fix: Missed cleanup in runAllFully on certain cancellations. (#20322)\n\nPreviously, with no processors outstanding, \"finished\" was never set,\nso the processor manager was never closed and its resources could leak."
    },
    {
      "commit": "d61f8cf93527d914d0750b3c06a7a24162bf5830",
      "tree": "539f3230e6799ebc1b4eb265d552335097ca6625",
      "parents": [
        "9e5b0272f01c201733e4470f006e0d1e343ffb4b"
      ],
      "author": {
        "name": "Nanjesh Ramesh",
        "email": "nanjeshramesh7@gmail.com",
        "time": "Tue Oct 20 08:32:35 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 09:32:35 2026 -0600"
      },
      "message": "chore: restore query ID verification in MSQ workers (#20530)"
    },
    {
      "commit": "9e5b0272f01c201733e4470f006e0d1e343ffb4b",
      "tree": "de9585e68b0eecd82d4415543b736f0cb1455137",
      "parents": [
        "c55da2ae85ff46dff067808aa3bda9cfa82f0337"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 20 09:05:57 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 09:05:57 2026 -0600"
      },
      "message": "ci: bump org.ow2.asm:asm-commons from 9.10.1 to 9.11 (#20639)\n\n* ci: bump org.ow2.asm:asm-commons from 9.10.1 to 9.11\n\nBumps org.ow2.asm:asm-commons from 9.10.1 to 9.11.\n\n---\nupdated-dependencies:\n- dependency-name: org.ow2.asm:asm-commons\n  dependency-version: \u00279.11\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* build: align ASM module versions\n\n* build: update ASM license metadata\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Frank Chen \u003cfrank.chen021@outlook.com\u003e"
    },
    {
      "commit": "c55da2ae85ff46dff067808aa3bda9cfa82f0337",
      "tree": "eb221927ba4066806d10f844e2a6532d3f89d027",
      "parents": [
        "8a3e4c3331e2d0dc853751b111b493726ac4ecf9"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Tue Oct 20 08:59:39 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 08:59:39 2026 -0600"
      },
      "message": "fix: re-announce a restarted service once old ZooKeeper entry expires (#20476)\n\n* Re-create announcements blocked by a stale ephemeral node\n\nWhen a process restarts within the ZooKeeper session timeout, the ephemeral\nnode of its previous session still exists at the announcement path, so the\nannouncer\u0027s create fails with NODEEXISTS. Both announcers relied on their\ncache to report the removal of that node, but PathChildrenCache and\nCuratorCache only report removals of nodes they have already loaded. If\nZooKeeper deletes the stale node before the cache\u0027s initial load sees it,\nthe announcement is never re-created and the process stays unregistered\nuntil it restarts.\n\nHandle NODEEXISTS in a create callback: set an exists watch on the path and\nre-create the announcement once the node is gone, as Curator\u0027s\nPersistentNode does. All re-create paths, including the existing cache\nlisteners and the reconnect handler, now go through reinstateAnnouncement,\nwhich uses the current payload and skips paths that were unannounced in the\nmeantime. Creates and exists checks that fail for any other reason are\nlogged as warnings instead of being dropped.\n\nThe existing tests waited for CuratorListener CREATE events, which Curator\ndoes not deliver once a create has a callback, so they now poll until the\nnode exists and belongs to the announcer\u0027s session, using helpers in\nCuratorTestBase. New tests reproduce the race deterministically, both when\nthe stale node is removed before the exists watch is set and after it.\n\n* Re-arm stale-node watch after reconnect, guard reinstate vs unannounce\n\nNodeAnnouncer had no reconnect handling, so if its own session expired\nwhile it waited for a stale node to go away, the exists watch was lost\nand nothing re-created the announcement unless the cache happened to\nhold the stale node. Re-announce every path on RECONNECTED: the create\nhits NODEEXISTS again and watches the node from the new session.\n\nBoth announcers read the payload and then queued the create, so an\nunannounce running in between could leave a node behind. Queue the\ncreate inside computeIfPresent on the announcement\u0027s entry: a concurrent\nunannounce now either removes the entry first or waits, and its delete\nfollows the create.\n\ncreateAnnouncement now wraps Curator\u0027s checked exception itself, which\nremoves two try/catch blocks.\n\n* Drop unused throws clause from PathChildrenAnnouncer listener"
    },
    {
      "commit": "8a3e4c3331e2d0dc853751b111b493726ac4ecf9",
      "tree": "15dc0fd36e1975eccf51359aa7033cfc9d2626f6",
      "parents": [
        "ff28cd43141efd090afe8cd1390af174ec49457b"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Tue Oct 20 08:58:27 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 08:58:27 2026 -0600"
      },
      "message": "Support IAM auth for Kafka supervisors and lookups (#20471)\n\nKafka supervisors and Kafka lookups could not authenticate to an\nIAM-enabled Amazon MSK cluster, because neither extension shipped the\naws-msk-iam-auth plugin that registers the AWS_MSK_IAM SASL mechanism.\n\nAdd aws-msk-iam-auth 2.3.9 to both extensions at runtime scope and\nexclude all of its transitives, so only the plugin jar ships. The AWS\nSDK v2 it needs is already in lib/ through druid-server and\ndruid-aws-common, and extensions resolve it parent-first, so bundling\nanother copy would put two SDK versions in one JVM. The plugin cannot\nlive in core itself: its callback handlers implement Kafka client\ninterfaces, and kafka-clients is bundled per extension.\n\nNo code change is needed in either extension. Both pass consumer\nproperties through unfiltered and set the thread context classloader to\nthe extension classloader around consumer construction, which is where\nKafka loads the login module and callback handler.\n\nThe docs list the IAM actions a consumer needs and recommend\nawsAddDefaultProviders\u003d\"false\" with assume-role, so that a failed\nassumption does not fall back to the ambient identity.\n\nThe tests build a consumer through each extension\u0027s own factory with\nthe documented properties. Login happens in the constructor, so no\nbroker is needed, and a missing plugin or SDK artifact fails the test."
    },
    {
      "commit": "ff28cd43141efd090afe8cd1390af174ec49457b",
      "tree": "9c960d491a4ce404809d387e8cddc496c493150a",
      "parents": [
        "3795153b84d0946572f4fc1d2ef3cfffe087b04e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Oct 20 08:50:37 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 08:50:37 2026 -0600"
      },
      "message": "ci: bump io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha (#20638)\n\nBumps [io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha](https://github.com/open-telemetry/opentelemetry-java-instrumentation) from 2.31.1-alpha to 2.32.0-alpha.\n- [Release notes](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases)\n- [Changelog](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/open-telemetry/opentelemetry-java-instrumentation/commits)\n\n---\nupdated-dependencies:\n- dependency-name: io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha\n  dependency-version: 2.32.0-alpha\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\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": "3795153b84d0946572f4fc1d2ef3cfffe087b04e",
      "tree": "b4aeb65ba6ab90d64a06edb3ed1b0bf0ab549961",
      "parents": [
        "8803f6cbb684890621aad152ee6cf4c5b110aa46"
      ],
      "author": {
        "name": "Andreas Maechler",
        "email": "amaechler@gmail.com",
        "time": "Tue Oct 20 06:20:41 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 20:20:41 2026 +0800"
      },
      "message": "fix: license check ignores transitive dependencies in dependency reports (#20528)\n\n* fix: license check ignores transitive dependencies in dependency reports\n\nThe parser path added for the newer project-info-reports format only\nmatched the direct compile anchor and stalled after the first table, so\ncheck-licenses.py compared 68 instead of ~420 dependencies against\nlicenses.yaml. Match both compile anchors in any state, fail when a compile\ntable is left unparsed, map three more license spellings, and fix the\nlicenses.yaml drift the check now reports.\n\n* Update licenses.yaml for dependency bumps merged since the fix\n\nlz4-java 1.12.0 (#20547), async-http-client 3.0.14 (#20535) and\ncommons-lang3 3.21.0 (#20548) were bumped on master without matching\nlicenses.yaml updates, which the fixed check now reports.\n\n* Update licenses.yaml for checker-qual 4.3.0\n\nchecker-qual was bumped to 4.3.0 on master (#20611) without a matching\nlicenses.yaml update, which the fixed check reports."
    },
    {
      "commit": "8803f6cbb684890621aad152ee6cf4c5b110aa46",
      "tree": "72bed86bada016b335353001c4309995943dc106",
      "parents": [
        "b14e41aa1a3e74ab93c4970a96e6b5d1d477ecda"
      ],
      "author": {
        "name": "dfengliu",
        "email": "liufeng@kylinos.cn",
        "time": "Tue Oct 20 20:18:56 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 20:18:56 2026 +0800"
      },
      "message": "fix: validate V1 header count and value offsets in GenericIndexed (#20447)\n\n* fix: validate V1 header count and value offsets in GenericIndexed\n\nA crafted V1 header let a negative or overflowing element count through,\nand a malformed offset table moved reads out of the value region, surfacing\nas raw JVM exceptions (BufferUnderflowException, NegativeArraySizeException,\nIndexOutOfBoundsException) or silent misreads of header bytes. Reject\nnon-negative counts and out-of-range offsets with descriptive errors.\n\n* fix: validate GenericIndexed offsets against a stable bound\n\nThe singleThreaded value buffer is reused across calls and its limit is\nnarrowed to the previous value\u0027s end. Bounds-checking against the mutable\nlimit made rightward binary-search probes in the UTF-8 dictionary lookup\npath fail for valid sorted dictionaries. Validate against the original\nvalue-region limit captured when the view is created, and add regression\ntests for rightward probes and successive lookups.\n\n* fix: validate relative header offsets in GenericIndexed\n\nValidate each element\u0027s offsets against the header table before adding the\nV1 base offset. Tables whose previous end offset falls below the four-byte\nvalue-size marker (e.g. [0, 10]) previously let get() decode bytes outside\nthe declared element; they are now rejected with a descriptive error on all\nfour read paths (V1/V2, cached and single-threaded).\n\n* fix: read the null/empty marker through a stable view in GenericIndexed\n\nThe singleThreaded value buffer is reused and its limit is narrowed by\nearlier lookups, so the absolute null/empty marker read could throw\nIndexOutOfBoundsException for a later in-range zero-length or null value.\nRead the marker through a dedicated view captured at the stable original\nlimit, and add a successive-lookup regression test."
    },
    {
      "commit": "b14e41aa1a3e74ab93c4970a96e6b5d1d477ecda",
      "tree": "f5bd4bd54f6bc97b913d19e509331b83a7f47f3f",
      "parents": [
        "3e9c628f0844657cfd3a64eccb591b5b9ae34daf"
      ],
      "author": {
        "name": "Frank Chen",
        "email": "frank.chen021@outlook.com",
        "time": "Tue Oct 20 10:18:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 10:18:17 2026 +0800"
      },
      "message": "feat: add experimental sys.query_context_parameters system table (#20586)\n\n* feat: add sys.query_context_parameters system table\n\nLists the query context parameters users can set, with their types, defaults, applicability and the default the Broker applies. Also renames Visibility.INTERNAL to SYSTEM.\n\n* test: drop redundant sys.query_context_parameters tests\n\n* fix: address review findings on sys.query_context_parameters\n\n- Support ORDER BY on array columns.\n- Drop is_deprecated, which deprecation_message already implies.\n- Use native queryType names in native_query_types.\n- Show effective_value in the form the parameter reads it.\n- Declare false as the default of serializeDateTimeAsLong(Inner).\n- Document the table\u0027s permissions and the per-datasource overrides that effective_value does not reflect.\n\n* docs: drop the unenforced claim about enum descriptions in sys.query_context_parameters\n\n* refactor: rename the range column of sys.query_context_parameters to value_range\n\nRANGE is a reserved SQL keyword, so the column could not be referenced without quotes.\n\n* refactor: rename the deprecation_message column of sys.query_context_parameters to deprecation\n\n* feat: declare runtime property defaults of query context parameters\n\nAdds DefaultValue (none, a literal, or a runtime property) as the declared default of a QueryContextParameter.\nParameters whose default is the value of a runtime property now declare it with DefaultValue.fromProperty instead\nof a free-text default description.\n\nIn sys.query_context_parameters, default_value shows such a default as ${property}. effective_value also falls back\nto that property when it is set on the Broker, with the new effective_source RUNTIME_PROPERTY. The source for\ndruid.query.default.context.\u003cname\u003e is renamed to DEFAULT_CONTEXT_PROPERTY.\n\n* docs: drop placeholder default descriptions of query context parameters\n\nfinalize, lane, perSegmentTimeout and brokerService have no default; their default descriptions only spelled that\nout as `null` or `N/A`. The default description of priority described the query context defaults in HTML, which\nsys.query_context_parameters now shows in effective_value; the runtime property moves to the description.\n\n* refactor: declare the type of query context parameters\n\nAdds QueryContextParameter.Type, inferred from the value type when the parameter is built, so that a value type\nwithout a corresponding type is rejected instead of being shown as an object. sys.query_context_parameters and the\ndocumentation generator read it, and the type column shows it in PascalCase, such as Integer or HumanReadableNumber.\n\n* style: fix checkstyle violations in query context parameter code\n\n* test: remove redundant sys.query_context_parameters test cases\n\n* refactor: declare the defaults of the SQL query context parameters\n\nThe SQL planner parameters whose defaults come from druid.sql.planner.* runtime properties, along with\nuseNestedForUnknownTypeInSubquery, now declare those properties with DefaultValue.fromProperty instead of a\ndefault description. returnPartialResults declares its literal default.\n\n* docs: mark sys.query_context_parameters as experimental\n\n* docs: link the MSQ known issues from maxRowsInMemory by a path that works from any page"
    },
    {
      "commit": "3e9c628f0844657cfd3a64eccb591b5b9ae34daf",
      "tree": "db7c769a56b5790b0a5b2339984a010f4da4f7d4",
      "parents": [
        "4c4ad2c376fc66fa5d9de200caa663f551919f8e"
      ],
      "author": {
        "name": "Vadim Ogievetsky",
        "email": "vadim@ogievetsky.com",
        "time": "Mon Oct 19 15:17:43 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 15:17:43 2026 -0700"
      },
      "message": "feat: Web console: highlight NULLS FIRST / NULLS LAST and upgrade druid-query-toolkit to 1.7.0 (#20621)\n\n* Web console: upgrade druid-query-toolkit to 1.7.0\n\n- Bump druid-query-toolkit to ^1.7.0 and widen query types to SqlQueryBase\n  where the toolkit now uses it (parseSqlQuery, result table, preview table,\n  cell filter menu)\n- Add \"node\" to tsconfig types: the old toolkit typings leaked Node globals\n- Override js-yaml for @istanbuljs/load-nyc-config to drop vulnerable sprintf-js\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n* Web console: highlight and complete NULLS FIRST / NULLS LAST\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n* Web console: fix line numbers duplicating when a sub query run button goes away\n\nThe gutter removes a single node per marker, but SubQueryMarker.toDOM returned\na fragment of two nodes, so the line number text was left behind every time\nthe marker was removed.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n* Web console: do not suggest ROW / ROWS after NULLS FIRST\n\nFIRST is followed by ROW / ROWS in FETCH FIRST but ends the clause in\nNULLS FIRST. Follow-up keyword suggestions can now be keyed by the two\nkeywords before the cursor, which take precedence over the one keyword.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n* Web console: suggest keywords based on the two keywords before the cursor\n\nUses the keyword pairs to tell apart GROUP BY / PARTITIONED BY / ORDER BY,\nSELECT ALL / UNION ALL / PARTITIONED BY ALL, SELECT DISTINCT / IS DISTINCT,\nCURRENT ROW / FETCH FIRST ROW and EXPLAIN PLAN FOR / SUBSTRING(... FOR ...).\nAlso suggests JOIN after OUTER and DISTINCT after IS NOT.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "4c4ad2c376fc66fa5d9de200caa663f551919f8e",
      "tree": "309d35dbbabc56cd7e4b4edddaf721191d3c6575",
      "parents": [
        "38a15334565f0c304f2a0d934567aec17fdab3df"
      ],
      "author": {
        "name": "Sasha Syrotenko",
        "email": "alexander.syrotenko@imply.io",
        "time": "Mon Oct 19 19:24:17 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 19:24:17 2026 +0300"
      },
      "message": "build: prepare master for 40.0.0 release (#20625)"
    }
  ],
  "next": "38a15334565f0c304f2a0d934567aec17fdab3df"
}
