)]}'
{
  "commit": "24607fdac4a1adddf3faedbb8d60007f1ced32b3",
  "tree": "dcb984da1653455103572dcf701b0c93867aa51f",
  "parents": [
    "9de4d59cb7e67c255aae60f4682846b0f87616b1"
  ],
  "author": {
    "name": "Anthony Rocha",
    "email": "anthony.rocha@amd.com",
    "time": "Tue Sep 22 13:05:50 2026 -0700"
  },
  "committer": {
    "name": "Anthony Rocha",
    "email": "116300062+rusty1968@users.noreply.github.com",
    "time": "Wed Sep 23 13:28:21 2026 -0700"
  },
  "message": "util/ipc: address review feedback, split roles, add AsyncTransaction\n\nSplits IpcChannel into IpcInitiator/IpcHandler so a type only implements\nthe operations its channel role can serve. Drops the host.rs stub (crate\nis now target-only, matching services/i2c/client-ipc and\nservices/mctp/client-ipc) instead of shipping dead panic methods and a\ndrifting copy of buffer.rs. Adds AsyncTransaction\u003cH: IpcInitiator\u003e, a\nsafe layer over the unsafe async trio that tracks the\none-transaction-per-channel invariant locally and cancels on Drop,\nconverging with the design in #482 instead of shipping both.\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c748e9212d0ec8769189ac944b32bab03534c5c2",
      "old_mode": 33188,
      "old_path": "util/ipc/BUILD.bazel",
      "new_id": "0c1536e91caf4bb0ee06a08ac79b180ba3ac8e55",
      "new_mode": 33188,
      "new_path": "util/ipc/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f9202054fa03a8045450e118d6c30ad0b9c24ae7",
      "new_mode": 33188,
      "new_path": "util/ipc/async_transaction.rs"
    },
    {
      "type": "delete",
      "old_id": "71c0fee695c7be0d02e6d1b90a249718e728b5b2",
      "old_mode": 33188,
      "old_path": "util/ipc/host.rs",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "5d555f40a570be4721bdd3db6396391e3f873947",
      "old_mode": 33188,
      "old_path": "util/ipc/lib.rs",
      "new_id": "762b8d9d91a23f410c151ecd14501502e3b6a243",
      "new_mode": 33188,
      "new_path": "util/ipc/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "f4871424439c9dd26d6e33d7b5098f276b2aa17b",
      "old_mode": 33188,
      "old_path": "util/ipc/target.rs",
      "new_id": "d6ad34a7401766ce4addc248edae9c20218adee3",
      "new_mode": 33188,
      "new_path": "util/ipc/target.rs"
    }
  ]
}
