)]}'
{
  "commit": "e68ab1146aa11182e85c7542bc427150ab54a16b",
  "tree": "2b6ff0b772a863c4b7e6bbd8e9f27e2003242173",
  "parents": [
    "be7ea24e6fff35274c6550423e1edf03f6ba72b9"
  ],
  "author": {
    "name": "Hao Jiang",
    "email": "jianghao@google.com",
    "time": "Wed Apr 22 21:51:52 2026 +0000"
  },
  "committer": {
    "name": "Muhammad Usama Chaudhry",
    "email": "muhammadusama@google.com",
    "time": "Wed Jul 29 10:15:39 2026 -0700"
  },
  "message": "mctp: break circle dependencies in production code\n\nBreak circle dependencies in production code to resolve memory leaks:\n- Change device to weak_ptr in MctpdEndpoint.\n- Actively transfer ownership of callback std::function rvalue\n  references via local capture move in lambdas.\n- Invoke endpointRemoved() in ~MctpdDevice() for safe destruction.\n\nMajor test improvement:\n- Add Test 15 to verify destruction notification.\n\nMisc test fixes:\n- Add two-stage ASIO event queue draining in test TearDown().\n- Reorder stack variables to prevent stack use-after-free.\n- Add bounds to loops and use prctl for mock server cleanup.\n\nTested: All 15 tests passed in Docker (Task id: task-7293).\n\nGoogle-Bug-Id: 505231613\nChange-Id: I318a5654cbd0d3dbffa9edb416fd508343dc3354\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7ffcc27a92d3a6d262547a4954ef75b86492a74d",
      "old_mode": 33188,
      "old_path": "src/MctpEndpoint.cpp",
      "new_id": "205ba9f4f616ef8102ac4ce82f8f0e7a94f4ba25",
      "new_mode": 33188,
      "new_path": "src/MctpEndpoint.cpp"
    },
    {
      "type": "modify",
      "old_id": "711d5e9b6655ef8b0d333a4fdde1f2d2c9bae8a6",
      "old_mode": 33188,
      "old_path": "src/MctpEndpoint.hpp",
      "new_id": "33d81143b4aaf1ed9e0d8ff1d7847209be97b0c3",
      "new_mode": 33188,
      "new_path": "src/MctpEndpoint.hpp"
    },
    {
      "type": "modify",
      "old_id": "123ca4ab64a3cd5232cb954572bb8363238f42ea",
      "old_mode": 33188,
      "old_path": "src/MctpReactorDevice.cpp",
      "new_id": "6ed3d880e821dd03a6210d5f0651dc788f6e023d",
      "new_mode": 33188,
      "new_path": "src/MctpReactorDevice.cpp"
    },
    {
      "type": "modify",
      "old_id": "b28c39b8a1be2864308845061d4bb72d209007ab",
      "old_mode": 33188,
      "old_path": "src/MctpUtil.cpp",
      "new_id": "854658453e0338ce042411c48196ee79599e2b62",
      "new_mode": 33188,
      "new_path": "src/MctpUtil.cpp"
    },
    {
      "type": "modify",
      "old_id": "3cbc58fbc7f731f5176e1e674eabef9c06bc5db7",
      "old_mode": 33188,
      "old_path": "tests/test_MctpUtil.cpp",
      "new_id": "05a4a502e89921d40c4abe0b87941d01d813c61c",
      "new_mode": 33188,
      "new_path": "tests/test_MctpUtil.cpp"
    }
  ]
}
