)]}'
{
  "log": [
    {
      "commit": "65d9d2760576b20624fa9acc9051f23dcfcb23c4",
      "tree": "afd835210b75415925f31d717c821990a864a360",
      "parents": [
        "5a824ee6c91e12e3b79ed57f035aac0925ccc5bb"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Thu Jul 30 10:20:04 2026 +0000"
      },
      "committer": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Thu Jul 30 10:38:23 2026 +0000"
      },
      "message": "kleaf: make pahole mandatory for kernel_build() macro\n\nPahole is required by kernel_env() and thereby must be mandatory for\nkernel_build() and kernel_env().\n\nBug: 477549297\nChange-Id: If5c39003dce28ef9a346dd9e8660a4c96f22ce1a\n"
    },
    {
      "commit": "5a824ee6c91e12e3b79ed57f035aac0925ccc5bb",
      "tree": "29a5942221bd622b6cbe31969e2d0f8a3f4105b7",
      "parents": [
        "c4cfb73aa00fd34662249c9dd97b9257c52541f1"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Thu Jul 30 02:19:03 2026 -0700"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Thu Jul 30 02:19:30 2026 -0700"
      },
      "message": "Revert \"kleaf: register Clang Python toolchain by default\"\n\nThis reverts commit c4cfb73aa00fd34662249c9dd97b9257c52541f1.\n\nReason for revert: Potential build break in b/540358214\n\nBug: 540358214\nBug: 526725799\nChange-Id: I2769888173d402ff80cd1a1e29efafed97261790\n"
    },
    {
      "commit": "c4cfb73aa00fd34662249c9dd97b9257c52541f1",
      "tree": "0ddfd857a4f4e5c9829f6564a4199ea5c7eb1f9e",
      "parents": [
        "c1cc66073a8ba24792f0be8c1c839153aec389e0"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Mon Jul 06 20:19:44 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Jul 29 15:59:52 2026 -0700"
      },
      "message": "kleaf: register Clang Python toolchain by default\n\nRegister the Clang-bundled Python toolchain (@kleaf_python_toolchain//:py_toolchain)\nin MODULE.bazel by default, replacing the hermetic Python from prebuilts/build-tools.\n\nAlso remove the now redundant --extra_toolchains flag from canary.bazelrc.\n\nBug: 526725799\nTest: tools/bazel run //common:kernel_aarch64_dist\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I24a16b9c105d68982bceaec1d55e9d71bc2c2607\n"
    },
    {
      "commit": "c1cc66073a8ba24792f0be8c1c839153aec389e0",
      "tree": "29a5942221bd622b6cbe31969e2d0f8a3f4105b7",
      "parents": [
        "82afd11020e97df8fea3c89a1180819edd17f0f2"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed Jul 22 21:57:16 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Jul 29 12:57:22 2026 -0700"
      },
      "message": "kleaf: Python\u0027s executable_dispatcher does not forward argv[0].\n\nAdd forward_argv0 attribute to executable_dispatcher (default True).\n\nWhen building under --nohermetic_tools_use_symlinks, executable_dispatcher\ninvokes target binaries via C++ wrappers (_dispatched/*). By default, the\nwrapper forwards argv[0] to the target binary, which is required for\nmulticall binaries like toybox (cp, ls, etc.) to identify the applet.\n\nHowever, Python relies on argv[0] to calculate sys.prefix and locate its\nstandard library relative to the binary path. When argv[0] points to the\n_dispatched wrapper binary directory, Python fails to import encodings.\n\nSetting forward_argv0 \u003d False for Python targets causes the wrapper to\npass the real target binary path as argv[0], enabling proper CPython\npath resolution without affecting multicall tool dispatches.\n\nBug: 526725799\nTest: KleafIntegrationTestShard2.test_nohermetic_tools_use_symlinks\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: Idef2f7609e7296016751e675160d4dca48e95472\n"
    },
    {
      "commit": "82afd11020e97df8fea3c89a1180819edd17f0f2",
      "tree": "e1959e1b18208b1406a9c9f36545aeea5e191bd2",
      "parents": [
        "fcb5ee1d52ef6e5a85c130a0b67e24e5e332c210"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue Jul 28 16:31:06 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Jul 29 11:28:38 2026 -0700"
      },
      "message": "kleaf: relax kernel_build check for GKI modules\n\nRelax the kernel_build check in Kleaf to allow grouping and installing\nexternal modules built against GKI alongside device-specific modules.\n\nPreviously, check_kernel_build enforced that all modules in a group\nmust share the identical kernel_build. This prevented packaging GKI-\nbuilt modules (e.g., trusty) with device modules (e.g., tuna_display),\neven though the device kernel uses GKI as its base_kernel and is\nbinary-compatible.\n\nWe now allow different kernel_build targets if they have a base_kernel\nrelationship. If the kernel_build is inferred (not explicitly set in\nkernel_modules_install), we resolve to the most derived kernel build\nin the group to ensure the correct environment is used for depmod and\npackaging.\n\nBug: 330383485\nTest: tools/bazel test //build/kernel/kleaf/tests/kernel_module_group_test\nTest: tools/bazel test //build/kernel/kleaf/tests/kernel_modules_install_test\nAssisted-by: Antigravity:Gemini\nChange-Id: I44067331ee71194aa24b3b9c4e916399d6c0da4e\n"
    },
    {
      "commit": "fcb5ee1d52ef6e5a85c130a0b67e24e5e332c210",
      "tree": "b7675086150519e172c5d326d5e48d6991e78902",
      "parents": [
        "1fae9623f01f1d6997fc419a49acc38d09a1cddc"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue Jul 28 16:30:46 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Jul 29 11:24:41 2026 -0700"
      },
      "message": "kleaf: add base_kernel_label to KernelBuildExtModuleInfo\n\nAdd base_kernel_label to KernelBuildExtModuleInfo provider to propagate\nthe base_kernel information of a kernel_build to dependent external\nmodules. This is a prerequisite for allowing GKI-built modules to be\npackaged with device modules.\n\nBug: 330383485\nTest: tools/bazel test //build/kernel/kleaf/tests/kernel_module_group_test\nTest: tools/bazel test //build/kernel/kleaf/tests/kernel_modules_install_test\nAssisted-by: Antigravity:Gemini\nChange-Id: I10a95dab6ca8c28b4128c5fe072e690c052b4403\n"
    },
    {
      "commit": "1fae9623f01f1d6997fc419a49acc38d09a1cddc",
      "tree": "cb50073f38478e652e7de50d53540bfa44ece733",
      "parents": [
        "f637c235373554d6e6bf197569cb3e930df0dac2"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Tue Jul 21 13:13:40 2026 +0000"
      },
      "committer": {
        "name": "Sid Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Wed Jul 29 06:22:35 2026 -0700"
      },
      "message": "kleaf: remove support for prebuilt pahole\n\nBug: 477549297\nChange-Id: I586ed102e2d40a06afdcab7bdeba3b34a354d984\n"
    },
    {
      "commit": "f637c235373554d6e6bf197569cb3e930df0dac2",
      "tree": "77490a70fdd1651a6187c831c399a070c366c487",
      "parents": [
        "5c4378b04772468cd6671d5916b88a9b6ed02109"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Wed Jul 29 11:12:25 2026 +0000"
      },
      "committer": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Wed Jul 29 11:12:25 2026 +0000"
      },
      "message": "kleaf: make external/stg mandatory\n\nBug: 519089497\nChange-Id: I0ecb29b9d1e7377226c3ad0a80f284ddcf6e7d56\n"
    },
    {
      "commit": "5c4378b04772468cd6671d5916b88a9b6ed02109",
      "tree": "2dec44638bed49ca399bf1c5a46495b7070e6104",
      "parents": [
        "1606f27467001c0a70f60fd01947ad237f229994"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue Jul 28 06:33:56 2026 -0700"
      },
      "committer": {
        "name": "Wake Liu",
        "email": "wakel@google.com",
        "time": "Tue Jul 28 23:57:41 2026 -0700"
      },
      "message": "Revert \"Kleaf: Disable broken tests\"\n\nThis reverts commit 557942b5f1ebeacc2c7d73fe0db7483049d6b8ed.\n\nReason for revert: Reason for revert: Tests have been fixed by http://r.android.com/4187378\n\nBug: 536813037\nChange-Id: I4b2d3d66319780a688a7518eb52b8e6b5418502b\n"
    },
    {
      "commit": "1606f27467001c0a70f60fd01947ad237f229994",
      "tree": "4949817323a895e9f4641b5ef31a11a9b8d575f1",
      "parents": [
        "1cedb0cd7737b107b588c5a3fff7b58e761f35b7"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Thu Jul 23 16:44:19 2026 +0000"
      },
      "committer": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Fri Jul 24 13:43:56 2026 +0000"
      },
      "message": "kleaf: add fake pahole for DdkWorkspaceSetupTest\n\nBug: 477549297\nChange-Id: I969590c54085ec1ee8b501bb3d38f96048230569\n"
    },
    {
      "commit": "1cedb0cd7737b107b588c5a3fff7b58e761f35b7",
      "tree": "54597c46b74129130cb26480b23a31a8593a2a7a",
      "parents": [
        "cd0877f852291037c189199f63c44cde9b055179"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Wed Jul 22 09:56:12 2026 +0000"
      },
      "committer": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Thu Jul 23 14:10:52 2026 +0000"
      },
      "message": "kleaf: add and use fake pahole for tests under kleaf/tests\n\nThis adds a `fake_pahole` target and updates all `kernel_build()`\ntargets in `kleaf/tests`, which do not use sources from kernel/common,\nto use use the `fake_pahole` target.\n\nBug: 477549297\nChange-Id: I0ed7e1e7a347db2d46c173cf219ad23904dab3b1\n"
    },
    {
      "commit": "cd0877f852291037c189199f63c44cde9b055179",
      "tree": "e5a6fd545f615885616f4559d044d559f30724e0",
      "parents": [
        "3c8c71e0d15eb398f8ee4faa770d4026a0af6bb0"
      ],
      "author": {
        "name": "Wake Liu",
        "email": "wakel@google.com",
        "time": "Wed Jul 22 07:36:57 2026 +0000"
      },
      "committer": {
        "name": "Wake Liu",
        "email": "wakel@google.com",
        "time": "Wed Jul 22 05:49:25 2026 -0700"
      },
      "message": "Kleaf: Fix libcap build by adding cap_syscalls.c\n\nThe upgrade of libcap to 2.78 refactored the weak definition of\npsx_load_syscalls from cap_proc.c into a new file cap_syscalls.c.\nSince cap_syscalls.c was missing from the srcs of the libcap\ntarget in libcap.BUILD, linking targets depending on libcap (like\nkselftests) failed with:\n\nld.lld: error: undefined symbol: psx_load_syscalls\n\nFix this by adding libcap/cap_syscalls.c to the libcap library srcs.\n\nBug: 536813037\nTest: tools/bazel build //common:kselftest_mm_mlock_random_test --config\u003dandroid_arm64\nChange-Id: I2557ec9c74a436432858eb7a7286fbde897f9098\n"
    },
    {
      "commit": "3c8c71e0d15eb398f8ee4faa770d4026a0af6bb0",
      "tree": "1a4ae07cb0c659c4a81ba0405db981907a0641ce",
      "parents": [
        "8fca7940abd97cdd5eade72bba44a09c1d28875b"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Wed Jul 22 09:56:06 2026 +0000"
      },
      "committer": {
        "name": "Sid Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Wed Jul 22 04:29:34 2026 -0700"
      },
      "message": "kleaf: pass pahole to test kernel builds\n\nExplicitly pass //common:pahole to test kernels that use sources from\nkernel/common.\n\nBug: 477549297\nChange-Id: Id01abbf60fe774db52a242d661fa64875c6c540c\n"
    },
    {
      "commit": "8fca7940abd97cdd5eade72bba44a09c1d28875b",
      "tree": "28a2ba157832d8074abf657bde17e447943336ee",
      "parents": [
        "4c095d7e2affdd1a4fb87584b00bde71e05f98f0"
      ],
      "author": {
        "name": "Norman Bintang",
        "email": "normanbt@google.com",
        "time": "Thu Jun 25 17:06:50 2026 +0800"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jul 21 10:32:44 2026 -0700"
      },
      "message": "kleaf: debug_defconfig: enable SND_PCM_XRUN_DEBUG\n\nEnable CONFIG_SND_PCM_XRUN_DEBUG to allow debugging of PCM ring buffer\noverrun/underrun. This also requires enabling CONFIG_SND_VERBOSE_PROCFS\nto satisfy the dependency.\n\nBug: None\nTest: cat /proc/asound/card0/pcm0p/sub0/status has xrun_counter\nTAG\u003dagy\nCONV\u003ddca5d09f-7bcb-4224-9c07-2d36ad54ef42\n\nChange-Id: Ic967365366a786de06df331dc645ea7f6faaf630\n"
    },
    {
      "commit": "4c095d7e2affdd1a4fb87584b00bde71e05f98f0",
      "tree": "a81f8bc3ed3204f1e10b7b837789b01e7ca3a81e",
      "parents": [
        "20625b53b09538bd536c7a65fa55a31e91b47bcd"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Tue Jul 21 12:33:55 2026 +0000"
      },
      "committer": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Tue Jul 21 12:38:12 2026 +0000"
      },
      "message": "kleaf: pass pahole to all kernel builds in common kernels\n\nPass pahole parameter to additional kernel_build() targets defined by\ncommon kernels to use source-built pahole for all kernel_build()\ntargets.\n\nBug: 477549297\nChange-Id: Iccec2abe077b9dbc493ec3508dfc6fdd7a495c91\n"
    },
    {
      "commit": "20625b53b09538bd536c7a65fa55a31e91b47bcd",
      "tree": "b22fb2aefff77e91f12acce2751618718ba3294e",
      "parents": [
        "557942b5f1ebeacc2c7d73fe0db7483049d6b8ed"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue Jul 21 10:39:56 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue Jul 21 10:39:56 2026 +0000"
      },
      "message": "Kleaf: tests: Set explicit dep in jemalloc\n\n* This is a new runtime dependency from musl\n\nBug: 535485204\nChange-Id: Iaa82bdd6248df872f9bee308c3c479400e3054e1\n"
    },
    {
      "commit": "557942b5f1ebeacc2c7d73fe0db7483049d6b8ed",
      "tree": "806f5f0e701f154964a5c2743786171a522b8aca",
      "parents": [
        "f1d107c461d400ddd805d9124b3a0f61f10710bf"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Mon Jul 20 21:11:20 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Jul 20 18:24:14 2026 -0700"
      },
      "message": "Kleaf: Disable broken tests\n\n* These have been recently broken by a dependency upgrade. This commit\n  disables them while they get fixed.\n\nBug: 536813037\nChange-Id: I65710be9f7026dc839d2f7b52ffecd38c6c13e40\n"
    },
    {
      "commit": "f1d107c461d400ddd805d9124b3a0f61f10710bf",
      "tree": "614e69102edd0cdcb7ba5b8c4993c62d3ca162fa",
      "parents": [
        "5bf2c95a681152cf99b74f7426f5c9a4ed67acae"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Fri Jul 17 12:08:05 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Fri Jul 17 12:08:05 2026 +0000"
      },
      "message": "Kleaf: tests: libcap: Set explicit dep in jemalloc\n\n* This is a new runtime dependency from musl\n\nBug: 535485204\nChange-Id: Ie7cf50c593626d41117f3dd3d6d0d63ab90344a0\n"
    },
    {
      "commit": "5bf2c95a681152cf99b74f7426f5c9a4ed67acae",
      "tree": "7e5c0b43a335c77d16a7bc1d3cf7d1a041899e8b",
      "parents": [
        "01b9393314ca4792409a56cc2e314b8749bbde12"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Thu Jul 16 16:10:09 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Thu Jul 16 10:15:14 2026 -0700"
      },
      "message": "Kleaf: toybox: Add dependency on jemalloc lib\n\n* This is needed once musl libc is updated to the version with this\n  dependency.\n\nBug: 535485204\nChange-Id: Ie77dfba37564d8605fc5044e48e83adb11e64f3f\n"
    },
    {
      "commit": "01b9393314ca4792409a56cc2e314b8749bbde12",
      "tree": "7bf4fc3d1dd204dea114f86a47037de585117ace",
      "parents": [
        "3ecdddfa167d891aaff545b1e3d2e8a4f55190fd"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Tue Jul 14 15:19:07 2026 +0000"
      },
      "committer": {
        "name": "Sid Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Thu Jul 16 06:53:43 2026 -0700"
      },
      "message": "kleaf: add pahole argument to kernel_build test targets\n\nThis makes the kernel builds use source-built pahole.\n\nBug: 477549297\nChange-Id: I6c676fa88de386a6aad0d14ab98d6ee74cd028b2\n"
    },
    {
      "commit": "3ecdddfa167d891aaff545b1e3d2e8a4f55190fd",
      "tree": "1944b4ea6a8edb71c3f56ca741960bea0ac772b1",
      "parents": [
        "fc4f628e6cf78cdcdee4ac2221b7d53198b3934a"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri Jun 26 18:48:44 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Jul 15 11:50:00 2026 -0700"
      },
      "message": "kleaf: Disable rules_rust toolchain_generated_sysroot globally\n\nWe disable the automatic sysroot generation in rules_rust globally in\ncommon.bazelrc using canonical absolute repository syntax.\n\nThis aligns the entire workspace with GBL\u0027s bare-metal requirements,\nwhere GBL\u0027s UEFI toolchains explicitly override the sysroot with\n/dev/null and link core/alloc from source.\n\nEven though this is disabled globally, all host and target Rust tests\nstill pass successfully:\n1. For host compilation (tests/tools): When no --sysroot is passed,\n   rustc falls back to its default built-in sysroot (relative to the\n   binary), which correctly contains the host std library.\n2. For Android target compilation: rules_rust still appends the\n   library search paths (-L) pointing to the precompiled target\n   standard libraries (provided via rust_std). The compiler\n   successfully resolves the standard library under the --target\n   specification without needing an explicit --sysroot flag.\n\nWe also delete the redundant GBL-specific flag from gbl.bazelrc.\n\nTAG\u003dagy\nCONV\u003d275cc5d9-a7b7-439a-a560-76b83cbd139d\n\nBug: 477319857\nTest: tools/bazel test --rust //build/kernel/kleaf/tests/rust_test:rust_test\nTest: tools/bazel build --rust //common:kernel_aarch64\nTest: tools/bazel build --config\u003dgbl //bootable/libbootloader:gbl_efi_dist\nChange-Id: I3a3ea9e44f9ee2b9c7a847a024e34f691ab36a4e\n"
    },
    {
      "commit": "fc4f628e6cf78cdcdee4ac2221b7d53198b3934a",
      "tree": "2f23e80d490f804ac7d24be96ba50d78c380acc6",
      "parents": [
        "fc607bee4a1c731b29902b317f13bacbcf34242e"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Tue Jul 14 16:38:58 2026 +0000"
      },
      "committer": {
        "name": "Sid Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Wed Jul 15 06:36:37 2026 -0700"
      },
      "message": "kleaf: add stg_from_sources flag\n\nIntroduces a new bool_flag --stg_from_sources that allows picking\nthe stg and stgdiff tools from sources (@stg//:stg, @stg//:stgdiff)\ninstead of using the prebuilts from //prebuilts/kernel-build-tools.\n\nBug: 519089497\nChange-Id: Ib6049a5569d66a77fa561bf85e018ba485fb50bc\n"
    },
    {
      "commit": "fc607bee4a1c731b29902b317f13bacbcf34242e",
      "tree": "e75f973e5edb1736766f945109d871e70725fefb",
      "parents": [
        "f20fd7b962ae5b8a08e7281d44e8ffb513782d2c"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Tue Jul 14 16:18:13 2026 +0000"
      },
      "committer": {
        "name": "Sid Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Wed Jul 15 06:36:09 2026 -0700"
      },
      "message": "kleaf: add build rules for external/stg\n\nBug: 519089497\nChange-Id: Ic80ab2d0911697dbe5478097f02256e3ec857877\n"
    },
    {
      "commit": "f20fd7b962ae5b8a08e7281d44e8ffb513782d2c",
      "tree": "fbfbf8262f00a9c1e8a01a5ed658ec71f4fa9c08",
      "parents": [
        "cb9386d916faf828076a135337e6b0597343c1f4"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue Jun 02 00:08:26 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jul 14 14:46:55 2026 -0700"
      },
      "message": "kleaf: Refactor kernel_toolchains to resolve Rust toolchain\n\nThis commit updates Kleaf\u0027s Kbuild environment setup (kernel_toolchains.bzl)\nto use toolchain resolution instead of referring to prebuilt rust binaries\ndirectly.\n\nWe inline the rust environment setup logic into the kernel_toolchains rule\nimplementation because Bazel subrules are limited to at most 1 toolchain,\nand we need both Rust and Bindgen toolchains.\n\nWe also remove the deprecated attributes rust_toolchain_version, _rust_tools,\nand _bindgen from kernel_toolchains rule.\n\nTAG\u003dagy\nCONV\u003d275cc5d9-a7b7-439a-a560-76b83cbd139d\n\nBug: 284390729\nBug: 489310593\nTest: tools/bazel test //build/kernel/kleaf/tests/rust_test:rust_test\nTest: tools/bazel test --rust //build/kernel/kleaf/tests/rust_test:rust_test\nTest: tools/bazel build //common:kernel_aarch64\nTest: tools/bazel build --rust //common:kernel_aarch64\nTest: tools/bazel build --config\u003dgbl //bootable/libbootloader:gbl_efi_dist\nTest: tools/bazel test --config\u003dhermetic_cc //build/kernel/kleaf/tests:tests\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I1e87b899e5ca2bac032b65b67c9e9e066fad08a2\n"
    },
    {
      "commit": "cb9386d916faf828076a135337e6b0597343c1f4",
      "tree": "247496c2914d17688b4b9db85b6b3ee097d4b4d1",
      "parents": [
        "331c0aab28e552e5f6e3b255213066785f68f3f0"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Wed Jul 01 12:48:56 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jul 14 13:16:53 2026 -0700"
      },
      "message": "kleaf: add tests for compdb generated paths\n\nAdd both a lightweight analysis test and an integration test\nto verify that single-source DDK modules generate correct\nddk_modinfo.c inclusion paths and stage the file correctly\nin out-of-tree workspaces.\n\nBug: 527249773\nTest: tools/bazel test //build/kernel/kleaf/tests/ddk_test:makefiles_test_suite\nTest: tools/bazel run //build/kernel/kleaf/tests/integration_test -- DdkWorkspaceSetupTest.test_compile_commands_reachable\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I1915d98678a2fce584e55588c65f20434139a9ac\n"
    },
    {
      "commit": "331c0aab28e552e5f6e3b255213066785f68f3f0",
      "tree": "63f2853aa9858198c8b8169ecbae1d4f9687c252",
      "parents": [
        "79c6256e8ce3b6624a1231845dd37692cf3cbf7e"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Wed Jul 01 12:48:51 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jul 14 13:16:53 2026 -0700"
      },
      "message": "kleaf: fix ddk_modinfo.c inclusion in exported compdb\n\nSingle-source DDK modules write a `.cflags` file containing an implicit\ninclude flag: `-include $(ROOT_DIR)/\u003cpackage\u003e/ddk_modinfo.c`.\nHowever, `ddk_modinfo.c` is a transient build artifact generated inside\nthe makefiles sandbox directory and does not exist in the workspace\nsource checkout. When compiling via Bazel, this works because the\ncompiler runs inside the sandbox.\n\nBut when exporting `compile_commands.json` for IDE use, the export\nscript replaces `$(ROOT_DIR)` with the absolute workspace directory,\nleading to missing file errors in IDE indexing since `ddk_modinfo.c` is\nnot in the source checkout.\n\nFix this by:\n1. Changing the generated cflags include path to point to\n   `$(COMMON_OUT_DIR)` instead of `$(ROOT_DIR)`.\n2. Staging all generated source/header files (including ddk_modinfo.c)\n   from the sandbox makefiles directory to the build output directory\n   `COMMON_OUT_DIR` during the `KernelModule` build step. This is\n   generalized to support any future generated files.\n3. Replacing `$(COMMON_OUT_DIR)` with the real local output directory\n   path when writing compilation flag files.\n\nBug: 527249773\nTest: tools/bazel run //common-modules/virtual-device:virtual_device_x86_64_compile_commands\nTest: tools/bazel run //build/kernel/kleaf/tests/integration_test -- DdkWorkspaceSetupTest\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: Ia08238549451e3a8b96b5d8041809af3991d1230\n"
    },
    {
      "commit": "79c6256e8ce3b6624a1231845dd37692cf3cbf7e",
      "tree": "3783b918cb100f8736b211a9f4f429bad48e118d",
      "parents": [
        "0166030002ca85945d55e25ef0f431a11047dc66"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Fri Jul 03 21:51:49 2026 +0000"
      },
      "committer": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Thu Jul 09 14:55:19 2026 +0000"
      },
      "message": "Migrate zlib to use bzlmod module\n\nzlib is a dependency for the protobuf bzlmod module, thereby requiring\nzlib to be a bzlmod module too.\n\nBug: 519089497\nChange-Id: Ib0e6534050b43e3402bfb9f775a3f94ecac8eb14\n"
    },
    {
      "commit": "0166030002ca85945d55e25ef0f431a11047dc66",
      "tree": "58f375f07633152562945986a1deb63260af5d2f",
      "parents": [
        "9b10a66b6583d7f7aa09bde74c9db783399745db"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Thu Jun 11 15:14:16 2026 +0000"
      },
      "committer": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Thu Jul 09 14:50:54 2026 +0000"
      },
      "message": "Integrate protobuf as bzlmod module from sources\n\nAdd dependency on \u0027protobuf\u0027 module in MODULE.bazel and override it\nto local \u0027external/protobuf\u0027. Remove the fake protobuf module.\n\nBug: 519089497\nChange-Id: Ib3fc85a35a633612637e95f880829ef0e28e28a0\n"
    },
    {
      "commit": "9b10a66b6583d7f7aa09bde74c9db783399745db",
      "tree": "0cdbddf69aaea28978a82cede9e697df3c550c9e",
      "parents": [
        "5049d7e2e3e9b38ad3f263778db534959787fcba"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri Jun 26 18:11:58 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Jul 06 14:21:40 2026 -0700"
      },
      "message": "kleaf: Delete --override_module\u003drules_rust_bindgen\u003d from gbl.bazelrc\n\nWe delete the rules_rust_bindgen module override from gbl.bazelrc,\nas the module override is in @kleaf\u0027s MODULE.bazel.\n\nTAG\u003dagy\nCONV\u003d275cc5d9-a7b7-439a-a560-76b83cbd139d\n\nBug: 477319857\nTest: tools/bazel build --config\u003dgbl //bootable/libbootloader:gbl_efi_dist\nChange-Id: Iee8d6a21c54d72a4faadcc15fa4db23ef9d2e396\n"
    },
    {
      "commit": "5049d7e2e3e9b38ad3f263778db534959787fcba",
      "tree": "fcb25563544d79981412d2a89ad086991d27609f",
      "parents": [
        "d1216aa855d5203bb0eb087af6c911894373d0fa"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri Jun 26 18:11:42 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Jul 06 14:21:40 2026 -0700"
      },
      "message": "kleaf: Delete test:gbl --test_output\u003derrors from gbl.bazelrc\n\nWe delete the redundant test:gbl --test_output\u003derrors option from\ngbl.bazelrc as common.bazelrc already has that.\n\nTAG\u003dagy\nCONV\u003d275cc5d9-a7b7-439a-a560-76b83cbd139d\n\nBug: 477319857\nTest: tools/bazel build --config\u003dgbl //bootable/libbootloader:gbl_efi_dist\nChange-Id: I0e97d340ab791abf76a440b0deedb53543c1457c\n"
    },
    {
      "commit": "d1216aa855d5203bb0eb087af6c911894373d0fa",
      "tree": "9e94dbdeb333d6bff329788ff44b4424c58db1a3",
      "parents": [
        "bc90ca9f6021404ea9cc40c2f99044542ae1cdab"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue Jun 02 00:03:10 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Jul 06 13:19:33 2026 -0700"
      },
      "message": "kleaf: Define and Register @kleaf_rust_toolchain\n\nThis commit implements the rust_toolchain_repository rule to generate\nthe toolchain repository dynamically, and registers the toolchains\nin Bzlmod. This enables Bazel to build rust_binary and rust_bindgen\ntargets using local prebuilt Rust and Clang.\n\nAdditionally, this adds an integration test suite under\nkleaf/tests/rust_test to verify the toolchain functionality.\n\nTAG\u003dagy\nCONV\u003d275cc5d9-a7b7-439a-a560-76b83cbd139d\n\nBug: 284390729\nBug: 489310593\nTest: tools/bazel test //build/kernel/kleaf/tests/rust_test:rust_test\nTest: tools/bazel build //common:kernel_aarch64\nTest: tools/bazel build --rust //common:kernel_aarch64\nTest: tools/bazel build --config\u003dgbl //bootable/libbootloader:gbl_efi_dist\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I5fe35bc09c2b3fe56ebafc2f2b4526c60dfd86cd\n"
    },
    {
      "commit": "bc90ca9f6021404ea9cc40c2f99044542ae1cdab",
      "tree": "f2f281aa20bb8fbeb57655cdc9f1739ee54388f2",
      "parents": [
        "1b55156620705807598b925434134bae035d448e"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Thu Jun 11 15:09:49 2026 +0000"
      },
      "committer": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Thu Jul 02 12:52:33 2026 +0000"
      },
      "message": "Add abseil-cpp bzlmod override\n\nConfigure bzlmod to resolve the \u0027abseil-cpp\u0027 module to the local\n\u0027external/abseil-cpp\u0027 directory. Also declare the bazel_dep to satisfy\nbzlmod constraints. This is a prerequisite for building protobuf from\nsources.\n\nBug: 519089497\nChange-Id: Ie5a1395538668f75ea73d8c3673afae1f4b1bce3\n"
    },
    {
      "commit": "1b55156620705807598b925434134bae035d448e",
      "tree": "91939c444e60084d1e9332a6b123c77b6afecca1",
      "parents": [
        "8bc73f9e4f157f34053147c4a079ece8fbe9ddad"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue Jun 30 20:36:17 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jun 30 16:53:33 2026 -0700"
      },
      "message": "kleaf: enable Clang Python toolchain in canary\n\nRegister the Clang-bundled Python toolchain in the canary\nconfiguration. This allows developers to opt-in to testing the new\ntoolchain by passing --config\u003dcanary.\n\nThe toolchain is provided by the @kleaf_python_toolchain repository,\nwhich points to the Python interpreter bundled with the selected Clang\nversion.\n\nTAG\u003dagy\nCONV\u003da40d4cf2-098b-440a-94d4-157e4e18cd24\n\nBug: 526725799\nTest: tools/bazel build --config\u003dcanary //common:kernel_aarch64_dist\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: Ic7f53cbd69eecc4800aaec5eefcbd408e091c2cd\n"
    },
    {
      "commit": "8bc73f9e4f157f34053147c4a079ece8fbe9ddad",
      "tree": "438ecbc9a4e0e2b4ea1b051ac9619f492800d8ac",
      "parents": [
        "71d70c1292c90673b0e53dbb385c4b0cc59e10d1"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri Jun 26 17:46:38 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Jun 29 13:40:14 2026 -0700"
      },
      "message": "kleaf: Fix latent bug in kernel_toolchains fail message\n\nIn _get_rust_env_impl, if host_libc is neither \"musl\" nor \"glibc\", the\nfail() statement was formatting the variable `target`. However, `target`\nis only defined in the if/elif branches, so it is undefined in the else\nbranch.\n\nThis would cause Bazel to throw a Starlark runtime error \"name \u0027target\u0027\nis not defined\" instead of printing the intended helpful \"Unknown libc\"\nerror message.\n\nWe fix this by formatting the `host_libc` parameter directly, which is\nalways defined.\n\nTAG\u003dagy\nCONV\u003d275cc5d9-a7b7-439a-a560-76b83cbd139d\n\nBug: 284390729\nBug: 489310593\nTest: tools/bazel test //build/kernel/kleaf/tests/rust_test:rust_test\nChange-Id: Iaa93a30dce12844dd1707b0b906a4992fc99afe9\n"
    },
    {
      "commit": "71d70c1292c90673b0e53dbb385c4b0cc59e10d1",
      "tree": "d82edab29f44918630269aa7d0397be12291d0e8",
      "parents": [
        "3b8ae3deaec45d08d166048682e7b2fbb092135a"
      ],
      "author": {
        "name": "Cixi Geng",
        "email": "cixi.geng1@unisoc.com",
        "time": "Wed May 20 14:10:45 2026 +0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri Jun 26 14:22:15 2026 -0700"
      },
      "message": "Kleaf: enable menuconfig with multiple fragments by merging changes to the last file\n\nPreviously, when `pre_defconfig_fragment_files` contained more than one file,\nthe `kernel_config` rule would fail during `menuconfig` execution, forcing\nusers to manually update configuration files. This hindered development\nworkflows involving complex, multi-fragment configurations.\n\nThis change updates the `_get_config_script_impl` function to automate the\nmerge process for multiple fragments:\n\n1. **Dynamic Baseline Construction**: At runtime, the script generates a\n   temporary baseline config (`accumulated_config`) by merging the `defconfig`\n   with all fragment files *except* the last one.\n2. **Diff Calculation**: After the user completes modifications via\n   `menuconfig`, the script uses `scripts/diffconfig` to compare the baseline\n   (`accumulated_config`) against the final modified config (`.config`).\n   - The resulting diff fragment naturally includes both the original content\n     of the last fragment and the new user changes.\n3. **Automatic Merge**: The calculated diff is sorted and written back into\n   the **last** file in `pre_defconfig_fragment_files`.\n\nAdditionally, this fix addresses a Python string formatting error:\n- Correctly escapes Shell variables (changing `${var}` to `${{var}}`) to\n  prevent `Error in format: Missing argument`.\n- Updates the `trap` cleanup logic to ensure newly created temporary files\n  (`accumulated_config`, `frag_tmp`) are removed upon script exit.\n\n**Note on `len \u003d\u003d 1` vs `len \u003e 1` branching:**\n\nThe `len \u003d\u003d 1` and `len \u003e 1` cases cannot be unified into a single code path\nbecause they use fundamentally different strategies to determine the correct\nfragment content:\n\n- **`len \u003d\u003d 1`**: The `new_fragment` variable (produced by merging the single\n  fragment with `changed_config`) already contains exactly the correct content\n  for the fragment. We write it directly via `sort_config ${new_fragment}`.\n\n- **`len \u003e 1`**: The `new_fragment` variable contains ALL fragments merged\n  together plus user changes. Writing it to the last fragment would incorrectly\n  include settings from all earlier fragments. Instead, we must build an\n  `accumulated_config` (defconfig + non-last fragments) and use `diffconfig`\n  to extract only the last fragment\u0027s contribution.\n\nAdditionally, the `len \u003e 1` case supports a non-menuconfig mode that checks\nwhether the fragment is in sync with the generated config and emits a WARNING\nif it diverges, rather than overwriting the file.\n\nThese two approaches are architecturally distinct and cannot be merged without\nintroducing unnecessary complexity or correctness issues.\n\nTest:\n- Verified that `config.sh` generates successfully for both single and\n  multi-fragment configurations.\n- Confirmed that `menuconfig` changes are correctly applied only to the last\n  fragment file, leaving preceding fragments unchanged.\n- Validated that temporary files are properly cleaned up after execution.\n- Verified that non-menuconfig runs preserve fragment files and emit a\n  WARNING when out of sync.\n\nBug: 468968638\nChange-Id: Iab274829233e6744a87b69d583771980f7529299\nSigned-off-by: Cixi Geng \u003ccixi.geng1@unisoc.com\u003e\n"
    },
    {
      "commit": "3b8ae3deaec45d08d166048682e7b2fbb092135a",
      "tree": "3f50a86118b5bf36eec5ed024cf8ad543ee2f072",
      "parents": [
        "bd1552a09c04702f54d33a23b428c3400830acbe"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue Jun 23 22:53:10 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Jun 24 15:47:02 2026 -0700"
      },
      "message": "kleaf: declare kleaf_python_toolchain repository\n\nIntroduce the @kleaf_python_toolchain repository to support using the\nPython interpreter bundled with Clang in Kleaf builds.\n\nThis change consists of:\n1. Defining and instantiating the @kleaf_python_toolchain repository\n   which dynamically provides a Python toolchain pointing to the\n   interpreter bundled with the selected Clang version.\n2. Importing `@kleaf_python_toolchain` in Bzlmod (MODULE.bazel) via\n   use_repo, making the repository and its targets visible in the\n   workspace.\n\nThe toolchain is NOT registered in Bzlmod, ensuring that the default build\nbehavior remains 100% unchanged (using the hermetic Python from\nbuild-tools). However, the toolchain is now fully available for manual,\nexplicit opt-in during developer testing by passing:\n--extra_toolchains\u003d@kleaf_python_toolchain//:all\n\nThis prepares Kleaf for the future switch to using the Clang-bundled Python\nby default while providing a clean way to test the integration.\n\nTAG\u003dagy\nCONV\u003de88feb9d-5b15-4cc6-8709-67c373f5b5b3\n\nBug: 526725799\nTest: tools/bazel build --extra_toolchains\u003d@kleaf_python_toolchain//:all //common:kernel_aarch64_dist\nTest: tools/bazel build //common:kernel_aarch64_dist (default, no-regression)\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I9ef627e8bdfb8f5181f57e9ec66d26be2241b4ad\n"
    },
    {
      "commit": "bd1552a09c04702f54d33a23b428c3400830acbe",
      "tree": "a69678deafc2655395cb8781e54e1b139022c8aa",
      "parents": [
        "2cc6709221ea32f23a5b5e65d77e221cb8c51971"
      ],
      "author": {
        "name": "ji2yoon.jo",
        "email": "ji2yoon.jo@samsung.com",
        "time": "Tue Jun 16 16:18:59 2026 +0900"
      },
      "committer": {
        "name": "Sid Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Wed Jun 24 03:00:11 2026 -0700"
      },
      "message": "kleaf: Add build option to be enclosed in (OUT_DIR)\n\nIn order to reduce build time, add the option so that unnecessary files in modules_prepare_outdir.tar.gz are excluded\ndue to the sandbox environment, the module_prepare_outdir.tar.gz must be decompressed whenever the ddk module is built, but it takes unnecessary time because it contains files or libraries that are not actually used. Therefore, by adding the option, files that are not needed at the time of build can be enclosed\nIn my local environment, it was confirmed that SIZE decreased by about 90% (40.3Mb -\u003e 3.6Mb).\n\nThis change:\nexclude_unnecessary_files is true *. o, *. d, *. exclude cmd, .tmp_*, and if the existing flag //build/kernel/kleaf:rust is false, the library required for the rust build is also removed.\n\nBug:519800338\nChange-Id: I25f44fe0589cccae8092add9c68232b831241ffa\nSigned-off-by: ji2yoon.jo \u003cji2yoon.jo@samsung.com\u003e\n"
    },
    {
      "commit": "2cc6709221ea32f23a5b5e65d77e221cb8c51971",
      "tree": "54ec04d339acdd676290c83a8e367329222a9257",
      "parents": [
        "9cd9485fb64be6046eaeb50db3b57abcdb9e3d59"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue Jun 09 12:32:56 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Jun 22 13:41:17 2026 -0700"
      },
      "message": "kleaf: docs: document Kconfig error resolution\n\nDocument the process for investigating and resolving Kconfig\nverification failures (such as missing expected configurations) or\ndependency loops when working with configuration fragments.\n\nOutline verification steps for Kconfig symbol presence, Kconfig file\nloading via source tracing, duplicate definitions checks, and\ninteractive dependency analysis using menuconfig search. Also clarify\nthat circular dependencies usually stem from mixing select and depends\non.\n\nBug: 362789723\nTest: Rendered markdown and verified anchors\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I3ea33c3867b107085a70e656c357a2cac300a43f\n"
    },
    {
      "commit": "9cd9485fb64be6046eaeb50db3b57abcdb9e3d59",
      "tree": "ad234a5a6dd75791b4e380f9b46893ea9260c302",
      "parents": [
        "17ccdf90bb8d3be21cd08d9b1f4d5651d410df3d"
      ],
      "author": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Wed Jun 17 17:23:59 2026 +0000"
      },
      "committer": {
        "name": "Daniel Zheng",
        "email": "zhengdaniel@google.com",
        "time": "Mon Jun 22 12:46:52 2026 -0700"
      },
      "message": "Extend download_from_ci to support GBL prebuilts.\n\nAdd --update-gbl option to download GBL binaries (gbl.efi for aarch64,\nriscv64, x86_64) and LICENSE from CI, resolve GBL source Git SHA,\ngenerate changelog using local git log, and commit changes.\n\nTest: Run download_from_ci --update-gbl 15656496 -b 401619000\nBug: 401619000\n\nTAG\u003dagy\nAssisted-by: Jetski:Gemini-Next\n\nChange-Id: I78ed8f5f50af0edff84b3647960e04c0200e858d\n"
    },
    {
      "commit": "17ccdf90bb8d3be21cd08d9b1f4d5651d410df3d",
      "tree": "feeb0ef3a94de98aa0f6a170116d02ce34fd5321",
      "parents": [
        "5da60a1979b50f32c9bbe8d59225539bd2b6b930"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri May 29 00:36:07 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Jun 17 15:41:29 2026 -0700"
      },
      "message": "kleaf: add creating-kernel-commits skill and evals\n\nIntroduce the creating-kernel-commits skill to guide AI coding\nassistants when drafting commit messages in Android kernel and tooling\nrepositories.\n\nThe skill outlines general format rules (summary, body, trailers\nsections), project-specific guidelines (ACK, Kleaf, build-tools,\nexternal), and AI-specific rules (no sign-offs, mandatory Assisted-by).\nAlso include the EVAL.yaml file with evaluation test cases to verify\nthe skill.\n\nTAG\u003dagy\nCONV\u003d15751285-e0e5-4948-8b57-6a792ed63561\n\nBug: 507499871\nTest: From \u003cworkspace_root\u003e/build/kernel: run_evals.py --skill_dir .agents/skills/creating_kernel_commits\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I931800842f8c1568dd83940137102bcb17cde28d\n"
    },
    {
      "commit": "5da60a1979b50f32c9bbe8d59225539bd2b6b930",
      "tree": "e7ab30bde8ce4484da55834adfb119a62d18d656",
      "parents": [
        "5ac6e12418c7adc969addbab80365ef2c4cc219f"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed Jun 17 18:42:11 2026 +0000"
      },
      "committer": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed Jun 17 18:42:11 2026 +0000"
      },
      "message": "kleaf: add integration tests for kernel_config_devicetree_library\n\nAdds integration tests in the DDK workspace setup to verify\nend-to-end compilation of a .dts file using the new macro\nagainst both source and prebuilt kernels, asserting that\nCONFIG_MODULES is successfully read.\n\nTAG\u003dagy\nCONV\u003d6725acaa-958d-41cb-bca4-dd11d5319381\n\nBug: 448483795\nTest: tools/bazel run //build/kernel/kleaf/tests/integration_test -- DdkWorkspaceSetupTest.test_setup_with_local_prebuilts\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: Iba161821c8be4670cf1bb8728b1f3a42ccf12aaa\n"
    },
    {
      "commit": "5ac6e12418c7adc969addbab80365ef2c4cc219f",
      "tree": "7338cc4593cc64a62fcd137ba831881d54bd9b42",
      "parents": [
        "7c4d36c876f64de46016c875f3093d487313e0aa"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed Jun 17 18:42:09 2026 +0000"
      },
      "committer": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed Jun 17 18:42:09 2026 +0000"
      },
      "message": "kleaf: add analysis tests for kernel_config_devicetree_library\n\nAdds analysis tests (using the shared pass_analysis_test) to\nverify the macro\u0027s instantiation with both kernel_build and\nkernel_filegroup.\n\nTAG\u003dagy\nCONV\u003d6725acaa-958d-41cb-bca4-dd11d5319381\n\nBug: 448483795\nTest: tools/bazel test //build/kernel/kleaf/tests/kernel_config_devicetree_library_test:all\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I4880b95c79682891083d7a89c8cd75d76af09366\n"
    },
    {
      "commit": "7c4d36c876f64de46016c875f3093d487313e0aa",
      "tree": "4025d179f107c11a922f5ccecc1851260ea30e5d",
      "parents": [
        "1ff7ba00f932fc57eaf2381f7464177f5913c2fd"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed Jun 17 18:42:06 2026 +0000"
      },
      "committer": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed Jun 17 18:42:06 2026 +0000"
      },
      "message": "kleaf: introduce kernel_config_devicetree_library\n\nAdds the kernel_config_devicetree_library symbolic macro which:\n- Uses a private helper rule _kernel_config_include_dir to\n  extract the include/ directory from the KernelBuildConfigDirectoryInfo\n  provider using hermetic_tools and rsync.\n- Exposes it as a devicetree_library target, allowing downstream\n  dtb() targets to include generated config headers (specifically\n  \u003cgenerated/autoconf.h\u003e) to read CONFIG_* items.\n\nTAG\u003dagy\nCONV\u003d6725acaa-958d-41cb-bca4-dd11d5319381\n\nBug: 448483795\nTest: (Tested by downstream analysis and integration tests)\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I4970626f50b2214da02d431808df2a398a32a16e\n"
    },
    {
      "commit": "1ff7ba00f932fc57eaf2381f7464177f5913c2fd",
      "tree": "aeba9ee1ba23083af88e861dbd3cdfed76bf785f",
      "parents": [
        "d30d551b6e5972ab87ef5a2870c3eea5e2eb71b3"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue Jun 16 18:35:47 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Jun 17 05:31:17 2026 -0700"
      },
      "message": "kleaf: introduce KernelBuildConfigDirectoryInfo provider\n\nIntroduce a shared KernelBuildConfigDirectoryInfo provider to pass\nthe kernel configuration directory (OUT_DIR) from kernel targets\nto devicetree targets.\n\nImplements KernelBuildConfigDirectoryInfo in:\n- kernel_build: Extracts the config directory TreeArtifact from\n  the underlying _config target using ctx.file.config.\n- kernel_filegroup: Exposes the prebuilt config_out_dir.\n\nTAG\u003dagy\nCONV\u003d6725acaa-958d-41cb-bca4-dd11d5319381\n\nBug: 448483795\nTest: (Tested by downstream analysis and integration tests)\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: Ia1504fc7c550dbc892805841f9c65b256c8b2b6f\n"
    },
    {
      "commit": "d30d551b6e5972ab87ef5a2870c3eea5e2eb71b3",
      "tree": "cf087ea806f9e08067b31477300f0526b73b860d",
      "parents": [
        "3fef046c400fb14eb5d8f93a02e844792608a295"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Mon Jun 15 22:03:10 2026 +0000"
      },
      "committer": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Mon Jun 15 22:03:10 2026 +0000"
      },
      "message": "kleaf: refactor kernel_toolchain_test to use shared pass_analysis_test\n\nRemove the duplicate definition of _pass_analysis_test from\nkernel_toolchain_test.bzl and instead load the shared\npass_analysis_test from //build/kernel/kleaf/tests/utils.\n\nTAG\u003dagy\nCONV\u003d6725acaa-958d-41cb-bca4-dd11d5319381\n\nBug: 448483795\nTest: tools/bazel test //build/kernel/kleaf/tests/kernel_build_test:kernel_toolchain_test\nChange-Id: I10b4cf18e70c8df4febda950f59d8f8d6a6564be\n"
    },
    {
      "commit": "3fef046c400fb14eb5d8f93a02e844792608a295",
      "tree": "091f03cf78b648c8a88bc75758f48bf23b8a8588",
      "parents": [
        "659263ba1add2968df8e6a1d0a83f49402142b80"
      ],
      "author": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Wed Jun 10 16:27:54 2026 +0000"
      },
      "committer": {
        "name": "Siddharth Nayyar",
        "email": "sidnayyar@google.com",
        "time": "Wed Jun 10 16:29:09 2026 +0000"
      },
      "message": "Stub out rules_java fake module\n\nDefine dummy Starlark files and packages under\nkleaf/bzlmod/fake_modules/rules_java to satisfy Protobuf\u0027s load-time\ndependencies on Java rules during analysis phase.\n\nThese are required during the analysis phase for libprotobuf sources,\nwhich is in-turn required for building STG from sources.\n\nBug: 519089497\nChange-Id: I93f5a3cd09b13633e50a433f3178c5833b0176cd\n"
    },
    {
      "commit": "659263ba1add2968df8e6a1d0a83f49402142b80",
      "tree": "d71ddf6329c1ad8dff2fb07cb1ef5df6e780301f",
      "parents": [
        "ac8f2ab58d5cf215fd898ad8e34dabf8c07c9aac"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Fri Jun 05 02:09:05 2026 +0800"
      },
      "committer": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Mon Jun 08 03:44:09 2026 -0700"
      },
      "message": "Gather gbl workspace status with custom command\n\nCustom workspace_status_command enabled by `--config\u003dgbl`.\n\nBug: 517573530\nTest: Presubmit\nChange-Id: I27b54be4f18e1322ace8ea05a2f061dd8c794dd2\n"
    },
    {
      "commit": "ac8f2ab58d5cf215fd898ad8e34dabf8c07c9aac",
      "tree": "00fc877257b874ed4368563304b7051e3d48dd63",
      "parents": [
        "3e1d3718684866ddf67495ca6de367ae1dafc9d0"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue Jun 02 12:38:46 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Jun 04 05:06:57 2026 -0700"
      },
      "message": "Kleaf: Remove unused variable.\n\nFixes: 64cb1f945a2e (\"kleaf: Add generate_btf option for external module build\")\nBug: 455559871\nChange-Id: I40c7e5a61018305f751d2ef751b9eece3188f46d\n"
    },
    {
      "commit": "3e1d3718684866ddf67495ca6de367ae1dafc9d0",
      "tree": "e7b4c0209812de856399fa52877814f7791ba44f",
      "parents": [
        "93f02f3fbb577a76e2f5cd8c38023435ec979d65"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Wed Jun 03 10:00:09 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Jun 03 10:55:55 2026 -0700"
      },
      "message": "Kleaf: Update key_value_repo docs\n\nFixes: e1f60c0439b1 (\"Revert \"kleaf: fallback to build.config.constants\"\")\nBug: 462208953\nBug: 448148817\nChange-Id: Iaf0fe8aadd612b0f7f4ea14b70c4e4330229843c\n"
    },
    {
      "commit": "93f02f3fbb577a76e2f5cd8c38023435ec979d65",
      "tree": "96f601cd165639d7afcb4e2ba9010d1383814d5e",
      "parents": [
        "ae31f893155d07fb1a8795354eaaa5710d7aa95e"
      ],
      "author": {
        "name": "Jakub \"Kuba\" Czapiga",
        "email": "czapiga@google.com",
        "time": "Mon May 18 07:58:14 2026 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Jun 03 10:37:51 2026 -0700"
      },
      "message": "config_utils: Fix new line rstrip\n\nBug: 514305790\nTest: Build DDK and observe no Kconfig warnings\nChange-Id: I2f151cef2a2bffffc3da14ac6bb04c384551b65a"
    },
    {
      "commit": "ae31f893155d07fb1a8795354eaaa5710d7aa95e",
      "tree": "1072f3604d084d6177ea896295e5205c25106ca7",
      "parents": [
        "3015f7ab122043aa0453d61d16e739c2a801c2fd"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Wed Jun 03 09:44:45 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Wed Jun 03 09:56:56 2026 +0000"
      },
      "message": "Kleaf: Make kernel_build.make_goals required\n\nCommit b10158c0cc39 (\"Kleaf: Make kernel_build.make_goals mandatory\")\nmade this attribute mandatory for the kernel_env rule, however this\nchange goes one step up and makes it required at the kernel_build macro\nlevel, which makes it easier for a user to spot what is missing, becuase\nit prints the following error when not specified:\n\n`Error: kernel_build() missing 1 required positional argument: make_goals`\n\nBug: 495914929\nChange-Id: I052f3c5f14c051bbc336232b570d9a527136b32a\n"
    },
    {
      "commit": "3015f7ab122043aa0453d61d16e739c2a801c2fd",
      "tree": "d2f0a16e917801867e351932ac69d1eaf3a086d9",
      "parents": [
        "23976c30d61c5845e62bf106acb77abd1034b91c"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Mon Jun 01 11:04:33 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Wed Jun 03 09:56:56 2026 +0000"
      },
      "message": "Kleaf: Simplify make_goals parsing\n\nNow that make_goals is a proper rule attribute (i.e. a list of strings)\nit\u0027s possible to simplify it\u0027s parsing directly instead of the shell\ncommand.\n\nBug: 495914929\nChange-Id: Ifddbc14ae6db47d9575e4d7de584b8aa07ea7891\n"
    },
    {
      "commit": "23976c30d61c5845e62bf106acb77abd1034b91c",
      "tree": "5f7acdf6556c091c3015bdf10d3c0eea934b9b6d",
      "parents": [
        "12ed8721591b88512e5ef48b3cbe432ae6b96d1e"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Fri May 29 16:12:50 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Wed Jun 03 09:55:58 2026 +0000"
      },
      "message": "Kleaf: Make kernel_build.make_goals mandatory\n\n* Before this change it was possible to specify MAKE_GOALS in the legacy\n  build config files, after this, that support is dropped.\n* And to make this a hard failure, the kernel_build.make_goals attribute\n  is now mandatory, which has the benefit of avoiding unexpected results\n  when make_goals is empty and debug flags like --kgdb are set.\n\nBug: 495914929\nChange-Id: Ida5c67e130812b03d730900da76862d284ae9fd8\n"
    },
    {
      "commit": "12ed8721591b88512e5ef48b3cbe432ae6b96d1e",
      "tree": "56bad0a015a7009e89c8211e058c852b7510c81f",
      "parents": [
        "f309f17d0515f895d49be2f6084981e0d6c03a53"
      ],
      "author": {
        "name": "Hubert Mazur",
        "email": "hmazur@google.com",
        "time": "Tue Jun 02 15:04:23 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Wed Jun 03 02:23:50 2026 -0700"
      },
      "message": "Fix filegroup declaration based on the target arch\n\nThe kernel filegroup declared during the build process is currently tied\nto aarch64 specific artifacts which is incorrect for x86_64. Fix this by\npicking the correct artifacts group based on the target arch.\n\nBug: 516461325\nTest: Verify that declared filegroups for aarch64 and x86_64 are\ncorrect.\n\nChange-Id: I43a325531fbe72685fbb02e375809059643f09aa\nSigned-off-by: Hubert Mazur \u003chmazur@google.com\u003e\n"
    },
    {
      "commit": "f309f17d0515f895d49be2f6084981e0d6c03a53",
      "tree": "003ef6509b2ec950adf1be3ad0685ae456ec88e1",
      "parents": [
        "857d2c13808a9522e9e385e57224fad7a9f42a44"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Mon Jun 01 23:55:38 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Jun 02 13:59:05 2026 -0700"
      },
      "message": "kleaf: configure Bzlmod dependencies for Rust Bindgen\n\nAdd rules_rust_bindgen dependency and override it to the local prebuilts. Also configure rules_rust to inhibit downloading default prebuilts to ensure hermetic builds.\n\nTAG\u003dagy\nCONV\u003d275cc5d9-a7b7-439a-a560-76b83cbd139d\n\nBug: 489310593\nTest: tools/bazel test //build/kernel/kleaf/tests/rust_test:rust_test\nTest: tools/bazel build //common:kernel_aarch64\nTest: tools/bazel build --rust //common:kernel_aarch64\nTest: tools/bazel build --config\u003dgbl //bootable/libbootloader:gbl_efi_dist\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I65fe9b79b5f7de06c8559d0a0e8c47961080d3f3\n"
    },
    {
      "commit": "857d2c13808a9522e9e385e57224fad7a9f42a44",
      "tree": "d9b93f6b465b4e99589d0e2ac2889207c8fb1f2a",
      "parents": [
        "f8026224ba06159e97a26d8f5207c46c3d30a9c3"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed May 06 22:35:03 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jun 02 13:08:27 2026 -0700"
      },
      "message": "kleaf: error if --autoload_build_config_constants\u003dif_unset.\n\nThe legacy flag value is no longer supported. Constants\nare always loaded.\n\nBug: 448148817\nChange-Id: Icaea82038fe98dd40f109d9776cacd5c4b9e6f45\n"
    },
    {
      "commit": "f8026224ba06159e97a26d8f5207c46c3d30a9c3",
      "tree": "46036957bb2eb90aacca6736711f4dd1885ca4d5",
      "parents": [
        "56f08a12732c8e30d0b44653c507e52719411e0b"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Fri May 29 16:54:35 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jun 02 12:55:40 2026 -0700"
      },
      "message": "Kleaf: tests: Add kernel_build.make_goals to tests\n\n* The attribute is becoming mandatory, and while it does not\n affect the tests, the build fails if not specified.\n\n* Tests were discovered using the following query:\ntools/bazel query \u0027kind(\"kernel_env rule\", //...)\u0027 --keep_going        \\\n --ui_event_filters\u003d-error,-warning --noshow_progress --output\u003dbuild | \\\n awk \u0027/^kernel_env\\(/ {rule\u003d$0; next} {rule\u003drule \"\\n\" $0} /^\\)/ {if (rule !~ /make_goals \u003d/) print rule}\u0027 | \\\n egrep -e \"generator_name|generator_location\"\n\nBug: 495914929\nChange-Id: I4be3d2f1fc5357c0f4502485b62c38c0ade768c4\n"
    },
    {
      "commit": "56f08a12732c8e30d0b44653c507e52719411e0b",
      "tree": "71bbbb1df8b880bb36287f3b5f2893057f28381e",
      "parents": [
        "15711b938e5204a67390f98a24c77b91e2580e18"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue Jun 02 13:45:46 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue Jun 02 06:58:22 2026 -0700"
      },
      "message": "Kleaf: Make mixed build KMI mismatch a hard error\n\nIf KMI generation numbers differ then almost certainly so do\na lot of symbol CRCs. This change makes the build fail fast.\n\nBug: 437422033\nChange-Id: Ieb2bfe06f401dcdabd9f0acb360850f7d97389d7\n"
    },
    {
      "commit": "15711b938e5204a67390f98a24c77b91e2580e18",
      "tree": "2a1d5477b1a50746f46ec3f0dacc7e470145566e",
      "parents": [
        "e1f60c0439b153822e515733a8b040c6191e893a"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue Jun 02 01:25:27 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jun 02 04:50:45 2026 -0700"
      },
      "message": "kleaf: Add liblog.so to NDK sysroot files\n\nRust standard library (\u0027std\u0027) for Android targets dynamically links\nagainst \u0027liblog\u0027 (and \u0027libdl\u0027) by default. This is hardcoded in Rust\u0027s\nstd library source:\n\n    target_os \u003d \"android\" \u003d\u003e {\n        #[link(name \u003d \"dl\", kind \u003d \"static\", modifiers \u003d \"-bundle\",\n            cfg(target_feature \u003d \"crt-static\"))]\n        #[link(name \u003d \"dl\", cfg(not(target_feature \u003d \"crt-static\")))]\n        #[link(name \u003d \"log\", cfg(not(target_feature \u003d \"crt-static\")))]\n        unsafe extern \"C\" {}\n    }\n\nSince Kleaf restricts the files visible in the sandbox for NDK, we must\nexplicitly expose \u0027liblog.so\u0027 in \u0027ndk.BUILD\u0027 so that it is mounted into\nthe sandbox and available to the linker.\n\nOtherwise, building Rust binaries for Android fails with:\n\"ld.lld: error: unable to find library -llog\"\n\nTAG\u003dagy\nCONV\u003d275cc5d9-a7b7-439a-a560-76b83cbd139d\n\nBug: 284390729\nTest: tools/bazel test --config\u003dhermetic_cc //build/kernel/kleaf/tests/rust_test:rust_android_test\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I17847f3345094f0fa276642807f00d43a969dd55\n"
    },
    {
      "commit": "e1f60c0439b153822e515733a8b040c6191e893a",
      "tree": "a9e17b52c91388ed46ca3d7693c5208a86c1a5e3",
      "parents": [
        "aa21df5fd850d7ef1e83996a935366f9440f5e82"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Jun 01 10:21:15 2026 -0700"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jun 02 02:26:34 2026 -0700"
      },
      "message": "Revert \"kleaf: fallback to build.config.constants\"\n\nThis reverts commit 46826cf180775bd1c2389e523ed7faea4ef8910d.\n\nReason for revert: All mainline branches (android-mainline and\n    u_boot) has common/bazel/constants.scl now.\n\nBug: 462208953\nBug: 448148817\nChange-Id: I4a3e4f2b4f7a6d15b1a6c808ea1e8c461da4846b\n"
    },
    {
      "commit": "aa21df5fd850d7ef1e83996a935366f9440f5e82",
      "tree": "07f5151b25c62e16eafef0db542edfcd286a27d8",
      "parents": [
        "cf9a04262b07f9439aca406948fe1a048278fa4c"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Mon Jun 01 17:05:00 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Jun 01 14:23:11 2026 -0700"
      },
      "message": "kleaf: restructure DDK integration tests under ddk_full_test\n\nMove built_with_ddk_test and ddk_library_all_srcs (previously in\nddk_examples) into a new ddk_full_test directory to group DDK E2E\nand integration tests together. This keeps the edge-case test\n(ddk_library_all_srcs) out of user-facing examples.\n\nDefine a parent ddk_full_test test suite in ddk_full_test/BUILD.bazel\nto run both tests. Rename the build_test in ddk_library_all_srcs to\nmatch the package name.\n\nUpdate references in common_kernels.bzl and test files. Use relative\nLabel() in contains_mark_test.bzl to make it position-independent.\n\nTAG\u003dagy\nCONV\u003d9a83c539-be96-4171-8030-a39e39e04a13\n\nBug: 493749432\nTest: tools/bazel test //build/kernel/kleaf/tests/ddk_full_test\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: Ic9882c75907c2de56b48bbaaefb8051fcab41fad\n"
    },
    {
      "commit": "cf9a04262b07f9439aca406948fe1a048278fa4c",
      "tree": "78df636fdb17d419e75a1d0a88784bb505d1c64a",
      "parents": [
        "0bd398bd639a56a20df582d121e4303c2478eb15"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Thu May 14 17:23:54 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Jun 01 11:55:43 2026 -0700"
      },
      "message": "kleaf: Drop --legacy_external_runfiles.\n\nThe flag was there because it was used to support CONFIG_UAPI_HEADER_TEST.\nNow that CONFIG_UAPI_HEADER_TEST is no longer part of gki_defconfig,\nand the rust short path is in PATH, the flag can be safely deleted.\n\nBug: 508337506\nChange-Id: Id100d1ba00a3b9580dd249d70474665440b79f5d\n"
    },
    {
      "commit": "0bd398bd639a56a20df582d121e4303c2478eb15",
      "tree": "3a74458c48661336248714e9ce40ff95ed7fdde4",
      "parents": [
        "06e6b8bedc8fb1f5c6c8cd65fdc17f9b23108b0a"
      ],
      "author": {
        "name": "Jacky Liu",
        "email": "qsliu@google.com",
        "time": "Tue May 26 15:15:46 2026 +0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Jun 01 11:49:36 2026 -0700"
      },
      "message": "kleaf: kernel_modules_install: Add transitive dependency check\n\nAdd a `check_dependencies` attribute to `kernel_modules_install` rule.\nWhen set to True, it verifies that all transitive dependencies of the\ninstalled modules are also present in the installation list.\n\nThis prevents runtime issues where a module fails to load because its\ndependency was not installed, even if it built successfully.\n\nAlso add a comprehensive unit test suite to verify the check\u0027s behavior\nin both success and failure scenarios.\n\nBug: 516649189\nTest: bazel test build/kernel/kleaf/tests/kernel_modules_install_test\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I339f34759e67e936b10bccb4a9d3f4e4eccf95b1\nSigned-off-by: Jacky Liu \u003cqsliu@google.com\u003e\n"
    },
    {
      "commit": "06e6b8bedc8fb1f5c6c8cd65fdc17f9b23108b0a",
      "tree": "bb3eaa057500789dfec884a8f48da12b7c0ed2a8",
      "parents": [
        "06335a4446908cd6d6045ec9ac3e5f23c4fe8ce3"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri May 29 23:58:44 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Jun 01 10:10:43 2026 -0700"
      },
      "message": "kleaf: fix ddk_module with all sources in library\n\nWhen a ddk_module has no direct sources and relies entirely on\nddk_library targets, the library was compiled without -DMODULE.\nThis caused MODULE_LICENSE() to generate prefixed modinfo tags\n(e.g., license.license\u003dGPL v2) instead of the standard ones.\nConsequently, modpost failed to find the license tag when linking\nthe final module.\n\nIn Kbuild, the -DMODULE flag (defined in KBUILD_CFLAGS_MODULE) is\napplied via modkern_cflags (in scripts/Makefile.lib) only when\npart-of-module is true. This condition requires the object to be\npresent in real-obj-m, which is derived from obj-m. Without obj-m\nin the library\u0027s Kbuild, its objects are compiled without -DMODULE.\n\nFix this by always writing obj-m to the generated Kbuild for\nddk_library targets. This ensures Kbuild defines -DMODULE during\ncompilation, resulting in correctly formatted modinfo tags.\n\nAdd a new ddk_library_all_srcs example to ddk_examples and a\nregression test in makefiles_test.bzl.\n\nTAG\u003dagy\nCONV\u003d9a83c539-be96-4171-8030-a39e39e04a13\n\nBug: 493749432\nTest: tools/bazel test //build/kernel/kleaf/tests/ddk_test:makefiles_test_suite_library_tests\nTest: tools/bazel test //build/kernel/kleaf/tests/ddk_examples:ddk_examples\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I6679584de1ed953c6690ef13b5d22e1da8005971\n"
    },
    {
      "commit": "06335a4446908cd6d6045ec9ac3e5f23c4fe8ce3",
      "tree": "6748b7f38fc15463cf99b4c6d386244e94eb91e5",
      "parents": [
        "50c346c0beda8877d6602840f6180340016c227d"
      ],
      "author": {
        "name": "Jacky Liu",
        "email": "qsliu@google.com",
        "time": "Fri May 29 20:46:07 2026 +0800"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri May 29 20:46:11 2026 -0700"
      },
      "message": "kleaf: Add success_test\n\nAdd success_test as an analysis test that expects success on the given\ntarget.\n\nBug: 516649189\nChange-Id: Icefd915baccaf965e5c0cdc0e2671cf60532f57b\nSigned-off-by: Jacky Liu \u003cqsliu@google.com\u003e\n"
    },
    {
      "commit": "50c346c0beda8877d6602840f6180340016c227d",
      "tree": "52041c7256a978104586377e583dcdff709a98a5",
      "parents": [
        "a0a57ce3ff37dd32a22f66e044e01c33f9a0a066"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Thu May 28 19:53:47 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri May 29 14:52:32 2026 -0700"
      },
      "message": "kleaf: rename docs_updater to updating_kleaf_docs.\n\nSkills are often named \u003cverb\u003e-ing_\u003cobject\u003e.\n\nSkill folders should be in snake_case and skill name should be\nkebab-case.\n\nBug: 507499871\nChange-Id: I5e5c0c43350d0bbaea022bb81c262a212ca0303f\n"
    },
    {
      "commit": "a0a57ce3ff37dd32a22f66e044e01c33f9a0a066",
      "tree": "5a9afa677fb240628324bea0d92a766ae3340730",
      "parents": [
        "66e4b90755c7001c73a37fd83f8c46f2c5bd12aa"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue May 19 20:13:44 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri May 29 10:30:20 2026 -0700"
      },
      "message": "kleaf: Fix DDK env setup paths when legacy runfiles disabled\n\nFix path-resolution issues in the generated environment setup scripts of DDK\nmodules that fail when --legacy_external_runfiles is disabled.\n\nUnder bazel run / bazel test, external runfiles paths change from external/\u003c\nrepo_name\u003e/... to ../\u003crepo_name\u003e/... (i.e., short_path). We dynamically check if\nwe are in a run/test environment using BUILD_WORKSPACE_DIRECTORY and BAZEL_TEST\n, and adjust:\n- KLEAF_REPO_WORKSPACE_ROOT to resolve relative to runfiles directory.\n- Locations of module_env_archive, generated_headers_for_module_archive, and\ndependencies (outputs) to use short_path format.\n\nTAG\u003dagy\nCONV\u003dd23122a0-14ca-4692-8f7e-2f643d4a152b\n\nBug: 508337506\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I67a625c6c3d62f2b339d510e0a64045be646155f\n"
    },
    {
      "commit": "66e4b90755c7001c73a37fd83f8c46f2c5bd12aa",
      "tree": "854a530e2133fc4a03e33223832c0e384886091f",
      "parents": [
        "80f8c224366847172e07394f1c1d47f700f638bb"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri May 22 20:41:21 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri May 29 10:30:20 2026 -0700"
      },
      "message": "kleaf: add test_config_local_dist to integration_test.py\n\nAdd integration test test_config_local_dist to verify that building\n//common:kernel_aarch64_dist with --config\u003dlocal works.\n\nTAG\u003dagy\nCONV\u003d2b8ef075-b012-497b-9c55-17f7801dad8c\n\nBug: 515023391\nBug: 508337506\nAssisted-by: Jetski:Gemini-Next\nChange-Id: I755e168d5de9bf8f1604cccdd2da9a8c175aecf9\n"
    },
    {
      "commit": "80f8c224366847172e07394f1c1d47f700f638bb",
      "tree": "77e951eef263b90d648f8bde369bcfdf9338d638",
      "parents": [
        "e9c439bbbe92db4bc84e019b2005e46cfd3bae48"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu May 21 13:36:06 2026 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri May 29 10:30:20 2026 -0700"
      },
      "message": "Revert^2 \"kleaf: Set up toolchains dynamically\"\n\nThis reverts commit 3f7842f6cb8ea8498563ac5f9042f1a5ba01c4f4.\n\nReason for revert: relanding change\n\nBug: 508337506\nBug: 515023391\nChange-Id: I407c6d91e268424e3c9fbfa1a9e653e133c7ab51\n"
    },
    {
      "commit": "e9c439bbbe92db4bc84e019b2005e46cfd3bae48",
      "tree": "c8485bf14460c9f15b67cf6335e1109a9441e08e",
      "parents": [
        "ee44833c5549b71b0b1ebd16ede8e5e2f97b6a4b"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri May 22 19:50:16 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri May 29 10:30:20 2026 -0700"
      },
      "message": "kleaf: use realpath -s for rpath calculation\n\nUse `realpath -s` (no-symlinks) to calculate relative paths for rpaths.\nThis prevents resolving the `out` symlink in the execroot when running\nlocally with `cache_dir` enabled (e.g. with --config\u003dlocal), which would\notherwise result in host-specific absolute paths.\n\nTAG\u003dagy\nCONV\u003d2b8ef075-b012-497b-9c55-17f7801dad8c\n\nBug: 515023391\nBug: 508337506\nAssisted-by: Jetski:Gemini-Next\nChange-Id: I73b78cb0e77ff21d431c61777268950b525a1ace\n"
    },
    {
      "commit": "ee44833c5549b71b0b1ebd16ede8e5e2f97b6a4b",
      "tree": "d0b78f4a7e218237ef96d328f6013c9049da8dae",
      "parents": [
        "5f4db57854a4730cdca14c90ae383c839b55609d"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue May 26 12:49:32 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Fri May 29 01:55:04 2026 -0700"
      },
      "message": "Kleaf: Remove step to skip AVB hash footer addition\n\n* This is no longer needed; GKI boot img is now built\n with `--dynamic_partition_size` flag.`\n\n* This is practically a revert of:\n  * commit 5228edf223e4 (\"kleaf: Skip adding AVB hash footer for --gcov boot images.\")\n created manually because there are many conflicts to resolve otherwise.\n\nBug: 466517442\nBug: 283225390\nChange-Id: I0b8efe58af19f0f70f8a482622f66151636607b6\n"
    },
    {
      "commit": "5f4db57854a4730cdca14c90ae383c839b55609d",
      "tree": "32f5a577333e2ef1aa68923e6bb268135c6480a5",
      "parents": [
        "aa4988bd5cdfa3b18295f9c6b9755e32fdbe3309"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Thu May 21 05:04:09 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed May 27 13:24:53 2026 -0700"
      },
      "message": "kleaf: Add \u0027working-with-ddk\u0027 agent skill\n\nThis change introduces the \u0027working-with-ddk\u0027 skill inside the `.agents`\ndirectory. This skill acts as a helper guide for converting traditional Kbuild-\nor Makefile-based kernel modules to Kleaf DDK module configurations (using\nddk_module/ddk_library).\n\nIt maps Makefile parameters to Bazel target attributes, discusses includes\nresolution order, lists config strategies (distributed vs centralized), and\ncontains scenario guides (ftrace, gcov, conditional dependencies, prebuilt\nobjects, etc.).\n\nAn EVAL.yaml file is also included to run automated benchmarks on these scenarios.\n\nTest: Run from build/kernel: python3 ../../vendor/unbundled_google/tools/gemini-utils/skills/evals/run_evals.py --skill_dir .agents/skills/working_with_ddk\nAssisted-by: Jetski:gemini-next\nBug: 507499871\nChange-Id: Ic9b70b723d708000ed422742c8e197d3fb68d39e\n"
    },
    {
      "commit": "aa4988bd5cdfa3b18295f9c6b9755e32fdbe3309",
      "tree": "93b9c6d1cd3acc35133f0e013f3b246b06199aef",
      "parents": [
        "ee7d7c05ef71806efcb305bb07be334e0a9dbb44"
      ],
      "author": {
        "name": "Jose \"Pepe\" Galmes",
        "email": "jgalmes@google.com",
        "time": "Sat May 09 22:25:53 2026 +0000"
      },
      "committer": {
        "name": "Jose \"Pepe\" Galmes",
        "email": "jgalmes@google.com",
        "time": "Tue May 26 15:43:26 2026 -0700"
      },
      "message": "kleaf: Add rc file for ABFS flags.\n\nBug: 491926688\nChange-Id: Ie8be9ea3e53163b2b6963025523c78107ffb222d\n"
    },
    {
      "commit": "ee7d7c05ef71806efcb305bb07be334e0a9dbb44",
      "tree": "3daa958ad839cbe67464aa787dc7bf0bdb8677b6",
      "parents": [
        "b4610d931a2953b60bf302831608e8220ed4c4e8"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri May 22 22:11:46 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue May 26 15:17:40 2026 -0700"
      },
      "message": "kleaf: Deprecate --gcov boolean flag\n\nAdd deprecation warn_message to --gcov boolean flag and a deprecation attribute\nto the gcov_is_true alias to warn users during build time to migrate to --gcov_mode.\n\nTAG\u003dagy\nCONV\u003d357365a1-3780-4df4-9209-e7112ddb1024\n\nBug: 511965686\nAssisted-by: Jetski:Gemini-Next\nChange-Id: Ideff4f1af56548d304e543c393ee6718650f9c02\n"
    },
    {
      "commit": "b4610d931a2953b60bf302831608e8220ed4c4e8",
      "tree": "416f7337cb7523240ad4fb7cfd052c4e0ab40ed5",
      "parents": [
        "eb00700f31f01dedccfe78024630eb5176f40ad3"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri May 22 21:50:15 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue May 26 15:17:40 2026 -0700"
      },
      "message": "kleaf: Add --gcov_mode and keep --gcov as legacy boolean\n\nAdd --gcov_mode as a string flag supporting default, enabled, and profile_all.\nKeep --gcov as a deprecated boolean flag that behaves as --gcov_mode\u003dprofile_all.\nDefine non-exclusive config settings gcov_mode_is_enabled and gcov_mode_is_profile_all,\nand split gcov defconfig fragments accordingly.\n\nTAG\u003dagy\nCONV\u003d357365a1-3780-4df4-9209-e7112ddb1024\n\nBug: 511965686\nAssisted-by: Jetski:Gemini-Next\nChange-Id: Id753bb98217a84a4533b7a3cf041c5cad20e1012\n"
    },
    {
      "commit": "eb00700f31f01dedccfe78024630eb5176f40ad3",
      "tree": "8ee4ee65a7192e1c25f7f7b9a058d8bc9eda401d",
      "parents": [
        "d87170fed0e903abf9916939ad5234f0cfbe9ddd"
      ],
      "author": {
        "name": "Hubert Mazur",
        "email": "hmazur@google.com",
        "time": "Mon May 25 14:39:58 2026 +0000"
      },
      "committer": {
        "name": "Hubert Mazur",
        "email": "hmazur@google.com",
        "time": "Tue May 26 15:38:42 2026 +0000"
      },
      "message": "build/kernel: Align the ci_target_mapping for x86\n\nThe configuration for the x86 kernel artifacts was copied directly from\naarch64 without modifications and includes artifacts specific for the\narm platform. Create a new mappings distinguishing x86 and aarch64\narchitectures and align the x86 accordingly.\n\nThe diff before and after applying the changes for aarch64 is null. For\nx86 the diff is as expected:\n\n5,29d4\n\u003c               \"Image\": {\n\u003c                       \"mandatory\": true,\n\u003c                       \"remote_filename_fmt\": \"Image\",\n\u003c                       \"target_suffix\": \"files\"\n\u003c               },\n\u003c               \"Image.gz\": {\n\u003c                       \"mandatory\": true,\n\u003c                       \"remote_filename_fmt\": \"Image.gz\",\n\u003c                       \"target_suffix\": \"files\"\n\u003c               },\n\u003c               \"Image.lz4\": {\n\u003c                       \"mandatory\": true,\n\u003c                       \"remote_filename_fmt\": \"Image.lz4\",\n\u003c                       \"target_suffix\": \"files\"\n\u003c               },\n\u003c               \"Image.lzma\": {\n\u003c                       \"mandatory\": true,\n\u003c                       \"remote_filename_fmt\": \"Image.lzma\",\n\u003c                       \"target_suffix\": \"files\"\n\u003c               },\n\u003c               \"Image.zst\": {\n\u003c                       \"mandatory\": true,\n\u003c                       \"remote_filename_fmt\": \"Image.zst\",\n\u003c                       \"target_suffix\": \"files\"\n\u003c               },\n45,49d19\n\u003c               \"boot-gz.img\": {\n\u003c                       \"mandatory\": true,\n\u003c                       \"remote_filename_fmt\": \"boot-gz.img\",\n\u003c                       \"target_suffix\": \"gki_prebuilts_outs\"\n\u003c               },\n55,69d24\n\u003c               \"boot-lz4.img\": {\n\u003c                       \"mandatory\": true,\n\u003c                       \"remote_filename_fmt\": \"boot-lz4.img\",\n\u003c                       \"target_suffix\": \"gki_prebuilts_outs\"\n\u003c               },\n\u003c               \"boot-lzma.img\": {\n\u003c                       \"mandatory\": true,\n\u003c                       \"remote_filename_fmt\": \"boot-lzma.img\",\n\u003c                       \"target_suffix\": \"gki_prebuilts_outs\"\n\u003c               },\n\u003c               \"boot-zst.img\": {\n\u003c                       \"mandatory\": true,\n\u003c                       \"remote_filename_fmt\": \"boot-zst.img\",\n\u003c                       \"target_suffix\": \"gki_prebuilts_outs\"\n\u003c               },\n73a29,33\n\u003e               },\n\u003e               \"bzImage\": {\n\u003e                       \"mandatory\": true,\n\u003e                       \"remote_filename_fmt\": \"bzImage\",\n\u003e                       \"target_suffix\": \"files\"\n\nBug: 516461325\nTest: Check that the diff for aarch64 platform is null\nTest: Verify that all relevant artifacts for x86 are present\nChange-Id: Ib487bc0ae84972f23b387b03c1f362fa579c969d\nSigned-off-by: Hubert Mazur \u003chmazur@google.com\u003e\n"
    },
    {
      "commit": "d87170fed0e903abf9916939ad5234f0cfbe9ddd",
      "tree": "25be0141c88bc544b7405629ecfb0d3bdee0efb3",
      "parents": [
        "3f7842f6cb8ea8498563ac5f9042f1a5ba01c4f4"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri May 22 22:40:49 2026 +0000"
      },
      "committer": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri May 22 22:40:49 2026 +0000"
      },
      "message": "kleaf: Fix bazel help kleaf custom flags printing\n\nFix _FLAG_PATTERN and read_flag_comment in kleaf_help.py to correctly\nparse and resolve labels starting with @kleaf//. This allows custom\nflags from flags.bazelrc to be printed in `bazel help kleaf`.\n\nAlso update the integration test to assert the presence of a custom flag.\n\nTAG\u003dagy\nCONV\u003d011a7480-dc5f-41f4-bc11-aa8ad73e0637\n\nBug: 514726998\nAssisted-by: Jetski:Gemini-Next\nChange-Id: I061383301d9dedd87235b972a9f5efadb7384ddb\n"
    },
    {
      "commit": "3f7842f6cb8ea8498563ac5f9042f1a5ba01c4f4",
      "tree": "f42d55132a7e3088eedae4c57b1e58a7435f02be",
      "parents": [
        "ba9d22372d4ed24e69e720ba58fd19ba3f32e02b"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Thu May 21 12:18:07 2026 -0700"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Thu May 21 13:28:17 2026 -0700"
      },
      "message": "Revert \"kleaf: Set up toolchains dynamically\"\n\nThis reverts commit 1e0511ad110e8eb5944f746efe4201931cb588c9.\n\nReason for revert: Potential culprit for build break.\n\nTested: tools/bazel run //common:kernel_aarch64_dist --config\u003dlocal\nBug: 515023391\nBug: 508337506\nChange-Id: I0af24b44f8a864de638eff1148aea39c496fe1f9\n"
    },
    {
      "commit": "ba9d22372d4ed24e69e720ba58fd19ba3f32e02b",
      "tree": "93ff24fac04f6f39fe8f274d219a8ddea66a9014",
      "parents": [
        "1396690be9d3b8f8014e7b467b7efa3ef320c368"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue May 05 19:13:40 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed May 20 13:40:49 2026 -0700"
      },
      "message": "kleaf: Add ddk_module(gcov\u003d).\n\nAdd the attribute `ddk_module`, `ddk_submodule`, and `ddk_library`.\nWhen the attribute is \"never\", explicitly set `GCOV_PROFILE_\u003cobj\u003e :\u003d n`\nto disable gcov profiling for compiled object files in the generated\nMakefile. If \"always\", then set it to \"y\". Otherwise nothing is set.\n\nBug: 376171492\nBug: 511965686\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: Ia4c22355fa9cffb7d8f3b198781f3cf4931eccae\n"
    },
    {
      "commit": "1396690be9d3b8f8014e7b467b7efa3ef320c368",
      "tree": "94f9eb20e78a2e4a61102d7df1deeaca9b0868b6",
      "parents": [
        "d4402bea996c5a6e7dd457403c951545e9692b1c"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue May 19 00:04:44 2026 +0000"
      },
      "committer": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue May 19 18:09:47 2026 +0000"
      },
      "message": "kleaf: Set up toolchains dynamically\n\nSet up toolchains in the environment setup script early, so that the\nresolved toolchain variables are available for subsequent setup commands\n(especially the one that calls `which clang` to find out libclang path.)\n\nBug: 508337506\nChange-Id: Ifa1e64186c19bc9e57131cfa6db8bfc064cdad7c\n"
    },
    {
      "commit": "d4402bea996c5a6e7dd457403c951545e9692b1c",
      "tree": "f37db449f6a8cbee49bca1ebf08fa7c6f840e3c6",
      "parents": [
        "c3be6130ac3d0a6a52505beabfc2ef1a61a92888"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue May 19 00:02:04 2026 +0000"
      },
      "committer": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue May 19 18:09:47 2026 +0000"
      },
      "message": "kleaf: Add clang\u0027s short path to PATH\n\nAdd clang\u0027s short path to PATH so that it can be found in the runfiles\nof external repositories (e.g. in DDK workspaces).\n\nBug: 508337506\nChange-Id: I6c3a4f6d1056b8e90c0a856232f330b2c6f024a2\n"
    },
    {
      "commit": "c3be6130ac3d0a6a52505beabfc2ef1a61a92888",
      "tree": "3e2ce59c38bb50b1330c2d7ed0e330b70deba586",
      "parents": [
        "8655b088e5c780e02d080bdf2cca6a158d4f609d"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue May 12 01:38:30 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon May 18 10:36:47 2026 -0700"
      },
      "message": "kleaf: Stop supporting DEFCONFIG build config.\n\nThe build config, DEFCONFIG, is no longer supported and replaced by\nkernel_build(defconfig\u003d). Make it an error. Clean up legacy code paths.\n\nBug: 505935695\nChange-Id: I95607b5f2279e8df9edd3ea2f2dcb64fcaf95b13\n"
    },
    {
      "commit": "8655b088e5c780e02d080bdf2cca6a158d4f609d",
      "tree": "0fcf12e186d2516c2d393b7eb9aabd59371b4367",
      "parents": [
        "cf9245771481a0ebdb6667622a9d2e661349d004"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Mon May 11 18:21:48 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri May 15 14:44:07 2026 -0700"
      },
      "message": "Kleaf: Add strip_modules to rules for images\n\n* This makes it possible to request this specify action in\n  the following kernel images rules: initramfs, system_dlkm\n  and vendor_dlkm.\n* This makes it possible to remove the deprecated DO_NOT_STRIP_MODULES\n  config and instead rely on an explicit variable to request module\n  stripping.\n* A note on build_utils.sh: Previously DO_NOT_STRIP_MODULES worked as a\n  gate to make sure no unstripped modules ended in the initramfs image\n  it worked by either stripping the kernel modules during the main\n  kernel build or during the creation of the staging directory for the\n  initramfs. The new implementation makes this clear by explicitly\n  calling the variable by it\u0027s intended effect.\n\nBug: 360407020\nChange-Id: I18e5d636d86107a2b317999e11b3d5cfc7788430\n"
    },
    {
      "commit": "cf9245771481a0ebdb6667622a9d2e661349d004",
      "tree": "2bc57b34a941c4b485d04b2f26b94d63b1d28497",
      "parents": [
        "07c71fbb04115b6399f80b243c730c7e876d6df9"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Thu May 14 17:23:38 2026 +0000"
      },
      "committer": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Thu May 14 17:24:56 2026 +0000"
      },
      "message": "kleaf: Add test_menuconfig integration test.\n\nTest that bazel run //common:kernel_aarch64_config works.\n\nBug: 508337506\nChange-Id: Idf38ef796c38e2dd1f0dfa761859117eb22b5611\n"
    },
    {
      "commit": "07c71fbb04115b6399f80b243c730c7e876d6df9",
      "tree": "8dbbc09534a766df9e0b32b35f038ef0600e03ed",
      "parents": [
        "d3aa9a629939ee4411268c735b18d8357a3d8a25"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Thu May 14 01:43:54 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu May 14 09:33:35 2026 -0700"
      },
      "message": "kleaf: improve KLEAF_REPO_WORKSPACE_ROOT handling\n\nThis ensures kernel_env replaces variables correctly without\n--legacy_external_runfiles. In particular, in `bazel run` /\n`bazel test`, the @kleaf module lives in $PWD/../kleaf+, not\n$PWD/external/kleaf+.\n\nHandle KLEAF_REPO_WORKSPACE_ROOT better when kleaf is used as a dependent\nmodule (especially with Bzlmod where repo names might have suffixes like \u0027+\u0027)\nand during bazel run or bazel test.\n\nSpecifically:\n- In kernel_env, conditionally replace paths based on whether kleaf is\n  the root module. If it is a dependent module, replace the hardcoded\n  workspace root with KLEAF_REPO_WORKSPACE_ROOT to ensure correctness\n  in sourced environments.\n- In _get_env_setup_cmds, derive KLEAF_REPO_WORKSPACE_ROOT from the\n  short_path of setup_env.sh when executed under bazel run or\n  bazel test, accommodating complex repository names.\n\nBug: 508337506\nChange-Id: I1abbfa32df8c7aadfd9daff9bac908df23b151fb\n"
    },
    {
      "commit": "d3aa9a629939ee4411268c735b18d8357a3d8a25",
      "tree": "7d3beeb23886de43ad19d434c4f53d5c41f865f9",
      "parents": [
        "72f28ba9afb95444dcbf06358fbefb2d21158efd"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed Apr 15 19:56:44 2026 +0000"
      },
      "committer": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Thu May 14 01:54:38 2026 +0000"
      },
      "message": "kleaf: Enable --clippy by default.\n\nNo significant increase in build time is observed, and this\nensures more lint warnings/errors to be emitted for\nRust code in the kernel.\n\nBug: 499039297\nChange-Id: I6282ea7afe3608008f06ce59b85f2d8fcb28fb83\n"
    },
    {
      "commit": "72f28ba9afb95444dcbf06358fbefb2d21158efd",
      "tree": "2392cb5a91f81a6d422167e1c105728b1b2d9fb5",
      "parents": [
        "b82d6549424b141566a5ae73c1af078447da65ec"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue May 12 23:47:40 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed May 13 17:10:33 2026 -0700"
      },
      "message": "kleaf: Probe merge_config.sh -Q support dynamically for U-Boot\n\nOlder embedded projects like U-Boot include an older version of\nmerge_config.sh that lacks support for the -Q (quiet) flag. Dynamically\nprobe merge_config.sh -h output to check for -Q support before passing\nit, printing a warning and falling back gracefully if unsupported.\n\nBug: 505935695\nChange-Id: Iae7cc287fd0237c82c941dc0a6cf8e1c2822b4fc\n"
    },
    {
      "commit": "b82d6549424b141566a5ae73c1af078447da65ec",
      "tree": "f9854ae1c116a12ea43fffbf2c0983ca6c2af23d",
      "parents": [
        "9a06a695f2ded8cbf27fbea30be8d573894b2233"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue May 12 23:24:12 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed May 13 17:10:03 2026 -0700"
      },
      "message": "kleaf: Add srcarch attribute support to kernel_build\n\nAllow overriding the inferred SRCARCH value directly via the srcarch\nattribute in kernel_build. Propagate this attribute down to kernel_config\nand set_src_arch_cmd to override the automatic inference logic based on ARCH.\nThis allows projects like U-Boot to set srcarch \u003d \"..\" to point to their custom\nconfiguration directory structure.\n\nBug: 505935695\nChange-Id: Ia1b01d9a025f6dc733c9aa4d4e4633904f365677\n"
    },
    {
      "commit": "9a06a695f2ded8cbf27fbea30be8d573894b2233",
      "tree": "b7f4e64d8fea56beee91ba8c4c5ec9b4431f0993",
      "parents": [
        "4dfb472b680e376303375f00330708669a846750"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Tue May 12 02:13:50 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed May 13 02:55:56 2026 -0700"
      },
      "message": "kleaf: also include short path of rustc in PATH.\n\n... so that rust is also available during menuconfig. This\nensures CONFIG_RUST is not gone when running menuconfig.\n\nBug: 508337506\nChange-Id: I083078cb5183e7d7fefeb5f9d9617aab6187fe72\n"
    },
    {
      "commit": "4dfb472b680e376303375f00330708669a846750",
      "tree": "556f47e5cd9bea3a60fbe7f0ff33d65c82830e65",
      "parents": [
        "a14e5d31141767aa25988e0d09907e2e9c61d3da"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed Apr 22 02:51:04 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue May 12 04:40:20 2026 -0700"
      },
      "message": "kleaf: Don\u0027t autoload rules_python/rules_shell\n\nThis makes sure that we aren\u0027t autoloading py_* and sh_* rules. All\nrules must be explictly loaded from @rules_python and @rules_shell.\n\nBug: 454985451\nChange-Id: I62861b84c3db54bc4adbe15f06d901b582b32d70\n"
    },
    {
      "commit": "a14e5d31141767aa25988e0d09907e2e9c61d3da",
      "tree": "36f4e6fc66e2bdf917db9a6e44d39af565d6b992",
      "parents": [
        "5f98751016a8e294210e76d559b68459d6c9965b"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Wed May 06 15:30:19 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Fri May 08 12:16:55 2026 +0000"
      },
      "message": "Kleaf: Add support for ddk_module.strip_modules\n\n* The current behaviour to keep the debug info for external modules is\n  inherited from the kernel_build, the new attribute allows users to\n  override it for every ddk_module.\n\nBug: 300108231\nChange-Id: If8f708a60b7ecb9ffa4b1bcfe7244cf93fe03760\n"
    },
    {
      "commit": "5f98751016a8e294210e76d559b68459d6c9965b",
      "tree": "56d4fe511b05a708902e663b0316cbfcdbd0f387",
      "parents": [
        "abd1599332410cd14e30773e16e862efab7713f9"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Wed May 06 11:34:57 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu May 07 16:40:44 2026 -0700"
      },
      "message": "Kleaf: Use hermetic tools and cc toolchain in btf\n\n* This CL removes the env attribute as it\u0027s not needed anymore, and\n  instead adds a new pahole one, to specify which pahole tool use, it\n  defaults to the prebuilt one from kernel prebuilt tools.\n\n* This CL also updates the exmaple for how to access the cc toolchain in\n  custom rules, as cc_common is not global anymore.\n\nTested: tools/bazel build //common:kernel_aarch64_btf\nBug: 272164611\nBug: 498585336\nChange-Id: Ie80071380ddd630179d21082afa0393d5a7e99fe\n"
    },
    {
      "commit": "abd1599332410cd14e30773e16e862efab7713f9",
      "tree": "911ed7786e3e5d115b149c97552270234de3785e",
      "parents": [
        "9a4cd9f4bbf3ca0d052034ce45676bbdf8774577"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed May 06 19:58:48 2026 +0000"
      },
      "committer": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed May 06 20:01:57 2026 +0000"
      },
      "message": "kleaf: Fix docs for ddk_library(support_ftrace\u003d)\n\nThe docs are placed at the wrong line.\n\nFixes: e4c221f16beb (\"kleaf: Add ddk_module(support_ftrace\u003d).\")\nChange-Id: I28a94b51419ce24e536ed573adb37bf75377eb09\n"
    },
    {
      "commit": "9a4cd9f4bbf3ca0d052034ce45676bbdf8774577",
      "tree": "4d7a7a7249de479f664a78d5b6e59fac14847dbe",
      "parents": [
        "5621fe56406e00bd8f9195f28ea92bc152fe37c5"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Wed May 06 15:34:55 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Wed May 06 15:36:31 2026 +0000"
      },
      "message": "Kleaf: Fix docs target\n\nCurrently broken due to a missing dependency.\n\nFixes: 83b01160f780 (\"Kleaf: Fix kernel_build.generate_vmlinux_btf\")\nBug: 498585336\nChange-Id: Id99a1552e221b0e2f688d4cc210c296171f7ef47\n"
    },
    {
      "commit": "5621fe56406e00bd8f9195f28ea92bc152fe37c5",
      "tree": "734923842ecca2a4db6c7c31e62a4a4b33deb802",
      "parents": [
        "83b01160f780a269ddcd24acca11e95c9f577755"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Thu Apr 30 15:56:39 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue May 05 13:46:42 2026 -0700"
      },
      "message": "Reapply \"Kleaf: Add subrule to run STG for DDK modules\"\n\nThis reverts commit c8ac1c7b0a7fb2e3587a92302570ac4a17a9e1f4.\n\nReason for revert: Re-landing change.\n\nOriginal description:\n\nKleaf: Add subrule to run STG for DDK modules\n\n* This produces an `abi.stg` file with the ABI\n  representation from all the .ko binaries found\n  in the unstripped directory.\n\nTested: tools/bazel build \\\n  //build/kernel/kleaf/tests/ddk_examples/ddk_config_deps/children:child2 \\\n  --output_groups\u003d\"abi.stg\"\nTested: tools/bazel build \\\n  //common-modules/virtual-device:aarch64/goldfish_drivers/goldfish_address_space \\\n  --output_groups\u003d\"abi.stg\"\nBug: 400906965\nBug: 383493633\nChange-Id: I58bfbb676e693af5e03ce449207860dd880d1b56\n"
    },
    {
      "commit": "83b01160f780a269ddcd24acca11e95c9f577755",
      "tree": "04a82bad308065fe239a4d4353d48e00692b0c4d",
      "parents": [
        "e4c221f16beb168a46590d4ea93e0e7a4492eee8"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue May 05 12:54:20 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue May 05 12:58:09 2026 +0000"
      },
      "message": "Kleaf: Fix kernel_build.generate_vmlinux_btf\n\nThis change splits the export of PAHOLE env variable, so it can be\naccessible as standalone tool (outside of TOOL_ARGS), then uses it\ninside the btf rule.\n\nThis change also extracts the vmlinux input needed from the kernel_build\nvia a select_file rule, otherwise the file is not found by the btf rule.\n\nTested: tools/bazel build //common:kernel_aarch64_btf\nBug: 498585336\nChange-Id: I612b68cfc7c27c14b9bd04578869a4139c7c2beb\n"
    },
    {
      "commit": "e4c221f16beb168a46590d4ea93e0e7a4492eee8",
      "tree": "fb5b3935b36500589ce3080868edbf848f2643df",
      "parents": [
        "0cad96ceea03c85e5b06cbc59fadabbe34674169"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed Apr 29 01:45:50 2026 +0000"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon May 04 14:23:28 2026 -0700"
      },
      "message": "kleaf: Add ddk_module(support_ftrace\u003d).\n\nWhen the attribute is false, explicitly remove ftrace flags from this module.\n\nBug: 376171492\nChange-Id: I4bea1968eac8008d03569d1fda46b897d31fbc02\n"
    },
    {
      "commit": "0cad96ceea03c85e5b06cbc59fadabbe34674169",
      "tree": "34973b21174563a1a37c6e6681ce10368569cb50",
      "parents": [
        "ec4cc513e3ad2f7649734b2a00ae523bf4671863"
      ],
      "author": {
        "name": "Brandon Chen",
        "email": "brandon.chen@imgtec.com",
        "time": "Tue Apr 14 20:59:05 2026 +0800"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri May 01 03:22:21 2026 -0700"
      },
      "message": "kleaf: add ci_target_mapping for kernel_x86_64\n\nTest: tools/bazel build //common:kernel_x86_64_ci_target_mapping\nBug: 493138451\n\nChange-Id: I93eace593e129dd78b4681546859fe6f524aaa08\nSigned-off-by: Brandon Chen \u003cbrandon.chen@imgtec.com\u003e\n"
    },
    {
      "commit": "ec4cc513e3ad2f7649734b2a00ae523bf4671863",
      "tree": "bd2e73ed31eb74a310f21e842b18f1f4c3f9cfd4",
      "parents": [
        "ccac7a789ca875bbe486618e453e2bb0dae898e5"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Wed Apr 22 03:24:10 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Apr 30 16:21:31 2026 -0700"
      },
      "message": "kleaf: Drop rule_extension_api and enable_scl_dialect.\n\nThey are already true by default.\n\nBug: N/A\nChange-Id: I34a8c4ca0a13a36dbf5bb890ec67f48f0bf83b41\n"
    },
    {
      "commit": "ccac7a789ca875bbe486618e453e2bb0dae898e5",
      "tree": "a25cdbd8e21ab082843cba2ee31dd6c50529a43e",
      "parents": [
        "0bd6c0a9a21b3497b3d13f5e4b677fc96e58cf17"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Mon Mar 30 23:37:37 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Apr 30 01:36:15 2026 -0700"
      },
      "message": "Add summary for .py/.sh files\n\nChange-Id: Ib7625161296b65089d7031d1a594e16f80476480\n"
    }
  ],
  "next": "0bd6c0a9a21b3497b3d13f5e4b677fc96e58cf17"
}
