)]}'
{
  "log": [
    {
      "commit": "0891dcf652a2dad6bb6930d3a8344137466d8660",
      "tree": "976c5b04e8c25228e6d4d0fb33c9e1c8636de614",
      "parents": [
        "e250bba4cebedd54ff18a501438e670c9bb8fd53"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Fri Aug 14 13:55:19 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Mon Aug 17 08:33:36 2026 -0700"
      },
      "message": "Remove unused UTP dependencies\n\nRemoves explicit com.google.testing.platform dependencies and unused\ntransitive dependencies (such as protobuf 4.28.3 and protoc 4.28.3)\nfrom data.bzl and utp/BUILD.bazel, and regenerates BUILD.maven.\n\nBug: N/A\nTest: //tools/base/bazel:local_maven_repository_generator_tests, //tools/base/utp/...\nChange-Id: Ia9e2f45d8d53c7bf2d5460dd91aaa9a35989e112\n"
    },
    {
      "commit": "e250bba4cebedd54ff18a501438e670c9bb8fd53",
      "tree": "97c7eb11bf9d6b6475d785613d5d5fb2ca4aae06",
      "parents": [
        "e046c05cae89733f4c8ce99dad4c9f806b25de31"
      ],
      "author": {
        "name": "PierfrancescoSoffritti",
        "email": "psoffritti@google.com",
        "time": "Fri Aug 14 12:55:43 2026 +0100"
      },
      "committer": {
        "name": "Pierfrancesco Soffritti",
        "email": "psoffritti@google.com",
        "time": "Mon Aug 17 07:34:37 2026 -0700"
      },
      "message": "Share the throwing shell-command helper\n\nTest: NA\nBug: 500674232\nChange-Id: Id796c798d678ee940d7b131b223600559adb72e2\n"
    },
    {
      "commit": "e046c05cae89733f4c8ce99dad4c9f806b25de31",
      "tree": "61ff7d34b80f9a72865e9345857cf84d578f7251",
      "parents": [
        "16a952d42ef6b17e5014ef382ae3e3fbcc2d5e1b"
      ],
      "author": {
        "name": "PierfrancescoSoffritti",
        "email": "psoffritti@google.com",
        "time": "Fri Aug 14 11:40:23 2026 +0100"
      },
      "committer": {
        "name": "Pierfrancesco Soffritti",
        "email": "psoffritti@google.com",
        "time": "Mon Aug 17 07:34:37 2026 -0700"
      },
      "message": "Split InjectionManager into focused collaborators\n\nMove some functionality out of InjectionManager:\n\n1. DebugViewAttributes: the device setting that exposes attribute\nresolution stacks.\n2. AgentSocketChecker: probing and waiting for the agent\u0027s server\nsocket, with logcat diagnostics.\n3. HostArtifacts: resolving shipped files from disk or classpath\nresources.\n\nTest: NA\nBug: 500674232\nChange-Id: Icd94daedfb7f05732c02c9f210453a857566aa13\n"
    },
    {
      "commit": "16a952d42ef6b17e5014ef382ae3e3fbcc2d5e1b",
      "tree": "ef2611086c7025254a3b1b7c60dc6eb7b24b22c9",
      "parents": [
        "1ad0f4a4b7b0c205283254a39305a7a5f026eea2"
      ],
      "author": {
        "name": "PierfrancescoSoffritti",
        "email": "psoffritti@google.com",
        "time": "Thu Aug 13 19:10:57 2026 +0100"
      },
      "committer": {
        "name": "Pierfrancesco Soffritti",
        "email": "psoffritti@google.com",
        "time": "Mon Aug 17 07:34:37 2026 -0700"
      },
      "message": "Include --compose-inspector override jars in the server identity\n\nA running server keeps the Compose inspector it first loaded, so\npassing a different --compose-inspector jar silently kept using the\nold one. Including the override jar\u0027s bytes in the server digest\nfixes this: a changed jar produces a different socket name, so the\nhost starts a fresh server that actually loads it, and the old server\nexpires through the usual inactivity timeout. An unchanged jar keeps\nreconnecting to the running server.\n\nTest: ComposeInspectorTest\nTest: InjectionManagerIntegrationTest\nTest: InjectionManagerTest\nTest: ShippedArtifactsDigestTest\nBug: 500674232\nChange-Id: I3aac8b3a84cdf3a8b7e2ee2cfc91040e9773cdf7\n"
    },
    {
      "commit": "1ad0f4a4b7b0c205283254a39305a7a5f026eea2",
      "tree": "8b56d5de9b780cd7bfface59c8a645286519685b",
      "parents": [
        "ddbb9921ef438fb52430cbe5fdb7b32cd04076ef"
      ],
      "author": {
        "name": "PierfrancescoSoffritti",
        "email": "psoffritti@google.com",
        "time": "Thu Aug 13 17:56:20 2026 +0100"
      },
      "committer": {
        "name": "Pierfrancesco Soffritti",
        "email": "psoffritti@google.com",
        "time": "Mon Aug 17 07:34:37 2026 -0700"
      },
      "message": "Name staged UI Inspector artifacts by their content hash\n\nStaged files lived under fixed names, so every run re-transferred\nevery artifact, and concurrent runs of different builds could\nsilently overwrite each other\u0027s files. Naming each staged file by a\nhash of its content fixes both: the path identifies the content, so a\ncheap stat check replaces the transfer when the file is already\nstaged, and different builds write different paths instead of racing.\nPushing a new version deletes the old ones, keeping one version per\nartifact on the device.\n\nThe app-side install uses the same names for the jars. The agent\nbinary keeps its fixed name: dlopen keys loaded libraries by path,\nand a process must only ever host one native agent.\n\nTest: ComposeInspectorTest\nTest: InjectionManagerTest\nTest: ShippedArtifactsDigestTest\nBug: 500674232\nChange-Id: Ib71d288c57eac09cf4c307a84677b9be05bcf296\n"
    },
    {
      "commit": "ddbb9921ef438fb52430cbe5fdb7b32cd04076ef",
      "tree": "b8fe5c065eccc26ba5b51e626f97e4e752bc136f",
      "parents": [
        "447553a7ba466f05ad79588801ebff0c51eed1de"
      ],
      "author": {
        "name": "PierfrancescoSoffritti",
        "email": "psoffritti@google.com",
        "time": "Wed Aug 12 18:12:36 2026 +0100"
      },
      "committer": {
        "name": "Pierfrancesco Soffritti",
        "email": "psoffritti@google.com",
        "time": "Mon Aug 17 07:34:37 2026 -0700"
      },
      "message": "Reconnect to a running UI Inspector server across multiple runs\n\nEvery dump-ui run performed the full injection sequence even when the\ndevice-side server from a previous run was still alive. The server\nsocket name embeds the target pid and the shipped-artifact digest, so a\nlive socket with the expected name identifies a server of exactly this\nversion in exactly the target process. Probe for it before pushing\nanything and reconnect when it exists, skipping the artifact pushes,\nrun-as staging, agent attach, and socket wait.\n\nThe probed server can shut down between the probe and the ifirst\nexchange, and adb creates the device-side leg of a forward lazily, so a\ntransport failure up to the first command round trip of a reused server\ntriggers exactly one forced full injection; agent crash reports,\ncancellation, and anything after the first response propagate unchanged.\n\nTest: ComposeInspectorTest\nTest: InjectionManagerIntegrationTest\nTest: InjectionManagerTest\nBug: 500674232\nChange-Id: Icdade4670fa1da53e868fa909cf38884d6ea64ba\n"
    },
    {
      "commit": "447553a7ba466f05ad79588801ebff0c51eed1de",
      "tree": "f4a1ca6aea91e869c4dade7a7e57998dccd8a6da",
      "parents": [
        "616f59eebc4340b21dd8158add989d505a3bce24"
      ],
      "author": {
        "name": "Jyoti Yadav",
        "email": "jyotiydv@google.com",
        "time": "Sun Aug 16 23:15:47 2026 -0700"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Aug 17 07:20:59 2026 -0700"
      },
      "message": "Updated to Rabbit 1 Canary 2.\nBug : 546351265\n\nChange-Id: Ied45997291fd11b879ce5cc24f2bf9c868224b53\n"
    },
    {
      "commit": "616f59eebc4340b21dd8158add989d505a3bce24",
      "tree": "adf1ad70477a4a55381b0d197b9f3788ead9c2d2",
      "parents": [
        "192e24639db8cf3d91c8f108a2717bddf62a16d6"
      ],
      "author": {
        "name": "soumyakantas",
        "email": "soumyakantas@google.com",
        "time": "Mon Aug 17 17:35:23 2026 +0530"
      },
      "committer": {
        "name": "soumyakantas",
        "email": "soumyakantas@google.com",
        "time": "Mon Aug 17 18:05:16 2026 +0530"
      },
      "message": "Safely parse new LeakCanary 3.0 GC roots\n\nUpdates GcRootType to handle the 7 new GC root types introduced\nin LeakCanary 3.0 (such as INTERNED_STRING, DEBUGGER, etc.).\nAdditionally, fromDescription is modified to gracefully return\nan UNKNOWN enum value rather than throwing an Exception. This\nensures that the AnalysisParser will not crash and drop entire\nleak reports if future GC root types are added by LeakCanary.\n\nBug: 542977089\nTest: Updated LeakTraceTest.kt\n\nChange-Id: I580b98ed72ccf7462ec970d51844d3d444b064df\n"
    },
    {
      "commit": "192e24639db8cf3d91c8f108a2717bddf62a16d6",
      "tree": "064ce5c76d2a7771c8be694abde32016ff7a422f",
      "parents": [
        "a20eb9009acd07499c3ed5433b051b886f238395"
      ],
      "author": {
        "name": "Harshit Rawat",
        "email": "rawatharshit@google.com",
        "time": "Mon Aug 17 06:12:16 2026 +0000"
      },
      "committer": {
        "name": "Harshit Rawat",
        "email": "rawatharshit@google.com",
        "time": "Mon Aug 17 01:50:12 2026 -0700"
      },
      "message": "perflib: Eliminate global cache in Snapshot memory compaction\n\nSnapshot.compactMemory previously attempted to intern reference lists\nacross all instances by placing them into Java HashSets and storing\nthem in a global LinkedHashMap cache.\n\nWhen reference lists are almost entirely unique, the cache retained\nThese unique HashSet entries, creating millions of HashMap node\nobjects and consuming GBs of heap memory, which triggered\nOutOfMemory crashes.\n\nThis change removes the global cache and introduces an in-place\ncompact() method on InstanceList. Compaction now runs locally per\ninstance, trimming trailing nulls, deduplicating elements, and\nunboxing single-element arrays directly into scalar pointers.\n\nFast paths are added for 0, 1 or 2 references, which cover majority\nof heap graph edges based on heuristics , bypassing generic\nsequence and set allocations.\n\nThis fix eliminates the peak cache memory overhead and reduces\nthe compaction execution time.\n\nBug: 547386400\nTest: SnapshotMemoryCompactionTest\nChange-Id: I116b7f51af3aaad61f440a0e4fcab27385978664\n"
    },
    {
      "commit": "a20eb9009acd07499c3ed5433b051b886f238395",
      "tree": "3b6b240e8cca0dca31492152e9cba3a871eaccba",
      "parents": [
        "542b767c191b463105332876c46d4a902376dddd"
      ],
      "author": {
        "name": "Renaud Paquay",
        "email": "rpaquay@google.com",
        "time": "Mon Jul 13 14:22:15 2026 -0700"
      },
      "committer": {
        "name": "Renaud Paquay",
        "email": "rpaquay@google.com",
        "time": "Sat Aug 15 20:50:08 2026 -0700"
      },
      "message": "Add support for typescript, pnpm and vsix\n\nNo support for Windows yet, as there are \"complications\" that\nmakes bazel rules even more complex.\n\nSee bazel/docs/typescript_node_vsix_support.md for details.\n\nBug: n/a\nTest: n/a\nChange-Id: I05f4a8053308d5a61010e49b3c2b667b8c41eee5\n"
    },
    {
      "commit": "542b767c191b463105332876c46d4a902376dddd",
      "tree": "ec5b5418e8290687b5f819bba35232a18a9b2be6",
      "parents": [
        "16a26ac4105a7c09d518f329a1ff4de59782352f"
      ],
      "author": {
        "name": "Shai Barack",
        "email": "shayba@google.com",
        "time": "Sat Aug 15 02:57:38 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Sat Aug 15 00:22:02 2026 -0700"
      },
      "message": "Add ThreadPriorityConfusion lint check\n\nDetects integer confusion when setting thread priorities between different APIs:\n- java.lang.Thread.setPriority(int) [1..10]\n- android.os.Process.setThreadPriority(int) [-20..19]\n\nFlags:\n- Cross-passing constants (e.g. Thread.MAX_PRIORITY to Process.setThreadPriority).\n- Literal values out-of-bounds.\n- Resolves local variables to trace back to source constants.\n- Correctly handles Kotlin named arguments and properties.\n\nBug: 545840873\nTest: ThreadPriorityDetectorTest\nChange-Id: If206fa5243abb3b42535e4eb088b35218daafbb7\n"
    },
    {
      "commit": "16a26ac4105a7c09d518f329a1ff4de59782352f",
      "tree": "2491f1d2d7d514aa8d01b75a8f68cfad8ac23656",
      "parents": [
        "28673c775bba8ce432d22fb5cf65e5cb51574754"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Fri Aug 14 15:15:25 2026 -0700"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Fri Aug 14 15:55:16 2026 -0700"
      },
      "message": "Add infra folks to tools/base/bazel/OWNERS\n\nChange-Id: I5129b22495fe431388df791fbd928db2a8b063e0\n"
    },
    {
      "commit": "28673c775bba8ce432d22fb5cf65e5cb51574754",
      "tree": "194e4422502de6104798cd27af063dec4bdd246f",
      "parents": [
        "bfa488ed2560df0f4dfa36c69d74dd59ce0e9e3a"
      ],
      "author": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Mon Aug 10 14:58:03 2026 -0700"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Aug 14 15:14:05 2026 -0700"
      },
      "message": "Upgrade Bazel to 8.7\n\nBuilding Bazel targets in tools/idea requires\n\n  repository_ctx.repo_metadata\n\nWhich seems to be missing from Bazel 8.2.1 but available on 8.7.\n\nIt also seems that an update to 9.x is more complicated.\n\nFixes: 544678526\nTest: NA\n\nTAG\u003dagy\nCONV\u003dd585064b-3216-440e-9559-8c9001b5b2cc\n\nChange-Id: I4422e02ec14bbece498256c5cdedabad767be6fc\n"
    },
    {
      "commit": "bfa488ed2560df0f4dfa36c69d74dd59ce0e9e3a",
      "tree": "409ce3a85dfc761d3e83589d2e4ec8c041c7c6b0",
      "parents": [
        "2c73c04cf737b8c34e587fc1b531a9c0d2b83e6b"
      ],
      "author": {
        "name": "Phil Nguyen",
        "email": "philnguyen@google.com",
        "time": "Wed Aug 12 16:59:44 2026 -0700"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Aug 14 13:14:00 2026 -0700"
      },
      "message": "Analyze default parameters once, as part of method, not call site\n\nThe analysis was sloppily analyzing default argument computations at\neach call site instead of once at the method\u0027s definition. This was\nwrong because:\n* Default-parameter expressions reference the method\u0027s environment, but\nwere used against the call-site\u0027s environment (which made it \"dynamic\nscope\" instead of the only correct choice \"lexical scope\").\n* A problematic default-argument expression with 0 call site will not be\nreported, while with 2+ call sites will get duplicate reports.\n\nThis change analyzes the default parameters once. An unannotated method\nwill get inferred to also include effects from computing default\nparameters. A future CL will improve precision in uncommon cases when a\nmethod is passed custom arguments that don\u0027t trigger computing some\ndefault ones.\n\nBug: n/a\nTest: new\nChange-Id: Ic4704f371a4ee0dbe02f604c0fcbdf8e3d2e42da\n"
    },
    {
      "commit": "2c73c04cf737b8c34e587fc1b531a9c0d2b83e6b",
      "tree": "5203aaa7b79af46149cd07973e682bbac7b61f5b",
      "parents": [
        "b635623d6d8ea87a840db3572701b88f6f23803f"
      ],
      "author": {
        "name": "Chris Woodward",
        "email": "chriswoodward@google.com",
        "time": "Thu Aug 13 13:49:45 2026 -0700"
      },
      "committer": {
        "name": "Chris Woodward",
        "email": "chriswoodward@google.com",
        "time": "Fri Aug 14 13:08:15 2026 -0700"
      },
      "message": "Update to AndroidX Tracing 2.0 Stable\n\nBug: none\nTest: none\nChange-Id: I5fe16270413d89ddd29f8c194e2a09a3dcb91b84\n"
    },
    {
      "commit": "b635623d6d8ea87a840db3572701b88f6f23803f",
      "tree": "fe73fa00a9241ccdd87292c24d1f821912c63608",
      "parents": [
        "dcfc25d93e54d49b760f9b5fe7f5c6fc1f3ba342"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Fri Aug 14 10:43:01 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Fri Aug 14 12:59:36 2026 -0700"
      },
      "message": "Remove dead utp-core-proto-jarjar target\n\nThe utp-core-proto-jarjar target in tools/base/bazel/BUILD is no\nlonger referenced anywhere after the migration to android-test-engine.\n\nBug: N/A\nTest: ./bazel query \"//tools/base/bazel:*\"\nChange-Id: Ic45e184d5058e42978f65c7f570dd6ac5260de08\n"
    },
    {
      "commit": "dcfc25d93e54d49b760f9b5fe7f5c6fc1f3ba342",
      "tree": "41edc6c466056d598699d8e1d91955982a1ebe60",
      "parents": [
        "3933557f6a1facf7c9dd25f2ae176e5c16949a24"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Fri Aug 14 10:10:56 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Fri Aug 14 12:59:36 2026 -0700"
      },
      "message": "Add gradle-work-action to AGP_TEST_ARTIFACTS\n\nInclude //tools/base/utp/gradle-work-action in AGP_TEST_ARTIFACTS\nso that the artifact is built during hybrid Gradle builds and\nkept up to date in the local Maven repository.\n\nBug: N/A\nTest: AndroidConnectedTest\nChange-Id: If61ee012fbdb72e9bad8db6abbbaf25bdcd13604\n"
    },
    {
      "commit": "3933557f6a1facf7c9dd25f2ae176e5c16949a24",
      "tree": "81b0219949a0f0aec11160ebe8eae8b16927904c",
      "parents": [
        "af361f6c0361359dcf61a737dd878c4f1f9f24ad"
      ],
      "author": {
        "name": "vathsalyap",
        "email": "vathsalyap@google.com",
        "time": "Wed Aug 12 14:57:53 2026 +0000"
      },
      "committer": {
        "name": "Vathsalya Polineni",
        "email": "vathsalyap@google.com",
        "time": "Fri Aug 14 10:50:09 2026 -0700"
      },
      "message": "Share ComponentCreationConfig on TestSuiteSourceContainer and wire assemble tasks\n\nStore and initialize ComponentCreationConfig on TestSuiteSourceContainer so that\ntask management and model building operate on the same persistent component instance,\nconsistent with how unitTest and androidTest work in AGP.\nKey changes:\n- Add initializeCreationConfig to TestSuiteSourceContainer to instantiate\n  TestSuiteApkCreationConfig or TestSuiteHostJarCreationConfig during TestSuiteImpl init.\n- In TestSuiteTaskManager and HostJarTestSuiteTaskManager, reuse sourceContainer.creationConfig.\n- Ensure assembleTask and compileTask are properly registered and wired for both\n  TEST_APK and HOST_JAR test suites.\n- Connect ProcessJavaResTask and ScopedArtifact.CLASSES to assembleTask in HostJarTestSuiteTaskManager.\n\nBug: N/A\nTest: Integration tests: HostJarTestSuiteTest, TestSuiteWithAddedSourcesViaVariantAPITest, TestSuiteWithCustomSourceSetTest\nChange-Id: Icc2c99de82df531680c9d9163ea92ee10eb536eb\n"
    },
    {
      "commit": "af361f6c0361359dcf61a737dd878c4f1f9f24ad",
      "tree": "f71ac5c2720d3d9a3715e9d4bc08d5379cea225f",
      "parents": [
        "66dae8a5f7b4ec7c3e9d7178f52358d185aa5838"
      ],
      "author": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Thu Aug 13 14:03:32 2026 -0700"
      },
      "committer": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Fri Aug 14 10:40:47 2026 -0700"
      },
      "message": "Cleanup: `IDevice.kill` is not used by Android Studio\n\n`IDevice.kill` is not used by Android Studio and so its implementation\ncan be removed.\n\nTest: existing\nBug: n/a\nChange-Id: I61e133f26bb6c4e8a85efb833c93b0116979e959\n"
    },
    {
      "commit": "66dae8a5f7b4ec7c3e9d7178f52358d185aa5838",
      "tree": "c37a6c49c5107c7a2e66cffebae035bafc1e2ab0",
      "parents": [
        "29a2c91c9c9a61e932ede619d2524183dbe6b426"
      ],
      "author": {
        "name": "Phil Nguyen",
        "email": "philnguyen@google.com",
        "time": "Wed Aug 05 15:41:52 2026 -0700"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Aug 14 10:31:14 2026 -0700"
      },
      "message": "Also check for explicit annotations on methods outside the analysis scope\n\nIn the IDE, with only the current file in scope, the analysis wasn\u0027t\nlooking past the scope for explicit annotations. This was a regression\ncompared to the old `ThreadDetector`.\n\nThis change fixes it to resolve through PSI to check for explicit\nannotations.\n\nFixes: 526259553\nTest: new\nChange-Id: I3eb7f0504cda0227fc3862a986aae2cf86c03f6d\n"
    },
    {
      "commit": "29a2c91c9c9a61e932ede619d2524183dbe6b426",
      "tree": "9a68b3599ec76055916e3b4c2657fda05402c927",
      "parents": [
        "ef6b557928e141b0bd52d6a43a12926b7dc4b9d0"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Fri Aug 14 09:18:50 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Fri Aug 14 09:18:50 2026 -0700"
      },
      "message": "Remove unused unified_test_platform dependency from integration tests\n\nUTP has been replaced with android-test-engine. The required proto\nclasses are provided by android_test_result_proto, so remove the\nredundant libs.unified_test_platform dependency from integration test\nbuild files.\n\nBug: N/A\nTest: ./gradlew publishLocal\nChange-Id: I406ef0d74029410ce747b187e79ae5c5c8875eeb\n"
    },
    {
      "commit": "ef6b557928e141b0bd52d6a43a12926b7dc4b9d0",
      "tree": "346ee9cc12466c498d7ce68f0d8153a19e21a0e8",
      "parents": [
        "8fa8bdc52367c905f740279ae60618e0bec5eceb"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Thu Aug 13 14:18:47 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Fri Aug 14 09:03:59 2026 -0700"
      },
      "message": "Extract android-test version definitions to release_version.bzl\n\nStore android-test engine release and dev versions in\nrelease_version.bzl so they can be read by Gradle build files\nin properties format and exposed via com.android.Version.\n\nBug: N/A\nTest: existing Bazel tests, agp-version_test\nChange-Id: Ib704b0a21ad974ef861f3950ddf2b01a2fb0725e\n"
    },
    {
      "commit": "8fa8bdc52367c905f740279ae60618e0bec5eceb",
      "tree": "ed49ceaa20ceeba975ff6b1532ca2146b823114d",
      "parents": [
        "86cf6e5d2c6a6c4d044afb2ac21d952848f39f26"
      ],
      "author": {
        "name": "David Belcher",
        "email": "davidbelcher@google.com",
        "time": "Tue Aug 11 21:18:50 2026 +0100"
      },
      "committer": {
        "name": "David Belcher",
        "email": "davidbelcher@google.com",
        "time": "Fri Aug 14 02:30:33 2026 -0700"
      },
      "message": "Move sdkmanager wrappers to vendor/google/android\n\nMove `sdkmanager.sh` and `sdkmanager.bat` from `tools/base/sdklib` to\n`tools/vendor/google/android`. Update the corresponding Bazel build\nfiles to define and reference the wrapper targets from their new\nlocation.\n\nBug: 545190916\nTest: Existing\nChange-Id: I25dffa7fe2b225c510cdca77fab4981dccabab10\n"
    },
    {
      "commit": "86cf6e5d2c6a6c4d044afb2ac21d952848f39f26",
      "tree": "1e87d23073c904a812878cac3dae96b74a5674c4",
      "parents": [
        "897cad5aefca17bc87b1ce0852bd15a2a6dfdc88"
      ],
      "author": {
        "name": "Sharanya Saha",
        "email": "sharanyasaha@google.com",
        "time": "Tue Aug 11 15:47:51 2026 +0000"
      },
      "committer": {
        "name": "Sharanya Saha",
        "email": "sharanyasaha@google.com",
        "time": "Fri Aug 14 00:22:40 2026 -0700"
      },
      "message": "Traceconv binary in CI across platforms\n\nAdd the traceconv Perfetto tool to tools/base profiler native targets\nand CI build scripts for Linux, macOS, and Windows. This enables\ntraceconv binaries to be built automatically.\nThese binaries are used for symbolization and deobfuscation\nof native allocation captures.\n\nBug: 531691024\nTest: Manual\nChange-Id: I05d75c0a2310590977221d97a3eb9a42976cd54a\n"
    },
    {
      "commit": "897cad5aefca17bc87b1ce0852bd15a2a6dfdc88",
      "tree": "de0203bd12d694a1b2fe9cfd17a16801a8e346b1",
      "parents": [
        "7280df636b19900727870e711dd4d9b05b1bbcfc"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Thu Aug 13 11:57:25 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Thu Aug 13 15:09:26 2026 -0700"
      },
      "message": "Refactor android-test-junit-engine package structure\n\nReorganize classes in android-test-junit-engine from a single flat\npackage into modular, domain-specific packages:\n- descriptor/: JUnit TestEngine descriptors\n  (AndroidTestEngineDescriptor, AndroidDeviceDescriptor,\n  AndroidDynamicTestDescriptor)\n- config/: Engine configuration and input parameters\n  (AndroidTestConfiguration, AndroidTestConfigurationKeys,\n  AgpTestSuiteInput)\n- adb/: ADB interactions, device settings, and execution orchestration\n  (AndroidTestRunner, AdbController, AdbApkInstaller,\n  DeviceApiLevelProvider, DeviceSettingsController,\n  EmulatorControlHelper)\n- collector/: Test output, device info, logcat, and coverage\n  collectors (AndroidAdditionalTestOutputCollector,\n  AndroidTestCoverageCollector, AndroidTestDeviceInfoCollector,\n  CoverageAgentExtractor, CoverageAgentFilesystemInfo, LogcatCollector)\n- report/: Test report keys and XML listener (AndroidTestReportKeys,\n  XmlTestRunListener)\n- util/: File and path safety helper functions (PathSafety)\n\nBug: n/a\nTest: tools/base/bazel/bazel test //tools/base/android-test/...\nChange-Id: Ie1e1400328bf71e16ed4f7385268eccfa99ce6a6\n"
    },
    {
      "commit": "7280df636b19900727870e711dd4d9b05b1bbcfc",
      "tree": "752c658eb2b95afe87052470bf6dd9b6830dc113",
      "parents": [
        "417b73c37b2b9f8cdd614d91aef0f6ab7816bdb8"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Thu Aug 13 10:45:44 2026 -0700"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Thu Aug 13 13:36:04 2026 -0700"
      },
      "message": "Remove unused remote IntelliJ platforms\n\n...so that Bazel stops downloading these large files.\n\nChange-Id: I1487bf9de5a6e5ecf8bb91804baa1a59b8ccbc3b\n"
    },
    {
      "commit": "417b73c37b2b9f8cdd614d91aef0f6ab7816bdb8",
      "tree": "53f80c0ff46a6ec40840a2b879e4581b9b5907f7",
      "parents": [
        "958b07f52948ee4eba3282dd523b69cf92f6f70a"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Wed Aug 12 15:05:28 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Thu Aug 13 11:26:38 2026 -0700"
      },
      "message": "Add integration test for baseline profile generation\n\nThis test verifies that the baseline profile and startup profile are\ncorrectly generated when running the generateBaselineProfile task.\nThe test project is generated dynamically in the test rule.\n\nBug: 543799367\nTest: BaselineProfileConnectedTest\nChange-Id: I4f227c83deddf693aeb42eb8461122e5ce167b7b\n"
    },
    {
      "commit": "958b07f52948ee4eba3282dd523b69cf92f6f70a",
      "tree": "cb626fecfb8ed1e721311bffd5388f81f641062d",
      "parents": [
        "93b40c6e4cda126051b7d38ed6a1ca5266da4c37"
      ],
      "author": {
        "name": "Eugene Yakavets",
        "email": "yakavets@google.com",
        "time": "Thu Aug 13 17:20:51 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Aug 13 11:19:38 2026 -0700"
      },
      "message": "Cleanup docker-image-test\n\nFirst of all: remove JDK 8. Also removed unused dependencies and jvm flag.\n\nPresubmit-test: default\nBug: 539619373\nTest: Existing tests pass\nChange-Id: Ib53d8d57f203cd541e95a624d7c4edec21bbe0cb\n"
    },
    {
      "commit": "93b40c6e4cda126051b7d38ed6a1ca5266da4c37",
      "tree": "433264820f38ff6061f5c70c216ea1aa0f983393",
      "parents": [
        "35f74147a93af51c125d36cd12b98858cb04ab7a"
      ],
      "author": {
        "name": "Luke Edgar",
        "email": "lukeedgar@google.com",
        "time": "Tue Jul 14 16:27:09 2026 +0100"
      },
      "committer": {
        "name": "Luke Edgar",
        "email": "lukeedgar@google.com",
        "time": "Thu Aug 13 10:30:41 2026 -0700"
      },
      "message": "[pcc] Add instrumentation test support\n\nImplements instrumentation test execution with Private Compute Core (PCC)\nenvironment support.\n\nThere is not yet an AVD checked in for platform 37 (WIP), this means it is not yet possible to test the feature automatically. I have verified manually with a test project that androidTests are able to run with the device providing a valid pccId. Bug 541243010 is created to tracking adding a connected test for the feature when AVD 37 is added.\n\nRelnote: \"Adds privateComputeCoreInstrumentation to StaticTestData.\"\nBug: 530894183\nTest: Manually verified on a test project with target SDK 37, PrivateComputeCoreConnectedUnsupportedApiTest\nChange-Id: Icdff732984e5da1684513bdf892a42e76503dfab\n"
    },
    {
      "commit": "35f74147a93af51c125d36cd12b98858cb04ab7a",
      "tree": "603da8ae4e7f0b258f118b27df4e082edc4a079a",
      "parents": [
        "ff1751d7365def37a013f92f574f999e50c81359"
      ],
      "author": {
        "name": "samaypatel",
        "email": "samaypatel@google.com",
        "time": "Wed Jul 22 14:12:39 2026 +0000"
      },
      "committer": {
        "name": "samaypatel",
        "email": "samaypatel@google.com",
        "time": "Thu Aug 13 13:48:11 2026 +0000"
      },
      "message": "Add Kotlin 2.2.10, UTP 32.0.0, and Hilt 2.59 artifacts to offline Bazel Maven repo\n\nAdd prebuilt Maven artifacts and definitions for Kotlin 2.2.10, UTP 32.0.0, Google Testing Platform 0.0.9-alpha03, and Hilt 2.59 in tools/base/bazel/maven to support Studio E2E integration tests running offline against AGP 9.0.0 and Kotlin 2.2.10.\n\nBug: 525444688\nTest: n/a\nChange-Id: Ib755c48f216c30355dd9186715d3886c1467615d\n"
    },
    {
      "commit": "ff1751d7365def37a013f92f574f999e50c81359",
      "tree": "2749e0f0d61f82da0412e339003a14feed2a4658",
      "parents": [
        "9a8eb58accb25aec91cd082f073a96a3230897cd"
      ],
      "author": {
        "name": "Sherif Eid",
        "email": "sherifeid@google.com",
        "time": "Wed Aug 12 10:42:34 2026 +0100"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Aug 13 04:37:09 2026 -0700"
      },
      "message": "Update adblib ServerStatus to include LIBADBUSB\n\nTest: AdbHostServicesTest\nBug: 420952997\nChange-Id: I8b5258b1c238f28269539d9bffe58b44cf4de82a\n"
    },
    {
      "commit": "9a8eb58accb25aec91cd082f073a96a3230897cd",
      "tree": "de31af4ed647f022f3e8ce8bcaa242f0b6474670",
      "parents": [
        "8fd3c3a6739b507c531aa4b756ef11fa1717b93f"
      ],
      "author": {
        "name": "Madalin Valceleanu",
        "email": "vmadalin@google.com",
        "time": "Wed Aug 12 13:57:47 2026 +0000"
      },
      "committer": {
        "name": "Madalin Valceleanu",
        "email": "vmadalin@google.com",
        "time": "Thu Aug 13 02:46:31 2026 -0700"
      },
      "message": "Update to KGP 2.4.20-RC for tests\n\nTest: Existing\nBug: N/A\nTAG\u003dagy\nCONV\u003df5c2e506-c060-4d20-aca0-4322134be116\n\nChange-Id: I5a1553bee65836fbb44c3f216bb776c301e140b4\n"
    },
    {
      "commit": "8fd3c3a6739b507c531aa4b756ef11fa1717b93f",
      "tree": "a834fc4465913950b27f93cbb9f3a90ae113aaea",
      "parents": [
        "d7692a3c9060137fcb1daaa6dc1847c613942adc"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Wed Aug 12 14:19:56 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Wed Aug 12 17:53:12 2026 -0700"
      },
      "message": "Register benchmark trace and message files in TestResult\n\nModify AndroidTestResultListener to register benchmark trace files\n(profiles) and message files pulled from the device as\n`additionaltestoutput.benchmark.trace` and\n`additionaltestoutput.benchmark.message` artifacts in the\nTestResult proto. This allows the baseline profile Gradle plugin\nto collect them and Android Studio to display them after\nAndroid Test Engine runs the tests.\n\nBug: 543799367\nTest: AndroidTestResultListenerTest, AndroidAdditionalTestOutputCollectorTest, AndroidDeviceDescriptorTest\nChange-Id: I7185fa460019a6be63f3b72ac02e11bbbb9e079f\n"
    },
    {
      "commit": "d7692a3c9060137fcb1daaa6dc1847c613942adc",
      "tree": "5738aa9a57e9d742ad478e0458c4cc59bf325166",
      "parents": [
        "3e74eced40f66b1f9cd89d2fd0375a0e62ef3261"
      ],
      "author": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Mon Aug 10 18:11:08 2026 +0000"
      },
      "committer": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Wed Aug 12 17:02:56 2026 -0700"
      },
      "message": "Pass ConnectedDevice to DeviceHolder\n\nTest: existing\nBug: 532228030\nChange-Id: I80a6358befbcd6c5233fe4fbad71876ce1476a61\n"
    },
    {
      "commit": "3e74eced40f66b1f9cd89d2fd0375a0e62ef3261",
      "tree": "4cbf436868f66e49727a3ca0204216420ba25623",
      "parents": [
        "fbc31cf41a792cb3608aa889c4b131577d5ac4f5"
      ],
      "author": {
        "name": "rkdubey",
        "email": "rkdubey@google.com",
        "time": "Wed Aug 12 18:40:22 2026 +0000"
      },
      "committer": {
        "name": "Rahul Dubey",
        "email": "rkdubey@google.com",
        "time": "Wed Aug 12 16:39:14 2026 -0700"
      },
      "message": "Implement constructor instrumentation for coverage\n\nBug: 545658445\nTest: JacocoOnTheFlyConnectedTest. Verified manually.\nChange-Id: I219afda524354143591d808a428a200e89d70a49\n"
    },
    {
      "commit": "fbc31cf41a792cb3608aa889c4b131577d5ac4f5",
      "tree": "38d39279b6ed740339940fadbfa798f5224b529e",
      "parents": [
        "af2e38f4daf388fadd6162e684383013075fe7e2"
      ],
      "author": {
        "name": "rkdubey",
        "email": "rkdubey@google.com",
        "time": "Wed Aug 12 11:38:08 2026 +0000"
      },
      "committer": {
        "name": "Rahul Dubey",
        "email": "rkdubey@google.com",
        "time": "Wed Aug 12 16:39:14 2026 -0700"
      },
      "message": "Migrate on-the-fly coverage tests\n\nBug: 545509995\nTest: JacocoOnTheFlyConnectedTest. JacocoConnectedTest.\nChange-Id: I2b7a3f2f6b94f74d6c5513facbd0f5309459ef80\n"
    },
    {
      "commit": "af2e38f4daf388fadd6162e684383013075fe7e2",
      "tree": "1e06e862f224063cd4af8f6234c2944d07546dc2",
      "parents": [
        "04c8e14bc0be3b30f628cdfce52ee2fc228005b7"
      ],
      "author": {
        "name": "rkdubey",
        "email": "rkdubey@google.com",
        "time": "Tue Aug 11 20:36:35 2026 +0000"
      },
      "committer": {
        "name": "Rahul Dubey",
        "email": "rkdubey@google.com",
        "time": "Wed Aug 12 16:39:14 2026 -0700"
      },
      "message": "Stabilize onTheFly code coverage agent\n\n1. Introduced lazy, dynamic namespace-to-prefix evaluation inside\n  AbstractTestDataImpl.\n2. Safe Register Frame Appending (ParameterShifter)\n- Completely bypassed Slicer\u0027s AllocateScratchRegs to avoid JNI crashes.\n- Appended the scratch register to the end of the method\u0027s frame\n  (registers +\u003d 1).\n- Shifted all incoming arguments upwards by 1 using manual prologue\n  move instructions.\n3. Constructor Safety Guard (ConstructorAnalyzer)\n- Added a static bytecode analyzer that parses super and this constructor\n  delegations for instrumenting constructors safely.\n4. Parameter Scanner Locking (RegisterScanner)\n- Search for an unsed register within local execution registers.\n5. Upgrade the report generator and add an extra reporting filter.\n\nBug: 545511533\nTest: JacocoConnectedTest. bazel test\n//tools/base/android-test/coverage/agent/native:agent_unit_tests.\nVerified manually.\n\nChange-Id: Ide48b0e1cf0fb2cbe1511abf267832324ed6eab1\n"
    },
    {
      "commit": "04c8e14bc0be3b30f628cdfce52ee2fc228005b7",
      "tree": "c04b0a1e374f4ddb4d3566a78729e07a2dc6158b",
      "parents": [
        "ef1b72b0e8f37677b62a9a5d0d1c07d623b9d0c7"
      ],
      "author": {
        "name": "Phil Nguyen",
        "email": "philnguyen@google.com",
        "time": "Wed Aug 12 08:25:17 2026 -0700"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Aug 12 15:30:48 2026 -0700"
      },
      "message": "Add more assumptions on primitives\n\nThis change is mostly data-entry and tests, adding assumptions for:\n- Generic utils (polymorphic, same for all kinds of effects)\n- Thread constraints in general, and specific to Android or Studio.\n\nBug: n/a\nTest: new\nChange-Id: I941cff8f1e5a61e1983068b0d6dd6e3a3ebfc690\n"
    },
    {
      "commit": "ef1b72b0e8f37677b62a9a5d0d1c07d623b9d0c7",
      "tree": "5d94ef81329c08c6ae5a0e53114902399a79a6bb",
      "parents": [
        "a61e2509473ab4283d8b88ef81e44008a2e8c762"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Wed Aug 12 10:13:28 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Wed Aug 12 13:48:08 2026 -0700"
      },
      "message": "Bump Android Test Engine version to 0.1.0-alpha03\n\nPreparing for a new release by bumping the Android Test Engine\nversion.\n\nBug: None\nTest: N/A\nChange-Id: Ia00bac27615122618d1ffdde6c8840c447006bf1\n"
    },
    {
      "commit": "a61e2509473ab4283d8b88ef81e44008a2e8c762",
      "tree": "c73e1b20fcb42c65071e449ac3035f301dd3f4af",
      "parents": [
        "773b781d1a10978da173b03fa5f1015c0fbe8765"
      ],
      "author": {
        "name": "vathsalyap",
        "email": "vathsalyap@google.com",
        "time": "Sat Aug 08 03:21:31 2026 +0000"
      },
      "committer": {
        "name": "Vathsalya Polineni",
        "email": "vathsalyap@google.com",
        "time": "Wed Aug 12 11:56:15 2026 -0700"
      },
      "message": "Exclude update test suite tasks from TEST_SUITE_RESULTS artifact registration\n\nIntroduces dedicated `InternalMultipleArtifactType.TEST_SUITE_UPDATE_RESULTS`\nand `TEST_SUITE_UPDATE_CODE_COVERAGE` artifact types for update tasks.\nPreviously, `TestSuiteTestTask.CreationAction` unconditionally registered\nboth verification test tasks (`test...TestSuite`) and reference\nupdate tasks (`update...TestSuite`) to `InternalMultipleArtifactType.TEST_SUITE_RESULTS`.\n\nUpdate tasks are meant for recording reference golden images and are not\nactual test executions, so their results should not be part of the\naggregated test report. Furthermore, registering update tasks to\n`TEST_SUITE_RESULTS` pulled them into the task graph during aggregate\nreporting (e.g. `createTestReport`), causing Gradle implicit dependency\nvalidation failures against test tasks on shared reference image directories.\n\nBug: N/A\nTest: ./gradlew :base:build-system:gradle-core:test, manual verification with `createTestReport`\nChange-Id: I1281407a1fcbea452443b87f3c99ade94e5a4034\n"
    },
    {
      "commit": "773b781d1a10978da173b03fa5f1015c0fbe8765",
      "tree": "bda1a704ea629ebc691c9899902292eddec07a79",
      "parents": [
        "3c7a95ffaeb9d663825f63b6fe9a6947e8717e22"
      ],
      "author": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Mon Jul 27 14:17:15 2026 -0700"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Aug 12 10:45:47 2026 -0700"
      },
      "message": "Bump androidx.lint:lint-gradle to 1.0.0 stable\n\nUpdate baselines for existing failures using:\n./prebuilts/bazel/linux-x86_64/bazelisk run --test_env\u003dUPDATE_LINT_BASELINE\u003d1 //tools/base/preview/screenshot/screenshot-test-gradle-plugin:lib_lint_test\n./prebuilts/bazel/linux-x86_64/bazelisk run --test_env\u003dUPDATE_LINT_BASELINE\u003d1 //tools/base/build-system/gradle-core:gradle-core_lint_test\n\nBug: N/A\nTest: None\nChange-Id: I6b26603fe424a360a3f3a450d1e6c667c0b35028\n"
    },
    {
      "commit": "3c7a95ffaeb9d663825f63b6fe9a6947e8717e22",
      "tree": "2e922a695d9968430531d11558576dc8741d00a1",
      "parents": [
        "732668046043d429ecd890ed9203e2e96092e494"
      ],
      "author": {
        "name": "Jomo Fisher",
        "email": "jomof@google.com",
        "time": "Tue Aug 11 22:33:25 2026 +0000"
      },
      "committer": {
        "name": "Jomo Fisher",
        "email": "jomof@google.com",
        "time": "Wed Aug 12 09:03:13 2026 -0700"
      },
      "message": "Update LSP4J Maven dependencies to 1.0.0\n\nUpdate org.eclipse.lsp4j artifacts in data.bzl and MavenRepository.java from 0.21.1 to 1.0.0.\n\nBug: NA\nTest: bazel run //tools/base/bazel:local_maven_repository_generator\nChange-Id: I89e4244a29148575f2db101c23723cce64e6e777\n"
    },
    {
      "commit": "732668046043d429ecd890ed9203e2e96092e494",
      "tree": "c0836430d29145e81627b2640c9791295fa8389f",
      "parents": [
        "08f03a8f06cc02b796d358ae59312e6ea2ef3b0c"
      ],
      "author": {
        "name": "Paige Mcauliffe",
        "email": "paigemca@google.com",
        "time": "Tue Aug 11 18:28:16 2026 +0000"
      },
      "committer": {
        "name": "Paige Mcauliffe",
        "email": "paigemca@google.com",
        "time": "Wed Aug 12 08:52:57 2026 -0700"
      },
      "message": "Resolve JavaToolchainService for lint at configuration time\n\nBug: 537408015\nTest: existing tests\nChange-Id: I9305fed070b24d8ef9e5918c75990caaa09168c6\n"
    },
    {
      "commit": "08f03a8f06cc02b796d358ae59312e6ea2ef3b0c",
      "tree": "d6295fd55baaa3af90b44d38caa5176315816d55",
      "parents": [
        "d2d82f1728b0f8cb8e240f42041124116943e646"
      ],
      "author": {
        "name": "Christophe Rhodes",
        "email": "xof@google.com",
        "time": "Tue Aug 11 13:25:34 2026 +0000"
      },
      "committer": {
        "name": "Christophe Rhodes",
        "email": "xof@google.com",
        "time": "Wed Aug 12 06:51:30 2026 -0700"
      },
      "message": "Add contortions to marry syncIssue and problems APIs\n\nIf we are reporting a syncIssue with Severity.ERROR, use\nProblemReporter#throwing, but catch and conditionally rethrow the\ncondition (if any, otherwise use the one we started with) depending on\nwhich mode we\u0027re in.\n\nThis recovers the more expected problem severity behaviour, so\nre-adjust the test fixture to validate the severity more strictly.\n\nBug: 528235271\nTest: existing, added\nChange-Id: Ie386f2cc1630541fa8e9310191d8672141b49488\n"
    },
    {
      "commit": "d2d82f1728b0f8cb8e240f42041124116943e646",
      "tree": "2108f93842144d38ac370a6efbbafd5583805413",
      "parents": [
        "78c3ef261675a7c5e45d3f7b410526d5d4f50273"
      ],
      "author": {
        "name": "Christophe Rhodes",
        "email": "xof@google.com",
        "time": "Tue Aug 11 10:38:55 2026 +0000"
      },
      "committer": {
        "name": "Christophe Rhodes",
        "email": "xof@google.com",
        "time": "Wed Aug 12 06:51:30 2026 -0700"
      },
      "message": "Re-enable sync issue checking\n\nDisabled during the upgrade to Gradle 9.6.0.\n\nIn the post 9.6.0 world, the distinction between WARNING and ERROR is\nmade automatically based on whether the report of the error throws or\nnot (using the ProblemReporter#throwing methods to generate a suitable\nexception).\n\nSince we do not participate in this protocol, the problems that we\ngenerate will always be of severity WARNING.  Adjust the checker that\nverifies that SyncIssues and reported Problems are in agreement to be\nless sensitive to the severity.\n\nBug: 528235271\nTest: existing\nChange-Id: I49a678fa652280b303ff618df737c2e9621da685\n"
    },
    {
      "commit": "78c3ef261675a7c5e45d3f7b410526d5d4f50273",
      "tree": "8878db3f7c8b3ce124fba98ba340d86d495d54b9",
      "parents": [
        "290e2c70c7cb65bf50cec5511f7bd201a907df91"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Wed Aug 12 13:15:23 2026 +0100"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Wed Aug 12 05:17:49 2026 -0700"
      },
      "message": "Sherlock: Update perfetto cropper comment to reflect event stripping\n\nUpdate comment to clarify that both timestamp and event information\nare stripped for packets before the crop window in keep_metadata_only mode.\n\nBug: 543535701\nTest: N/A (Comment only change)\n\n\nChange-Id: I7ceb311cb0cc3dc4463ab1e6055b54bed34a06de\n"
    },
    {
      "commit": "290e2c70c7cb65bf50cec5511f7bd201a907df91",
      "tree": "67ab649540edc4c367f3eb0acb29177a3cdff0d7",
      "parents": [
        "ed0b57d99130aae2fa752f5727ab6b29cc8e5f48"
      ],
      "author": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Wed Aug 12 09:54:01 2026 +0100"
      },
      "committer": {
        "name": "Oleh Kuznetsov",
        "email": "okuznetsov@google.com",
        "time": "Wed Aug 12 03:35:43 2026 -0700"
      },
      "message": "Sherlock: Refactor perfetto cropper to only strip timestamps before window\n\nPreviously, `strip_timestamp` (now `keep_metadata_only`) was set to true\nfor all `interned_data` packets up to `end_ns`. This meant that if an\n`interned_data` packet also contained `GpuRenderStageEvent` fields and\nwas inside the crop window, those event fields would be stripped.\n\nThis change modifies the logic to only strip timestamps (and events)\nfor metadata packets that are strictly before the crop window start time.\nInside the window, we keep the timestamps and any co-existing events.\n\nAdditionally, `strip_timestamp` is renamed to `keep_metadata_only` to\nbetter reflect that it also controls the stripping of non-metadata\nfields in `GpuRenderStageEvent`.\n\nBug: N/A\nTest: perfetto_cropper_test\n\nTAG\u003dagy\nCONV\u003dafca70ad-6d8e-4ba1-adcb-de7c11aceb43\n\nChange-Id: I60764b1f3202806de43560dc0c4c85d1386af6b1\n"
    },
    {
      "commit": "ed0b57d99130aae2fa752f5727ab6b29cc8e5f48",
      "tree": "963f86fbab6fd07ea624f088af85d79e07115352",
      "parents": [
        "bc7f8d0046fd290832154f770d8b02ececd8f624"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Wed Aug 05 13:32:53 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Tue Aug 11 21:54:17 2026 -0700"
      },
      "message": "Update TestSuite compile and runtime classpath to use CLASSES_JAR\n\nThis change updates the test suite compile-time and runtime classpaths\nto use the tested variant\u0027s `CLASSES_JAR` instead of\n`POST_COMPILATION_CLASSES`.\n\nUsing `POST_COMPILATION_CLASSES` (directories) meant that post-processed\nbytecode was not present in the test suite classpaths. By using\n`CLASSES_JAR`, we ensure consistency with unit/android tests and ensure\nall post-compilation steps are included.\n\nThis also resolves a mismatch where the friend paths were set to use\n`CLASSES_JAR` but the classpath was using `POST_COMPILATION_CLASSES`,\nwhich caused Kotlinc to fail when the test suite accessed internal\nmembers of the main variant.\n\nAlso updated HostJarTestSuiteCompilationTest to access an\ninternal member to act as a regression test.\n\nBug: 538484834\nTest: HostJarTestSuiteCompilationTest\nChange-Id: Iac58acd230ab6ad9dfb6969e82d084f7cfb8e6b6\n"
    },
    {
      "commit": "bc7f8d0046fd290832154f770d8b02ececd8f624",
      "tree": "52ecb23d1ab32dc40a29a822ac717e773004f700",
      "parents": [
        "dcded801a4942d06805cc74b56dc2cecbece2f80"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Mon Aug 10 11:55:34 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Tue Aug 11 15:23:43 2026 -0700"
      },
      "message": "Restore emulator control gRPC setup for Android Test Engine\n\nSwitches to AndroidTestEngine (12bae69) accidentally removed the\nemulator gRPC setup code, resulting in missing grpc.port and\ngrpc.token arguments in instrumentation tests running on emulators\nwhen emulator control is enabled.\n\nThis CL restores the gRPC setup by:\n1. Extracting gRPC port/token in AndroidDeviceDescriptor and passing\n   them as instrumentation arguments.\n2. Enabling emulator control configuration in both\n   AndroidTestEngineConfigurer (Test Suite path) and\n   AndroidTestEngineRunner (UTP-redirection path).\n3. Adding a parameterized integration test to verify the injection of\n   grpc.port and grpc.token on emulators for both execution paths.\n\nBug: 543116584\nTest: AndroidTestEngineEmulatorControlConnectedTest, AndroidDeviceDescriptorTest\nChange-Id: Id52734d1b6d27ae0e2817069967a19f28666b5ad\n"
    },
    {
      "commit": "dcded801a4942d06805cc74b56dc2cecbece2f80",
      "tree": "7964b714d3aa3338f81b8fc7199bbd42e41fd328",
      "parents": [
        "81360aed56579d6f199edb6b8403b2ee866cac27"
      ],
      "author": {
        "name": "David Belcher",
        "email": "davidbelcher@google.com",
        "time": "Thu Jul 09 11:54:28 2026 +0100"
      },
      "committer": {
        "name": "David Belcher",
        "email": "davidbelcher@google.com",
        "time": "Tue Aug 11 13:21:01 2026 -0700"
      },
      "message": "Create sdkmanager wrapper script which proxies to Android CLI\n\nAdds `sdkmanager` (`sdkmanager.sh` and `sdkmanager.bat`) wrapper scripts\nthat translate legacy command-line arguments and delegates execution to\nthe native `android` CLI launcher binary.\n\nChanges to note:\n- Shows a deprecation warning when unsupported flags\n  (`--include_obsolete`, `--newer`, `--no_https`, `--verbose`) are\n  included.\n- `--licenses` option has been removed from the help text and will show\n  a warning explaining that the option is no longer needed.\n- Proxy options have been removed, as Android CLI uses the default\n  system proxy configuration.\n\nTests added for each wrapper script (POSIX and Windows):\n- SdkManagerWrapperTest / SdkManagerBatWrapperTest (mocked translation\n  tests)\n\nTest: Added\nBug: 532884974\nChange-Id: I11db8e890fe40bb1e6fdf66eb476c2c2a01db993\n"
    },
    {
      "commit": "81360aed56579d6f199edb6b8403b2ee866cac27",
      "tree": "2703c28740946f16e86288e65cf2123fdb1cbc58",
      "parents": [
        "ed3a4beabca65f98489843822da302262090efca"
      ],
      "author": {
        "name": "Luke Edgar",
        "email": "lukeedgar@google.com",
        "time": "Wed Aug 05 12:52:26 2026 +0100"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Tue Aug 11 12:39:37 2026 -0700"
      },
      "message": "[test engine] Refactor device API level retrieval to DeviceApiLevelProvider\n\nIntroduces DeviceApiLevelProvider to device API level, to prevent redundant adb shell getprop commands by getting the value lazily.\n\nBug: 530894183\nTest: DeviceApiLevelProviderTest\nChange-Id: I33b5745445d5ae3ca13237a4aca99d353832e5f1\n"
    },
    {
      "commit": "ed3a4beabca65f98489843822da302262090efca",
      "tree": "88743ec631bbe02f1e455007f6127ec4351045fe",
      "parents": [
        "053330b3a6afe1823a9caabb5d330959b1198259"
      ],
      "author": {
        "name": "bingran",
        "email": "bingran@google.com",
        "time": "Thu Aug 06 11:27:57 2026 -0700"
      },
      "committer": {
        "name": "Bingran Li",
        "email": "bingran@google.com",
        "time": "Tue Aug 11 11:22:37 2026 -0700"
      },
      "message": "Do not expose signing storePassword and keyPassword over Tooling API\n\nBug: 509645482\nTest: ConvertersTest\nChange-Id: I7900790a9a3db860bf4299df41b37c0f6e1e9e52\n"
    },
    {
      "commit": "053330b3a6afe1823a9caabb5d330959b1198259",
      "tree": "36f75c1ad035c6f09b74fc060f7d6b4d3b1313f6",
      "parents": [
        "8b5bff95bc50edb0addcc15f6a3321092c6e3c43"
      ],
      "author": {
        "name": "Lalit Jena",
        "email": "lalitjena@google.com",
        "time": "Thu Jul 23 17:35:26 2026 +0530"
      },
      "committer": {
        "name": "Lalit Jena",
        "email": "lalitjena@google.com",
        "time": "Tue Aug 11 11:04:19 2026 -0700"
      },
      "message": "Migrate ManagedDeviceInstrumentationTestResultAggregationTask to new report format\n\nBug: 525671605\nTest: Modified SimpleManagedDeviceTest, AndroidTestUtil, ManagedDeviceInstrumentationTestResultAggregationTaskTest\nChange-Id: Ie6712290182df9dfee69254c097a0cb554dc7b95\n"
    },
    {
      "commit": "8b5bff95bc50edb0addcc15f6a3321092c6e3c43",
      "tree": "0281f3fdb68cc558821c292f1bf3ad9302ac9cd1",
      "parents": [
        "ebc2dabf07e875333b3d0f443e292348b1b16da8"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Mon Aug 10 11:55:21 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Tue Aug 11 10:25:52 2026 -0700"
      },
      "message": "Support additional emulator parameters and improve path resolution\n\n- Enhance emulator launcher script and Emulator rule to accept and pass\n  extra arguments to the emulator.\n- Align HOME env var in emulator launcher with TEST_TMPDIR under Bazel\n  to allow ddmlib to access the console authentication token.\n- Improve path resolution in AndroidTestUtil to robustly handle device\n  directories with dynamic names (e.g. including AVD name) by walking\n  up to existing ancestors.\n- Update assertions in AndroidConnectedTest to use these robust\n  resolution helpers instead of hardcoding device name.\n\nBug: 543116584\nTest: AndroidConnectedTest\nChange-Id: I78a0eedbf39ccb9fa8b501e764ba8c04a88fa2c5\n"
    },
    {
      "commit": "ebc2dabf07e875333b3d0f443e292348b1b16da8",
      "tree": "c8638cdb8570ca82e7333841595b8bbfb3ec6727",
      "parents": [
        "349e1c24c84979732857f54602bfeec6139bd71a"
      ],
      "author": {
        "name": "vathsalyap",
        "email": "vathsalyap@google.com",
        "time": "Sat Aug 08 03:39:43 2026 +0000"
      },
      "committer": {
        "name": "Vathsalya Polineni",
        "email": "vathsalyap@google.com",
        "time": "Tue Aug 11 01:59:40 2026 -0700"
      },
      "message": "Display dynamic test suite name badges on test classes in HTML test reports\n\nPreviously, the HTML test report renderer displayed a hardcoded\n\"Screenshot\" badge on classes based on test suite name matching.\nThis change updates script.js to dynamically render badge tags for all\ntest suites associated with a class (e.g. [uiTests], [randomTests],\n[UnitTest]) by inspecting `testSuiteSummaries` on the class node.\nObsolete screenshot-specific badge helpers have been removed in favor\nof the generalized suite tag renderer.\n\nBug: N/A\nTest: Verified manually\nChange-Id: Ifd209eeffb83fa4d72965bde180c2a3722936b6c\n"
    },
    {
      "commit": "349e1c24c84979732857f54602bfeec6139bd71a",
      "tree": "c954c05319c35fdd16424e9c33c7257dab1b3431",
      "parents": [
        "7d778454977627f65d7b8d065265e8d494643a19"
      ],
      "author": {
        "name": "Bhavya Khandelwal",
        "email": "bhavyakh@google.com",
        "time": "Tue Jul 28 21:32:11 2026 +0000"
      },
      "committer": {
        "name": "Bhavya Khandelwal",
        "email": "bhavyakh@google.com",
        "time": "Mon Aug 10 23:33:40 2026 -0700"
      },
      "message": "Add left sidebar panel listing class test cases on screenshot test report\n\n- Add a left sidebar panel to screenshot test detail views displaying all tests in the class.\n- Support real-time search filtering and status badges for passed, failed, and skipped tests.\n- Enable interactive test switching between sibling test cases within the class file.\n\nBug: 540050033\nTest: XMLReportAggregatorTest\nChange-Id: I95e2e31572ca81ad17824e9ecff7dbb4893a3bd2\n"
    },
    {
      "commit": "7d778454977627f65d7b8d065265e8d494643a19",
      "tree": "a43c86fd36e6c2e84363e4747e5dcbcac9225257",
      "parents": [
        "9ed783d1f3fe278ae288e298313f8f7a28982fae"
      ],
      "author": {
        "name": "Eric Reed",
        "email": "ericreed@google.com",
        "time": "Mon Aug 10 15:34:27 2026 -0700"
      },
      "committer": {
        "name": "Eric Reed",
        "email": "ericreed@google.com",
        "time": "Mon Aug 10 15:42:58 2026 -0700"
      },
      "message": "Rename login test target\n\nCleanup from ag/41359132\n\nBug: N/A\nTest: N/A\nChange-Id: I823faede1410917559a37fa05030c0faa6c2e359\n"
    },
    {
      "commit": "9ed783d1f3fe278ae288e298313f8f7a28982fae",
      "tree": "b95b58a9c030a0327faf2f6d4d13f286727f8235",
      "parents": [
        "c2b7c4d9dac13a6193dc77c552d6f001b2cc0b4f"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Mon Aug 10 12:25:15 2026 -0700"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Mon Aug 10 14:55:42 2026 -0700"
      },
      "message": "Bazel: stop configuring --install_base in CI\n\nConfiguring --install_base is unnecessary because we already use\n--output_user_root to choose the root location for all Bazel outputs.\nAlso, the install base needs to be unique per Bazel version, and it\u0027s\neasiest to accomplish this by letting Bazel choose a versioned\ndirectory on its own (underneath the user root).\n\nBefore this change, trying to upgrade Bazel would result in a build\nerror during incremental builds on AB, because ci/ci picked the same\ninstall base path regardless of the Bazel version. See ab/P132878134\nfor an example error:\n\n  FATAL: corrupt installation: file\n  \u0027/.../studio-main/out/bazel_install/embedded_tools/...\u0027 is missing\n  or modified.  Please remove \u0027/.../studio-main/out/bazel_install\u0027 and\n  try again.\n\nBug: 544678526\nChange-Id: Iec12d83eaa5185ca73f46b9b218f440c7cde08ea\n"
    },
    {
      "commit": "c2b7c4d9dac13a6193dc77c552d6f001b2cc0b4f",
      "tree": "d94e97a0aadaa4c78000c538035375f4508c3ecc",
      "parents": [
        "1778c23651328bd2f16f902867e7ceee11dba3f3"
      ],
      "author": {
        "name": "Sergey Prigogin",
        "email": "sprigogin@google.com",
        "time": "Mon Aug 10 13:35:35 2026 -0700"
      },
      "committer": {
        "name": "Sergey Prigogin",
        "email": "sprigogin@google.com",
        "time": "Mon Aug 10 13:43:25 2026 -0700"
      },
      "message": "Add **/bin to .gitignore\n\nBug: N/A\nTest: existing\nChange-Id: If064bd28def18e8b735488a0c7dbe905df8c931b\n"
    },
    {
      "commit": "1778c23651328bd2f16f902867e7ceee11dba3f3",
      "tree": "9f0cb64841d2e426206d865c1a2d3efc5be56174",
      "parents": [
        "8fe4e0b744d162bf00e19153847822d25fb80d91"
      ],
      "author": {
        "name": "James Rose",
        "email": "rosej@google.com",
        "time": "Thu Aug 06 12:44:25 2026 -0700"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Aug 10 10:51:50 2026 -0700"
      },
      "message": "Convert UpdatablePackage to Kotlin\n\nAlso, make it immutable.\n\nBug: n/a\nTest: n/a\nChange-Id: I4bda22ca9dd2f4a426578c693145d939655862c3\n"
    },
    {
      "commit": "8fe4e0b744d162bf00e19153847822d25fb80d91",
      "tree": "1e7964d0fbfeee76ed13484f8eadfa502b860922",
      "parents": [
        "d76b91b4ff515ffb336bd3e0bed69f42845e9178"
      ],
      "author": {
        "name": "James Rose",
        "email": "rosej@google.com",
        "time": "Thu Aug 06 12:44:24 2026 -0700"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Aug 10 10:51:50 2026 -0700"
      },
      "message": "Rename .java to .kt\n\nBug: n/a\nTest: n/a\nChange-Id: Ib1d2187764f39fec708f5f86a2c0329661381fdf\n"
    },
    {
      "commit": "d76b91b4ff515ffb336bd3e0bed69f42845e9178",
      "tree": "d4f57a4b33152c7b88aec9fb0b1413c11a55ce6d",
      "parents": [
        "e41bd5832ceac4ec94fb6f200c0814ee7ea42a4a"
      ],
      "author": {
        "name": "James Rose",
        "email": "rosej@google.com",
        "time": "Thu Aug 06 10:43:47 2026 -0700"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Aug 10 10:51:50 2026 -0700"
      },
      "message": "Stop caching new / updated packages\n\nThese are only used in the sdkmanager command-line tool, and easy to\ncompute dynamically.\n\nBug: n/a\nTest: RepositoryPackagesTest\nChange-Id: I870213b11dd17f8ac8335680f1d9dbaae8f2eeca\n"
    },
    {
      "commit": "e41bd5832ceac4ec94fb6f200c0814ee7ea42a4a",
      "tree": "cbe069274f44261dba6472431e5018313d1c2c2e",
      "parents": [
        "900da494b0cb3adfaaee991e0af663cea4070fa7"
      ],
      "author": {
        "name": "James Rose",
        "email": "rosej@google.com",
        "time": "Fri Jul 31 13:04:41 2026 -0700"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Aug 10 10:51:50 2026 -0700"
      },
      "message": "Stop caching package prefix maps\n\nThese are seldom used and easy to compute dynamically from a sorted map,\nso it\u0027s not worth the memory or complexity to cache them.\n\nAlso, switch to ImmutableSortedMap for efficency and safety.\n\nBug: n/a\nTest: RepositoryPackagesTest\nChange-Id: I94dc1acf9ad44002824834ef49ef69af2b2fe499\n"
    },
    {
      "commit": "900da494b0cb3adfaaee991e0af663cea4070fa7",
      "tree": "24544d6ca3ace6c453ea3c70c1a3fc9402480924",
      "parents": [
        "845d705a0daf1c05f3c9cb58eb48dcd3b75d392f"
      ],
      "author": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Mon Aug 10 16:24:40 2026 +0000"
      },
      "committer": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Mon Aug 10 10:39:47 2026 -0700"
      },
      "message": "Fix flaky `DeviceHolderMigrationTest`\n\nTest: this is a test\nBug: not filed\nChange-Id: I314755c9e0e77e55959a102f9043c6de2828e5f7\n"
    },
    {
      "commit": "845d705a0daf1c05f3c9cb58eb48dcd3b75d392f",
      "tree": "f99d443661a6a8bafcee6c4ffc9ba540725b80b9",
      "parents": [
        "34d7f2d0f0ca1872c527a80d1a57f029132271dc"
      ],
      "author": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Sat Jul 25 02:40:16 2026 -0700"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Aug 10 10:02:49 2026 -0700"
      },
      "message": "[RunCLI] Make Activation a bit easier\n\n* Clean up the testing utils and to make writing test easier\n* Merge the earlier AndroidRunTest.kt into RunTest.kt to better fit the current\n  directory layout\n* Remove CliActivator.kt now that have a production Activator!\n\nBug: 539494948\nTest: AppTest and existing ones\n\nChange-Id: Ibf53ffaa56a833987809ea8c44106c3173039689\n"
    },
    {
      "commit": "34d7f2d0f0ca1872c527a80d1a57f029132271dc",
      "tree": "80226badb892f920513cbfa1b25ed26a3740f164",
      "parents": [
        "b2b02f59e4abe939fc027d3bf600f5b3bf2563a4"
      ],
      "author": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Thu Aug 06 19:26:53 2026 -0700"
      },
      "committer": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Mon Aug 10 09:59:28 2026 -0700"
      },
      "message": "DeployerRunner: Remove DeviceHolder.getName\n\nThis method is only used for an exception message and a log error where\nwe can simply list the device serial number.\n\nTest: existing\nBug: 532228030\nChange-Id: Ic7c4ae9911af7a1611a45901a03284c85ee78ba2\n"
    },
    {
      "commit": "b2b02f59e4abe939fc027d3bf600f5b3bf2563a4",
      "tree": "6847a5731a4bb7514be52c5cfdd55ea2ca6ca31a",
      "parents": [
        "aff11492e1f1ea6027b0361fa1b4476fe3f64d78"
      ],
      "author": {
        "name": "Paige Mcauliffe",
        "email": "paigemca@google.com",
        "time": "Fri Aug 07 21:23:37 2026 +0000"
      },
      "committer": {
        "name": "Paige Mcauliffe",
        "email": "paigemca@google.com",
        "time": "Mon Aug 10 09:07:22 2026 -0700"
      },
      "message": "Simplify LintParallelBuildService and remove toolchain dependency\n\nBug: 537408015\nTest: tests updated\nChange-Id: I84467dd29bf9735955cc664e0bd6c48cf8e2a9ea\n"
    },
    {
      "commit": "aff11492e1f1ea6027b0361fa1b4476fe3f64d78",
      "tree": "5c37b02a777301fba098137beac488e58b0b1dd6",
      "parents": [
        "7daf6ca0df43ddb3eeaa9b294a6ca37d4a78f763"
      ],
      "author": {
        "name": "Paige Mcauliffe",
        "email": "paigemca@google.com",
        "time": "Fri Aug 07 15:34:40 2026 +0000"
      },
      "committer": {
        "name": "Paige Mcauliffe",
        "email": "paigemca@google.com",
        "time": "Mon Aug 10 09:05:41 2026 -0700"
      },
      "message": "Simplify Java version retrieval in AndroidLintInputs\n\nBug: 543909849\nTest: test updated\nChange-Id: I87394168f2ba3fb013cc53395c4e493fca337386\n"
    },
    {
      "commit": "7daf6ca0df43ddb3eeaa9b294a6ca37d4a78f763",
      "tree": "b35895adcea47aa06b1a13e0cd43cc60acfff3e6",
      "parents": [
        "f4af729d947a288b46968eb9a554666f12497acc"
      ],
      "author": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Fri Aug 07 18:29:40 2026 +0000"
      },
      "committer": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Mon Aug 10 08:20:23 2026 -0700"
      },
      "message": "DeployerRunner: Migrate remaining `DeviceHolder`\n\nMigrate remaining methods of `DeviceHolder` to use `ConnectedDevice`.\n\nTest: added\nBug: 532228030\nChange-Id: I9e227f7840a5335bbaf9e8cc9b9386d7d72c2818\n"
    },
    {
      "commit": "f4af729d947a288b46968eb9a554666f12497acc",
      "tree": "11f37a8ef004f6448803f985c12004511fe53349",
      "parents": [
        "94373636e519f38765e821b5ad7a4f95ada16865"
      ],
      "author": {
        "name": "arvind-google",
        "email": "arvindtech@google.com",
        "time": "Thu Aug 06 12:26:20 2026 +0530"
      },
      "committer": {
        "name": "Arvind",
        "email": "arvindtech@google.com",
        "time": "Mon Aug 10 04:41:30 2026 -0700"
      },
      "message": "Avoid exception in ART trace header verification\n\nUpdate VmTraceParser.verifyStreamingTrace to check the streaming trace\nmagic number directly using a boolean equality check instead of throwing\nand catching a RuntimeException. Also safely close the input stream with\ntry-with-resources.\n\nPreviously, verifyStreamingTrace called validateMagic which threw a\nRuntimeException and logged a stack trace whenever probing non-ART trace\nfiles (such as Perfetto, Simpleperf, or ATrace traces). This change\navoids unnecessary exception overhead and removes noisy log spam.\n\nBug: 543241583\nTest: Included in existing tests\nChange-Id: Iaeecfbd251db3bc8ea0152b9e11e6b3b1fa06e90\n"
    },
    {
      "commit": "94373636e519f38765e821b5ad7a4f95ada16865",
      "tree": "9729646d807600fa8cf953c7590dee577a0fb811",
      "parents": [
        "b977c298d35231c5ec08f68a182acec5b6b97303"
      ],
      "author": {
        "name": "Jyoti Yadav",
        "email": "jyotiydv@google.com",
        "time": "Thu Aug 06 22:22:51 2026 -0700"
      },
      "committer": {
        "name": "Hakan Mehmed",
        "email": "hmehmed@google.com",
        "time": "Mon Aug 10 01:56:15 2026 -0700"
      },
      "message": "Updated to support Rabbit 1 Canary 1.\nBug : 543269867\n\nChange-Id: I685067c303f88a3f4a231b0a3bb372a462a1eb52\n"
    },
    {
      "commit": "b977c298d35231c5ec08f68a182acec5b6b97303",
      "tree": "578738211c42dab1f8ec49d4c2a9b25ce03260b8",
      "parents": [
        "57a1d18f2fc32f2557c2bcea0734600f4cecda5a"
      ],
      "author": {
        "name": "Amy Zeppenfeld",
        "email": "azeppenfeld@google.com",
        "time": "Wed Aug 05 13:24:08 2026 -0700"
      },
      "committer": {
        "name": "Amy Zeppenfeld",
        "email": "azeppenfeld@google.com",
        "time": "Fri Aug 07 17:38:12 2026 -0700"
      },
      "message": "Updating Android XR Headset Template\n\nChange-Id: I68994d794a3b7077858814d8640fcf5a46046e6f"
    },
    {
      "commit": "57a1d18f2fc32f2557c2bcea0734600f4cecda5a",
      "tree": "b483d5066d9440f5d57673acd9e078aa034eae82",
      "parents": [
        "de1ddfdbefc0454d55660606948a0ffdaeb9720c"
      ],
      "author": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Wed Aug 05 21:11:26 2026 +0000"
      },
      "committer": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Fri Aug 07 15:52:51 2026 -0700"
      },
      "message": "DeployerRunner: Migrate more of `DeviceHolder`\n\nMigrate a few more methods of `DeviceHolder` to use `ConnectedDevice`.\n\nTest: added\nBug: 532228030\nChange-Id: If87aa2bb983e25568385023e2c3b429790f25643\n"
    },
    {
      "commit": "de1ddfdbefc0454d55660606948a0ffdaeb9720c",
      "tree": "90af1f34e0a1914c4cbda5db571914cb16fa33fb",
      "parents": [
        "a99cf1f5d231acf45fbcc6a916678b7a48814d7b"
      ],
      "author": {
        "name": "nsdj",
        "email": "nsdj@google.com",
        "time": "Thu Aug 06 15:58:45 2026 -0700"
      },
      "committer": {
        "name": "Dhanunjay NS",
        "email": "nsdj@google.com",
        "time": "Fri Aug 07 14:42:20 2026 -0700"
      },
      "message": "Add integration test verifying workspace relocation up-to-dateness\n\nAdd an integration test verifying that moving a fully built project\nworkspace (source code, build/ outputs, and .gradle/ execution\nhistory) to a new path preserves 100% task up-to-dateness (0 unexpected\ntasks re-executed / DID_WORK \u003d empty).\n\nIncludes lint analysis, unit test, packaging, and assembly task execution\non relocated workspace, as well as assertNoAbsolutePathLeaks to verify\nzero host source path leaks in intermediate outputs (e.g. lint_partial_results).\n\nBug: 533547933\nTest: RelocatedNoOpBuildTaskStatesTest\nChange-Id: Icf3cba3b3c3ab99406a922e613881f419d9053a0\n"
    },
    {
      "commit": "a99cf1f5d231acf45fbcc6a916678b7a48814d7b",
      "tree": "2e4033243e9643cbea490fd37aadc6c8da4a9822",
      "parents": [
        "18d18fd0313a860d09842acd802a0adc07fd07da"
      ],
      "author": {
        "name": "Phil Nguyen",
        "email": "philnguyen@google.com",
        "time": "Wed Aug 05 19:15:55 2026 -0700"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Aug 07 13:45:16 2026 -0700"
      },
      "message": "Assume `View.post*` and `Handler.post*` are safe from any thread\n\nBug: n/a\nTest: InferredThreadDetectorTest, also with android-36 in `data` deps\nChange-Id: I9e10c7fb8b819d474d9f77449179616291bb89f2\n"
    },
    {
      "commit": "18d18fd0313a860d09842acd802a0adc07fd07da",
      "tree": "fcfbbaa3562be04b8aad8f437afb4b512b0fa236",
      "parents": [
        "1805cd102ed4714f10e6cc31ec0ac9f48fdd4b5f"
      ],
      "author": {
        "name": "Paige Mcauliffe",
        "email": "paigemca@google.com",
        "time": "Fri Aug 07 15:49:18 2026 +0000"
      },
      "committer": {
        "name": "Paige Mcauliffe",
        "email": "paigemca@google.com",
        "time": "Fri Aug 07 12:56:36 2026 -0700"
      },
      "message": "Remove unneeded JvmOverloads annotation in LintParallelBuildService\n\nBug: n/a\nTest: n/a\nChange-Id: I0c0a7b7b6c8ebe4296c2071f0057c70474dc1a29\n"
    },
    {
      "commit": "1805cd102ed4714f10e6cc31ec0ac9f48fdd4b5f",
      "tree": "053c312f86e8fcf37ba8c3bdfbff67b60ff58524",
      "parents": [
        "a68e5133b83210556e57b4a5303ae8cbb14ee79c"
      ],
      "author": {
        "name": "Paige Mcauliffe",
        "email": "paigemca@google.com",
        "time": "Fri Aug 07 17:07:18 2026 +0000"
      },
      "committer": {
        "name": "Paige Mcauliffe",
        "email": "paigemca@google.com",
        "time": "Fri Aug 07 12:52:20 2026 -0700"
      },
      "message": "Fix Lint crash on unsupported class file major version when toolchain is unconfigured\n\nBug: 537408015\nTest: test added\nChange-Id: Ie6db86260040dd8f5201cd41f89ccff5789b6796\n"
    },
    {
      "commit": "a68e5133b83210556e57b4a5303ae8cbb14ee79c",
      "tree": "29b6e816943841882d7884ce9028dc8ef2b0af55",
      "parents": [
        "fa493dad527a566797ca4459ca6858e691f6cb4a"
      ],
      "author": {
        "name": "Hisham Haque",
        "email": "hhaque@google.com",
        "time": "Wed Aug 05 12:42:14 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Aug 07 12:31:58 2026 -0700"
      },
      "message": "Add lightbuild-cli.zip to CI build artifacts\n\nThis change adds\n//tools/vendor/google/lume/lightbuild-cli/dist:release_pkg and copies\nlightbuild-cli.zip to build artifacts across Linux, macOS, and Windows\nCI scripts.\n\nBug: 540098558\nTest: n/a\nChange-Id: I67cc500b72ff749c45031ef89e51dd8cf60d0c15\n"
    },
    {
      "commit": "fa493dad527a566797ca4459ca6858e691f6cb4a",
      "tree": "3c5658509f4eb0daccf645a775e19c1a36ef902f",
      "parents": [
        "912eea5a10a4a0a8118358345e10ab1c1e9a3e60"
      ],
      "author": {
        "name": "Joe Baker-Malone",
        "email": "jbakermalone@google.com",
        "time": "Fri Jul 10 18:20:40 2026 -0700"
      },
      "committer": {
        "name": "Joe Baker-Malone",
        "email": "jbakermalone@google.com",
        "time": "Fri Aug 07 10:43:23 2026 -0700"
      },
      "message": "Make reverse_daemon findable by androidcli\n\nAlso be better at catching exceptions when the channel dies.\n\nTest: none\nBug: 519340809\nChange-Id: I8275eebee62e67dd38753bc16e5944e5dfc9b041\n"
    },
    {
      "commit": "912eea5a10a4a0a8118358345e10ab1c1e9a3e60",
      "tree": "607967243ee504858dcae36e8d9bc7ea6c35a530",
      "parents": [
        "81a6bc534dd6110dfa9016cd4f13927c3a773f01"
      ],
      "author": {
        "name": "Paige Mcauliffe",
        "email": "paigemca@google.com",
        "time": "Tue Jul 07 18:53:47 2026 +0000"
      },
      "committer": {
        "name": "Paige Mcauliffe",
        "email": "paigemca@google.com",
        "time": "Fri Aug 07 09:41:36 2026 -0700"
      },
      "message": "Add Java Toolchain DSL to Lint options\n\nRelnote: Add toolchain DSL to Lint options for configuring JDK\nBug: 537408015\nTest: tests added\nChange-Id: I5c08377bb147e47386a3c43d18c40594210df2c0\n"
    },
    {
      "commit": "81a6bc534dd6110dfa9016cd4f13927c3a773f01",
      "tree": "e12cee6ef8b7ad653a7f58bca5290c3e11d8500c",
      "parents": [
        "2eaf8a8eb569e5f8be75f3280f683749e8390c11"
      ],
      "author": {
        "name": "Jerome Dochez",
        "email": "jedo@google.com",
        "time": "Thu Aug 06 11:34:34 2026 -0700"
      },
      "committer": {
        "name": "Jerome Dochez",
        "email": "jedo@google.com",
        "time": "Fri Aug 07 09:12:21 2026 -0700"
      },
      "message": "add APIs to access test TaskProvider\n\nThis will allow users to use custom anchor tasks to group tests\nthey want to run together rather than invoking each task individually.\nThis will provide an alternative to testing task types.\n\nRelnote: yes\nTest: Added unit tests and integration tests.\nFixes: 543456675\nChange-Id: I233115bf3df51434eb89a3842a33ff9b0f70c3c1\n"
    },
    {
      "commit": "2eaf8a8eb569e5f8be75f3280f683749e8390c11",
      "tree": "b8d3a880db0c5cb1a64851d851392ee15f0e71bc",
      "parents": [
        "1cef9f1af0a2d82e614b1ffc67030c6802ab6762"
      ],
      "author": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Wed Aug 05 22:42:58 2026 +0000"
      },
      "committer": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Fri Aug 07 08:42:43 2026 -0700"
      },
      "message": "Update `Shell.executeAbbCommand` to support null delimiter\n\nFixes a bug in `Shell.executeAbbCommand` to detect and support\ncommand arguments joined by a null delimiter (`\\u0000`) instead of\njust spaces, ensuring compatibility with both\n`IDevice.executeBinderCommand` and other callers.\n\nThis change also moves the implementation of `executeBinderCommand` from\nthe `IDevice` interface to `AdblibIDeviceWrapper` to make its\nimplementation easier to discover.\n\nTest: added\nBug: 532228030\nChange-Id: I7fdc09755d27179add4f316e298f4f7b438cb0fc\n"
    },
    {
      "commit": "1cef9f1af0a2d82e614b1ffc67030c6802ab6762",
      "tree": "12691605a6ee079b72637b482dbdcfd5793d00f9",
      "parents": [
        "ff53beea9585f3be254ad50dbf6c3358134c1643"
      ],
      "author": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Thu Aug 06 08:46:40 2026 -0700"
      },
      "committer": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Fri Aug 07 07:20:16 2026 -0700"
      },
      "message": "Upgrade Gradle Toolchain Per IDEA Recomendation\n\nBug: NA\nTest: NA\nChange-Id: I4e24fbc60c40e6a0b1ea834f3a82ed9640c8540c\n"
    },
    {
      "commit": "ff53beea9585f3be254ad50dbf6c3358134c1643",
      "tree": "aeae5b5d57bff2eb3e49ecf6bd97a58cca6552e8",
      "parents": [
        "721d0a029e329d8563313e487cc095afcb5231e8"
      ],
      "author": {
        "name": "Kshitij Patil",
        "email": "kshitijpatil@google.com",
        "time": "Thu Aug 06 06:40:43 2026 +0000"
      },
      "committer": {
        "name": "Kshitij Patil",
        "email": "kshitijpatil@google.com",
        "time": "Fri Aug 07 06:49:04 2026 -0700"
      },
      "message": "Update GCP project for studio-journeys\n\nBug: 543227399\nTest: n/a\nChange-Id: I429a35b42d54cf33cd7f61670feb689cdd0a0811\n"
    },
    {
      "commit": "721d0a029e329d8563313e487cc095afcb5231e8",
      "tree": "8f6ddd3a6fdd555f74a7bfdec3d54ab71ca272d7",
      "parents": [
        "c5983270c98a6f1489fe017452bd6e52b23fe375"
      ],
      "author": {
        "name": "Luke Edgar",
        "email": "lukeedgar@google.com",
        "time": "Tue Jul 14 16:27:02 2026 +0100"
      },
      "committer": {
        "name": "Luke Edgar",
        "email": "lukeedgar@google.com",
        "time": "Fri Aug 07 03:45:13 2026 -0700"
      },
      "message": "[pcc][dsl] Add Private Compute Core testing options\n\nAdd DSL/API definitions for configuring Private Compute Core (PCC) instrumentation testing.\n\n```\nandroid {\n  testOptions {\n    instrumentInPrivateComputeCore \u003d true\n  }\n}\n```\nRelnote: \"New DSL option \u0027instrumentInPrivateComputeCore\u0027 in testOptions for configuring Private Compute Core (PCC) instrumentation testing when running androidTest on API 37+ devices.\"\nBug: 530894183\nTest: updated api snapshots\nChange-Id: I1d129f61f1452b3f0d727f9b9525ffd8307c2b4f\n"
    },
    {
      "commit": "c5983270c98a6f1489fe017452bd6e52b23fe375",
      "tree": "8855d7590b01591a9971326c47d660b324671204",
      "parents": [
        "18ec7665c8568ac942198a06fc112288af5439be"
      ],
      "author": {
        "name": "Arvind",
        "email": "arvindtech@google.com",
        "time": "Fri Jul 31 09:53:59 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Aug 07 00:20:58 2026 -0700"
      },
      "message": "Add Perfetto Trace Processor heap dump endpoints\n\nImplement gRPC endpoints and C++ query handlers in the Trace Processor\nDaemon to support out-of-process Java heap dump analysis.\n\nProto \u0026 Service Wiring:\n- Update trace_processor_service.proto with parameters and result\n  messages for HeapDump, GetInstances, GetPrimitiveFields, and\n  GetReferences requests.\n- Update trace_processor_service.cc to dispatch gRPC requests to\n  HeapDumpRequestHandler.\n- Update BUILD file to include heap_dump_request_handler sources.\n\nQuery Handler \u0026 SQL Aggregation:\n- Add HeapDumpRequestHandler header and implementation to execute\n  Perfetto SQL queries against internal heap graph tables.\n- Implement PopulateEvents to run dominator tree and class aggregation\n  modules upfront for shallow, native, and retained size metrics.\n\nPagination \u0026 Reference Tracing:\n- Implement PopulateInstances to query class instances with windowed\n  pagination, heap filtering, and SQL order-by pushdown.\n- Implement PopulatePrimitiveFields to fetch scalar fields and raw array\n  byte blobs in bulk for requested instance IDs.\n- Implement PopulateReferences to query inbound (reverse) and outbound\n  (forward) reference edges dynamically.\n\nAdded Tests:\n- heap_dump_request_handler_test.cc:\n  - TestDominatorTreeAndClassOverviewAggregation,\n    TestInstanceQueryPaginationAndSorting,\n    TestInboundAndOutboundReferences.\n\nBug: 535447825\nTest: Added\nChange-Id: I6fbd069631a7e2c3667a1bbd62848626c4e90fb4\n"
    },
    {
      "commit": "18ec7665c8568ac942198a06fc112288af5439be",
      "tree": "ca9af11e29bad5d53055ffa08a0325e956928ee7",
      "parents": [
        "da0a79a826f18c0e8b996ba1a351eea4f52d22b5"
      ],
      "author": {
        "name": "vathsalyap",
        "email": "vathsalyap@google.com",
        "time": "Thu Aug 06 16:55:46 2026 +0000"
      },
      "committer": {
        "name": "Vathsalya Polineni",
        "email": "vathsalyap@google.com",
        "time": "Fri Aug 07 00:16:10 2026 -0700"
      },
      "message": "Upgrade screenshot test plugin version to 0.0.1-alpha17\n\nBug: N/A\nTest: N/A\nChange-Id: I04c2d064080a0e4dacfc6c8eda8c0c79dcaed3e2\n"
    },
    {
      "commit": "da0a79a826f18c0e8b996ba1a351eea4f52d22b5",
      "tree": "a77158bf5fe503bcd5979292be700ab41ef3da13",
      "parents": [
        "39dfdce6e79cfbf134d1c705c216d7a34d686946"
      ],
      "author": {
        "name": "James Rose",
        "email": "rosej@google.com",
        "time": "Tue Jul 21 16:21:43 2026 -0700"
      },
      "committer": {
        "name": "James Rose",
        "email": "rosej@google.com",
        "time": "Thu Aug 06 17:46:19 2026 -0700"
      },
      "message": "Add file watcher for changes to SDK packages\n\nThis can be used to immediately respond to external changes in the local\nfilesystem, e.g. from android-cli installing a package. It is provided\nas a utility for clients of RepoManager to run; RepoManager does not\nhave its own execution context.\n\nBug: 501819691\nTest: LocalRepoFileWatcherTest\nChange-Id: Ie71d1af7219bd139b34349811e9bba2a1a03e4c3\n"
    },
    {
      "commit": "39dfdce6e79cfbf134d1c705c216d7a34d686946",
      "tree": "0fa9cef0eede160feea8c09cb2617e3784304bad",
      "parents": [
        "e37524c9e5d4708e9890ccabd7c881e3dd3f7311"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Thu Aug 06 13:47:42 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Thu Aug 06 17:11:07 2026 -0700"
      },
      "message": "Replace prebuilt android-test-engine with local targets\n\nThis change allows us to always test AGP against the latest version\nof android-test-engine, facilitating easier development and testing\nof future bug fixes in the test engine without needing to update\nprebuilts.\n\nRemoved prebuilt android-test-engine artifacts from artifacts.bzl\nand regenerated BUILD.maven.\nUpdated references in UTP, gradle-work-action, and\ntestlab-gradle-plugin to use local targets.\nExposed visibility of test-result-proto to allow access from\nthese targets.\nAdded missing kotlin-stdlib dependency directly to\ngradle-work-action.\n\nBug: None\nTest: bazel test //tools/base/utp/gradle-work-action:tests\nChange-Id: Ib270c44c2390ea4a32f1fa8d95f1cd183bfb43a8\n"
    },
    {
      "commit": "e37524c9e5d4708e9890ccabd7c881e3dd3f7311",
      "tree": "506e5b0b4377eb5781079f288fb7b51b649da005",
      "parents": [
        "591b216810ca9f72934f298ce14cc39d253ad973"
      ],
      "author": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Thu Aug 06 10:43:30 2026 -0700"
      },
      "committer": {
        "name": "Yuki Hamada",
        "email": "hummer@google.com",
        "time": "Thu Aug 06 17:10:11 2026 -0700"
      },
      "message": "Consolidate gradle-work-action build to Bazel\n\nRemoved Gradle build for gradle-work-action and consolidated\nit to Bazel.\nDeleted gradle-work-action/build.gradle and utp/build.gradle.\nConverted gradle-work-action and gradle-work-action-api to\nmaven_library in Bazel.\nUpdated GMaven packaging to use the Bazel-built UTP artifact.\n\nBug: none\nTest: bazel test //tools/base/utp/gradle-work-action:tests\nChange-Id: Ifa829614f297a9435d6a0cef990472e48eb32562\n"
    },
    {
      "commit": "591b216810ca9f72934f298ce14cc39d253ad973",
      "tree": "e1b5719adfa261d4c6fc3d1265f0770fdc37df2b",
      "parents": [
        "0c1795ad2a3f44c7c157899eadef974f92787fa3"
      ],
      "author": {
        "name": "PierfrancescoSoffritti",
        "email": "psoffritti@google.com",
        "time": "Thu Jul 30 17:16:40 2026 +0100"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Aug 06 16:14:58 2026 -0700"
      },
      "message": "Scope the agent socket name by the shipped-artifact digest\n\nThe socket name was derived from the pid alone, so after a host rebuild\nthe freshly attached agent lost the bind race to the previous build\u0027s\nresident server and the host silently talked to stale code for up to\nfive minutes.\n\nThe host now derives a server token \u003cpid\u003e_\u003cdigest\u003e, where the digest\nfingerprints the four artifacts it ships, and the agent binds the\ntoken-scoped socket name.\n\nA rebuilt host binds its own socket and the stale server expires\nthrough its inactivity timeout.\n\nTest: ComposeInspectorTest\nTest: InjectionManagerTest\nTest: InspectorLauncherTest\nTest: ShippedArtifactsDigestTest\nBug: 500674232\nChange-Id: I4b950cc80020f491127eeebe943014f18eee8829\n"
    },
    {
      "commit": "0c1795ad2a3f44c7c157899eadef974f92787fa3",
      "tree": "bb9fdd25f1470995a540a1eb0a044142b77fb039",
      "parents": [
        "446a4a5f83d128e7687be25fed9e6cc6c1dc5952"
      ],
      "author": {
        "name": "Denalex Orakwue",
        "email": "corakwue@google.com",
        "time": "Wed Jun 17 21:31:13 2026 +0000"
      },
      "committer": {
        "name": "Denalex Orakwue",
        "email": "corakwue@google.com",
        "time": "Thu Aug 06 14:57:19 2026 -0700"
      },
      "message": "[AI Glasses] Add targeted unpair API to adblib-tools\n\nSupport non-destructive unpairing of a specific AI Glasses device by\npassing its MAC address to the pairing broadcast intents. This prevents\nwiping data on other active emulator bonds in 1-N pairing scenarios.\n\nAdditionally, update the pairing assistant workflow in AiGlassesPairing\nto execute a wizard-only targeted pre-cleanse:\n- Broadcast UNPAIR for targetMac before initiating ASSISTED_PAIR.\n- Await a 4-second asynchronous teardown delay (PAIRING_COMMAND_DELAY)\n  so the guest OS Bluetooth stack finishes bond removal.\n- Append \u0027--ez force true\u0027 (EXTRA_FORCE_PAIRING \u003d \"force\") to the\n  ASSISTED_PAIR command string to guarantee that the companion app\n  executes a fresh pairing workflow without short-circuiting to\n  PAIRED.\n\nBug: 464413462\nTest: AiGlassesPairingTest\nFlag: EXEMPT BUGFIX\nChange-Id: If159f4f194fc44c9848c23a5233d465e281e356f\n"
    },
    {
      "commit": "446a4a5f83d128e7687be25fed9e6cc6c1dc5952",
      "tree": "7cab154e4b2bc951493690065907b1d5bb478f26",
      "parents": [
        "1ca31eaeecb57824c0bb3e4261cf721f14b160ed"
      ],
      "author": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Mon Jul 27 15:48:19 2026 -0700"
      },
      "committer": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Thu Aug 06 14:48:40 2026 -0700"
      },
      "message": "Add a `ConnectedDevice.isRoot` extension method\n\nCreating a common `ConnectedDevice.isRoot` method as we will need it\nwhen migrating `deployer` to adblib.\n\nTest: added\n\nBug: 532228030\nChange-Id: I3b7c114fe269f6d1414a3afddb2dd926053e4b57\n"
    },
    {
      "commit": "1ca31eaeecb57824c0bb3e4261cf721f14b160ed",
      "tree": "5c85cb8c44073089752ad7ec2ee2bdb9ce680ae9",
      "parents": [
        "8fb66c7888f357cddac3d83dafaacb2591f0ad38"
      ],
      "author": {
        "name": "Eric Reed",
        "email": "ericreed@google.com",
        "time": "Wed Aug 05 15:45:46 2026 -0700"
      },
      "committer": {
        "name": "Eric Reed",
        "email": "ericreed@google.com",
        "time": "Thu Aug 06 14:38:11 2026 -0700"
      },
      "message": "Remove deleted UTP tests\n\nCleanup from ag/41193945\n\nBug: N/A\nTest: N/A\nChange-Id: Ic61775aef98f66d18fb10e32131ede29d0b8765a\n"
    },
    {
      "commit": "8fb66c7888f357cddac3d83dafaacb2591f0ad38",
      "tree": "e87037a79ecba892d6d41d542cd8c4697cc0f832",
      "parents": [
        "3d0e769c5013900f8863fee51a8e884bb47c5063"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Mon Jul 13 14:50:13 2026 -0700"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Thu Aug 06 11:46:18 2026 -0700"
      },
      "message": "Make android-ndk tests work locally on Mac\n\nOn Mac, Bazel sometimes generates \"classpath jars\" named\n\"XXXXXXXX-classpath.jar.s7tqeNFS4R\" to avoid long command line\narguments --- and IntelliJ 2026.2 pushed us over the limit.\n\nOur manifest parsing logic in addManifestClassPath() is supposed to\nhandle classpath jars, but it didn\u0027t expect the strange jar names.\nThis change rewrites the manifest parsing logic based on the spec.\n\nI also deleted one of the test cases in TestGroupTest which was\ninconsistent with the following part of the spec: \"It is relative, not\nabsolute, i.e. it does not contain a scheme component, except for the\ncase when the context JAR is loaded from the file system, in which\ncase the file scheme is permitted for compatibility reasons.\"\n\nBug: 534467527\nTest: TestGroupTest\nTest: //tools/vendor/google/android-ndk:android-ndk.tests_tests__other\nChange-Id: I7f53160f0aa3b3e7f7524e42fc13657ebc8f47e1\n"
    },
    {
      "commit": "3d0e769c5013900f8863fee51a8e884bb47c5063",
      "tree": "552de963566c8ac23f1059ae0335ee625fdedee0",
      "parents": [
        "545ed2642ee3ec751bcb3d112cc8f43ba8a9848b"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Thu Aug 06 08:16:27 2026 -0700"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Thu Aug 06 08:19:19 2026 -0700"
      },
      "message": "Add comment about -Xsam-conversions\u003dclass\n\nBug: 382592220\nChange-Id: I6a5bfbfe68e42ac29c70e46d7d286d21c9d3b465\n"
    },
    {
      "commit": "545ed2642ee3ec751bcb3d112cc8f43ba8a9848b",
      "tree": "0d273ea9284eade099e48b6d7b82d69c2d218004",
      "parents": [
        "b6412b647f4dee6fd7a841371a734381c4b8f6f3"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Sat Jun 27 14:01:54 2026 -0700"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Thu Aug 06 07:06:07 2026 -0700"
      },
      "message": "Lint: add dependencies on the Gradle plugin\n\nWe use org.codehaus.groovy.ast.ASTNode in a couple places including\nLintDriver and GroovyGradleVisitor. In IntelliJ 2026.2, Groovy AST\nclasses were moved out of IntelliJ core and are now available in the\nGradle plugin instead.\n\nIdeally the Lint IDE modules should not reference ASTNode at all,\nas ASTNode is only relevant for Android CLI. However, for now I\u0027ll\nadd a couple dependencies to unblock the IntelliJ 2026.2 update.\n\nChange-Id: I5476abfe7fca98a853d63cf3ee546f0d9ceaa0cc\n"
    },
    {
      "commit": "b6412b647f4dee6fd7a841371a734381c4b8f6f3",
      "tree": "6a306e5c743bd0f020e3d17897bc0891adca865f",
      "parents": [
        "207226721ce34fc3e0cd5098431b3554c1425683"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Thu Jul 09 14:07:53 2026 -0700"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Thu Aug 06 07:06:07 2026 -0700"
      },
      "message": "Temporarily suppress errors for usages of private platform modules\n\nBug: 526687561\nChange-Id: I8b2afaabdc488477bc7d954b98604373139177bb\n"
    },
    {
      "commit": "207226721ce34fc3e0cd5098431b3554c1425683",
      "tree": "3acf37bee0d3b7ccefd3b47caa733cf22d43c621",
      "parents": [
        "30ced74297eb700896f1e705ab37b57f596c749b"
      ],
      "author": {
        "name": "Hakan Mehmed",
        "email": "hmehmed@google.com",
        "time": "Tue Aug 04 10:03:32 2026 +0000"
      },
      "committer": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Aug 05 10:12:53 2026 -0700"
      },
      "message": "Compile AGP sources with invokedynamic for Kotlin lambdas\n\nRemove the deprecated `-Xlambdas\u003dclass` compiler flag from AGP build configurations to enable Kotlin 2.0 default `invokedynamic` lambda generation. Update serialized lambda parameter interfaces and test expectations to support `invokedynamic` execution, while retaining `-Xlambdas\u003dclass` on select Live Edit test targets that specifically test class-based lambda bytecode swapping and interpretation.\n\nBug: 382592220\nTest: manually ran bazel targets\nChange-Id: Ia02f5af45ed5ad9e78756d5f2cd7ec69968dd642\n"
    },
    {
      "commit": "30ced74297eb700896f1e705ab37b57f596c749b",
      "tree": "31236e19ca9e62986008ed38677734b1ec41ad44",
      "parents": [
        "8a82dcfec1f68298b30ceb34967538b677715f42"
      ],
      "author": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Fri Jul 17 21:56:37 2026 +0000"
      },
      "committer": {
        "name": "Alexander Demurov",
        "email": "ademurov@google.com",
        "time": "Wed Aug 05 09:58:29 2026 -0700"
      },
      "message": "DeployerRunner: Populate `DeviceHolder.connectedDevice`\n\nIn DeployerRunner we try to lookup ConnectedDevice using\n`AdbSession` so that we could fully populate DeviceHolder\nwith both legacy `IDevice` and `ConnectedDevice` instances.\n\nTest: Existing\nBug: 532228030\nChange-Id: Ia2a43d4f5dda748decff42575902fb47e1e716d8\n"
    }
  ],
  "next": "8a82dcfec1f68298b30ceb34967538b677715f42"
}
