)]}'
{
  "log": [
    {
      "commit": "8304178101d941119f4905056e887241c45b0911",
      "tree": "dfd060d968b511ff32a851a9fea4fbc00e636413",
      "parents": [
        "4d325eb1b4b857545b360915e859d9b636be1bf7"
      ],
      "author": {
        "name": "Evgeny Zhuravlev",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Wed Oct 21 16:47:41 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 07:47:41 2026 -0700"
      },
      "message": "Add kotlin-tooling-core to the Build Tools API implementation record (#1804)\n\nkotlin-build-tools-impl links against kotlin-tooling-core.\nWithout this dependency in the classpath some operations, such as\nJvmCompilationOperation.INCREMENTAL_COMPILATION or EXCEPTION-severity compiler message,\nfail with NoClassDefFoundError.\n\nThis is a breaking change for custom records: a btapi_impl_version tag or\ncall declared without tooling_core_sha256 now fails at load time with the\nmissing attribute named."
    },
    {
      "commit": "4d325eb1b4b857545b360915e859d9b636be1bf7",
      "tree": "bb1f63b8ba15c18eb41740337d9c65492985b5bf",
      "parents": [
        "bc97077fc0430b60a992abf474fe8d715656762e"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Oct 21 07:46:53 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 07:46:53 2026 -0700"
      },
      "message": "Update dependency bazel to v9.3.1 (#1805)\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "bc97077fc0430b60a992abf474fe8d715656762e",
      "tree": "c2ad9cc4f5b8e2c26b8dad9de11e67082962a767",
      "parents": [
        "fbd4b9461f53df596ec920dc608241769d2ff484"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Wed Oct 21 07:46:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 07:46:28 2026 -0700"
      },
      "message": "Split JVM rules into dedicated declaration and implementation files (#1802)\n\nGive library, binary, test, and import rules their own modules following\nAndroid\u0027s declaration/implementation layout. Keep shared attributes and\nrule metadata centralized, isolate compiler-plugin support, and retain\ncompatibility exports from the original internal modules."
    },
    {
      "commit": "fbd4b9461f53df596ec920dc608241769d2ff484",
      "tree": "c133ebc798c7c29e72633b7ffa385fd4501650c0",
      "parents": [
        "09931b5ce94251d94b803c0d0a6c535896e67d16"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Oct 20 12:30:15 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 12:30:15 2026 -0700"
      },
      "message": "Remove unused worker debug logging method (#1778)"
    },
    {
      "commit": "09931b5ce94251d94b803c0d0a6c535896e67d16",
      "tree": "36b26b56654421544aee3366795e7c36efc836d0",
      "parents": [
        "f62005acff6725c8b933148e3fd636466b2e5f2e"
      ],
      "author": {
        "name": "Corbin McNeely-Smith",
        "email": "58151731+restingbull@users.noreply.github.com",
        "time": "Fri Oct 16 13:53:09 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 12:53:09 2026 -0500"
      },
      "message": "Revert \"Revert \"Move to compilation pipeline 1 of 3 (#1772)\" (#1800)\" (#1801)\n\nThis reverts commit eab2c4fc4ed3829d5447c1f1ede0f311cbcc8ca9."
    },
    {
      "commit": "f62005acff6725c8b933148e3fd636466b2e5f2e",
      "tree": "ae482dcf2a339b1ab43d2f806a2f7e048b0d1e1c",
      "parents": [
        "eab2c4fc4ed3829d5447c1f1ede0f311cbcc8ca9"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Thu Oct 15 15:23:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 15:23:30 2026 +0200"
      },
      "message": "Upgrade Kotlin to 2.4.21 (#1792)"
    },
    {
      "commit": "eab2c4fc4ed3829d5447c1f1ede0f311cbcc8ca9",
      "tree": "34e8083e9a000ce3d3aa8f9af8b316d5a598803c",
      "parents": [
        "3462b5f3446952f316c9cd6ab7de583001ee25a9"
      ],
      "author": {
        "name": "Corbin McNeely-Smith",
        "email": "58151731+restingbull@users.noreply.github.com",
        "time": "Thu Oct 15 15:22:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 15:22:45 2026 +0200"
      },
      "message": "Revert \"Move to compilation pipeline 1 of 3 (#1772)\" (#1800)\n\nThis reverts commit 3462b5f3446952f316c9cd6ab7de583001ee25a9."
    },
    {
      "commit": "3462b5f3446952f316c9cd6ab7de583001ee25a9",
      "tree": "5a34bba22d9497db5474f9643c971a430ba00b1f",
      "parents": [
        "fffd3527dba6800c8449469602cfd73720f53b17"
      ],
      "author": {
        "name": "Corbin McNeely-Smith",
        "email": "58151731+restingbull@users.noreply.github.com",
        "time": "Thu Oct 15 15:20:12 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 15:20:12 2026 +0200"
      },
      "message": "Move to compilation pipeline 1 of 3 (#1772)\n\n* Move to compilation pipeline 1 of 3\n\n* Add copy of android pipeline machinery w/tests\n* Restructure impl+jvm to use pipeline\n\n* Move pipeline definitions to constant.\n\n* buildifier\n\n---------\n\nCo-authored-by: Resting Bull \u003crestingbull@the-forest.local\u003e"
    },
    {
      "commit": "fffd3527dba6800c8449469602cfd73720f53b17",
      "tree": "34e8083e9a000ce3d3aa8f9af8b316d5a598803c",
      "parents": [
        "ca45c283fb2608a069959f8e41ec1df61c49c487"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Thu Oct 15 09:46:48 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 09:46:48 2026 +0200"
      },
      "message": "Remove unreachable stored-file jar copy branch (#1775)"
    },
    {
      "commit": "ca45c283fb2608a069959f8e41ec1df61c49c487",
      "tree": "4bd27c355f8231377b259452ca357a416c911ba3",
      "parents": [
        "28110903de4c1e6e433996ebbf2c65db9eb4a410"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Thu Oct 15 09:46:23 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 09:46:23 2026 +0200"
      },
      "message": "Remove unused builder overloads and worker helpers (#1777)"
    },
    {
      "commit": "28110903de4c1e6e433996ebbf2c65db9eb4a410",
      "tree": "1ee48409c2ac867a8876f6f2e4576a38c05ebb93",
      "parents": [
        "47c9fc492c7695e07084a1ea1ad121b42e6755c1"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Mon Oct 12 11:01:11 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 20:01:11 2026 +0200"
      },
      "message": "Drop Kotlin 1.x support and legacy compiler paths (#1791)"
    },
    {
      "commit": "47c9fc492c7695e07084a1ea1ad121b42e6755c1",
      "tree": "80b8d76ab1e78457dfce47148e053de04a5c31c7",
      "parents": [
        "93504260f4f73275165347843e75206293a986f3"
      ],
      "author": {
        "name": "Keith Smiley",
        "email": "keithbsmiley@gmail.com",
        "time": "Mon Oct 12 06:19:41 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 09:19:41 2026 -0400"
      },
      "message": "Fix --incompatible_auto_exec_groups compatibility (#1794)\n\n* Fix --incompatible_auto_exec_groups compatibility\n\nFixes https://github.com/bazel-contrib/rules_kotlin/issues/1226\n\n* temp patch for testing\n\n* remove global opt out\n\n* remove patch"
    },
    {
      "commit": "93504260f4f73275165347843e75206293a986f3",
      "tree": "a27153f8a34df67d2dea9b0d277c5577c6f4c159",
      "parents": [
        "db0e49bc14dbd677a3f663dcf244c1e4c6759c28"
      ],
      "author": {
        "name": "Evgeny Zhuravlev",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Mon Oct 12 14:14:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 14:14:14 2026 +0200"
      },
      "message": "Configure exported_compiler_plugins for the execution platform (#1793)\n\nexported_compiler_plugins resolved in the exporting library\u0027s configuration,\nwhile plugins resolves in the execution configuration. A plugin that reached\na consumer both ways, such as a dependency\u0027s export plus the consumer\u0027s\nkt_plugin_cfg, was analysed twice. _new_plugins_from rejected the two provider\ninstances as \"multiple plugins with the same id\".\n\nThe attribute of kt_jvm_library, kt_android_library and kt_jvm_import now\ncarries cfg \u003d \"exec\", like plugins \u003d\u003e One configured target per exported plugin,\nsimilar to java_library.exported_plugins, and the right platform choice for a tool\nthat runs in the compiler\u0027s JVM. The plugin jars were already built for the\nexecution platform. Only the plugin target\u0027s own analysis moves.\n\nTwo analysis tests added. They fail on the previous attribute."
    },
    {
      "commit": "db0e49bc14dbd677a3f663dcf244c1e4c6759c28",
      "tree": "4d7bd8ce513ca137c4ce23904bb4cd525d562c62",
      "parents": [
        "44fe9ff50a5f38bf9efc29db5f16fe409b30c32d"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Oct 07 12:20:39 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 07 12:20:39 2026 -0700"
      },
      "message": "Update dependency bazel to v9.3.0 (#1790)"
    },
    {
      "commit": "44fe9ff50a5f38bf9efc29db5f16fe409b30c32d",
      "tree": "e01cb880c380dc42556dcd2fea98f24d0117a1ec",
      "parents": [
        "f719d9d5108703e92806f53bf6b70bc3c454066d"
      ],
      "author": {
        "name": "Evgeny Zhuravlev",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Wed Oct 07 16:09:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 07 07:09:45 2026 -0700"
      },
      "message": "Replace Path.of with Paths.get to match the configured 1.8 JVM target (#1789)\n\nThe toolchain targets JVM 1.8 by default.\nBuild Tools API compilation compiles with matching -Xjdk-release flag and\nfails with \"Unresolved reference\" on Path.of() usages."
    },
    {
      "commit": "f719d9d5108703e92806f53bf6b70bc3c454066d",
      "tree": "5a3e96eda202f1cd20af0f30d945fb2bbc1d48a1",
      "parents": [
        "0b6fe39c10100cde2f479b64067aa7d5259d5dea"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Oct 06 09:33:16 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 06 09:33:16 2026 -0700"
      },
      "message": "Download jarjar via http_jar for development and releases (#1787)"
    },
    {
      "commit": "0b6fe39c10100cde2f479b64067aa7d5259d5dea",
      "tree": "d34f616f2c459ffde8b105b33b21900a3073cb0b",
      "parents": [
        "4a65dad202a27db4eaff6421f15ef98c96af0863"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Oct 06 09:32:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 06 09:32:45 2026 -0700"
      },
      "message": "Align Android rules and Skylib across Bzlmod and WORKSPACE (#1776)"
    },
    {
      "commit": "4a65dad202a27db4eaff6421f15ef98c96af0863",
      "tree": "37fba54ae383d809c8ecfa3a68bf66e9db2d87e6",
      "parents": [
        "869adb02a438818867f804a2c2e54d4994fc6579"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Sat Oct 03 17:59:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 03 17:59:56 2026 -0700"
      },
      "message": "Update bazel-contrib/publish-to-bcr action to v1.5.1 (#1788)\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "869adb02a438818867f804a2c2e54d4994fc6579",
      "tree": "60b936b45f07e47f3be7116d1a3116754ee8517d",
      "parents": [
        "4f50962318b2fa05e41cb5b5a554e811ca9c6d5c"
      ],
      "author": {
        "name": "Corbin McNeely-Smith",
        "email": "58151731+restingbull@users.noreply.github.com",
        "time": "Fri Oct 02 18:07:10 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 02 18:07:10 2026 -0500"
      },
      "message": "BREAKING CHANGE: Drop residual WORKSPACE tests \u0026 references (#1786)\n\nRationale: Workspace has been unsupported for a bit, and all bazel LTS versions support bzlmod.\n\n* Fold kotlin_repositories/kotlinc_version/ksp_version out of the deleted initialize.release.bzl into bzlmod_impl.bzl\n* Drop the kt_register_toolchains macro.\n* Migrate docs/CI/examples to MODULE.bazel.\n\nUnrelated, but necessary for local testing:\n* Add a persistent integration-test repository cache via RULES_KOTLIN_REPOSITORY_CACHE (so mvn central stops rate limiting me.)"
    },
    {
      "commit": "4f50962318b2fa05e41cb5b5a554e811ca9c6d5c",
      "tree": "e29c512a64eeef51c632e58d8732a334f84a4541",
      "parents": [
        "42e6c1b9d0de1cb1cf880b85f16c0b61952675cd"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Fri Oct 02 12:18:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 02 12:18:56 2026 -0700"
      },
      "message": "Update dependency rules_android to v0.8.0 (#1784)\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "42e6c1b9d0de1cb1cf880b85f16c0b61952675cd",
      "tree": "ab14d4f8d1408df13cd78f6bbb8228cd86d431bc",
      "parents": [
        "c8fcd48cbcb9e29e1fde8551c660fb4337ec51d3"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Sep 29 20:36:47 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 29 20:36:47 2026 -0700"
      },
      "message": "Remove unused worker profiling state (#1774)"
    },
    {
      "commit": "c8fcd48cbcb9e29e1fde8551c660fb4337ec51d3",
      "tree": "d3c54ae6d8387334f181fad7b7c02988ab0c7f92",
      "parents": [
        "329b3747b42f2f3814f15c538dd80d6c2f66cdcc"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Sep 29 20:21:47 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 29 20:21:47 2026 -0700"
      },
      "message": "Remove unused Starlark predicate and test helpers (#1773)"
    },
    {
      "commit": "329b3747b42f2f3814f15c538dd80d6c2f66cdcc",
      "tree": "1adaf74ca256e8cead50bd727e479f5b01acde03",
      "parents": [
        "569ae1fe36c14f17e34535788cb54153b667ebad"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Sep 29 11:30:19 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 29 11:30:19 2026 -0700"
      },
      "message": "Avoid eager Kotlin metadata loading during toolchain registration (#1767)"
    },
    {
      "commit": "569ae1fe36c14f17e34535788cb54153b667ebad",
      "tree": "8619c3df70ac19aa30dc5b169de7a5dae23b5b67",
      "parents": [
        "0ad29931775f34fef97c52537925422f30444a80"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Sep 29 09:25:32 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 29 09:25:32 2026 -0700"
      },
      "message": "Update hermetic_android_toolchains to 0.5.0 in examples (#1766)"
    },
    {
      "commit": "0ad29931775f34fef97c52537925422f30444a80",
      "tree": "99b4ebbb9e47cae309a4bd40c59b95e4c962f772",
      "parents": [
        "2e77678050d9eef17255060b255e9b5278f835d7"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Sep 29 09:05:58 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 29 09:05:58 2026 -0700"
      },
      "message": "Reduce Starlark classpath and JavaInfo analysis overhead (#1751)\n\n* perf: reduce Starlark classpath and JavaInfo analysis overhead\n\n* Simplify Kotlin and Java compilation output metadata\n\nSigned-off-by: Ben Lee \u003cben@ben.cm\u003e\n\n---------\n\nSigned-off-by: Ben Lee \u003cben@ben.cm\u003e"
    },
    {
      "commit": "2e77678050d9eef17255060b255e9b5278f835d7",
      "tree": "bc487826ab46064bab0d30010a1b0f16853a3877",
      "parents": [
        "6004005f9192930afae852b450707e30ff369188"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Mon Sep 28 16:32:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 28 16:32:44 2026 -0700"
      },
      "message": "Update dependency bazel_ci_rules to v2.1.2 (#1770)"
    },
    {
      "commit": "6004005f9192930afae852b450707e30ff369188",
      "tree": "e0d6dc0d722da7b50b96d260dcf759ba37db655e",
      "parents": [
        "b0d26f9ae289dab4ac878fb825728ef98effb367"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Fri Sep 25 12:22:42 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 12:22:42 2026 -0700"
      },
      "message": "Fix README compiler plugin option example (#1759)"
    },
    {
      "commit": "b0d26f9ae289dab4ac878fb825728ef98effb367",
      "tree": "24366c305ff32c8a87f954c8f75e456a3855fe30",
      "parents": [
        "92f723891e441862af8e44f72ccb1d90bee81c5e"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Sep 24 23:05:20 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 24 23:05:20 2026 -0700"
      },
      "message": "Update dependency hermetic_android_toolchains to v0.5.0 (#1765)\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "92f723891e441862af8e44f72ccb1d90bee81c5e",
      "tree": "b1d0da9db6d8725a9412fb42c127e02383f48fa5",
      "parents": [
        "ff2aa51d7a71c3357cae55bde6cd6419f1b32a5f"
      ],
      "author": {
        "name": "Evgeny Zhuravlev",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Wed Sep 23 20:52:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 23 13:52:29 2026 -0500"
      },
      "message": "Add manifest_lines to the kt_jvm rules (#1764)\n\n- The new manifest_lines attribute adds lines to the manifest of the runtime jar. singlejar writes that\n  manifest itself and drops the manifest of every input jar, so a resource MANIFEST.MF has no other way in.\n  singlejar processes the lines the way java_binary processes deploy_manifest_lines.\n- kt_jvm_library, kt_jvm_binary and kt_jvm_test get manifest_lines: `Name: value` lines that are passed to\n  singlejar through the --deploy_manifest_lines flag."
    },
    {
      "commit": "ff2aa51d7a71c3357cae55bde6cd6419f1b32a5f",
      "tree": "a93512653fd547e3c1bc218d4eea860a37d62c1b",
      "parents": [
        "4c3ea407ee48d8d0a13a90302082048073923f2a"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Sep 23 09:21:53 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 23 09:21:53 2026 -0700"
      },
      "message": "Update dependency buildifier_prebuilt to v10.1.0 (#1763)"
    },
    {
      "commit": "4c3ea407ee48d8d0a13a90302082048073923f2a",
      "tree": "685041cc1540d8447be46674ebeeda83a71bc1c1",
      "parents": [
        "f71832c524127f05d07368c46248ea9ba888caff"
      ],
      "author": {
        "name": "Evgeny Zhuravlev",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Tue Sep 22 16:48:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 22 07:48:53 2026 -0700"
      },
      "message": "Add x_compiler_plugin_order to the kotlinc options (#1760)\n\nSupport compiler plugin load and invocation order `-Xcompiler-plugin-order\u003d\u003cpluginId1\u003e\u003e\u003cpluginId2\u003e` (since Kotlin 2.3)\n\n- The `x_compiler_plugin_order` string list specifies one flag per constraint, each constraint in the form `\u003cpluginId1\u003e\u003e\u003cpluginId2\u003e`.\n- Both legacy and BTA compiler invocations apply the constraints in the compiler\u0027s plugin loader.\n  The worker does not sort the plugins itself."
    },
    {
      "commit": "f71832c524127f05d07368c46248ea9ba888caff",
      "tree": "b2a361b15cc024f30b3a52d0e6f1651a259dfc46",
      "parents": [
        "1c044c9a53ee0411075da679f5deeb7aa0f1b7a7"
      ],
      "author": {
        "name": "Evgeny Zhuravlev",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Tue Sep 22 16:48:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 22 07:48:21 2026 -0700"
      },
      "message": "Keep the source jars of the toolchain stdlibs (#1761)\n\nThe toolchain attributes jvm_stdlibs and jvm_runtime wrapped each jar\nfrom DefaultInfo.files in a new JavaInfo, but ignored the source jar.\nNow the source jar, if configured, is propagated further,\nso the readers like an IDE are able to analyze this data."
    },
    {
      "commit": "1c044c9a53ee0411075da679f5deeb7aa0f1b7a7",
      "tree": "70a6e6b03ff161e133b9ec62650110caff6ab1a4",
      "parents": [
        "d5651818b99af9a0ee4c18ee555bd8e9256850f3"
      ],
      "author": {
        "name": "Evgeny Zhuravlev",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Sat Sep 19 21:01:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 19 12:01:06 2026 -0700"
      },
      "message": "Compute classpath fingerprints by Bazel-computed input digests instead of reading jar content (#1756)\n\n- Reuse Bazel-computed WorkRequest input digests for BtapiRuntime and Ksp2Task cache invalidation.\n  This avoids digesting jar contents on every compile request.\n- The single-invocation mode carries no request digests; the digest stays empty, and the process ends after the request \u003d\u003e cache invalidation is not necessary."
    },
    {
      "commit": "d5651818b99af9a0ee4c18ee555bd8e9256850f3",
      "tree": "846483a010a05693d660683dc2996620f12fdf86",
      "parents": [
        "8660b214ddabb1b874a55b16e56b3fd16c2cf6c0"
      ],
      "author": {
        "name": "Evgeny Zhuravlev",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Fri Sep 18 22:22:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 18 13:22:21 2026 -0700"
      },
      "message": "Model compiler plugin options as explicit key/value pairs (#1757)\n\n- KtCompilerPluginOption: \u0027value\u0027 field now contains the option value instead of encoded \"key\u003dvalue\" string.\n- The field \u0027id\u0027 is renamed to \u0027key\u0027 and holds the option key;\n- kt_compiler_plugin.options widens string_dict -\u003e string_list_dict so\n  one key can carry repeated values, completing the in-code TODO(1035);\n\nStarlark API changes:\nconstructing KtCompilerPluginOption(id \u003d ...) or reading option.id, and\npassing scalar values to kt_compiler_plugin.options leads to failure."
    },
    {
      "commit": "8660b214ddabb1b874a55b16e56b3fd16c2cf6c0",
      "tree": "14799039e50c08d6a871341b344d0268a13fdd85",
      "parents": [
        "02f96a1144527e46724f17381a11cd2cd8b36980"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Fri Sep 18 13:18:42 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 18 13:18:42 2026 -0700"
      },
      "message": "Remove unused K2 binary-class indexing and helpers (#1752)"
    },
    {
      "commit": "02f96a1144527e46724f17381a11cd2cd8b36980",
      "tree": "ed7a01c7fe90760bcfc10cab71e7b36d2b2083dc",
      "parents": [
        "db82ae27a5d41e3b0a7e61c92acb6fd7f2eadd65"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Wed Sep 16 09:11:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 16 11:11:56 2026 -0500"
      },
      "message": "Test mixed Kotlin and Java compilation with private classes (#1733)\n\n* Test mixed Kotlin and Java compilation with private classes\n\n* Test mixed Kotlin and Java compilation with private classes\n\nExercise the real Javac action with a file-private Kotlin class removed from the ABI jar."
    },
    {
      "commit": "db82ae27a5d41e3b0a7e61c92acb6fd7f2eadd65",
      "tree": "e2ac18474f0de1781d7dae96d25b416ec806ee23",
      "parents": [
        "db769af8e20745305d6ae82ad4819104f40fe6a6"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Wed Sep 16 08:44:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 16 10:44:12 2026 -0500"
      },
      "message": "Remove discarded dependency protobuf serialization (#1753)"
    },
    {
      "commit": "db769af8e20745305d6ae82ad4819104f40fe6a6",
      "tree": "bb9b5807569cfa5ec87f3d90a8ecf1803359b11d",
      "parents": [
        "87fc0006ea4a03d58778134c853c91aa864993ef"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Wed Sep 16 08:43:58 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 16 10:43:58 2026 -0500"
      },
      "message": "Remove unused builder utility and logging helpers (#1754)"
    },
    {
      "commit": "87fc0006ea4a03d58778134c853c91aa864993ef",
      "tree": "d4c38b4d6d82d27dcfc8822db842820757e2ca25",
      "parents": [
        "9e6feca9e5698704f143004d18b855ffd751fd25"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Wed Sep 16 08:43:41 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 16 10:43:41 2026 -0500"
      },
      "message": "Remove unused jar creation paths (#1755)"
    },
    {
      "commit": "9e6feca9e5698704f143004d18b855ffd751fd25",
      "tree": "6c290d02b99dd9432c1e49b05080ea7a8e0bfe6f",
      "parents": [
        "d9927736d8fa5d036f2b2044e286dee9c68d4007"
      ],
      "author": {
        "name": "Evgeny Zhuravlev",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Wed Sep 16 06:40:05 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 21:40:05 2026 -0700"
      },
      "message": "Prune the legacy compiler classloader to the jars the legacy invocation needs\n\nMerge after all required Buildkite checks passed."
    },
    {
      "commit": "d9927736d8fa5d036f2b2044e286dee9c68d4007",
      "tree": "77ed24abd69d1bff12e8f4a0d6b1cd37ca6d97c1",
      "parents": [
        "88b4f6309e2f912d3840563ef9969f6beeacd4f8"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Sep 15 19:58:55 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 19:58:55 2026 -0700"
      },
      "message": "Update dependency buildifier_prebuilt to v10 (#1750)\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "88b4f6309e2f912d3840563ef9969f6beeacd4f8",
      "tree": "a22ab9ce52591701a39b57ec04218d50a1c0694d",
      "parents": [
        "0d595be8305a95396b50ddf5b63028b84f78bb8e"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Sep 15 19:55:51 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 19:55:51 2026 -0700"
      },
      "message": "Update Bazel CI to 9.2.0 (#1746)\n\n* Update Bazel CI to 9.2.0\n\n* Use hermetic Java runtimes in remaining integration examples"
    },
    {
      "commit": "0d595be8305a95396b50ddf5b63028b84f78bb8e",
      "tree": "f48dd43b913f3e0d38352a84136c4f223b7355d1",
      "parents": [
        "e2422e34cee4483b904161e14516128ae0033e53"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Sep 15 09:14:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 09:14:36 2026 -0700"
      },
      "message": "Update Buildifier tooling (#1747)"
    },
    {
      "commit": "e2422e34cee4483b904161e14516128ae0033e53",
      "tree": "1da07e0d93424438e8cdc58798db9f4d79eb280e",
      "parents": [
        "fb400f4c4fe75622c4d51bace2dcfe67629f5d82"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Sep 15 09:14:00 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 09:14:00 2026 -0700"
      },
      "message": "Invalidate BTAPI compiler caches when runtime jars change (#1736)\n\nShare the KSP2 jar content fingerprint with BTAPI runtime caching, retaining ordered BTAPI classpaths and KSP2 cache behavior. Stream jar hashing and cover replacement with unchanged file size and timestamp."
    },
    {
      "commit": "fb400f4c4fe75622c4d51bace2dcfe67629f5d82",
      "tree": "bbd1590303222f464a37a925ca91c922437cf2d6",
      "parents": [
        "aa82abef058f50f51aea8b39ae3c9d44f03e4cbb"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Sep 15 09:07:23 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 09:07:23 2026 -0700"
      },
      "message": "Use hermetic Android SDK toolchains for development (#1745)"
    },
    {
      "commit": "aa82abef058f50f51aea8b39ae3c9d44f03e4cbb",
      "tree": "a4f8a70585e51167200c36538962c8d4787936e3",
      "parents": [
        "932bead0892c067279ef6ba16202c744b8514cb8"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Sep 15 08:58:58 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 10:58:58 2026 -0500"
      },
      "message": "Update CODEOWNERS (#1749)"
    },
    {
      "commit": "932bead0892c067279ef6ba16202c744b8514cb8",
      "tree": "926f8c3ec7410090770d4a2da3a919068328ccab",
      "parents": [
        "f49e10bf9b940f8c5ef49ec22023935320dda46a"
      ],
      "author": {
        "name": "Evgeny Zhuravlev",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Tue Sep 15 16:08:35 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 07:08:35 2026 -0700"
      },
      "message": "Limit the javac warning-mode derivation by the Kotlin warning levels (#1748)\n\n- Derive the javac flag only when no level of x_warning_level contradicts it.\n- An explicit javac-side warn still wins."
    },
    {
      "commit": "f49e10bf9b940f8c5ef49ec22023935320dda46a",
      "tree": "3bc8def7dc546edd7ad86166c1cfad68d01d8562",
      "parents": [
        "de5cfbe41942f134c91b5b94b253222ee532dc08"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Mon Sep 14 21:34:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 14 12:34:21 2026 -0700"
      },
      "message": "Upgrade Kotlin to 2.4.20 (#1744)"
    },
    {
      "commit": "de5cfbe41942f134c91b5b94b253222ee532dc08",
      "tree": "6a0f36596fc9bec36fe1b435de047ded64014257",
      "parents": [
        "960b499c4da10314627579ae649e81a14460db22"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Mon Sep 14 09:42:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 14 09:42:44 2026 -0700"
      },
      "message": "Update KSP to 2.3.12 (#1735)"
    },
    {
      "commit": "960b499c4da10314627579ae649e81a14460db22",
      "tree": "55f6c891ed6765a17a4cf71018caccce1c77e9dc",
      "parents": [
        "ab84a9af7597b3a28220851717bd04fe5c21a348"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Mon Sep 14 09:42:05 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 14 09:42:05 2026 -0700"
      },
      "message": "Update examples to rules_android 0.7.3 (#1739)"
    },
    {
      "commit": "ab84a9af7597b3a28220851717bd04fe5c21a348",
      "tree": "7c60739da0c5db6ae2515116d618be9823c2a43b",
      "parents": [
        "202348650284e6c2a29615aec1061c07d3fcedcb"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Sun Sep 13 12:36:37 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 13 12:36:37 2026 -0700"
      },
      "message": "Revert \"Include native library paths in kt_ targets (#1498)\" (#1740)\n\nThis reverts commit 202348650284e6c2a29615aec1061c07d3fcedcb."
    },
    {
      "commit": "202348650284e6c2a29615aec1061c07d3fcedcb",
      "tree": "586fc7f70778a5d1b61ea2bb3621bb865e7c8964",
      "parents": [
        "5da6fe24e24ba317f6ab09e006b493ef6dfe1927"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Sun Sep 13 12:31:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 13 12:31:45 2026 -0700"
      },
      "message": "Include native library paths in kt_ targets (#1498)\n\n* Include native library paths in kt_ targets\n\nPropagate CcInfo through JavaInfo and resolve runtime shared objects for Kotlin binaries and tests. Keep Windows import libraries out of the search path and resolve DLL runfiles before starting the JVM. Add JNI regression coverage and an external-module example that executes the binary as a tool and from another working directory.\n\nSigned-off-by: Ben Lee \u003cben@ben.cm\u003e\n\n* Exercise manifest-only native launchers and preserve arguments\n\nSigned-off-by: Ben Lee \u003cben@ben.cm\u003e\n\n* Run native launcher checks through existing CI test discovery\n\nSigned-off-by: Ben Lee \u003cben@ben.cm\u003e\n\n* Resolve Windows DLL outputs and fix CI validation\n\nSigned-off-by: Ben Lee \u003cben@ben.cm\u003e\n\n* Use WORKSPACE-compatible rules_cc with native runfiles\n\nSigned-off-by: Ben Lee \u003cben@ben.cm\u003e\n\n* Encode Windows test-driver arguments without legacy quote loss\n\nSigned-off-by: Ben Lee \u003cben@ben.cm\u003e\n\n---------\n\nSigned-off-by: Ben Lee \u003cben@ben.cm\u003e"
    },
    {
      "commit": "5da6fe24e24ba317f6ab09e006b493ef6dfe1927",
      "tree": "7c60739da0c5db6ae2515116d618be9823c2a43b",
      "parents": [
        "593bfa2c5328962abf1bd2e6744386676520e184"
      ],
      "author": {
        "name": "Corbin McNeely-Smith",
        "email": "58151731+restingbull@users.noreply.github.com",
        "time": "Sat Sep 12 12:02:06 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 12 10:02:06 2026 -0700"
      },
      "message": "[lint] Fix most buildifier lint errors (#1713)\n\n* [lint] Fix most buildifier lint errors\n\n* Not renaming providers due to inflight prs\n\n* Replace unused compiler macro names with lint ignores\n\nSigned-off-by: Ben Lee \u003cben@ben.cm\u003e\n\n* Replace unused toolchain macro names with lint ignores\n\nSigned-off-by: Ben Lee \u003cben@ben.cm\u003e\n\n---------\n\nSigned-off-by: Ben Lee \u003cben@ben.cm\u003e\nCo-authored-by: Ben Lee \u003cben@ben.cm\u003e"
    },
    {
      "commit": "593bfa2c5328962abf1bd2e6744386676520e184",
      "tree": "4faf051c3d9aaf1786b2baadae96691ce583a8bc",
      "parents": [
        "4bdf4c16d3288d314e61ac4308e48c1205614608"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Sat Sep 12 18:01:18 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 12 09:01:18 2026 -0700"
      },
      "message": "Supply the Build Tools API compiler runtime through the toolchain (#1724)"
    },
    {
      "commit": "4bdf4c16d3288d314e61ac4308e48c1205614608",
      "tree": "9d46b9a4aa7f5f7c16dc00b59656b8a69f4b95a9",
      "parents": [
        "7c51dd121070722185ac436721dbe1026276b1be"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Mon Sep 07 10:12:20 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 10:12:20 2026 -0700"
      },
      "message": "Update actions/setup-java action to v6 (#1719)\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7c51dd121070722185ac436721dbe1026276b1be",
      "tree": "fa0a74485c5c36bacd8a398bdf6fa3e5eb199afc",
      "parents": [
        "2e854d53fe9d5a857e9554e362f8a1b8457f28fc"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Thu Sep 03 02:33:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 14:33:25 2026 -1000"
      },
      "message": "Compile the java half of a target against the full Kotlin output (#1731)\n\nA file-private Kotlin class compiles to package-private bytecode, which may be referenced from java code in the same target.\nThese file-private Kotlin classes are stripped from ABI jar, if \"removePrivateClasses\" is set.\nCompiling java half of the target against the ABI jar leads to compilation errors."
    },
    {
      "commit": "2e854d53fe9d5a857e9554e362f8a1b8457f28fc",
      "tree": "f12b45809e5095050f8a15494030403f12e23c87",
      "parents": [
        "198877ad863e42bf73fabd3339bd67161a7872ec"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Wed Sep 02 07:55:45 2026 -1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 07:55:45 2026 -1000"
      },
      "message": "Update default Kotlin version to 2.4 (#1727)"
    },
    {
      "commit": "198877ad863e42bf73fabd3339bd67161a7872ec",
      "tree": "a10c7a5f5332fc8f82a0ab717cb56db5b970ba96",
      "parents": [
        "d2cc15820488c8c5453eecd1201a4c96569966c9"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Sep 01 21:32:05 2026 -1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 21:32:05 2026 -1000"
      },
      "message": "Migrate config renovate.json (#1732)\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "d2cc15820488c8c5453eecd1201a4c96569966c9",
      "tree": "9b2efa1f2b237ec85dbce24febb4a60208043c5b",
      "parents": [
        "7e9716d7bab74f6d1ccbb9be3460bcf3ffb0e3af"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Thu Aug 27 20:31:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 13:31:21 2026 -0500"
      },
      "message": "Assert the effective javac release and cover the Build Tools API exec… (#1725)\n\n- The test follows the JavaBuilder behavior and honors the last occurrence\n  of the \u0027--release\u0027 flag on the command line.\n- The test also runs with the Build Tools API toggle enabled to cover this\n  previously untested configuration."
    },
    {
      "commit": "7e9716d7bab74f6d1ccbb9be3460bcf3ffb0e3af",
      "tree": "75349551150ac636a6093554874ead298808bd61",
      "parents": [
        "c965f9be93f0c902237d6e7aeb238f75350ed102"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Thu Aug 27 20:07:32 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 13:07:32 2026 -0500"
      },
      "message": "Pass compiler plugins as structured descriptors to the Build Tools AP… (#1720)\n\nModel compiler plugins as a typed part of the Build Tools API compilation\ncontract instead of argument strings.\n\n- The KotlinBtapiCompiler invocation contract gains a list of\n  CompilerPluginSpec plugin descriptors; the legacy invocation is\n  untouched.\n- The compiler side applies the descriptors through the typed\n  COMPILER_PLUGINS argument key.\n- The default scripting plugin is explicitly disabled on every\n  compilation.\n- The KAPT pre-pass mirrors the legacy contract exactly.\n- The new KotlinBuilderJvmBtaTest case runs an annotation processor\n  (AutoValue) through the typed plugin configuration and asserts the\n  generated source is produced and compiled into the output."
    },
    {
      "commit": "c965f9be93f0c902237d6e7aeb238f75350ed102",
      "tree": "942d2a013732d1e7d987fed3acd5d03a52c4cdc8",
      "parents": [
        "fcb889be197a83de6bbf3b859a15c079bf1ef5b2"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Aug 27 12:39:47 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 12:39:47 2026 -0500"
      },
      "message": "Update dependency buildifier_prebuilt to v8.5.1.4 (#1726)\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "fcb889be197a83de6bbf3b859a15c079bf1ef5b2",
      "tree": "dbfd45db5cf2fc7d3c3cf5008016a172524455d7",
      "parents": [
        "713923a6d01bda42f7f95f2c0919ba83847dad98"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Aug 25 16:39:40 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 16:39:40 2026 -0500"
      },
      "message": "Update Bazel CI rules and fix host RBE toolchains (#1723)"
    },
    {
      "commit": "713923a6d01bda42f7f95f2c0919ba83847dad98",
      "tree": "aab3a4b8879bc0990865960019e9fe0f2bc1be61",
      "parents": [
        "a91a36225210e7812a356f8152583a257e69a19b"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Aug 25 12:25:32 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 12:25:32 2026 -0500"
      },
      "message": "Honor explicit javac release options (#1722)"
    },
    {
      "commit": "a91a36225210e7812a356f8152583a257e69a19b",
      "tree": "bffc526008402ef5c18da60e77f78dd6a848b487",
      "parents": [
        "7907aeecba866d133940aeb3e2533c882f5bbefe"
      ],
      "author": {
        "name": "Simon Mavi Stewart",
        "email": "shs@squareup.com",
        "time": "Tue Aug 25 17:31:26 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 11:31:26 2026 -0500"
      },
      "message": "Add Java release 25 support to kt_javac_options (#1721)\n\n* Add Java release 25 support to kt_javac_options\n\nThe kotlinc jvm_target already allows \"25\", but kt_javac_options.release\ncaps at \"21\", so .java sources in a kt_jvm_library can\u0027t target Java 25.\n\nWiden the allowlist and add the --release 25 flag mapping, plus an\nanalysis test verifying the flag reaches the Javac action.\n\nCo-authored-by: Christian Adam \u003cchristianadam@squareup.com\u003e\n\nCo-authored-by: Simon Stewart \u003csimon.m.stewart@gmail.com\u003e\nSigned-off-by: Simon Stewart \u003csimon.m.stewart@gmail.com\u003e\n\n* Fix release 25 analysis test assertion\n\nThe Javac action tokenizes each flag into individual argv entries, so\n\"--release 25\" reaches the action as [\"--release\", \"25\"] rather than a\nsingle \"--release 25\" string. Assert on the separate tokens instead.\n\nCo-authored-by: Simon Stewart \u003csimon.m.stewart@gmail.com\u003e\n\nSigned-off-by: Simon Stewart \u003csimon.m.stewart@gmail.com\u003e\n\n---------\n\nSigned-off-by: Simon Stewart \u003csimon.m.stewart@gmail.com\u003e\nCo-authored-by: Kimi \u003c1e364c9160696691ffc58d312773e84f940cc4e4f598ee0ad69d7b5f9b7fe33c@buzz.block.builderlab.xyz\u003e"
    },
    {
      "commit": "7907aeecba866d133940aeb3e2533c882f5bbefe",
      "tree": "fbff11d4c2bf15360bd9af8f14714a0aeeaff2b6",
      "parents": [
        "c823d333696a1b018cff034703ba231659588da8"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Tue Aug 25 01:08:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 18:08:20 2026 -0500"
      },
      "message": "Pass compiler plugins as a single typed JSON payload (#1718)\n\nReplace the four per-phase string-list worker flags (stubs/compiler plugin\nclasspath + options) with one self-describing --plugins_payload JSON\nargument: the typed plugin transport the Build Tools API compilation uses.\n\n- introduce new Plugin proto messages (id, classpath, key/value options,\n  phases) the payload is parsed into; the worker expands them into the\n  existing per-phase task fields, so the -Xplugin/-P arguments handed to\n  kotlinc are unchanged for both the legacy and the Build Tools API\n  invocation\n- plugin options still arrive in their legacy packed \"key\u003dvalue\" form and\n  are split at the first \u0027\u003d\u0027; cleaner key/value handling of\n  KtCompilerPluginOption is done later in a separate commit\n- the payload contract is tested on both ends against the same example\n  (Starlark producer, Kotlin parser)\n- the payload json is rendered through an Args.map_each callback at\n  command line expansion time, so plugin classpath entries resolve under\n  the active PathMapper and path mapping\n  (--experimental_output_paths\u003dstrip) keeps working; the path_mapping\n  example now actually engages path mapping (toolchain registered, strip\n  flag set) and compiles through a derived-jar allopen plugin whose\n  successful run is the regression test for this\n\nCo-authored-by: Andrzej Głuszak \u003candrzej.gluszak@jetbrains.com\u003e"
    },
    {
      "commit": "c823d333696a1b018cff034703ba231659588da8",
      "tree": "52a2b1fa6963495a949e654af7c634fe4a92c9f6",
      "parents": [
        "01ca35f849adec1330279fd5d1c93907eb916c6a"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Sun Aug 23 22:49:07 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 23 13:49:07 2026 -0700"
      },
      "message": "Compile through the typed Build Tools API (#1716)\n\nThe worker now invokes the Kotlin compiler through typed Build Tools API,\nreplacing the implementation that parsed CLI flags.\nThe legacy way to invoke compiler remains fully functional and is still the default.\n\n- introduce KotlinBtapiCompiler, the typed contract between the worker and\n  the Build Tools API implementation\n- encapsulate all Build-Tools-API-specific worker code in the new\n  tasks/jvm/btapi package (BtapiInvoker, BtapiTaskExecutor)"
    },
    {
      "commit": "01ca35f849adec1330279fd5d1c93907eb916c6a",
      "tree": "cafb2a5d0d113255f5ec0329ee3a765712b61f39",
      "parents": [
        "3bc687d029322382396b7198a9e7f1cf92d11f0f"
      ],
      "author": {
        "name": "Blaž Šnuderl",
        "email": "snuderl@gmail.com",
        "time": "Sun Aug 23 22:21:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 23 13:21:11 2026 -0700"
      },
      "message": "Don\u0027t pass the transitive compile-jar closure to JdepsMerge (#1691)"
    },
    {
      "commit": "3bc687d029322382396b7198a9e7f1cf92d11f0f",
      "tree": "c1501c27c1378127492bf77974d644d0ee1dae3e",
      "parents": [
        "451c5503ec4111ac1a4f06c4b52b0d6303960f1f"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Fri Aug 21 17:55:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 08:55:20 2026 -0700"
      },
      "message": "Introduce \u0027no_proc\u0027 option to explicitly disable java annotation proc… (#1707)\n\nThis option allows to explicitly turn off annotation processing for kt_jvm_* targets containing only .java sources."
    },
    {
      "commit": "451c5503ec4111ac1a4f06c4b52b0d6303960f1f",
      "tree": "5c79ad8c7ad9c995d156cac80ce95ce1fde4a52b",
      "parents": [
        "7e728529ced6be9f90a6d4eceba15fd42715f047"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Fri Aug 21 08:54:05 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 08:54:05 2026 -0700"
      },
      "message": "Remove dagger from src/main/kotlin/shade.jarjar (#1697)"
    },
    {
      "commit": "7e728529ced6be9f90a6d4eceba15fd42715f047",
      "tree": "50b1aee230d7c5aa8b4a76db1a448056ad3a39d1",
      "parents": [
        "43a84b3e173f0703414a2ce025348f7955123402"
      ],
      "author": {
        "name": "mikhail-0330",
        "email": "145472039+mikhail-0330@users.noreply.github.com",
        "time": "Fri Aug 21 18:36:27 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 08:36:27 2026 -0700"
      },
      "message": "Make core/plugin bzl_library public for stardoc (#1717)"
    },
    {
      "commit": "43a84b3e173f0703414a2ce025348f7955123402",
      "tree": "7e9c3e04bc6fa843b2ad37b72c7676fedbe2a1ad",
      "parents": [
        "44c85ad08edb2038c04ffb792df65b8c6ed50b97"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Wed Aug 19 20:24:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 11:24:11 2026 -0700"
      },
      "message": "Introduce JvmTaskExecutor for pluggable compilation strategies (#1715)\n\n- Introduce JvmTaskExecutor abstraction to allow legacy (KotlinJvmTaskExecutor) and BTA-based implementations (comes later)\n- Extract JvmCompilationTask-manipulation helpers that will be reused by the BTA JvmTaskExecutor implementation in a separate TaskArtifacts.kt file\n- CompilationTask.kt keeps helpers needed for the legacy KotlinJvmTaskExecutor implementation"
    },
    {
      "commit": "44c85ad08edb2038c04ffb792df65b8c6ed50b97",
      "tree": "91052d539a37b0cf4289c969867ab0cf304fdbc5",
      "parents": [
        "85a1e919745372b3ce538bc683059273854dd6fe"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Wed Aug 19 20:23:32 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 11:23:32 2026 -0700"
      },
      "message": "Default x_sam_conversions to \u0027indy\u0027, the Kotlin compiler\u0027s own SAM-conversion mode (#1714)\n\n-Xsam-conversions\u003dindy has been the Kotlin compiler default since 1.5; the\nprevious \u0027class\u0027 default silently forced legacy anonymous-class codegen"
    },
    {
      "commit": "85a1e919745372b3ce538bc683059273854dd6fe",
      "tree": "b456b3e4c877c25f23fe78435eb2634c3c4016f3",
      "parents": [
        "d0fd5a1eff236e51fc1e6a70db4b8b7f871dcd04"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Tue Aug 18 18:17:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 11:17:04 2026 -0500"
      },
      "message": "Use associates\u0027 COMPILE jars as friends when abi jars retain internal symbols (#1712)\n\n- Switch to using CLASS jars in associates only if \u0027internal\u0027 symbols are effectively removed.\n  The \u0027experimental_remove_private_classes_in_abi_jars\u0027 alone strips only \u0027private\u0027 symbols and keeps \u0027internal\u0027 ones, so it is still possible to use COMPILE jars."
    },
    {
      "commit": "d0fd5a1eff236e51fc1e6a70db4b8b7f871dcd04",
      "tree": "b778e64e44572026b9c8b8a2e0ddfada15178fd2",
      "parents": [
        "072b32256010d230072635c1df3c1552c61a30ea"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Tue Aug 18 17:21:23 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 10:21:23 2026 -0500"
      },
      "message": "Expose additional kotlinc language and diagnostics options (#1708)\n\n- Adds per-target options to kt_kotlinc_options that could previously only be controlled toolchain-wide or not at all:\n  api_version, language_version, progressive, x_allow_kotlin_package,\n  x_allow_unstable_dependencies, x_render_internal_diagnostic_names,\n  x_report_all_warnings, x_when_guards, and x_xlanguage.\n- For api_version and language_version it is also possible to override the toolchain-wide values on per-target basis.\n- Tests added"
    },
    {
      "commit": "072b32256010d230072635c1df3c1552c61a30ea",
      "tree": "37ac7671ec6e48f5effed396e8f84cb880058a94",
      "parents": [
        "fd53570e0e16909202ba319c02b6346e7a9cec09"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Tue Aug 18 10:20:21 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 10:20:21 2026 -0500"
      },
      "message": "Update actions/stale action to v11 (#1678)\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "fd53570e0e16909202ba319c02b6346e7a9cec09",
      "tree": "0f0b34acd974d1bd1e66f789a419576f8b08504e",
      "parents": [
        "90613753c3694106c107dc85ea77e61ef981283a"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Fri Aug 14 07:56:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 07:56:28 2026 -0700"
      },
      "message": "Update bazel-contrib/publish-to-bcr action to v1.5.0 (#1710)"
    },
    {
      "commit": "90613753c3694106c107dc85ea77e61ef981283a",
      "tree": "9a8383e6468715e37f76bd54f84fc5712ac41cbc",
      "parents": [
        "1d72d86e49debde64cfe8fb658bf1cdcee6249f9"
      ],
      "author": {
        "name": "Blaž Šnuderl",
        "email": "snuderl@gmail.com",
        "time": "Fri Aug 14 16:04:28 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 07:04:28 2026 -0700"
      },
      "message": "Record type alias declarations in jdeps (#1711)"
    },
    {
      "commit": "1d72d86e49debde64cfe8fb658bf1cdcee6249f9",
      "tree": "4bea517d86aeb6a27fc4ca757b74287398227576",
      "parents": [
        "7f1b9adf3d984b97713d819332ad8df9a3f35a53"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Wed Aug 12 23:29:35 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 14:29:35 2026 -0700"
      },
      "message": "Extend experimental_prune_transitive_deps semantics to the javac half of mixed targets (#1702)\n\n- When experimental_prune_transitive_deps is enabled, compile target\u0027s Java sources with the same classpath the Kotlin sources are compiled against.\n- Tests added."
    },
    {
      "commit": "7f1b9adf3d984b97713d819332ad8df9a3f35a53",
      "tree": "41d2522c56164d67c22b452871926f844f34295a",
      "parents": [
        "e743a6d2e060ab94e2cf2ec5fda4b9efd8514130"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Wed Aug 12 23:17:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 14:17:03 2026 -0700"
      },
      "message": "Invoke KSP2 through explicit interface instead of reflection (#1709)\n\n- Introduce explicit invocation contract for the Ksp2Invoker defined in Ksp2EntryPoint interface"
    },
    {
      "commit": "e743a6d2e060ab94e2cf2ec5fda4b9efd8514130",
      "tree": "cae9f7f891bf97fae5d608968c1047561cf7cec2",
      "parents": [
        "2030643ec2d4d42b797e0537bbe5b990a183239e"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Tue Aug 11 17:22:49 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 10:22:49 2026 -0500"
      },
      "message": "Build resource jars with singlejar instead of zipper (#1700)\n\n- use singlejar descriptors (\u003cfs_path\u003e:\u003cjar_entry\u003e via a params file) to create a resource jar.\n- zipper \u0027\u003d\u0027 argument format is not safe for paths containing whitespace or \u0027\u003d\u0027;\n  singlejar\u0027s descriptor format is, and it matches how rules_java packs resources.\n- singlejar works faster.\n- less actions per bazel target (FileWrite action for zipper args file is gone).\n- resource_strip_prefix_test adapted for the singlejar action\u0027s descriptors.\n- the now-unused _zipper implicit attr is removed."
    },
    {
      "commit": "2030643ec2d4d42b797e0537bbe5b990a183239e",
      "tree": "f2bc95ad26e7b3dc64d5c5f790d0ad8f507a3861",
      "parents": [
        "f13ab82f3669f41e8011f9c31a7edee4b9ff4c4b"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Tue Aug 11 17:21:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 10:21:31 2026 -0500"
      },
      "message": "Derive the javac warning mode from the Kotlin warn option (#1706)\n\nIf not configured explicitly, derive javac warning flags from kotlinc options."
    },
    {
      "commit": "f13ab82f3669f41e8011f9c31a7edee4b9ff4c4b",
      "tree": "b684e0fe6d1b94998b6fd26350809e107523a4fe",
      "parents": [
        "de406af4e5c9660e532185c91db68b88a3c0e9a9"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Tue Aug 11 02:10:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 17:10:14 2026 -0700"
      },
      "message": "Compile the Java half with the Kotlin compiler\u0027s fixed UTF-8 source encoding (#1705)\n\nThe Kotlin compiler reads every source as UTF-8 \u003d\u003e pass -encoding UTF-8 to the java_common.compile invocation unconditionally."
    },
    {
      "commit": "de406af4e5c9660e532185c91db68b88a3c0e9a9",
      "tree": "6eeee8a4a3475870d428c9ee33f1a97d472a5982",
      "parents": [
        "c766a3eb8e2b575ca07f601dbe5c74f751480f2a"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Sun Aug 09 04:24:15 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 21:24:15 2026 -0500"
      },
      "message": "Wire the experimental_build_tools_api build setting into the toolchain (#1704)\n\n* Wire the experimental_build_tools_api build setting into the toolchain\n\n- The //kotlin/settings:experimental_build_tools_api bool_flag was a no-op.\n  Now the flag toggles compilation with Build Tools API for all kotlin toolchains.\n- The toolchain now reads the setting via a BuildSettingInfo label attr;\n  the effective toggle is the per-toolchain attr OR-ed with the build setting.\n- Changed default value to \u0027False\u0027 making Build Tools API an explicit opt-in.\n- README updated and tests added\n- Fixed the ksp and dagger examples: their locally-defined toolchains were never\n  registered, so builds silently ran on the default toolchain (jvm_target 1.8).\n  On the Build Tools API lane the Java half compiles with javac --release, and\n  --release 8 correctly rejects the JDK 9+ javax.annotation.processing.Generated\n  import in the KSP/Dagger-generated code. The examples now register their own\n  toolchains with jvm_target 11.\n\n* Pass -no-stdlib on the Build Tools API path\n\nSet NO_STDLIB and NO_REFLECT after applying the user arguments, so the\nBuild Tools API path always compiles against exactly the declared\nclasspath."
    },
    {
      "commit": "c766a3eb8e2b575ca07f601dbe5c74f751480f2a",
      "tree": "87e13c92187d6f386ce62564f6b561e908b16eab",
      "parents": [
        "3e97b204e599bfa132f72593be957d2a84ae49ae"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Thu Aug 06 19:30:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 10:30:50 2026 -0700"
      },
      "message": "Forward runtime_deps on a sourceless kt_jvm_library (#1701)\n\n- A kt_jvm_library without srcs produced JavaInfo which omitted runtime_deps entirely.\n- Tests added."
    },
    {
      "commit": "3e97b204e599bfa132f72593be957d2a84ae49ae",
      "tree": "50ade8958617f0fd3a55c7b040461fd850ae0c79",
      "parents": [
        "b211d1027e4892e138406cd1e0a0009ded90ac37"
      ],
      "author": {
        "name": "Blaž Šnuderl",
        "email": "snuderl@gmail.com",
        "time": "Wed Aug 05 13:14:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 04:14:24 2026 -0700"
      },
      "message": "jdeps: record type arguments of a called function\u0027s return type (#1699)\n\nQualifiedAccessChecker records the resolved return type of a call but\npassed collectTypeArguments \u003d false, so for a call returning\nList\u003cReturnedClass\u003e only kotlin.collections.List was recorded. kotlinc\nstill requires ReturnedClass\u0027s jar on the compile classpath, so with\nexperimental_prune_transitive_deps the jar must be a direct dep while\nreport_unused_deps simultaneously flags it as UNUSED.\n\nRecord return-type type arguments the same way value-parameter type\narguments already are. isExplicit \u003d false is kept, so they land as\nIMPLICIT and strict deps is unaffected.\n\nCo-authored-by: Claude Fable 5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "b211d1027e4892e138406cd1e0a0009ded90ac37",
      "tree": "ca19bcacf14d23ddac8c4e698c46abfd663c9465",
      "parents": [
        "97e217ce0ad2992d08926a1658b6a7be65118b2a"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Aug 04 13:43:37 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 10:43:37 2026 -0700"
      },
      "message": "Split test deps into kotlin_rules_maven_test (#1698)"
    },
    {
      "commit": "97e217ce0ad2992d08926a1658b6a7be65118b2a",
      "tree": "40ced97719c43b7574264959ce1b90f6f199438d",
      "parents": [
        "c60399ee92ccaee9800a10d19700ceae89a62214"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Aug 04 12:51:00 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 09:51:00 2026 -0700"
      },
      "message": "Remove deprecated kotlin/kotlin.bzl (#1696)"
    },
    {
      "commit": "c60399ee92ccaee9800a10d19700ceae89a62214",
      "tree": "0939242a9d41f6c6abe44f24a387373702fa9d08",
      "parents": [
        "ec3eb83c7db52b87d12ddf684691f1580150fed8"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Tue Aug 04 12:36:41 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 09:36:41 2026 -0700"
      },
      "message": "Update Kotlin KSP to 2.3.11 (#1695)"
    },
    {
      "commit": "ec3eb83c7db52b87d12ddf684691f1580150fed8",
      "tree": "71c3c562dd479b9c1ee8f9a920ab6c9693d2cf79",
      "parents": [
        "de1ba90ba74cbd7130f5348bc910d2164ab1c27a"
      ],
      "author": {
        "name": "Blaž Šnuderl",
        "email": "blaz.snuderl@gmail.com",
        "time": "Tue Aug 04 18:11:48 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 09:11:48 2026 -0700"
      },
      "message": "Declare associate jars as direct dependencies (#1692)\n\n* Declare associate jars as direct dependencies\n\nWith experimental_remove_private_classes_in_abi_jars enabled, associates\ncontribute their class jar to the classpath instead of their compile jar,\nbecause the compile jar no longer carries the internal symbols an associate\nis allowed to see. --direct_dependencies was still derived from the compile\njars only, so strict deps reported the associate as an undeclared direct\ndependency:\n\n  error: [strict] Unexpected source or dependency\n    ** Please add the following dependencies: //foo:bar to //foo:bar_test\n\nwhich the user cannot act on, since a target in associates must not also be\nin deps.\n\nDeclare compile_deps.associate_jars alongside the compile jars. That depset\nalready resolves to whichever jar flavor ended up on the classpath, so this\nis a no-op when private class stripping is off.\n\nThe resulting jdeps now reference the associate class jar, and JdepsMerge\nreads the owning label from the manifest of every jar the jdeps mention, so\nthat jar is added to the action inputs as well.\n\nTested by an analysis test over both toolchain configurations, and by\nenabling the flag together with strict deps in the associates example, which\nfails to build without this change.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\n\n* Assert both associate jar flavors are JdepsMerge inputs\n\nThe merger reads the owning label out of the manifest of every path in the\nmerged jdeps, regardless of the kind of the entry. The class jar is what the\nused entries point at, and the compile jar stays in --direct_dependencies and\nso shows up as an unused entry, so both have to be action inputs.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "de1ba90ba74cbd7130f5348bc910d2164ab1c27a",
      "tree": "eaa6a0146ee427767c567781cfe39607de1ca2cc",
      "parents": [
        "01bf16406ae9fd2252a5cc7b16f6e15aeeaa6c59"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Tue Aug 04 04:34:05 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 03 21:34:05 2026 -0500"
      },
      "message": "Fix resource_strip_prefix labels naming a directory nested in the package (#1693)\n\nStrip prefixes naming a nested directory (like \"src/main/resources\")\nfailed analysis with \"Resource file ... is not under the specified\nprefix to strip\".\n\nEvery strip prefix is parsed as a label. Although the resolved string\nhad the correct \"pkg/path\" form, the \"pkg/\" part was stripped by the\nlogic added to compensate for the legacy workspace-root-relative\nspelling of the strip prefix.\n\nThe fix computes both workspace-root-relative and package-relative\ncandidate prefixes and keeps the one the packed resources actually live\nunder.\n\nAdded tests to cover every scenario in both spellings, including\nlayouts where the nested in-package path is by coincidence equal to the\npackage path from the workspace root."
    },
    {
      "commit": "01bf16406ae9fd2252a5cc7b16f6e15aeeaa6c59",
      "tree": "418b9b967a142c8abb2c3b6f1d0e9f5cb66c1053",
      "parents": [
        "f2b499c618f3d3ba930759c7f92df578f50f7081"
      ],
      "author": {
        "name": "Ben Lee",
        "email": "ben@ben.cm",
        "time": "Wed Jul 29 08:56:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 08:56:21 2026 -0700"
      },
      "message": "Support for conditional classpath reduction (#1680)\n\n* Support for conditional classpath reduction\n\n* Tests\n\n* More tests"
    },
    {
      "commit": "f2b499c618f3d3ba930759c7f92df578f50f7081",
      "tree": "719544e201658bbf1349570ead499bde46f84cc3",
      "parents": [
        "e3b3ee1f78e7d1b91267c1ccd7866a5ccee2bbdf"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Wed Jul 29 08:51:59 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 08:51:59 2026 -0700"
      },
      "message": "Update dependency rules_jvm_external to v7.1 (#1677)\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e3b3ee1f78e7d1b91267c1ccd7866a5ccee2bbdf",
      "tree": "f4a6a35a6c09f4e29baf351803274411f1fad7cb",
      "parents": [
        "a30f6487b1d8ef8998a8952f60a91bcbe11d804a"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Wed Jul 29 08:58:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 01:58:20 2026 -0500"
      },
      "message": "For BTAPI compiler ensure the code does not use JDK APIs newer than available in configured jvm_target (#1681)\n\nWhen compiling via \u0027experimental_build_tools_api\u0027, both kotlin and java sources compile against the JDK\nAPI surface of the configured target JVM platform instead of the JDK used to run the compiler.\nThe legacy (non-BTAPI) implementation is unchanged, so the stricter behavior arrives only with the explicit Build Tools API opt-in in the build configuration.\n\n- For kotlin sources use `-Xjdk-release\u003d\u003cjvm_target\u003e` flag matching the effective `-jvm-target`, unless the flag is set explicitly.\n- For java sources use `--release N` flag if it is supported by the compiler and javac should link against the JVM older than the compiler\u0027s own JVM.\n  Otherwise`-source N -target N` flags are used.\n- To pass stricter build configuration, declare `jvm_target \u003d \"11\"` on the test targets that are not actually Java 8 targets: their sources use JDK 9+/11+ APIs, or Dagger generates code using the newer APIs"
    },
    {
      "commit": "a30f6487b1d8ef8998a8952f60a91bcbe11d804a",
      "tree": "9ab6d8d72f6ebd96cfcafee40e0e565b318458cf",
      "parents": [
        "4dc407c3e400ed9c1079d234e365bacdba8d9570"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Tue Jul 28 14:59:01 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 07:59:01 2026 -0500"
      },
      "message": "Print BTAPI compiler errors and diagnostics to stderr stream (#1679)\n\n- compiler errors and warnings were not printed to the stderr as they should\n- run BTAPI compiler with \u0027-verbose\u0027 flag if tracing is enabled"
    },
    {
      "commit": "4dc407c3e400ed9c1079d234e365bacdba8d9570",
      "tree": "181dcdc59ac077ff747ff874f20af44c86913138",
      "parents": [
        "9d5d33765e053c90f14e5065b5d19a1717943f22"
      ],
      "author": {
        "name": "renovate[bot]",
        "email": "29139614+renovate[bot]@users.noreply.github.com",
        "time": "Thu Jul 23 09:50:00 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 09:50:00 2026 -0700"
      },
      "message": "Update dependency com.eed3si9n.jarjar:jarjar to v1.17.0 (#1668)\n\n* Update dependency com.eed3si9n.jarjar:jarjar to v1.17.0\n\n* Repin Maven dependencies for JarJar 1.17.0\n\n---------\n\nCo-authored-by: renovate[bot] \u003c29139614+renovate[bot]@users.noreply.github.com\u003e\nCo-authored-by: Ben Lee \u003cben@ben.cm\u003e"
    },
    {
      "commit": "9d5d33765e053c90f14e5065b5d19a1717943f22",
      "tree": "8067ad2e8a9b0baa16b0fc8966c4b749afa3a948",
      "parents": [
        "f34bb2c15c00e376b6982c33544287c72be3ad31"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Thu Jul 23 17:34:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 08:34:30 2026 -0700"
      },
      "message": "Fix broken compilation with BTAPI and add tests (#1663)\n\n- Add missing dependency with `org.jetbrains.kotlin.daemon.common` package required for BTAPI infrastructure\n- Pass the sources and the destination directory to the compiler as dedicated parameters.\n- Introduce the `KotlinCompiler` interface defining the exec() function contract.\n- Added `KotlinBuilderJvmBtaTest` and `useBuildToolsApi()` flag to test framework to enable compilation with BTAPI in tests.\n  In `KotlinAbstractTestBuilder` ensure that CompilationTaskInfo instance returned by CompilationTaskContext is the same as the JvmCompilationTask uses."
    },
    {
      "commit": "f34bb2c15c00e376b6982c33544287c72be3ad31",
      "tree": "2789b1fb8d06e7e230d2f6bd8d5b4fee5e012c3c",
      "parents": [
        "96085bf7f752a6da82f5ccd36a28762ad5868df9"
      ],
      "author": {
        "name": "nikolai-manzhos",
        "email": "nikolaim@uber.com",
        "time": "Thu Jul 23 17:31:39 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 08:31:39 2026 -0700"
      },
      "message": "Isolate KSP2 processor classpath from KAPT processor JARs (#1670)\n\nWhen a target has both KAPT and KSP plugins, the KSP2 action was receiving all processor JARs — including KAPT-only processors — on its --processor_classpath. If any of those KAPT JARs contained a META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider registration (e.g. dagger-compiler 2.48+), KSP2 would auto-discover and run them, causing spurious type resolution failures.\n\n- Add `_targets_to_ksp_transitive_runtime_jars` in plugins.bzl that collects processor JARs only from KspPluginInfo targets, excluding JavaPluginInfo/JavaInfo (KAPT) processors\n- Pass this KSP-only depset to `_run_ksp_builder_actions` for `--processor_classpath`, while KAPT and KotlinCompile actions continue to receive the full `transitive_runtime_jars`\n- Fix `_targets_to_annotation_processors` checking `_KspPluginInfo in targets` (the list) instead of `_KspPluginInfo in t` (the loop variable)\n- Add analysis test verifying KSP2 processor classpath excludes KAPT JARs when both plugin types are present"
    },
    {
      "commit": "96085bf7f752a6da82f5ccd36a28762ad5868df9",
      "tree": "beddb69ddacba55ccef2faed731035e0d02c613c",
      "parents": [
        "41f7bd49a9911cb767dccdb78cd230d912b22bd7"
      ],
      "author": {
        "name": "nikolai-manzhos",
        "email": "nikolaim@uber.com",
        "time": "Thu Jul 23 17:19:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 08:19:53 2026 -0700"
      },
      "message": "Fingerprint KSP2 classloader cache by jar content, not just path (#1672)\n\nBazel keeps the same output path across incremental rebuilds of a KSP processor, so the path-only cache key can\u0027t tell a recompiled jar from an unchanged one. This causes the worker to reuse a stale classloader after a processor is edited and rebuilt.\n\nReplace `computeIfAbsent` with `compute` and pair each cached classloader with a SHA-256 content fingerprint (path + size + bytes). When the fingerprint changes for a cached classpath, the stale classloader is closed and replaced. This keeps at most one entry per distinct classpath, so it can\u0027t regress the metaspace OOM the cache was originally added to fix."
    },
    {
      "commit": "41f7bd49a9911cb767dccdb78cd230d912b22bd7",
      "tree": "e6188be747c2182ac8e7bae4ab4262677f2321c3",
      "parents": [
        "91de636f24a65a4809707d62fa5e05e055664c09"
      ],
      "author": {
        "name": "nikolai-manzhos",
        "email": "nikolai.manzhos@gmail.com",
        "time": "Thu Jul 23 15:59:40 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 06:59:40 2026 -0700"
      },
      "message": "Only pass KSP-generated srcjars to javac when the processor generates Java (#1671)\n\nPreviously, KSP-generated source jars were always passed to javac for compilation. For KSP2 processors that only generate Kotlin, this is unnecessary since those sources are already compiled via kotlinc and the compiled classes are included in the KSP classes jar. This change conditionally includes KSP srcjars in the javac source_jars only when `generates_java \u003d True` is set on the KSP plugin, avoiding redundant compilation."
    },
    {
      "commit": "91de636f24a65a4809707d62fa5e05e055664c09",
      "tree": "16521f2a1f9e0c40dad1036db595cccb3c55e8ca",
      "parents": [
        "f49d58943427308a002e33dcd75f68b1296ad6dc"
      ],
      "author": {
        "name": "eugenezh",
        "email": "194462+eugenezh@users.noreply.github.com",
        "time": "Thu Jul 23 14:57:09 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 05:57:09 2026 -0700"
      },
      "message": "Fix cli_toolchain ignoring its language_version attribute (#1669)"
    }
  ],
  "next": "f49d58943427308a002e33dcd75f68b1296ad6dc"
}
