)]}'
{
  "log": [
    {
      "commit": "487861729c42504b5e8ba3c7bfc131c782c8b623",
      "tree": "48b583c502677b614b8cc40e62ccd955edc351b6",
      "parents": [
        "1b8d12366e33961e65bcf6dcfda9228d2a7b5fce"
      ],
      "author": {
        "name": "Omar Elfouly",
        "email": "fouly@google.com",
        "time": "Tue Jul 08 12:57:00 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 08 12:57:00 2025 +0100"
      },
      "message": "ci: add llvm-dev to sandbox ci (#2069)\n\nThis PR adds llvm-dev package to install list of the Dockerfile for the\nsandbox CI.\n\nThis is necessary to test #2035 which requires that llvm package be\ninstalled.\n\nOnce this lands can someone please restart the CI?"
    },
    {
      "commit": "1b8d12366e33961e65bcf6dcfda9228d2a7b5fce",
      "tree": "5ce7df051aa46b619485809c60668cdcd10d3b54",
      "parents": [
        "5d9366255a11fec7bb65dc63a4fe4cf84fecd388"
      ],
      "author": {
        "name": "jahdiel-alvarez",
        "email": "jahdiel@google.com",
        "time": "Mon Jul 07 15:59:38 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 15:59:38 2025 -0700"
      },
      "message": "Disallow swapper thread from being used in tid_override (#2062)\n\nNo writer should be writing events on behalf of swapper thread, via the\nlegacy track event system.\n\nBug: 425694654"
    },
    {
      "commit": "5d9366255a11fec7bb65dc63a4fe4cf84fecd388",
      "tree": "42b9f028e79b91a59dc463c8797f538182f4df2b",
      "parents": [
        "b96a69bb26e9f89d5a947f6dd6faac64fef4935b"
      ],
      "author": {
        "name": "Priyanka",
        "email": "57577698+PriyankaSPX@users.noreply.github.com",
        "time": "Mon Jul 07 23:12:13 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 23:12:13 2025 +0100"
      },
      "message": "Unit test SF layers extractor. (#2063)\n\nBug: 411363817\nTest: tools/ninja -C out/linux_clang_debug perfetto_unittests \u0026\u0026\nout/linux_clang_debug/perfetto_unittests --gtest_filter\u003dSfLayersExtract*"
    },
    {
      "commit": "b96a69bb26e9f89d5a947f6dd6faac64fef4935b",
      "tree": "b6fa4b2f70478aa8cfb811303b105cd1129ba5e8",
      "parents": [
        "1b2512825c2d9aaca02304c0a8f6c72b6d6bd937"
      ],
      "author": {
        "name": "Priyanka",
        "email": "57577698+PriyankaSPX@users.noreply.github.com",
        "time": "Mon Jul 07 22:09:34 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 22:09:34 2025 +0100"
      },
      "message": "tp: table tests for SF parser changes (#1745)\n\nTest rect computation at the table level, since it returns table ids and\nwe want to check what data it actually added to the various Winscope\ntables.\n\nBug: 411363817\nTest: tools/diff_test_trace_processor.py\nout/linux_clang_debug/trace_processor_shell"
    },
    {
      "commit": "1b2512825c2d9aaca02304c0a8f6c72b6d6bd937",
      "tree": "843a5db3e6b61a4989668d102d261f41921eefbd",
      "parents": [
        "c8ae6935b8a66edbc988339d39ed3b76863e6d53"
      ],
      "author": {
        "name": "Priyanka",
        "email": "57577698+PriyankaSPX@users.noreply.github.com",
        "time": "Mon Jul 07 21:41:57 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 20:41:57 2025 +0000"
      },
      "message": "Report null layer ids as null, not zero. (#2061)\n\nBug: 411363817\nTest: tools/diff_test_trace_processor.py\nout/linux_clang_debug/trace_processor_shell"
    },
    {
      "commit": "c8ae6935b8a66edbc988339d39ed3b76863e6d53",
      "tree": "e50ae1bcc74d988274a3544c1346561062c7dd40",
      "parents": [
        "a0e89bb4eaeb53ff97843d4eedbaf02952305b52"
      ],
      "author": {
        "name": "Priyanka",
        "email": "57577698+PriyankaSPX@users.noreply.github.com",
        "time": "Mon Jul 07 18:44:42 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 18:44:42 2025 +0100"
      },
      "message": "tp: SF visibility computation unit tests (#2052)\n\nUnit test SF visibility computation.\n\nBug: 411363817\nTest: tools/ninja -C out/linux_clang_release perfetto_unittests \u0026\u0026\nout/linux_clang_release/perfetto_unittests\n--gtest_filter\u003dSfVisibilityComputation*"
    },
    {
      "commit": "a0e89bb4eaeb53ff97843d4eedbaf02952305b52",
      "tree": "2c1e4d9585e9942456ecf4315979c2d17816ea2d",
      "parents": [
        "f5c84288ad9934c5794a48c8898b3d2c94966745"
      ],
      "author": {
        "name": "Priyanka",
        "email": "57577698+PriyankaSPX@users.noreply.github.com",
        "time": "Mon Jul 07 17:44:36 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 17:44:36 2025 +0100"
      },
      "message": "Parse SF trace into new tables. (#2033)\n\nBug: 411363817\nTest: tools/diff_test_trace_processor.py\nout/linux_clang_debug/trace_processor_shell"
    },
    {
      "commit": "f5c84288ad9934c5794a48c8898b3d2c94966745",
      "tree": "8b2060f3288f70620f87b0434e8c6348fd719959",
      "parents": [
        "9d38dbc582ab09969bfecbae4fd83d4826784ea3"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Mon Jul 07 16:44:33 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 16:44:33 2025 +0100"
      },
      "message": "tp: fix unnecessary initialization of arrays (#2051)\n\n"
    },
    {
      "commit": "9d38dbc582ab09969bfecbae4fd83d4826784ea3",
      "tree": "8e2b5511885bd3a7bfba11fbbaa3355532c6380a",
      "parents": [
        "05af1c53dd356308f14b844afbed6ebd8c0c5eb9"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Mon Jul 07 16:39:22 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 16:39:22 2025 +0100"
      },
      "message": "ui: Roll stable channel (#2050)\n\nFor https://github.com/google/perfetto/pull/2049"
    },
    {
      "commit": "05af1c53dd356308f14b844afbed6ebd8c0c5eb9",
      "tree": "37a75a43da0ead9c554075bfafc7a91434fcff37",
      "parents": [
        "a04a1d8a8627ae1a1c1c556736ab0a15eb8eaf38"
      ],
      "author": {
        "name": "Mayzner",
        "email": "108405710+aMayzner@users.noreply.github.com",
        "time": "Mon Jul 07 14:58:56 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 13:58:56 2025 +0000"
      },
      "message": "tp: _interval_interesect supports instant events (#1820)\n\n_interval_intersect macro will now return instants if there are instant\nresults. Removed the dur \u003e 0 check and added tests. If the interval (ts,\ndur) is (0, 10) it will return instant when it\u0027s inside it, (5, 0), but\nthe ends are excluded, so there is no overlap with (10, 2)."
    },
    {
      "commit": "a04a1d8a8627ae1a1c1c556736ab0a15eb8eaf38",
      "tree": "2459b50b791a1f7a4a86f2665694afcfc985d281",
      "parents": [
        "d65066e6c165885da6da54c157238e4073802eaf"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Mon Jul 07 13:51:56 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 13:51:56 2025 +0100"
      },
      "message": "docs: fix up syntehtic track event docs (#2047)\n\n"
    },
    {
      "commit": "d65066e6c165885da6da54c157238e4073802eaf",
      "tree": "7076871d8fe491798b19b9d4f7355119577335e5",
      "parents": [
        "a7d2868441669740fa54929d15b348962512dd4a"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Mon Jul 07 13:51:29 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 13:51:29 2025 +0100"
      },
      "message": "tp: refactor TrackEventParser::EventImporter into separate class (#2046)\n\nMakes it possible to split this class up into legacy/non-legacy parsing."
    },
    {
      "commit": "a7d2868441669740fa54929d15b348962512dd4a",
      "tree": "871594061e81022ba888a3324d6aac5cdde9b1e3",
      "parents": [
        "b771e98cb55a18bb45cc5ca6feb62483d863f1c3"
      ],
      "author": {
        "name": "copybara-service[bot]",
        "email": "56741989+copybara-service[bot]@users.noreply.github.com",
        "time": "Mon Jul 07 13:28:24 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 13:28:24 2025 +0100"
      },
      "message": "Copybara import from Chromium: proto and stdlib changes\n\nCopybara import from Chromium: proto and stdlib changes\n\n  - 47619e382f0b49de17b7f30d4021374ed0a27be4 Add kBackForwardCachePostedMessage task type for Shared W... by Anna Sato \u003cannasato@chromium.org\u003e\n\nCOPYBARA_IMPORT\u003dProject import generated by Copybara.\n\nGitOrigin-RevId: 47619e382f0b49de17b7f30d4021374ed0a27be4"
    },
    {
      "commit": "b771e98cb55a18bb45cc5ca6feb62483d863f1c3",
      "tree": "35cb598d8e71825d65d4287153e0903e9bf14ba8",
      "parents": [
        "9780c6601d4febb8f2b5845fa8568f5f40ce0957"
      ],
      "author": {
        "name": "Priyanka",
        "email": "57577698+PriyankaSPX@users.noreply.github.com",
        "time": "Fri Jul 04 17:55:24 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 04 16:55:24 2025 +0000"
      },
      "message": "SF rect computation. (#1971)\n\nFor faster querying in Winscope so we can implement trace playback.\n    \nBug: 411363817\nTest: tools/diff_test_trace_processor.py\nout/linux_clang_debug/trace_processor_shell"
    },
    {
      "commit": "9780c6601d4febb8f2b5845fa8568f5f40ce0957",
      "tree": "55a2990d4680e2c10c2a32836a0f21abcdbe04b5",
      "parents": [
        "19464c195db14cf0fa638d35cefcc3cf121e116e"
      ],
      "author": {
        "name": "Priyanka",
        "email": "57577698+PriyankaSPX@users.noreply.github.com",
        "time": "Fri Jul 04 16:46:30 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 04 16:46:30 2025 +0100"
      },
      "message": "SF layer visibility computation (#1946)\n\nNecessary to compute this for all traces until SF team provide\nvisibility information directly on proto.\n    \nBug: 411363817\nTest: tools/diff_test_trace_processor.py\nout/linux_clang_debug/trace_processor_shell"
    },
    {
      "commit": "19464c195db14cf0fa638d35cefcc3cf121e116e",
      "tree": "c216f474637317bf870ab4068e372d4895c6fa90",
      "parents": [
        "60a417340f0fa5339a97172a1e9081c58e1773bb"
      ],
      "author": {
        "name": "Daniele Di Proietto",
        "email": "ddiproietto@google.com",
        "time": "Fri Jul 04 14:04:50 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 04 14:04:50 2025 +0100"
      },
      "message": "trace_processor: Fix join documentation for heap_graph tables (#2024)\n\n"
    },
    {
      "commit": "60a417340f0fa5339a97172a1e9081c58e1773bb",
      "tree": "e5a045ca78d620d99f1d7b675e776c67be4852ef",
      "parents": [
        "c19bb75edb2b31da73802505f46306213b24820a"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jul 04 14:03:04 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 04 14:03:04 2025 +0100"
      },
      "message": "tp: add bitmap standard library module (#2026)\n\n"
    },
    {
      "commit": "c19bb75edb2b31da73802505f46306213b24820a",
      "tree": "6d86444d171c8281e989ae1868af4d20a12c7401",
      "parents": [
        "6e2232a6e0465a68bb8610a2b0d45e3fd509993d"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jul 04 14:00:52 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 04 13:00:52 2025 +0000"
      },
      "message": "tp: fix off by one when a full string pool block is filled (#2043)\n\nBug: 429572310"
    },
    {
      "commit": "6e2232a6e0465a68bb8610a2b0d45e3fd509993d",
      "tree": "28a9081db2a4a181aa0516540f351c3f0a695056",
      "parents": [
        "059ad2dbbda86b95f64707d94f9b630dbda0c6f2"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jul 04 13:15:46 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 04 12:15:46 2025 +0000"
      },
      "message": "tp: fix off by one in syscall tracker (#2042)\n\n"
    },
    {
      "commit": "059ad2dbbda86b95f64707d94f9b630dbda0c6f2",
      "tree": "a0be3c3b41fbfc7ab625b4414cdd7256abcf21d5",
      "parents": [
        "0cbc6c26ccba41b96701c4b3f9ef04c9859a75fa"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jul 04 13:02:52 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 04 13:02:52 2025 +0100"
      },
      "message": "tp: Detect cycles in structured query generator (#2029)\n\nAdds cycle detection to the structured query generator to prevent\ninfinite loops when a query directly or indirectly references itself.\n\nThe generator now tracks the dependency chain of each query. If a query\nreferences a shared query that is already in its dependency chain, an\nerror is returned.\n\nThis is implemented by adding a parent index to the internal query state\nand checking for cycles when resolving shared queries by ID.\n\nUnit tests have been added to verify that both direct (a -\u003e a) and\nindirect (a -\u003e b -\u003e a) cycles are detected."
    },
    {
      "commit": "0cbc6c26ccba41b96701c4b3f9ef04c9859a75fa",
      "tree": "0c68a8fd50362d48ca2b6458d3a3d13118047b51",
      "parents": [
        "cd0840f97a6f47f7970fb573b3da8da07156be7c"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jul 04 12:49:51 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 04 12:49:51 2025 +0100"
      },
      "message": "tp: make ProtoToArgsParser iterative (#2032)\n\nFor deeply nested messages, we are getting stack overflows for this. Fix\nby changing the implementation to be iterative instead."
    },
    {
      "commit": "cd0840f97a6f47f7970fb573b3da8da07156be7c",
      "tree": "974cefef8c7ac6fc50e5ab6280e085a5544dde97",
      "parents": [
        "d71a6c715511296ff6fca63b80b96437d9762dc0"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jul 04 12:49:34 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 04 12:49:34 2025 +0100"
      },
      "message": "base: move radix sort to include (#2041)\n\nFixes Google3 roll"
    },
    {
      "commit": "d71a6c715511296ff6fca63b80b96437d9762dc0",
      "tree": "82f6ffadc9bc225ee46c50a91ad14349f92cdb78",
      "parents": [
        "17e2ace16a3429eca03fdbea1c3b5e80cf2a6b2f"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jul 04 12:16:04 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 04 12:16:04 2025 +0100"
      },
      "message": "ui: tp: add count of slices under cursor when hovering (#2021)\n\nMakes it possible to see at a glance how many \"events of interest\" there\nare in a given area."
    },
    {
      "commit": "17e2ace16a3429eca03fdbea1c3b5e80cf2a6b2f",
      "tree": "bbf3093bf29ce88e6e498869e13d81110bb901e3",
      "parents": [
        "71633b51630cec7e265315f95f6ef1622d84ba1d"
      ],
      "author": {
        "name": "Simon MacMullen",
        "email": "simonmacm@google.com",
        "time": "Thu Jul 03 16:17:47 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 03 16:17:47 2025 +0100"
      },
      "message": "Make trace processor metatrace thread local, not global (#2000)\n\nThis makes it possible to use metatrace in a multi-threaded context, as\nlong as we are careful to only use each trace processor instance from a\nsingle thread.\n\nBug: [427909201](https://b.corp.google.com/427909201)"
    },
    {
      "commit": "71633b51630cec7e265315f95f6ef1622d84ba1d",
      "tree": "d484785fa5edb105183b8f4b6d136df26ba8f878",
      "parents": [
        "2b0306ca91d39ee05e68ab3ff5023a3aa53bb831"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Jul 03 16:16:13 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 03 16:16:13 2025 +0100"
      },
      "message": "tp: reduce number of calls to BuildBoundsTable (#2022)\n\nInspired by https://github.com/google/perfetto/pull/2020 but changed to\nactually respect our API semantics."
    },
    {
      "commit": "2b0306ca91d39ee05e68ab3ff5023a3aa53bb831",
      "tree": "5c380114874450878e12260cd3bedadafd5704b4",
      "parents": [
        "bb8b608378c621735fdd4a5ad0592aa3f15bd4d8"
      ],
      "author": {
        "name": "JoeNotCharlesGoogle",
        "email": "joenotcharles@google.com",
        "time": "Thu Jul 03 11:01:07 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 03 15:01:07 2025 +0000"
      },
      "message": "Revert \"Add PassageEmbeddingsService to Chrome process names (#2009)\" (#2025)\n\nThis reverts commit a7f27946e605dbc6227fe516e9fffa81be456bda.\n\nRevert reason: breaking Chrome autoroll because new enum value is\nunhandled in a switch in Chrome code."
    },
    {
      "commit": "bb8b608378c621735fdd4a5ad0592aa3f15bd4d8",
      "tree": "4bac474a6d1545c15f649edc59bd9bd79de010d4",
      "parents": [
        "fb1aee64f15b975439ad908d0ecb7a30e789ea15"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Jul 03 15:54:23 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 03 15:54:23 2025 +0100"
      },
      "message": "tp: add msd and lsd radix sort implementations and use them in dataframe (#2017)\n\nThis CL adds two implementation of radix sort:\n* LSD based for fixed size keys\n* MSD based for variable size keys\n\nWe start using it in the appropriate places in the interpreter.\n\nBefore:\n```\nBM_BytecodeInterpreter_SortUint32            298341154 ns    298193315 ns            2\nBM_BytecodeInterpreter_SortString            686262567 ns    686039510 ns            1\n```\n\nAfter:\n```\nBM_BytecodeInterpreter_SortUint32             25955994 ns     25947812 ns           27\nBM_BytecodeInterpreter_SortString            173340011 ns    173280245 ns            4\n```"
    },
    {
      "commit": "fb1aee64f15b975439ad908d0ecb7a30e789ea15",
      "tree": "ee56b3f923500cb7bb9378ea2b8c987cad31887c",
      "parents": [
        "05523df14a57fdada791d362968e4730a86d8633"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Jul 03 15:47:37 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 03 15:47:37 2025 +0100"
      },
      "message": "tools: release v51.2 presbuilts (#2027)\n\n"
    },
    {
      "commit": "05523df14a57fdada791d362968e4730a86d8633",
      "tree": "01d7da6fb8dd2def2b39f64e3323d17def3df12d",
      "parents": [
        "9ef28d6ce6a290ef3888a4cba059139cd699758e"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Jul 03 13:59:45 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 03 13:59:45 2025 +0100"
      },
      "message": "changelog: add v51.2 (#2023)\n\n"
    },
    {
      "commit": "9ef28d6ce6a290ef3888a4cba059139cd699758e",
      "tree": "989b8e9b7f18d2a93ae775f08b7b144577f4285b",
      "parents": [
        "1628429aa68b2fd21971eade3ee1f717fd230551"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Thu Jul 03 13:05:05 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 03 13:05:05 2025 +0100"
      },
      "message": "docs: Added plugin docs for styles and overlays (#2018)\n\n"
    },
    {
      "commit": "1628429aa68b2fd21971eade3ee1f717fd230551",
      "tree": "f86a91888d54b51230ac3d2f09008b243836e4c0",
      "parents": [
        "81c4f696aa46262830dd25e00634391ab6654615"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Jul 03 11:49:05 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 03 11:49:05 2025 +0100"
      },
      "message": "tp: don\u0027t destroy the descriptor pool (#2013)\n\nTrace summarization depends on it."
    },
    {
      "commit": "81c4f696aa46262830dd25e00634391ab6654615",
      "tree": "ece5bda8b04b60dfde46d82c052f0a51300c4d9d",
      "parents": [
        "f9eadc939d29883668d9b15ad7154968be2b61a4"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Jul 03 11:37:09 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 03 11:37:09 2025 +0100"
      },
      "message": "ui: cherry-pick fix for incremental counter track sequence issue (#2014)\n\nRoll for cherry-pick of https://github.com/google/perfetto/pull/2002\n\nFixes: 429145410"
    },
    {
      "commit": "f9eadc939d29883668d9b15ad7154968be2b61a4",
      "tree": "15563aec798647a4f2162ea9b8b0d65427ca4e8e",
      "parents": [
        "a615a7d9d079b75719d01222bcd453dcefeca3d7"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Jul 03 11:36:32 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 03 11:36:32 2025 +0100"
      },
      "message": "prune: add ui-stable and ui-canary to mainline branches (#2015)\n\n"
    },
    {
      "commit": "a615a7d9d079b75719d01222bcd453dcefeca3d7",
      "tree": "abfe523fc1b7c3f39b731b45232771782d59c8b2",
      "parents": [
        "a22fc405dedba8e2897d33543b3f448d537af55e"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Jul 03 11:36:17 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 03 11:36:17 2025 +0100"
      },
      "message": "tp: add optimization for descending sort on ordered column (#2016)\n\nJust reverse the vector. Speeds up some queries where SQLite does not\ncorrectly propogate LIMIT 1 to us."
    },
    {
      "commit": "a22fc405dedba8e2897d33543b3f448d537af55e",
      "tree": "f2edd8a6c357a07f25cadda659c1b49f2cbe3f0f",
      "parents": [
        "561987789f3ebfbaafe8e3cbe2e273e431c09239"
      ],
      "author": {
        "name": "Priyanka",
        "email": "57577698+PriyankaSPX@users.noreply.github.com",
        "time": "Wed Jul 02 23:35:35 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 23:35:35 2025 +0100"
      },
      "message": "Extend Winscope input tables. (#2011)\n\nFor faster querying of table info.\n\nBug: 411363817\nTest: tools/diff_test_trace_processor.py\nout/linux_clang_debug/trace_processor_shell"
    },
    {
      "commit": "561987789f3ebfbaafe8e3cbe2e273e431c09239",
      "tree": "5f0f36ae744a49ce98b81ff9eb48bf1e10af6bbb",
      "parents": [
        "a7f27946e605dbc6227fe516e9fffa81be456bda"
      ],
      "author": {
        "name": "Kirill Timofeev",
        "email": "ktimofeev@google.com",
        "time": "Wed Jul 02 22:52:35 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 22:52:35 2025 +0100"
      },
      "message": "Android.bp hide Java SDK modules not suitable for framework. (#2010)\n\nFramework should use \u0027*_framework*\u0027 counterparts."
    },
    {
      "commit": "a7f27946e605dbc6227fe516e9fffa81be456bda",
      "tree": "9bf625f09c1912c390c99ee25684aa95a3503fc1",
      "parents": [
        "aade1eb35610e8cbf92d496de2e23c8c155f904c"
      ],
      "author": {
        "name": "JoeNotCharlesGoogle",
        "email": "joenotcharles@google.com",
        "time": "Wed Jul 02 17:15:29 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 21:15:29 2025 +0000"
      },
      "message": "Add PassageEmbeddingsService to Chrome process names (#2009)\n\nAdds passage_embeddings.mojom.PassageEmbeddingsService to Chrome\u0027s\nrecognized service processes."
    },
    {
      "commit": "aade1eb35610e8cbf92d496de2e23c8c155f904c",
      "tree": "1fec5e85b6a74715e6a93395886e35713f147574",
      "parents": [
        "2e2411b41fec5de7ac53915da4fa5fb460b5ebf3"
      ],
      "author": {
        "name": "Samuel Wu",
        "email": "wusamuel@google.com",
        "time": "Wed Jul 02 13:19:56 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 13:19:56 2025 -0700"
      },
      "message": "stdlib: Add IRQ power attribution for Wattson (#1987)\n\nIn addition to threads/processes/packages, add IRQs as a potential task\nfor Wattson to attribute power for. This handles cases where tasks may\npreempt another task, including for soft IRQs and hard IRQs.\n\n\nTest: tools/diff_test_trace_processor.py out/linux/trace_processor_shell\n--name-filter \u0027.*wattson.*\u0027\nBug: 422478917\nSigned-off-by: Samuel Wu \u003cwusamuel@google.com\u003e\n\n---------\n\nSigned-off-by: Samuel Wu \u003cwusamuel@google.com\u003e"
    },
    {
      "commit": "2e2411b41fec5de7ac53915da4fa5fb460b5ebf3",
      "tree": "066a99bd38f0edfc10228cca4e77cfba7fed0618",
      "parents": [
        "09cd58ed5f638da2cce1e441482740f40b09dfd1"
      ],
      "author": {
        "name": "jahdiel-alvarez",
        "email": "jahdiel@google.com",
        "time": "Wed Jul 02 11:40:29 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 11:40:29 2025 -0700"
      },
      "message": "Simplify GetThreadOrNull(tid) in process_tracker (#2007)\n\nProcessTracker has two GetThreadOrNull methods. One only takes a tid as\nan argument and the other takes a tid and an optional pid. Refactored\nthe method so that it is clear that calling GetThreadOrNull(tid,\nstd::nullopt) is the same as GetThreadOrNull(tid).\n\nBug: 425694654"
    },
    {
      "commit": "09cd58ed5f638da2cce1e441482740f40b09dfd1",
      "tree": "6a277ca783b370bf9bd2dc692ec11a3c4de53eb9",
      "parents": [
        "8f33ac83ab98204eea02f90a2c6fce35dfeb1431"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Wed Jul 02 19:12:02 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 19:12:02 2025 +0100"
      },
      "message": "tools: improve script for sync stack (#2005)\n\n* various misc style improvements\n* update mainline branches to include ui-stable, ui-canary\n* add --no-verify support"
    },
    {
      "commit": "8f33ac83ab98204eea02f90a2c6fce35dfeb1431",
      "tree": "da46a4899150a7114e60d5e23bb17ef82d831fe9",
      "parents": [
        "8f4cee14558f63f0d1888eab088d1266eb877f6d"
      ],
      "author": {
        "name": "jahdiel-alvarez",
        "email": "jahdiel@google.com",
        "time": "Wed Jul 02 10:46:00 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 10:46:00 2025 -0700"
      },
      "message": "Refactor UpdateThreadName APIs to only depend on UTID (#1991)\n\nRemove the UpdateThreadName method from ProcessTracker in favor of\nUpdateThreadNameByUtid, which was renamed to UpdateThreadName. This is\npart of a series of refactors which aim to improve ProcessTracker\u0027s API\nby standardizing on UPID and UTID as primitives.\n\nBug: 425694654"
    },
    {
      "commit": "8f4cee14558f63f0d1888eab088d1266eb877f6d",
      "tree": "5e0475865ca18e666d790d9ef297b44e6891c2ba",
      "parents": [
        "10b2f9e9df4e46f455eb3c9c4b0a037a7b1d78b7"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Wed Jul 02 18:40:38 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 18:40:38 2025 +0100"
      },
      "message": "tp: don\u0027t require single sequence emission for incremental counter tracks (#2002)\n\nWe were forcing incremental counter tracks to come from the same\nsequence as incrementality does not make sense across sequences.\nHowever, it\u0027s perfectly legit for two threads to have their own view of\nthe same counter: for example for thread timestamps.\n\nThis happens in practice when multiple libraries are independently using\nthe sdk and enabling chrome timestamps (e.g. webview + cronet).\n\nFix this by allowing for multiple sequences to contribute to the same\ntrack with independent incremental values."
    },
    {
      "commit": "10b2f9e9df4e46f455eb3c9c4b0a037a7b1d78b7",
      "tree": "b2c49c63ac10e4b4e1445cd9b110b276b4864ab4",
      "parents": [
        "967f2b069b52b2ab47eef61d51d5633a03488900"
      ],
      "author": {
        "name": "inglorion",
        "email": "github@inglorion.net",
        "time": "Wed Jul 02 18:27:16 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 18:27:16 2025 +0100"
      },
      "message": "gn: Don\u0027t set -fno-rtti when is_ubsan is true (#1998)\n\nGenerally, we build perfetto with -fno-rtti. However, this is\nincompatible with some UBSAN configurations, notably -fsanitize\u003dvptr.\nSince we don\u0027t know if someone downstream will use -fsanitize\u003dvptr,\ndon\u0027t pass -fno-rtti when is_ubsan is true. This produces code which is\ncompatible with clients using -fsanitize\u003dvptr.\n\nBug: 422542836\nTest: In ChromeOS chroot:\nTest:     USE\u003dubsan emerge-$BOARD perfetto vulkan-shader-profiler\n\nChange-Id: I1bf8950af457a708c93a30f6eefee1bff519cf4c"
    },
    {
      "commit": "967f2b069b52b2ab47eef61d51d5633a03488900",
      "tree": "b48b817185de240cd6b822cf584c00345f03fe7d",
      "parents": [
        "b7939f75e4529586a4a4e0a3ac79a5f15c46c708"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Wed Jul 02 17:51:18 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 17:51:18 2025 +0100"
      },
      "message": "github: separate BUILD.gn evaluation in hashing from install-build-deps (#2001)\n\nIt\u0027s *not* fine to fallback on other cache results when\nbuildtools/BUILD.gn changes. Never allow the fallback."
    },
    {
      "commit": "b7939f75e4529586a4a4e0a3ac79a5f15c46c708",
      "tree": "ca7290d7b6003b51ea3314e2da17ceffde04cdd5",
      "parents": [
        "9aec2f6dafa33731ed0b3294d4b4e5fd49c7c878"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Wed Jul 02 16:56:08 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 16:56:08 2025 +0100"
      },
      "message": "github: consider buildtools folder when caching (#1999)\n\n"
    },
    {
      "commit": "9aec2f6dafa33731ed0b3294d4b4e5fd49c7c878",
      "tree": "7a1c7ad101afb19337b7a24ecc09b682ed7e53e8",
      "parents": [
        "6b6859b54ca3b260ab0fd52315b772c3a14f8505"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Wed Jul 02 16:38:57 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 16:38:57 2025 +0100"
      },
      "message": "sdk: fix incorrect example config (#1990)\n\nFixes: https://github.com/google/perfetto/issues/1989"
    },
    {
      "commit": "6b6859b54ca3b260ab0fd52315b772c3a14f8505",
      "tree": "9c2bb469d6eaad3a3fdd300ef607823ae7d26b95",
      "parents": [
        "e53f4da22a36c6c27ac7e3da1f505e9f84088f1e"
      ],
      "author": {
        "name": "Daniele Di Proietto",
        "email": "ddiproietto@google.com",
        "time": "Wed Jul 02 15:39:41 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 15:39:41 2025 +0100"
      },
      "message": "tp: Consider objects from zygote and boot image as roots (#1995)\n\nThis matches what the ART GC does: it will never try to free them."
    },
    {
      "commit": "e53f4da22a36c6c27ac7e3da1f505e9f84088f1e",
      "tree": "adff4f22e6b91aaea00a5322d93f918e10b74d4d",
      "parents": [
        "4d767fd3ad5959cb5362eee552157b607cda01fa"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Wed Jul 02 15:14:54 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 15:14:54 2025 +0100"
      },
      "message": "tp: add caching to deal with SQLite not reusing cursors (#1982)\n\nI\u0027ve reported this upstream but work around it on our side as well"
    },
    {
      "commit": "4d767fd3ad5959cb5362eee552157b607cda01fa",
      "tree": "cfc3e6151da467915903e22d44dbb237e7410b7c",
      "parents": [
        "1c809f652b8907de1e6d92f64a5b0e29848a8933"
      ],
      "author": {
        "name": "Mikhail Khokhlov",
        "email": "khokhlov@google.com",
        "time": "Wed Jul 02 14:25:00 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 13:25:00 2025 +0000"
      },
      "message": "Fix more DCHECK crashes from JSON export (#1996)\n\n"
    },
    {
      "commit": "1c809f652b8907de1e6d92f64a5b0e29848a8933",
      "tree": "b51fd2cdff81c5f60bc70b3e3ab6058d37a518f6",
      "parents": [
        "3d8d26d6144a8686ab4a5273b6b59f906934d1e5"
      ],
      "author": {
        "name": "elrakadm",
        "email": "elrakadm@google.com",
        "time": "Wed Jul 02 14:15:18 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 13:15:18 2025 +0000"
      },
      "message": "Revert \"Add SF and HWUI callback missed as part of android_frames tab… (#1997)\n\nRevert \"Add SF and HWUI callback missed as part of android_frames. (#1769)\"\n\nCausing regression in android_jank_cuj script\n\nThis reverts commit ec96e82e88ac024a39c810cee792c4a1dc2515d6."
    },
    {
      "commit": "3d8d26d6144a8686ab4a5273b6b59f906934d1e5",
      "tree": "4b2e241e37736cf22787f4ae90934eb20ab1455b",
      "parents": [
        "1ee306080b38dfdba21c015868fb3e142efef59c"
      ],
      "author": {
        "name": "Kirill Timofeev",
        "email": "ktimofeev@google.com",
        "time": "Wed Jul 02 14:12:06 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 14:12:06 2025 +0100"
      },
      "message": "Android.bp: generate jarjar-ed versions of Java SDK modules. (#1988)\n\nFix jarjar rule."
    },
    {
      "commit": "1ee306080b38dfdba21c015868fb3e142efef59c",
      "tree": "5b043f78245808cf255ba8c821931a2f5f6f3c44",
      "parents": [
        "ec96e82e88ac024a39c810cee792c4a1dc2515d6"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Wed Jul 02 11:30:39 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 11:30:39 2025 +0100"
      },
      "message": "ui: Improve column sorting UX (#1993)\n\n- The sort arrow is now a button, not just an icon. Clicking it inverts\nthe sort direction on that column.\n- When hovering over a column which we are not sorting by, a \u0027greyed\nout\u0027 sort arrow appears. Clicking it sorts the grid by that column."
    },
    {
      "commit": "ec96e82e88ac024a39c810cee792c4a1dc2515d6",
      "tree": "606c719805ed70b6945c88b45066084ca0c56733",
      "parents": [
        "40942cd2fb40fc2dd6dc129f036426f473c3ed23"
      ],
      "author": {
        "name": "devianb",
        "email": "devarshimb@google.com",
        "time": "Wed Jul 02 15:15:49 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 10:45:49 2025 +0100"
      },
      "message": "Add SF and HWUI callback missed as part of android_frames table. (#1769)\n\nRemove intermediate table containing information about the SF and HWUI\nmissed callbacks for frames, and add this information directly in the\nstdlib android_frames table.\n\nBug: 400855183\nTest: tools/diff_test_trace_processor.py --name-filter\n\".*android_frames.*\" out/linux_clang_debug/trace_processor_shell"
    },
    {
      "commit": "40942cd2fb40fc2dd6dc129f036426f473c3ed23",
      "tree": "2d16e7b8166c8574de3712b870be7530dd25348c",
      "parents": [
        "593a58dbfab34843b71126bda0c324671841c566"
      ],
      "author": {
        "name": "devianb",
        "email": "devarshimb@google.com",
        "time": "Wed Jul 02 15:15:25 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 10:45:25 2025 +0100"
      },
      "message": "Consider unique frame_id when calculating per-frame metrics. (#1956)\n\nWhile extracting the frames in a CUJ, there are duplicate entries for a\nCUJ. This is because currently there is no way to associate an actual\nframe with a corresponding DrawFrame. At the metric level, this is an\nimmediate fix to make sure that the correct number of frames are used\nfor metric calculation.\n\nBug: 425562160\nTest: tools/diff_test_trace_processor.py --name-filter\n\".*android_blocking_calls_cuj_per_frame.*\"\nout/linux_clang_debug/trace_processor_shell"
    },
    {
      "commit": "593a58dbfab34843b71126bda0c324671841c566",
      "tree": "56347a00a844bc38845aebeb9fa59a75b1beef54",
      "parents": [
        "dcff193f8e8b2280ad3d59e0634ae957458b70fa"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Tue Jul 01 21:36:20 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 01 21:36:20 2025 +0100"
      },
      "message": "ui: Add docs for track help text / descriptions. (#1986)\n\nAlso make `Track::getHeight()` optional to make it easier to define\ndummy renderers."
    },
    {
      "commit": "dcff193f8e8b2280ad3d59e0634ae957458b70fa",
      "tree": "d5878db1e273eee3e8a8c492a68b476ffacc6344",
      "parents": [
        "9c5559deebe195a026374270544e10a719857479"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Tue Jul 01 19:24:05 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 01 19:24:05 2025 +0100"
      },
      "message": "ui: Add track help button (#1980)\n\nIf a `description` is provided when the track is registered, the help\nbutton appears in the track shell featuring a popup containing the\nprovided description.\n\nThe description can be either a simple string or a function returning\nMithril components in order to display rich text such as hyperlinks.\n\nFixes: https://buganizer.corp.google.com/issues/424382932\n\nExample: \n\n![image](https://github.com/user-attachments/assets/b2480cbb-e0d3-4a02-9626-9e44f8ce8421)"
    },
    {
      "commit": "9c5559deebe195a026374270544e10a719857479",
      "tree": "5da969f6c80c9c7f421956c7f818942d13363a3b",
      "parents": [
        "db7a8f5735fdbf943980c997bbd9557d30f9eb73"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Tue Jul 01 19:22:51 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 01 19:22:51 2025 +0100"
      },
      "message": "tp: add missing indexes to significantly speed up flamegraph (#1981)\n\n"
    },
    {
      "commit": "db7a8f5735fdbf943980c997bbd9557d30f9eb73",
      "tree": "c983f94b4ee40e17dde82b9a6f6df53f0a9c6a01",
      "parents": [
        "9de317c32ae9acb163c7fd97877177544da7cdc2"
      ],
      "author": {
        "name": "Priyanka",
        "email": "57577698+PriyankaSPX@users.noreply.github.com",
        "time": "Tue Jul 01 18:36:57 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 01 18:36:57 2025 +0100"
      },
      "message": "Update extractor to return LayerDecoder. (#1979)\n\nLayerDecoder provides greater clarity than ConstBytes. Also use optional\nRect instead of pointer in GetCroppedScreenBounds.\n\nBug: 411363817\nTest: tools/diff_test_trace_processor.py\nout/linux_clang_debug/trace_processor_shell"
    },
    {
      "commit": "9de317c32ae9acb163c7fd97877177544da7cdc2",
      "tree": "a08c61bbb2e46cb7ad4d2cb9bf13f99c89745c0b",
      "parents": [
        "93bfc2676ddd936d9f169b681f47c7ea01f1e8c0"
      ],
      "author": {
        "name": "J16053",
        "email": "jh5372@nyu.edu",
        "time": "Tue Jul 01 08:48:00 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 01 16:48:00 2025 +0100"
      },
      "message": "Update start-using-perfetto.md (#1975)\n\nFix typos\n\nWelcome to Perfetto!\nMake sure your PR has a bug/issue attached or has at least\na clear description of the problem you are trying to fix.\n\nFor more details please see\nhttps://perfetto.dev/docs/contributing/getting-started"
    },
    {
      "commit": "93bfc2676ddd936d9f169b681f47c7ea01f1e8c0",
      "tree": "690b6524eafa41180a9cd42a933f818240b7b9ff",
      "parents": [
        "016529fdd765475483d8e6ab6ca613ddb42ef78a"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Tue Jul 01 16:15:01 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 01 16:15:01 2025 +0100"
      },
      "message": "ui: Improve formatting of durations in aggregation panel (#1977)\n\nThis change:\n- Removes the useless type hints in the aggregations.\n- Renames the TIMESTAMP_NS type hint to DURATION_NS, as all the values\nwere actually durations, not timestamps.\n- Changes how DURATION_NS values are formatted in the DataGrid, making\nthem more human readable using `Duration.humamize()`.\n- Use greek character mu \u0027μ\u0027 instead of \u0027u\u0027 for microseconds.\n\nBefore: \n\n![image](https://github.com/user-attachments/assets/5d93ae4b-02c1-4c2d-9c06-a66069496df9)\n\nAfter:\n\n![image](https://github.com/user-attachments/assets/2b2d6327-529a-4b6d-a7f0-15f981007241)"
    },
    {
      "commit": "016529fdd765475483d8e6ab6ca613ddb42ef78a",
      "tree": "e8b31ba2a47f706476ee4c9efaa27634c6931104",
      "parents": [
        "13f5e14680c84e23cdb0c06fab9e44a92f6d736e"
      ],
      "author": {
        "name": "Kirill Timofeev",
        "email": "ktimofeev@google.com",
        "time": "Tue Jul 01 13:40:45 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 01 13:40:45 2025 +0100"
      },
      "message": "Android.bp: generate jarjar-ed versions of Java SDK modules. (#1973)\n\nIn the framework, we don\u0027t want to depend on (and bundle) the\n`dev.perfetto.sdk` classes.\nOtherwise, when the 3P app uses Perfetto Java SDK classes with\nthe same name, but the different version, will be found both \nin App and Boot classpathes.\n\nThis problem is solved using jarjar: when building SDK for \nframework all classes\nfrom the `dev.perfetto.sdk` package are moved to the new package.\n\nOur JNI library resolves java classes by FQN name, so when building\nfor framework\nthe `-DPERFETTO_JNI_JARJAR_PREFIX\u003d` compile flag should be\nused to specify the new package.\n\nWe want both the 3P and the framework JNI lib to be buildable in GN,\nso instead of generating the `_framework` version only for Android.bp\nwe add it as a normal GN target (not used to generate Bazel build\nfile, though)."
    },
    {
      "commit": "13f5e14680c84e23cdb0c06fab9e44a92f6d736e",
      "tree": "d3a8405574630eb41b74449e57bc606b02d65f53",
      "parents": [
        "6f89b9aaeb9a3b5aa2671ec11fefbf79c2bf601f"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Tue Jul 01 11:04:47 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 01 11:04:47 2025 +0100"
      },
      "message": "tp: fix accidentally swallowing of query errors (#1976)\n\n"
    },
    {
      "commit": "6f89b9aaeb9a3b5aa2671ec11fefbf79c2bf601f",
      "tree": "47fc88888779f30d15939418ae96f91943cb3d87",
      "parents": [
        "b1756f96840a5f6f9e1f3c073e901b9462fea79f"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Tue Jul 01 08:40:51 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 01 08:40:51 2025 +0100"
      },
      "message": "Roll canary (#1878)\n\n"
    },
    {
      "commit": "b1756f96840a5f6f9e1f3c073e901b9462fea79f",
      "tree": "5c9c905885ec643921a61f23595a60156f4a8c34",
      "parents": [
        "88d3ff4ac97b40289200f7541cc78849839107e8"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Mon Jun 30 21:41:27 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 21:41:27 2025 +0100"
      },
      "message": "ui: Enable vega hover event processing (#1974)\n\nThis gets the hover encoding working in the vega example on the widgets\npage.\n\nSee: https://vega.github.io/vega/docs/api/view/#view_hover"
    },
    {
      "commit": "88d3ff4ac97b40289200f7541cc78849839107e8",
      "tree": "847e82f9f4127fa77a071f421e0a528fa85935ab",
      "parents": [
        "c3b73394a57ca7df3d2fee5645cffa24ebf13aa3"
      ],
      "author": {
        "name": "Sonalisinghal",
        "email": "sonalii@google.com",
        "time": "Mon Jun 30 20:27:01 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 20:27:01 2025 +0100"
      },
      "message": "Add documentation for cpu utilization (#1963)\n\n"
    },
    {
      "commit": "c3b73394a57ca7df3d2fee5645cffa24ebf13aa3",
      "tree": "b4c119580b4df59d4155bdb28a6231d2a8c76bba",
      "parents": [
        "b1dbdf91b40ef7777666f3cf63cf3e70d8cea677"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Mon Jun 30 17:55:12 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 17:55:12 2025 +0100"
      },
      "message": "docs: Improve \u0027Trace Visualization-\u003ePerfetto UI\u0027 docs (#1968)\n\nThis patch adds some instructions with videos for basic UI usage,\nincluding basic timeline navigation and track manipluation."
    },
    {
      "commit": "b1dbdf91b40ef7777666f3cf63cf3e70d8cea677",
      "tree": "da3ddbc3e95301520b1ab3c49a0fe94ef6020530",
      "parents": [
        "27dc5df450aad0a3965834d769efc8e986af6b91"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Mon Jun 30 17:47:49 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 17:47:49 2025 +0100"
      },
      "message": "prelude: add flows index in prelude (#1970)\n\n"
    },
    {
      "commit": "27dc5df450aad0a3965834d769efc8e986af6b91",
      "tree": "76efdfe7d58f242eab4306977e8734650dfdbe43",
      "parents": [
        "b2ccfbb1c094950524005913035e49c5dff61c28"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Mon Jun 30 17:47:15 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 17:47:15 2025 +0100"
      },
      "message": "docs: improve readability and fix example (#1967)\n\n"
    },
    {
      "commit": "b2ccfbb1c094950524005913035e49c5dff61c28",
      "tree": "b1d4a462fe204e448d2916babb1850ac699822d3",
      "parents": [
        "62f4e37b12c82c5f8e64cfec6c2808a9fc5d7504"
      ],
      "author": {
        "name": "Simon MacMullen",
        "email": "simonmacm@google.com",
        "time": "Mon Jun 30 17:46:16 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 17:46:16 2025 +0100"
      },
      "message": "Don\u0027t call startTrackingUidTimes(). (#1972)\n\nSystem server does this for us and doing so requires a bunch of\npermissions we don\u0027t have.\n\nBug: http://b/b422976190"
    },
    {
      "commit": "62f4e37b12c82c5f8e64cfec6c2808a9fc5d7504",
      "tree": "9e7c0c34a63724a9a10ff1b79bfa21eb5e967551",
      "parents": [
        "41f4031b31f3903f6fc2b2563a150498b96adc8b"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Mon Jun 30 17:46:06 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 17:46:06 2025 +0100"
      },
      "message": "docs: explicitly add template examples (#1966)\n\n"
    },
    {
      "commit": "41f4031b31f3903f6fc2b2563a150498b96adc8b",
      "tree": "bc84ee95220a00c0401112c25aff9f1e006081bb",
      "parents": [
        "019fd3a81e47adc6bf99b2fcc32ae8fbc8648772"
      ],
      "author": {
        "name": "Kirill Timofeev",
        "email": "ktimofeev@google.com",
        "time": "Mon Jun 30 16:41:24 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 16:41:24 2025 +0100"
      },
      "message": "Android.bp: support generation of \u0027defaults\u0027 for \u0027java_\u0027 and \u0027cc_\u0027 targets. (#1969)\n\nWe need this to generate almost identical build targets. E.g.: for\n\u0027libperfetto_jni\u0027 we want to generate the \u00273p\u0027 and \u0027framework\u0027 targets\nwhich differ only by the \u0027jarjar\u0027 config.\n\nTested in android tree:\n`m perfetto_trace_lib`"
    },
    {
      "commit": "019fd3a81e47adc6bf99b2fcc32ae8fbc8648772",
      "tree": "3e9fefa06a405ea70a091c060ec308b1ba254810",
      "parents": [
        "9c92be08291d7ec82554ec2b461a68b368a41c56"
      ],
      "author": {
        "name": "Sonalisinghal",
        "email": "sonalii@google.com",
        "time": "Mon Jun 30 15:04:59 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 15:04:59 2025 +0100"
      },
      "message": "Add documentation for getting state of background jobs (#1962)\n\n"
    },
    {
      "commit": "9c92be08291d7ec82554ec2b461a68b368a41c56",
      "tree": "62d1e949c697fa98f40d791f0c3747820ebde33a",
      "parents": [
        "ed789aff623d01b72ea960faf280dbd334accfde"
      ],
      "author": {
        "name": "Sonalisinghal",
        "email": "sonalii@google.com",
        "time": "Mon Jun 30 15:04:03 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 15:04:03 2025 +0100"
      },
      "message": "Add documentation for fetching process metadata (#1961)\n\n"
    },
    {
      "commit": "ed789aff623d01b72ea960faf280dbd334accfde",
      "tree": "3d47681ce504516d31a824e240b557ec1df4b30b",
      "parents": [
        "c4970e7c960cfd87ffa93d3493b75c527e8647a3"
      ],
      "author": {
        "name": "Daniele Di Proietto",
        "email": "ddiproietto@google.com",
        "time": "Mon Jun 30 14:30:35 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 14:30:35 2025 +0100"
      },
      "message": "Avoid volatile increment in test (#1960)\n\nIt\u0027s deprecated in C++20."
    },
    {
      "commit": "c4970e7c960cfd87ffa93d3493b75c527e8647a3",
      "tree": "5fc89109cf46c25bd5232f46a8ae020624b7cd77",
      "parents": [
        "5192b52b266bf5840929a30ac36037cf4f6eb2b7"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Mon Jun 30 14:22:18 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 14:22:18 2025 +0100"
      },
      "message": "ui: Switch to using DataGrid to display aggregations. (#1954)\n\nThis patch switches out the old aggregation tables for DataGrids.\n\nThis has a number of benefits:\n- Promotes code reuse.\n- Adds pagination (avoids overloading the DOM).\n- Adds the ability to add filters.\n- Presents a consistent UX for tabular data throughout the UI.\n\nExample:\n\u003cimg width\u003d\"1033\" alt\u003d\"image\"\nsrc\u003d\"https://github.com/user-attachments/assets/b9698b9b-83ec-4d61-bf6a-19ca90e80ad6\"\n/\u003e"
    },
    {
      "commit": "5192b52b266bf5840929a30ac36037cf4f6eb2b7",
      "tree": "b5c8786fa6dc530b3f461b7c79bc79ccf9191e2e",
      "parents": [
        "4653adbbf2da1c1bdb5f82a70875b8d592e3cbe7"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Mon Jun 30 12:59:38 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 12:59:38 2025 +0100"
      },
      "message": "perfetto: roll prebuilts (#1958)\n\n"
    },
    {
      "commit": "4653adbbf2da1c1bdb5f82a70875b8d592e3cbe7",
      "tree": "48af37a60053989439dd4ce5808fdd634b1a1b9f",
      "parents": [
        "ad9848db3b110c77cf889dbb005dbea565c69a32"
      ],
      "author": {
        "name": "Daniele Di Proietto",
        "email": "ddiproietto@google.com",
        "time": "Mon Jun 30 12:59:23 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 12:59:23 2025 +0100"
      },
      "message": "winscope_geometry: Make member operator\u003d\u003d const (#1957)\n\nOtherwise we get a warning in C++20.\n\n```\nexternal/perfetto/include/perfetto/ext/base/flat_hash_map.h:214:42: error: ISO C++20 considers use of overloaded operator \u0027\u003d\u003d\u0027 (with operand types \u0027perfetto::trace_processor::winscope::geometry::Rect\u0027 and \u0027perfetto::trace_processor::winscope::geometry::Rect\u0027) to be ambiguous despite there being a unique best viable function [-Werror,-Wambiguous-reversed-operator]\n  214 |         if (tag_idx \u003d\u003d tag \u0026\u0026 keys_[idx] \u003d\u003d key) {\n      |                               ~~~~~~~~~~ ^  ~~~\nexternal/perfetto/src/trace_processor/importers/proto/winscope/winscope_rect_tracker.cc:38:17: note: in instantiation of member function \u0027perfetto::base::FlatHashMap\u003cperfetto::trace_processor::winscope::geometry::Rect, perfetto::trace_processor::tables::WinscopeRectTable::Id, perfetto::trace_processor::winscope::RectHasher\u003e::Insert\u0027 requested here\n   38 |   return *rows_.Insert(rect, id).first;\n      |                 ^\nexternal/perfetto/src/trace_processor/importers/proto/winscope/winscope_geometry.h:47:8: note: ambiguity is between a regular call to this operator and a call with the argument order reversed\n   47 |   bool operator\u003d\u003d(const Rect\u0026 other);\n      |        ^\nexternal/perfetto/src/trace_processor/importers/proto/winscope/winscope_geometry.h:47:8: note: mark \u0027operator\u003d\u003d\u0027 as const or add a matching \u0027operator!\u003d\u0027 to resolve the ambiguity\n1 error generated.\n```\n\nAndroid in-tree builds are done with C++20 now.\n\nAlso, mark other related methods as const."
    },
    {
      "commit": "ad9848db3b110c77cf889dbb005dbea565c69a32",
      "tree": "cdda42027aea3ebf533bdc840ccb2ff96f6100fa",
      "parents": [
        "7b990aa93a0e658ef7d16e1d236142acd3ed3e46"
      ],
      "author": {
        "name": "Priyanka",
        "email": "57577698+PriyankaSPX@users.noreply.github.com",
        "time": "Mon Jun 30 12:00:17 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 12:00:17 2025 +0100"
      },
      "message": " SF layer extractor (#1947)\n\nFor processing layers in z order when computing rects and visibility.\n    \nBug: 411363817\nTest: tools/diff_test_trace_processor.py\nout/linux_clang_debug/trace_processor_shell"
    },
    {
      "commit": "7b990aa93a0e658ef7d16e1d236142acd3ed3e46",
      "tree": "abd5b7756f22635d627b4cc372507aa0149e588c",
      "parents": [
        "4dec096f6f714c94e104dd70e2277ef5549d05aa"
      ],
      "author": {
        "name": "Mikhail Khokhlov",
        "email": "khokhlov@google.com",
        "time": "Mon Jun 30 10:50:41 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 09:50:41 2025 +0000"
      },
      "message": "Fix more DCHECK crashes (#1945)\n\nFixes: 427924140"
    },
    {
      "commit": "4dec096f6f714c94e104dd70e2277ef5549d05aa",
      "tree": "2a4fbe9a1dd1dbcb3fdf30dd3da602daa2bbbfa1",
      "parents": [
        "32fc4f31c38c6598c34f7dca0dd6aad2a86f373d"
      ],
      "author": {
        "name": "Priyanka",
        "email": "57577698+PriyankaSPX@users.noreply.github.com",
        "time": "Mon Jun 30 10:08:28 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 30 10:08:28 2025 +0100"
      },
      "message": "Add layer utils. (#1898)\n\nUtils for parsing SF data into extended surfaceflinger_layer table.\n\nBug: 411363817\nTest: tools/diff_test_trace_processor.py\nout/linux_clang_debug/trace_processor_shell"
    },
    {
      "commit": "32fc4f31c38c6598c34f7dca0dd6aad2a86f373d",
      "tree": "cc3b6db8ce18d9c4af29fc874558e86817024519",
      "parents": [
        "b3b3ae415d7e8c124bab56bad8da0accc5d2b2d6"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Sun Jun 29 22:04:14 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 29 22:04:14 2025 +0100"
      },
      "message": "ui: Add aggregation capabilities to DataGrid (#1953)\n\nThis patch adds a new aggregation feature to the DataGrid component that\nallows the caller to define an optional aggregates for each column,\nchoosing from a selection of aggregation functions:\n- SUM\n- AVG\n- MIN\n- MAX\n- COUNT\n\nAggregations are displayed on the header bar underneath the column title\nrow, and all values are aligned with those underneath.\n\nTo save space, a symbol is used to indicate the aggregation function,\nbut the name of the function can be viewed by hovering the symbol.\n\nExample (from the widgets page):\n\u003cimg width\u003d\"527\" alt\u003d\"image\"\nsrc\u003d\"https://github.com/user-attachments/assets/1c47db48-9a79-41d6-bf6c-067a4f26fdef\"\n/\u003e"
    },
    {
      "commit": "b3b3ae415d7e8c124bab56bad8da0accc5d2b2d6",
      "tree": "d277983f581121128c17c12ab1827d5672278220",
      "parents": [
        "65608a5506464c0daf76c8e8443f071f6a3ce3c7"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Sun Jun 29 17:08:54 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 29 17:08:54 2025 +0100"
      },
      "message": "ui: Make SegmentedButton inline (#1951)\n\nSegmentedButton is similar to a buttons and inputs, so it makes sense\nthat it has inline styling rather than block so that it can live side by\nside with other elements."
    },
    {
      "commit": "65608a5506464c0daf76c8e8443f071f6a3ce3c7",
      "tree": "9363efa1293cd846679c9c78113d68b705109090",
      "parents": [
        "6564d7f2a04aafc4084ec9e583a1757df8e5781b"
      ],
      "author": {
        "name": "Steve Golton",
        "email": "stevegolton@google.com",
        "time": "Sun Jun 29 17:08:45 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 29 17:08:45 2025 +0100"
      },
      "message": "ui: Put AggregationPanel into Aggregator definition and refactor (#1950)\n\nThis change moves the AggregationPanel (mostly used by Wattson) into the\naggregator definition itself, rather than getting injected in when the\ntab is created. The aggregator is a natural place to put this as it\ndefines all the other properties of the aggregation, so it makes sense\nthat it also defines the panel component used.\n\nTo avoid some circular imports, this patch also moves all of the\naggregation-specific code into components rather than public, as it\u0027s\nall related to the aggregation adapter which is a component."
    },
    {
      "commit": "6564d7f2a04aafc4084ec9e583a1757df8e5781b",
      "tree": "3008cff56991aab5e2975e26d8afd31fe50ea806",
      "parents": [
        "bce8089694747c6ff7ab275e27d989a39b1b47da"
      ],
      "author": {
        "name": "Daniele Di Proietto",
        "email": "ddiproietto@google.com",
        "time": "Fri Jun 27 19:28:47 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 27 18:28:47 2025 +0000"
      },
      "message": "tp: Parse heap graph runtime_internal_objects (#1925)\n\nThis introduces a new field for Java heap graph objects: runtime\ninternal objects.\n\nThe new field will be populated by ART in a separate commit.\n\nruntime internal objects are parsed as references.\n\nhttps://buganizer.corp.google.com/issues/424237741"
    },
    {
      "commit": "bce8089694747c6ff7ab275e27d989a39b1b47da",
      "tree": "dd4d42b3d208fd900618d78fa7466b83b28ca113",
      "parents": [
        "bbdb7b0d9ba58e9bc277e75a0cc54b25608194ed"
      ],
      "author": {
        "name": "Primiano Tucci",
        "email": "primiano@google.com",
        "time": "Fri Jun 27 18:53:37 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 27 17:53:37 2025 +0000"
      },
      "message": "Fix mac build (#1948)\n\nsize_t -\u003e %zu"
    },
    {
      "commit": "bbdb7b0d9ba58e9bc277e75a0cc54b25608194ed",
      "tree": "b60b8d51f4e75e2355da7af105bcb3d672827495",
      "parents": [
        "fde8c00afdcef5dca9694c4b84282cca76ecb356"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jun 27 17:45:46 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 27 17:45:46 2025 +0100"
      },
      "message": "tp: reduce size of string pool blocks (#1944)\n\n32MB/block for a small traces is not acceptable. Change to instead to\n1MB/block instead."
    },
    {
      "commit": "fde8c00afdcef5dca9694c4b84282cca76ecb356",
      "tree": "3e27523507651bff068bef16e48089c79197133a",
      "parents": [
        "9d556824d4697ab07713ea780b6a6eea3b2c2341"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jun 27 17:45:33 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 27 17:45:33 2025 +0100"
      },
      "message": "tp: reduce memory churn and usage in heap graph tracker (#1943)\n\n"
    },
    {
      "commit": "9d556824d4697ab07713ea780b6a6eea3b2c2341",
      "tree": "444e0b847a8af9ac421b6d629746c8e87c830e6a",
      "parents": [
        "02b0beafbeea2261beb23e413d6343b6e16c0ee9"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jun 27 17:45:20 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 27 17:45:20 2025 +0100"
      },
      "message": "tp: separate column mutations into a different variable (#1942)\n\nBy separating column mutations from table mutations, we can make the\ncursor checking for change in the number of mutations more fine grained,\nreducing how often the re-prepare codepath is hit."
    },
    {
      "commit": "02b0beafbeea2261beb23e413d6343b6e16c0ee9",
      "tree": "ae3438b955c2533914dcff29dbf4607a66268a6d",
      "parents": [
        "42435b295e526382b5f761af7be1b6acf752b3cc"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jun 27 17:45:00 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 27 17:45:00 2025 +0100"
      },
      "message": "tp: add benchmark for linearfiltereq in interpreter (#1940)\n\nScaffolding for potential optimizations"
    },
    {
      "commit": "42435b295e526382b5f761af7be1b6acf752b3cc",
      "tree": "a76ede46d168155ad4e5414229a5e93f665d6aa7",
      "parents": [
        "68aeb3038bfc5da05d310c8e3123ebb93cbefcc9"
      ],
      "author": {
        "name": "Priyanka",
        "email": "57577698+PriyankaSPX@users.noreply.github.com",
        "time": "Fri Jun 27 14:59:15 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 27 14:59:15 2025 +0100"
      },
      "message": "Winscope rect and transform trackers (#1897)\n\nFor parsing SF/VC/WM data into rect tables.\n    \nBug: 411363817\nTest: tools/diff_test_trace_processor.py\nout/linux_clang_debug/trace_processor_shell"
    },
    {
      "commit": "68aeb3038bfc5da05d310c8e3123ebb93cbefcc9",
      "tree": "9b73026059df58ae63ebb0c0d706e95278c1ba6d",
      "parents": [
        "1a7a82a71db9670f334d9379116f36de77e7565b"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jun 27 12:58:20 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 27 12:58:20 2025 +0100"
      },
      "message": "tp: change growth factor of flexvector to 1.5x (#1938)\n\n2x was causing very high memory use when parsing large heap dumps. Use\n1.5x instead which is what also folly\u0027s vector uses to be a bit more\nreasonable.\n\nAlso remove a bunch of confusing code where alignment and capacity\nmultiples were mixed up. We were not actually using custom alignment\ncapability in prod so remove it and simplify."
    },
    {
      "commit": "1a7a82a71db9670f334d9379116f36de77e7565b",
      "tree": "98fc15c320b9a5674bf55e6c1dbf79bb5162221c",
      "parents": [
        "ef72300e2f21ca8033f3baa7961ee51e505bff37"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jun 27 12:58:03 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 27 12:58:03 2025 +0100"
      },
      "message": "Prepare changelog for v51.1 (#1937)\n\n"
    },
    {
      "commit": "ef72300e2f21ca8033f3baa7961ee51e505bff37",
      "tree": "0bfd432b43bd341ba28a56a9786579049a5c6180",
      "parents": [
        "d6a79b5507ad97595894fd00c78f8e08159c9d41"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jun 27 12:57:53 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 27 12:57:53 2025 +0100"
      },
      "message": "tools: add script for releasing SDK (#1935)\n\nBasically an automated version of the releasing doc. Not complete nor\nbulletproof but a good start"
    },
    {
      "commit": "d6a79b5507ad97595894fd00c78f8e08159c9d41",
      "tree": "9cc3bdbb7b31248f425c6d2ad622fb66148f1f61",
      "parents": [
        "6766ffc9858ca6409ab50a01fde339c125f564d3"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jun 27 00:58:54 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 27 00:58:54 2025 +0100"
      },
      "message": "bazel: fix invalid flags being passed to compile C code (#1936)\n\n"
    },
    {
      "commit": "6766ffc9858ca6409ab50a01fde339c125f564d3",
      "tree": "ef3107e36f75645b2edb69d92dbce726f9d40780",
      "parents": [
        "8eb032e80a9442fe18c90c6ea01f641db63c0868"
      ],
      "author": {
        "name": "jahdiel-alvarez",
        "email": "jahdiel@google.com",
        "time": "Thu Jun 26 12:01:26 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 26 12:01:26 2025 -0700"
      },
      "message": "Add GenericKernelTaskRenameEvent as a standard proto (#1930)\n\nAdd a standard proto for task rename events. Also, renamed the\ngeneric_task_state.proto to generic_task.proto in order to include more\nbroad proto messages in it.\n\nBug: 425690849"
    },
    {
      "commit": "8eb032e80a9442fe18c90c6ea01f641db63c0868",
      "tree": "940fd4d85eaf02ce3e6d23dfedd47af229dae2a4",
      "parents": [
        "8e73e6626332aa53525d0a2e2249182ad3c69a08"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Jun 26 18:52:14 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 26 18:52:14 2025 +0100"
      },
      "message": "tp: Make DebugAnnotationParser iterative (#1916)\n\nRefactored the `ParseNestedValueArgs` function in\n`DebugAnnotationParser`\nto be iterative instead of recursive. This avoids stack overflow issues\nwith deeply nested annotations."
    },
    {
      "commit": "8e73e6626332aa53525d0a2e2249182ad3c69a08",
      "tree": "d5047a54b9d6980f0cde43f23ba2d92731a9154c",
      "parents": [
        "7d72188388f40f8699b966d975b2435151b1882e"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Jun 26 18:44:54 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 26 18:44:54 2025 +0100"
      },
      "message": "tp: correctly tell SQLite we are handling limit/offset (#1933)\n\nIf we don\u0027t do this, SQLite will further constrain rows incorrectly as\nit thinks we have not handled it on our side."
    },
    {
      "commit": "7d72188388f40f8699b966d975b2435151b1882e",
      "tree": "69dc643957c2aa7b400d3d3b4cceba8179543041",
      "parents": [
        "56db392a0161aaea2a6c18b62a7ce37703b3ab0f"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Jun 26 18:31:00 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 26 18:31:00 2025 +0100"
      },
      "message": "traceconv: implement function to go from text -\u003e binary (#1437)\n\nImplement it in a very trivial way but better than not having it at\nall"
    },
    {
      "commit": "56db392a0161aaea2a6c18b62a7ce37703b3ab0f",
      "tree": "798e357e04dcf86637aa92134b9ee858f35f6bca",
      "parents": [
        "f3d89eae5b70bd9d612fe0547325a0881f254104"
      ],
      "author": {
        "name": "etiennep-chromium",
        "email": "etiennep@chromium.org",
        "time": "Thu Jun 26 07:39:07 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 26 14:39:07 2025 +0000"
      },
      "message": "[json] Extract trace_config metadata to json (#1934)\n\nThis PR extracts trace_config_pbtxt to metadata in JSON exporter\n\nhttp://crbug.com/427921449"
    },
    {
      "commit": "f3d89eae5b70bd9d612fe0547325a0881f254104",
      "tree": "a57578f46660de5a1a57caf4ab44c495cb9874ab",
      "parents": [
        "0e1580cdec198b744865c669398ce5582dabc237"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Thu Jun 26 13:58:12 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 26 13:58:12 2025 +0100"
      },
      "message": "tp: fix dcheck crash (#1932)\n\nFixes: 427924140"
    }
  ],
  "next": "0e1580cdec198b744865c669398ce5582dabc237"
}
