)]}'
{
  "commit": "47c80454d319222832456050e2e29a4e36497854",
  "tree": "f573911671c0badcee3ad7864f3a17f0dcd7d716",
  "parents": [
    "eaad82305c8e3d7589b4f73844fbe93c80636199"
  ],
  "author": {
    "name": "Zimuzo Ezeozue",
    "email": "zezeozue@google.com",
    "time": "Tue Sep 08 11:18:11 2026 +0100"
  },
  "committer": {
    "name": "Zimuzo Ezeozue",
    "email": "zezeozue@google.com",
    "time": "Tue Sep 08 11:18:11 2026 +0100"
  },
  "message": "tp+ui: resolve process/thread names for (is_pid)/(is_tid) args\n\nArgs produced from an (is_pid)/(is_tid) proto field annotation carried a\nresolved upid/utid but were stored as a plain integer, so the UI showed a bare\nnumber with no way to see or group by the process.\n\nA upid/utid is an int with a semantic annotation, not a new primitive type. A\nnew Variadic type would touch every exhaustive Variadic::Type switch; instead a\nside table records the annotation, keeping the args schema and value_type\nuntouched and leaving room for multiple annotations per key.\n\ntrace_processor:\n  - New __intrinsic_arg_annotation(key, annotation) table (SQL view\n    arg_annotation). An annotation is a property of the key, so each\n    (key, annotation) is stored once, not per arg set. AddUpid/AddUtid store\n    Variadic::Integer and tag the arg \u0027upid\u0027/\u0027utid\u0027; the tag threads through\n    ArgsTracker / GlobalArgsTracker, which writes each distinct pair once.\n  - arg_set_to_json loads the (small) annotation table once and, next to a\n    \u003c...\u003eupid/\u003c...\u003eutid arg, emits a companion \u003c...\u003eprocess_name/\u003c...\u003ethread_name\n    resolved from the process/thread table at query time, so always the final\n    name. The details panel shows it with no UI-side work.\n\nui (datagrid): the slice-selection aggregator\u0027s args selector exposes the same\ncompanion name key and resolves it by joining arg_annotation on key.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nChange-Id: Ibd68b0625dfb88af307c52ca4a6785c99140d0a6\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9eeea750cc5bbf477dd4efda3d887fa7a1d0eff3",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/common/args_tracker.cc",
      "new_id": "8e17a1884ee5aed2e670b553cce84f4b4f8853c0",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/common/args_tracker.cc"
    },
    {
      "type": "modify",
      "old_id": "b97dc4f2641e7e62fb9784345da870f8185fe26c",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/common/args_tracker.h",
      "new_id": "57448a43858950e74b544988af403147a0d3ee80",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/common/args_tracker.h"
    },
    {
      "type": "modify",
      "old_id": "86968f9f1cd0300004d17c4d1b663be3dd22933b",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/common/global_args_tracker.h",
      "new_id": "5b5e5bc9ecade99a1f1759af8837aefec01dc387",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/common/global_args_tracker.h"
    },
    {
      "type": "modify",
      "old_id": "58a3866c0fd002ff9b8ed8b109dd518077dddc5e",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/proto/args_parser.cc",
      "new_id": "355f93c6fce928355b433a66325f15ca77d22b51",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/proto/args_parser.cc"
    },
    {
      "type": "modify",
      "old_id": "21fc526fe89715ce8e89c4975a1f04dbe0feb4c6",
      "old_mode": 33188,
      "old_path": "src/trace_processor/perfetto_sql/stdlib/prelude/after_eof/views.sql",
      "new_id": "7a61f6fcd5141ec299da238d31e8048726203157",
      "new_mode": 33188,
      "new_path": "src/trace_processor/perfetto_sql/stdlib/prelude/after_eof/views.sql"
    },
    {
      "type": "modify",
      "old_id": "6d48201ed65573adcceb272e3076a4f144ebddd8",
      "old_mode": 33188,
      "old_path": "src/trace_processor/plugins/args/args.cc",
      "new_id": "2528effe356b2ac64d39ea995e78a0b39914f618",
      "new_mode": 33188,
      "new_path": "src/trace_processor/plugins/args/args.cc"
    },
    {
      "type": "modify",
      "old_id": "d91da30535031cf24b07fa795cb27e55cb782706",
      "old_mode": 33188,
      "old_path": "src/trace_processor/plugins/args/args.h",
      "new_id": "060b44705b4937835836638593d474f1125fba2b",
      "new_mode": 33188,
      "new_path": "src/trace_processor/plugins/args/args.h"
    },
    {
      "type": "modify",
      "old_id": "85d0fd54882cf4be9372a8f48a6b85487938a248",
      "old_mode": 33188,
      "old_path": "src/trace_processor/plugins/storage_tables/storage_tables.cc",
      "new_id": "c03d62b7906baaad9cbe8dfbe64ad6ea1ec7e2ef",
      "new_mode": 33188,
      "new_path": "src/trace_processor/plugins/storage_tables/storage_tables.cc"
    },
    {
      "type": "modify",
      "old_id": "dc6495451866733a2295d677f53bdf6ede70a49f",
      "old_mode": 33188,
      "old_path": "src/trace_processor/storage/trace_storage.h",
      "new_id": "9adc489f53ea7865655ebeee5b41898b3c7520bf",
      "new_mode": 33188,
      "new_path": "src/trace_processor/storage/trace_storage.h"
    },
    {
      "type": "modify",
      "old_id": "d3b510df187b4cd9dbed21724be4a5e886ae4315",
      "old_mode": 33188,
      "old_path": "src/trace_processor/tables/metadata_tables.py",
      "new_id": "bf7cbbfd4bb948d21e0283a99e36bcddedd5d2c0",
      "new_mode": 33188,
      "new_path": "src/trace_processor/tables/metadata_tables.py"
    },
    {
      "type": "modify",
      "old_id": "4159399967a8c86143fbbe7391e610523406f809",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/dev.perfetto.TraceProcessorTrack/thread_slice_aggregator.ts",
      "new_id": "bf35488cf0f4dde4c14f539871315b475aedd059",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/dev.perfetto.TraceProcessorTrack/thread_slice_aggregator.ts"
    }
  ]
}
