)]}'
{
  "commit": "92e2c0107cf7e1b1eb3a671c272ba753d5389485",
  "tree": "fbd0f80cfdfded3335d519c22d087a6f19e0f956",
  "parents": [
    "152f4fbb59826a3f6a3a8bb3c4e4e16b6b64aac8"
  ],
  "author": {
    "name": "Nicolo\u0027 Mazzucato",
    "email": "nicomazz@google.com",
    "time": "Mon Aug 03 17:19:03 2026 +0000"
  },
  "committer": {
    "name": "Nicolo\u0027 Mazzucato",
    "email": "nicomazz@google.com",
    "time": "Mon Aug 03 17:19:03 2026 +0000"
  },
  "message": "ui: Refactor PinAndroidPerfMetrics into a serializable PinRequest IR\n\nSplit the plugin into three layers behind an unchanged external interface\n(URL hash + command-palette prompt):\n\n - a serializable PinRequest IR (handlers/pinRequest.ts): a string-enum\n   discriminant, one interface per variant, the union, and a light\n   parsePinRequests() validator;\n - a Crystalball translation layer (handlers/handlerRegistry.ts +\n   per-family translate* functions) mapping metric keys to PinRequest[];\n - an execution layer (handlers/executor.ts + per-family exec* functions)\n   turning PinRequest[] into pinned tracks via a type-safe dispatch table.\n\nMetricData/MetricHandler are unified into PinRequest; metricUtils.ts now\nonly holds JankType and expandProcessName. All SQL, handler ordering, and\ndedup behavior are preserved. A new generic command\n\u0027com.android.PinAndroidPerfMetrics#pinRequests\u0027 accepts a PinRequest[]\nargument so non-Crystalball clients can pin tracks directly.\n\nTAG\u003dagy\nCONV\u003d019d7f26-c882-47ce-8378-d03207d631d3\n\nChange-Id: I7c50d80283544b6bcff3c9847fe440d5556c61fd\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "95c1d2e3a7b902a3ec932d039c3fc4b616f29846",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/executor.ts"
    },
    {
      "type": "modify",
      "old_id": "5441eec79187461e5e47840aabb7c6fab47e95d4",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/fullTraceJankMetricHandler.ts",
      "new_id": "d802677b5fdc8c9bceeb675c295b3adb0a8a39c4",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/fullTraceJankMetricHandler.ts"
    },
    {
      "type": "modify",
      "old_id": "7221a43ea72316984bea7a92587fd70d09c635c9",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/fullTraceJankMetricHandler_unittest.ts",
      "new_id": "f904d66dd47d2da8d4981ce89800568f0cbd9264",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/fullTraceJankMetricHandler_unittest.ts"
    },
    {
      "type": "modify",
      "old_id": "b1c19d7d9491cde895dd5063f31311c17147fe3b",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/handlerRegistry.ts",
      "new_id": "3cc8a191762734c492d9cc4258047fd2063a235d",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/handlerRegistry.ts"
    },
    {
      "type": "modify",
      "old_id": "68f287f3345c4eb53823e06b1d52bab319111b9c",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/metricUtils.ts",
      "new_id": "54f5b52edd2509bb88907a5a3d118bc8b27f182e",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/metricUtils.ts"
    },
    {
      "type": "modify",
      "old_id": "0f39d8ba8c7f001ee0185d190c442188a8f3fedd",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinActivityOrBinderLeaksMetricsHandler.ts",
      "new_id": "1f1ed9e8580706384b396e63d9303b8839c4761d",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinActivityOrBinderLeaksMetricsHandler.ts"
    },
    {
      "type": "modify",
      "old_id": "5085bea089c186c292b5ee81b45b76e63c874cdb",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinBitmapMetricsHandler.ts",
      "new_id": "3a9c42ef6b54a69e203a4b9217e8e42a4679dc06",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinBitmapMetricsHandler.ts"
    },
    {
      "type": "modify",
      "old_id": "9d555da49a4f3008dac084a4ba456140f06ca23c",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinBlockingCall.ts",
      "new_id": "232358e7b118b8f46ec4488d4de96e5faf570253",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinBlockingCall.ts"
    },
    {
      "type": "modify",
      "old_id": "bfe1ebf79aed60fc671e70db9a076497bc488cef",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinBlockingCall_unittest.ts",
      "new_id": "d85c609c573bff36d729f6a13a6fb8adc16c7fa7",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinBlockingCall_unittest.ts"
    },
    {
      "type": "modify",
      "old_id": "2819887d4e327d51e4d000dec50e4a733856432d",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinCujMetricHandler.ts",
      "new_id": "e78be1647b0a2942c7af984d2443c9451cb60333",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinCujMetricHandler.ts"
    },
    {
      "type": "modify",
      "old_id": "b8ca49951d22387bb9ba114e638000d959ac2bee",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinCujScoped.ts",
      "new_id": "87fbddecb0e1d2079009e71a82501ecbf8cc2dc5",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinCujScoped.ts"
    },
    {
      "type": "modify",
      "old_id": "4805f26bdb41de38df9bc1eeb28ac610fc287867",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinCujScoped_unittest.ts",
      "new_id": "885af216db63663971d1d0863d7882872ceebccd",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinCujScoped_unittest.ts"
    },
    {
      "type": "modify",
      "old_id": "49fb2d413b8a49a17b678edee89044723ab7d835",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinDirtyMemoryMetricsHandler.ts",
      "new_id": "c45aeca0d5525ab7828f73fdcd48bed72e5854ae",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinDirtyMemoryMetricsHandler.ts"
    },
    {
      "type": "modify",
      "old_id": "58d0cd9fb84282e8ffb07988ec19301bc456a8d2",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinGPUMemoryMetricsHandler.ts",
      "new_id": "530df5cfdab1f83b9268c67c441552a9682acaec",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinGPUMemoryMetricsHandler.ts"
    },
    {
      "type": "modify",
      "old_id": "1ff4d3bf2a2dd785db76b0bfe2a268815820f560",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinGlobalDmaHeapSizeMetricsHandler.ts",
      "new_id": "096597409feb021c9a2fc045acf2827085f8f863",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinGlobalDmaHeapSizeMetricsHandler.ts"
    },
    {
      "type": "modify",
      "old_id": "203cf0c185f783c3c688bfaf983d526b49c3f534",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinGlobalDmaHeapSizeMetricsHandler_unittest.ts",
      "new_id": "c88baf8a00bfe8eca3eacecd7bedee734ef012fb",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinGlobalDmaHeapSizeMetricsHandler_unittest.ts"
    },
    {
      "type": "modify",
      "old_id": "12f1466f6aa99a65f8932c9bc86c68fd9fd3bc3a",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinHardwareBufferMemoryMetricsHandler.ts",
      "new_id": "d987dfadc441a9911f63e0ecb5728044b2463fc7",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinHardwareBufferMemoryMetricsHandler.ts"
    },
    {
      "type": "modify",
      "old_id": "82c9457b45332afaf0f4bfd3e75f30e215a0dd88",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinHeapSizeMetricsHandler.ts",
      "new_id": "3ce3b4e1ce46ca33abb0c670cd022941de7b3cdb",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinHeapSizeMetricsHandler.ts"
    },
    {
      "type": "modify",
      "old_id": "46296db2123fc195ba63b7f7cd0f3f1f3821a124",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinNotificationsBlockingCall.ts",
      "new_id": "4f1e2bf7c8c4aa721085923f270a55ee997def48",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinNotificationsBlockingCall.ts"
    },
    {
      "type": "modify",
      "old_id": "0cef17365e989ea6922a2431da2dbd41f18fdbe6",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinNotificationsBlockingCall_unittest.ts",
      "new_id": "8f847ae4c9a391cfea33903af36fa4c7b77e8e3d",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinNotificationsBlockingCall_unittest.ts"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f3b2b789b3ca018da0edd08e7e952a51cfd818d0",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinRequest.ts"
    },
    {
      "type": "modify",
      "old_id": "9c2f41a52db1f6381b5043461c1617b1a0a8ade5",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/simpleProcessMetricHandler.ts",
      "new_id": "51548afcfafce35f40b10569030d3e7954ad37d2",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/simpleProcessMetricHandler.ts"
    },
    {
      "type": "modify",
      "old_id": "bcee1643e63e5e4b0b11df743212809497c88f29",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/simpleProcessMetricHandler_unittest.ts",
      "new_id": "1468c76536defa07ca4f11ac2696e35141956278",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/simpleProcessMetricHandler_unittest.ts"
    },
    {
      "type": "modify",
      "old_id": "1bd25193edcde7009c211bde7b21ea1f31b8bdff",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/index.ts",
      "new_id": "3f55bd157c03c367fbca2413493a853483444e4a",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.PinAndroidPerfMetrics/index.ts"
    }
  ]
}
