)]}'
{
  "commit": "514263faab7d6d12533981eea12fc278b110fdf6",
  "tree": "92ed2c304aa6cc79a2ae6dae98c9dd65569d370b",
  "parents": [
    "264599eaa3f88c4e1e683bf29bb0a22213bcd32e"
  ],
  "author": {
    "name": "fiveapplesonthetable",
    "email": "fiveapplesonthetable@gmail.com",
    "time": "Thu Jun 25 16:26:59 2026 +0000"
  },
  "committer": {
    "name": "Zimuzo Ezeozue",
    "email": "zezeozue@google.com",
    "time": "Thu Jun 25 20:07:53 2026 +0100"
  },
  "message": "ui+tp: ProcessState explorer (dumpsys activity process/service/provider graph)\n\nThe data behind `dumpsys activity`, end to end:\n- protos: ProcessStateSnapshot (TracePacket 1002).\n- trace_processor: process_state_importer plugin -\u003e intrinsic tables, resolving\n  enum values to names so the UI keeps no enum maps.\n- UI (com.android.ProcessState): a snapshot-timeline explorer — the importance\n  graph (processes in oom-adj tier columns, service/provider binding edges),\n  per-snapshot diffing, and a responsive split-panel details view. The snapshot\n  track is a summary group with six nested per-importance-tier process-count\n  counters.\n\nPerf: only _ps_snapshot is materialized (its gap-free slice dur is a LEAD()\nwindow that would otherwise recompute per fetch); the tier counts are\naggregated group-first (aggregate the process table by snapshot_id, then join\nthe small result) rather than joining the two big intrinsics and grouping\nafter. Empty cells render as SQL NULL. Also drops the per-slice\nextract_arg(\u0027correlation_id\u0027) from the default track-event slice dataset.\n\nThe proc_state interval breakdown tracks live in a separate plugin.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1175c3c4bca241c8db8b7517889159b35e0152b1",
      "old_mode": 33188,
      "old_path": "Android.bp",
      "new_id": "17f8afead8430d245ca01920be419c3ad04dd0ca",
      "new_mode": 33188,
      "new_path": "Android.bp"
    },
    {
      "type": "modify",
      "old_id": "983179f67d4cf34d0207440c826eff42faad8d43",
      "old_mode": 33188,
      "old_path": "BUILD",
      "new_id": "0b1e86f6104266a9a6cd68c4793ac7ed3652d40d",
      "new_mode": 33188,
      "new_path": "BUILD"
    },
    {
      "type": "modify",
      "old_id": "9104e6e788406ff59a273f0ee3862ee178964963",
      "old_mode": 33188,
      "old_path": "protos/third_party/android/frameworks/base/proto/tracing/frameworks_base_trace_packet.proto",
      "new_id": "6a7544fb26ae4a682fc8827aed3a2807c127d8e8",
      "new_mode": 33188,
      "new_path": "protos/third_party/android/frameworks/base/proto/tracing/frameworks_base_trace_packet.proto"
    },
    {
      "type": "modify",
      "old_id": "8c3d066639af01a16cab76daf6f26c1139442916",
      "old_mode": 33188,
      "old_path": "protos/third_party/android/frameworks/base/proto/tracing/frameworks_base_track_event.proto",
      "new_id": "b0e4bbe249aacc2d91a812ca748f435a22d2dd29",
      "new_mode": 33188,
      "new_path": "protos/third_party/android/frameworks/base/proto/tracing/frameworks_base_track_event.proto"
    },
    {
      "type": "modify",
      "old_id": "9ac91de6a347a0fc80b9a40c84f36c7d1622a820",
      "old_mode": 33188,
      "old_path": "src/trace_processor/BUILD.gn",
      "new_id": "01807bcd969eea56f01ad05b0436ee660e8e6b12",
      "new_mode": 33188,
      "new_path": "src/trace_processor/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "be32d28b595c2a92eb50eaa93a1ac18fce23ddab",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/proto/proto_trace_parser_impl.cc",
      "new_id": "d2f7324d462f63f5469f9fbd37cd39bff4ec02a2",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/proto/proto_trace_parser_impl.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "be2e2bd6a70eab333fbb69c7022e14985e2816a6",
      "new_mode": 33188,
      "new_path": "src/trace_processor/plugins/process_state_importer/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "02d572a617420e4077f6aa06d78ff5bfdccd047c",
      "new_mode": 33188,
      "new_path": "src/trace_processor/plugins/process_state_importer/process_state_importer.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "55c85480eb94c5ff10ecbe84986084473f51cd49",
      "new_mode": 33188,
      "new_path": "src/trace_processor/plugins/process_state_importer/process_state_importer.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4eb0a494558c379525bff2a77cd28f164f5921ca",
      "new_mode": 33188,
      "new_path": "src/trace_processor/plugins/process_state_importer/process_state_module.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "14b0ebaa0ea6d0e97a7faceec1efeaf9d920586b",
      "new_mode": 33188,
      "new_path": "src/trace_processor/plugins/process_state_importer/process_state_module.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f6a14c3404a993faca8809ced40fa18a9ce2374d",
      "new_mode": 33188,
      "new_path": "src/trace_processor/plugins/process_state_importer/tables.py"
    },
    {
      "type": "modify",
      "old_id": "1c7778d8b833173cc6fc26bdd39e277d70edb7c0",
      "old_mode": 33188,
      "old_path": "src/trace_processor/trace_processor_impl.cc",
      "new_id": "3e017430d9ae39fe248b03c8a3c328b208ab2048",
      "new_mode": 33188,
      "new_path": "src/trace_processor/trace_processor_impl.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5c2c64a569e0514f2839347ea6d2487d951f6300",
      "new_mode": 33188,
      "new_path": "ui/src/components/widgets/charts_svg/layered_graph.scss"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9e8c8178dc98a589bb230b39a6d0814e525d295b",
      "new_mode": 33188,
      "new_path": "ui/src/components/widgets/charts_svg/layered_graph.ts"
    },
    {
      "type": "modify",
      "old_id": "46bb22ec0ded097b34c90b845cb57c4188170d52",
      "old_mode": 33188,
      "old_path": "ui/src/core/embedder/default_plugins.ts",
      "new_id": "2e3a4a3cc6806a49f3bacf65f67a3d457090f745",
      "new_mode": 33188,
      "new_path": "ui/src/core/embedder/default_plugins.ts"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6d3a7146ff888bce336f5f3f03e1243b901991b7",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.ProcessState/grid_helpers.ts"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a5ad5716e7a6f1620ff7b4f6817f0b08a6858273",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.ProcessState/index.ts"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1474afe360e1473a90de402e8c3f47b990dd54ac",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.ProcessState/process_graph.ts"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "73593d6343c88e59d07bb8fa5936d84f6acc1b86",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.ProcessState/process_state.scss"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0135ad24dcf2302bc74c66f5e0c93e8a61c613be",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.ProcessState/process_state_controller.ts"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fd918d5fafc24e4894de32a8e911eb096a536010",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.ProcessState/process_state_details_panel.ts"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "80d182843a883125580b2f369efbb3cdccb80abb",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.ProcessState/process_state_track.ts"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d5e66e273dab8859c82bfa34d020bdde6e4b665d",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.ProcessState/relations.ts"
    },
    {
      "type": "modify",
      "old_id": "64971074692e641be89b7e0aeec29616e4be9e4f",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/dev.perfetto.TraceProcessorTrack/trace_processor_slice_track.ts",
      "new_id": "d53e368347bbdc626fb3b90c26ea41a73a3531ff",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/dev.perfetto.TraceProcessorTrack/trace_processor_slice_track.ts"
    }
  ]
}
