)]}'
{
  "commit": "a1ec46d7f7bb58eee59bdf5730ad5693186fd4cc",
  "tree": "7fac07e9cd3f7a8a8411dfcdb9a90a3a576b3963",
  "parents": [
    "c6cc07f481b2f401dbfd53f5414786dbc1215f8d"
  ],
  "author": {
    "name": "shahan",
    "email": "shahan@google.com",
    "time": "Fri Oct 23 15:58:09 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Fri Oct 23 15:59:45 2026 -0700"
  },
  "message": "Report Skycache sync upload phase timings in BuildMetrics.\n\nFrontierSerializer logs how a synchronous upload\u0027s wall time splits across\nmaterializing the node graph, computing leaf IDs and upload order, driving\nuploads, and awaiting writes. This also records those timings in a new\nBuildMetrics.RemoteAnalysisCacheStatistics.UploadPhaseTimings message, so they\nreach the Build Event Protocol and, through BuildMetrics, Blaze\u0027s logs.\n\n- FrontierSerializer builds UploadPhaseTimings once, for both the log line and\n  a new UploadPhaseTimingsEvent posted on the event bus.\n- RemoteAnalysisCachingEventListener records the event, and MetricsCollector\n  copies it into RemoteAnalysisCacheStatistics.\n- Asynchronous uploads do not report timings yet.\n\nPiperOrigin-RevId: 1005928761\nChange-Id: I58647ce3518481fc762ae8a53c21ab279b4e9c6f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f7c4f447052d8c6379cb50532ee40c3639e8278f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto",
      "new_id": "d6891279710b5c42e659b2e5461c36e2ee095d0b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto"
    },
    {
      "type": "modify",
      "old_id": "94a47db8797ce1e11e715124e71228923e72717f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/metrics/MetricsCollector.java",
      "new_id": "940d505f13616519a71e8fbfd3019a74741adf40",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/metrics/MetricsCollector.java"
    },
    {
      "type": "modify",
      "old_id": "59703f76904b1c409e413e092be7473eb84565c5",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/analysis/FrontierSerializer.java",
      "new_id": "9c523cd084f5d429ba042ec26a905a1505db309f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/analysis/FrontierSerializer.java"
    },
    {
      "type": "modify",
      "old_id": "e75aab289c485e852cddddc333d0eef6f3e2ce92",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/analysis/RemoteAnalysisCachingEventListener.java",
      "new_id": "2caae6f8635443f5f2085c1dac818eb558a231b5",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/analysis/RemoteAnalysisCachingEventListener.java"
    }
  ]
}
