)]}'
{
  "commit": "a68b8030a918042ea22c1915b12acbcdd96c5231",
  "tree": "4187dad0b0d765f04784ed40b73583dedff3d1ba",
  "parents": [
    "a8194d59e0766406c7e233bb84c2c1c87f8dfdd1"
  ],
  "author": {
    "name": "Zimuzo Ezeozue",
    "email": "zezeozue@google.com",
    "time": "Fri Jan 02 20:17:50 2026 +0000"
  },
  "committer": {
    "name": "Zimuzo Ezeozue",
    "email": "zezeozue@google.com",
    "time": "Fri Jan 02 20:43:16 2026 +0000"
  },
  "message": "Add thread state support to Chrome JSON trace format\n\nThis change enables third-party tools to emit thread scheduling state\ninformation in Chrome JSON format that Perfetto can parse and visualize.\n\nChanges:\n- json_trace_parser: Add phase \u0027T\u0027 handler for thread state events\n  Parses thread state data (Running, Sleeping, Runnable, etc.) and\n  inserts into thread_state table. Supports optional fields: cpu,\n  io_wait, blocked_function, waker_tid, irq_context.\n\n- Sched plugin: Fix thread state track creation for JSON traces\n  Modified hasSched() to check thread_state table in addition to sched.\n  Updated addThreadStateTracks() query to include threads with only\n  thread_state data (no sched_slice data), enabling visualization of\n  thread states from Chrome JSON traces.\n\n- Add test coverage for JSON thread state parsing\n- Add sample trace demonstrating thread state events\n\nThis allows instrumentation libraries in various languages to emit\nthread scheduling information using the established Chrome JSON format,\nwhich can then be analyzed in Perfetto UI alongside other trace data.\n\nTest: test_json_thread_state\nChange-Id: Id262ef670357f8f5f8a1b86502642487a3065641\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a537427c79397cc4e57c3b397f3fb28b4ff5f5a0",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/json/json_trace_parser.cc",
      "new_id": "9d675e9593191bbf386ca748d41f2b6308a788da",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/json/json_trace_parser.cc"
    },
    {
      "type": "modify",
      "old_id": "83fcdac27c6f8ff22c7a0d0259e02332572269ea",
      "old_mode": 33188,
      "old_path": "test/trace_processor/diff_tests/parser/json/tests.py",
      "new_id": "7b62692f25c50dcc2d258de62ff90c68aa4a9bbf",
      "new_mode": 33188,
      "new_path": "test/trace_processor/diff_tests/parser/json/tests.py"
    },
    {
      "type": "modify",
      "old_id": "19ab90e6dfce23cf9a47983daa2395f7c60575a8",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/dev.perfetto.Sched/index.ts",
      "new_id": "1c067fe7cff6b936ba214ef199e755f855a2684e",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/dev.perfetto.Sched/index.ts"
    }
  ]
}
