)]}'
{
  "commit": "3d260ff8ec63eb86ecc08140b3afe0f82e9bf645",
  "tree": "390487cd9c0421f35e82b76bb0c3759f28e6bf3a",
  "parents": [
    "a13220a127dc446d194fb9d6375fdaf2b404da4e"
  ],
  "author": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Mon Sep 21 12:00:51 2026 +0700"
  },
  "committer": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Mon Sep 21 13:21:11 2026 +0700"
  },
  "message": "usbd: keep RX_PENDING until the class consumes, not just through xfer_cb\n\nThe whole point of the bit is that claim() fails until the buffer is consumed.\nReleasing it after xfer_cb returns reopened the #1292 window for a class that\nhands the buffer to the application and re-arms from another task later. Every\nin-tree OUT path consumes or re-arms via usbd_edpt_xfer, which clears the bit.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "68782083173ca2266abb7433b71bc1b09ea270ca",
      "old_mode": 33188,
      "old_path": "src/device/usbd.c",
      "new_id": "f702bce1f06f3e6d0b169cb9a062468e94fe995e",
      "new_mode": 33188,
      "new_path": "src/device/usbd.c"
    },
    {
      "type": "modify",
      "old_id": "56b01ca417af48c702de95da0ab58d6ef50e2196",
      "old_mode": 33188,
      "old_path": "test/unit-test/test/device/usbd/test_usbd.c",
      "new_id": "a221f866a86f04d921c6e52a3e173cf3f881dbe8",
      "new_mode": 33188,
      "new_path": "test/unit-test/test/device/usbd/test_usbd.c"
    }
  ]
}
