)]}'
{
  "commit": "aa0d3930f356b636383272c0cff812dcab92cfba",
  "tree": "c9830be92fde6a648fe956768979b62aa96f1485",
  "parents": [
    "d4772f58d50b301ede9aab5bbc6d43a5e421c7a2"
  ],
  "author": {
    "name": "Anthony Rocha",
    "email": "anthony.rocha@amd.com",
    "time": "Wed Apr 08 16:32:03 2026 -0700"
  },
  "committer": {
    "name": "Anthony Rocha",
    "email": "anthony.rocha@amd.com",
    "time": "Sun Apr 12 03:28:39 2026 -0700"
  },
  "message": "mctp-api: add Stack facade and update mctp_echo to use high-level traits\n\n- Add services/mctp/api/src/stack.rs: Stack\u003cC: MctpClient\u003e facade that\n  wraps any MctpClient and returns StackListener, StackReqChannel and\n  StackRespChannel implementing the MctpListener / MctpReqChannel /\n  MctpRespChannel traits. All channel types release server handles on Drop.\n\n- Update services/mctp/api/src/lib.rs: expose stack module and re-export\n  Stack, StackListener, StackReqChannel, StackRespChannel.\n\n- Update target/ast1060-evb/mctp/mctp_echo.rs: replace direct MctpClient\n  calls with Stack::new(IpcMctpClient) + MctpListener / MctpRespChannel\n  traits, matching the Hubris mctp-echo task structure.\n\n- Update services/mctp/server/tests/integration.rs: add Stack facade tests\n  exercising echo-via-Stack and req/resp roundtrip using DirectClient as\n  the MctpClient strategy.\n\n- Update services/mctp/api/README.md: document the two-layer abstraction,\n  Stack API, Strategy pattern, and wire protocol.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b034290e06813c9de9110d278c5c91d39aad96e1",
      "old_mode": 33188,
      "old_path": "services/mctp/api/README.md",
      "new_id": "de26023d3d7274c7617c37a4a090650cb5f812a4",
      "new_mode": 33188,
      "new_path": "services/mctp/api/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2200e2cc3bb6216dc2f7cc505e238276ad220e07",
      "new_mode": 33188,
      "new_path": "services/mctp/api/STACK-DESIGN.md"
    },
    {
      "type": "modify",
      "old_id": "ffe5b7cc64d5c361c40eaa42a0b202e17e6f1f31",
      "old_mode": 33188,
      "old_path": "services/mctp/api/src/lib.rs",
      "new_id": "9b1178cf1b2de6881269e270c52509f0e0677d3d",
      "new_mode": 33188,
      "new_path": "services/mctp/api/src/lib.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "58ff4182e956d25239e5495d3e87d9daa617ad7a",
      "new_mode": 33188,
      "new_path": "services/mctp/api/src/stack.rs"
    },
    {
      "type": "modify",
      "old_id": "3f1b006d0d432405ae181542b87934f5241210a6",
      "old_mode": 33188,
      "old_path": "services/mctp/server/tests/integration.rs",
      "new_id": "7c35e7a645bfc8e422919a7cb56cb513a57c5fde",
      "new_mode": 33188,
      "new_path": "services/mctp/server/tests/integration.rs"
    },
    {
      "type": "modify",
      "old_id": "ff08843428079955e9b8fb55d79405eecb9bd238",
      "old_mode": 33188,
      "old_path": "target/ast1060-evb/mctp/mctp_echo.rs",
      "new_id": "4ca26be40d18134d1d5a906daed310feb4160df3",
      "new_mode": 33188,
      "new_path": "target/ast1060-evb/mctp/mctp_echo.rs"
    }
  ]
}
