)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "600d78a2ad5ed44eb0583f7654c2f9453948c15c",
      "old_mode": 33188,
      "old_path": "examples/path_mapping/.bazelrc",
      "new_id": "233b9b8de2277e252efa5aa763daf52dfcf199ff",
      "new_mode": 33188,
      "new_path": "examples/path_mapping/.bazelrc"
    },
    {
      "type": "modify",
      "old_id": "c327035db85f64980d3562927e7e70c1562709fe",
      "old_mode": 33188,
      "old_path": "examples/path_mapping/MODULE.bazel",
      "new_id": "7df6a1d48b055f20556d17a82fa2198ad926b147",
      "new_mode": 33188,
      "new_path": "examples/path_mapping/MODULE.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "18804a92ca5fbd1fa153dba837cc267d9368f867",
      "new_mode": 33188,
      "new_path": "examples/path_mapping/src/allopen/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e3b13305df105d6a68d834e35327686575420e15",
      "new_mode": 33188,
      "new_path": "examples/path_mapping/src/allopen/OpenForTesting.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "336e306f8284c7b9c85827be8c99f165258769f2",
      "new_mode": 33188,
      "new_path": "examples/path_mapping/src/allopen/User.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "681c464b117925514dda9e27aa5ecda2d24792c8",
      "new_mode": 33188,
      "new_path": "examples/path_mapping/src/allopen/UserIsOpen.kt"
    },
    {
      "type": "modify",
      "old_id": "0cc6c7af499a2e6122cbc48719999d25fb782c26",
      "old_mode": 33188,
      "old_path": "kotlin/internal/jvm/compile.bzl",
      "new_id": "3d9405952c5275e6837d03ca2450d9f88b6370b5",
      "new_mode": 33188,
      "new_path": "kotlin/internal/jvm/compile.bzl"
    },
    {
      "type": "modify",
      "old_id": "2dcefcfa794326e12e331a6e13b21aadcd11ac6e",
      "old_mode": 33188,
      "old_path": "src/main/kotlin/io/bazel/kotlin/builder/tasks/KotlinBuilder.kt",
      "new_id": "7790569f609e7751d0575b74fc054644f1e1d815",
      "new_mode": 33188,
      "new_path": "src/main/kotlin/io/bazel/kotlin/builder/tasks/KotlinBuilder.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "155a05100626db813928bb77b5228c2f6da3efe3",
      "new_mode": 33188,
      "new_path": "src/main/kotlin/io/bazel/kotlin/builder/tasks/PluginsPayloadParser.kt"
    },
    {
      "type": "modify",
      "old_id": "127666ab4bd14c4fbfe13a29d9d534067cc87004",
      "old_mode": 33188,
      "old_path": "src/main/protobuf/kotlin_model.proto",
      "new_id": "3316dadd1b497eaa6a4463eabe622e21899c2375",
      "new_mode": 33188,
      "new_path": "src/main/protobuf/kotlin_model.proto"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8298838760729c6f8eaaa479a04e13d032f9e3fa",
      "new_mode": 33188,
      "new_path": "src/main/starlark/core/plugin/payload.bzl"
    },
    {
      "type": "modify",
      "old_id": "6d431c457898056f9c6b8e3801f87787d05691db",
      "old_mode": 33188,
      "old_path": "src/test/kotlin/io/bazel/kotlin/builder/tasks/BUILD.bazel",
      "new_id": "27ad0f62cf14bdb900b3f4bf4b1259509ccda17a",
      "new_mode": 33188,
      "new_path": "src/test/kotlin/io/bazel/kotlin/builder/tasks/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ce1ffc92cc9efb3084ac7b03a7cb527fcb3f5c90",
      "new_mode": 33188,
      "new_path": "src/test/kotlin/io/bazel/kotlin/builder/tasks/PluginsPayloadExpansionTest.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bd179f646775f0435b90aa670dd3efd392986ea2",
      "new_mode": 33188,
      "new_path": "src/test/kotlin/io/bazel/kotlin/builder/tasks/PluginsPayloadParserTest.kt"
    },
    {
      "type": "modify",
      "old_id": "8cb88c20aa79242c089fcba5a638bdb10ca614f1",
      "old_mode": 33188,
      "old_path": "src/test/starlark/core/plugin/kapt/kapt_test.bzl",
      "new_id": "5a0df1acdb92282d3f82fcf49dab35b8ae7c8913",
      "new_mode": 33188,
      "new_path": "src/test/starlark/core/plugin/kapt/kapt_test.bzl"
    },
    {
      "type": "modify",
      "old_id": "da56ccb75e666e7c01f6bd21b4b59b210a655ceb",
      "old_mode": 33188,
      "old_path": "src/test/starlark/core/plugin/test.bzl",
      "new_id": "2deed650748a9647f8da3b3a184e09279be86e6a",
      "new_mode": 33188,
      "new_path": "src/test/starlark/core/plugin/test.bzl"
    },
    {
      "type": "modify",
      "old_id": "7311d0e17623be8228dd1648599d814640c7c5af",
      "old_mode": 33188,
      "old_path": "src/test/starlark/internal/jvm/BUILD.bazel",
      "new_id": "54b8007778451f6b1f6c47c0bd44371d45dcadfb",
      "new_mode": 33188,
      "new_path": "src/test/starlark/internal/jvm/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cff1167dc915d77ed649cde89d7958b633bf968b",
      "new_mode": 33188,
      "new_path": "src/test/starlark/internal/jvm/plugin_payload_test.bzl"
    },
    {
      "type": "modify",
      "old_id": "42cf81eb79a437d89954887ba540f623f409e17c",
      "old_mode": 33188,
      "old_path": "src/test/starlark/truth.bzl",
      "new_id": "adc672284f5c8660a6cfd7f80967c01870d4ada8",
      "new_mode": 33188,
      "new_path": "src/test/starlark/truth.bzl"
    }
  ]
}
