)]}'
{
  "commit": "7c438d7972fb11bb7a3f2124c2c7cd49c4df30e1",
  "tree": "a94078912e99f33c55b1eb45c94d4a155f036f21",
  "parents": [
    "116506db544d2263c7194f5f7433fe1d333a5b7b"
  ],
  "author": {
    "name": "Carlos Chinchilla",
    "email": "cachinchilla@google.com",
    "time": "Mon Jul 20 10:26:32 2026 -0700"
  },
  "committer": {
    "name": "CQ Bot Account",
    "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jul 20 10:26:32 2026 -0700"
  },
  "message": "pw_metric: Refactor Metric for 64-bit support\n\nRefactor the core Metric class into a type-discriminated hierarchy:\n- UntypedMetric: Common base class stored in intrusive lists. Holds the\n  token and type.\n- TypedMetric\u003cT\u003e: Templates specializing for float and uint32_t, inheriting\n  directly from UntypedMetric and holding their own atomic values.\n\nMinor fixes:\n- Save metric value to be used for size calculations and encoding it.\n- Move atomic write limits checks inside loop to avoid redundant writes\n  to max value.\n\nAll services and tests are updated to use the new type-discriminated\nUntypedMetric / TypedMetric\u003cT\u003e classes.\n\nBug: 527616876\nTAG\u003dagy\nCONV\u003d00d042e4-0d7a-44c6-88b5-7813e806a32e\n\nChange-Id: I9008552049541eb77c1b4ed0850a487deebd2914\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/424534\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3f75b30cc2796b50e78b58c1d6c1841dbd2801c0",
      "old_mode": 33188,
      "old_path": "pw_metric/global_test.cc",
      "new_id": "fefcaa007d8d3895d7a3724ddb99017ab6a3101f",
      "new_mode": 33188,
      "new_path": "pw_metric/global_test.cc"
    },
    {
      "type": "modify",
      "old_id": "062e8c0348c17a1f1cd448cfb6a72dad6461ea08",
      "old_mode": 33188,
      "old_path": "pw_metric/metric.cc",
      "new_id": "990677ce8fe793c657e41b96edb6b4d0d7f983c0",
      "new_mode": 33188,
      "new_path": "pw_metric/metric.cc"
    },
    {
      "type": "modify",
      "old_id": "7651c3aa4c2a8bf38942524bd6a336ea35cf78b7",
      "old_mode": 33188,
      "old_path": "pw_metric/metric_service_nanopb.cc",
      "new_id": "936c30dfdc227f161eb764a5a2877349a321ee0c",
      "new_mode": 33188,
      "new_path": "pw_metric/metric_service_nanopb.cc"
    },
    {
      "type": "modify",
      "old_id": "11b0f5909edf9440b777f59b06bb2938c3606579",
      "old_mode": 33188,
      "old_path": "pw_metric/metric_service_nanopb_test.cc",
      "new_id": "84123027f749fed7b5051537da0574953093e300",
      "new_mode": 33188,
      "new_path": "pw_metric/metric_service_nanopb_test.cc"
    },
    {
      "type": "modify",
      "old_id": "1afbf18b7acf41dda979ce5912fa9d89d42dedcc",
      "old_mode": 33188,
      "old_path": "pw_metric/metric_service_pwpb.cc",
      "new_id": "f4363a0aef22002332a6b6c5abb2158314157700",
      "new_mode": 33188,
      "new_path": "pw_metric/metric_service_pwpb.cc"
    },
    {
      "type": "modify",
      "old_id": "c04de8c32eea94d52e2ea9c03ed00ace72c2c46e",
      "old_mode": 33188,
      "old_path": "pw_metric/metric_service_pwpb_test.cc",
      "new_id": "2966f89ea984bfeb34187b390749bf3b13c50291",
      "new_mode": 33188,
      "new_path": "pw_metric/metric_service_pwpb_test.cc"
    },
    {
      "type": "modify",
      "old_id": "e6b68a0be92ac256d430cdcea5eecf729216e3a8",
      "old_mode": 33188,
      "old_path": "pw_metric/metric_test.cc",
      "new_id": "834db526b1495262891b64dfe867ae56b42d9205",
      "new_mode": 33188,
      "new_path": "pw_metric/metric_test.cc"
    },
    {
      "type": "modify",
      "old_id": "a150f6c030a3d23a4b9f3336d388a8906fd1694a",
      "old_mode": 33188,
      "old_path": "pw_metric/public/pw_metric/global.h",
      "new_id": "fcc4e8b1757586032cf82ba7a38ada920547d398",
      "new_mode": 33188,
      "new_path": "pw_metric/public/pw_metric/global.h"
    },
    {
      "type": "modify",
      "old_id": "bec0116ae200c6498d1983894251079903f47c2b",
      "old_mode": 33188,
      "old_path": "pw_metric/public/pw_metric/list.h",
      "new_id": "428fbd6bd79887c6e381907a8d89753928363115",
      "new_mode": 33188,
      "new_path": "pw_metric/public/pw_metric/list.h"
    },
    {
      "type": "modify",
      "old_id": "a4354eaf10f318d98f5a58834bcfb58f65ad94ec",
      "old_mode": 33188,
      "old_path": "pw_metric/public/pw_metric/metric.h",
      "new_id": "11b765f9af12226227e8ff6d2bf6310b87cfbdb3",
      "new_mode": 33188,
      "new_path": "pw_metric/public/pw_metric/metric.h"
    },
    {
      "type": "modify",
      "old_id": "f5364f6281dcc25ba36b19f968c181db5da21e45",
      "old_mode": 33188,
      "old_path": "pw_metric/public/pw_metric/nanopb_metric_writer.h",
      "new_id": "efbcee3ce7236b7a843775b00a55c61c396dbbea",
      "new_mode": 33188,
      "new_path": "pw_metric/public/pw_metric/nanopb_metric_writer.h"
    },
    {
      "type": "modify",
      "old_id": "7f34a9656c6aa6f5b798ea8fc1560e039033bc8c",
      "old_mode": 33188,
      "old_path": "pw_metric/public/pw_metric/pwpb_metric_writer.h",
      "new_id": "c3a7b43fe4f2aebaca308865225e14dfe0db1caf",
      "new_mode": 33188,
      "new_path": "pw_metric/public/pw_metric/pwpb_metric_writer.h"
    },
    {
      "type": "modify",
      "old_id": "aa1e3e2952cd191e64aa0c4b6cdf1d469f4ba17a",
      "old_mode": 33188,
      "old_path": "pw_metric/pw_metric_proto/metric_service.proto",
      "new_id": "ea74d17ff1c127f91402271da5ea2df8ca9a0b05",
      "new_mode": 33188,
      "new_path": "pw_metric/pw_metric_proto/metric_service.proto"
    }
  ]
}
