)]}'
{
  "commit": "91fbbd192ca9539221d3dc096f00ce77836a5d3d",
  "tree": "801ad543cc2608eb5804c3d3d0fd547246d08d83",
  "parents": [
    "a52562b2be7ea728a176ae94d8a18d9ae0a4423a"
  ],
  "author": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Wed Aug 12 23:05:59 2026 +0700"
  },
  "committer": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Thu Aug 13 11:45:36 2026 +0700"
  },
  "message": "usbd: clear endpoint busy/claimed when a completion event is dropped\n\nAn XFER_COMPLETE dropped by a full event queue leaves its endpoint\u0027s\nBUSY|CLAIMED state set forever - the consumer that normally clears it\nnever sees the event, so usbd_edpt_claim()/usbd_edpt_xfer() fail from\nthen on and the class never re-arms the endpoint. Clear both flags when\nthe enqueue fails: the completion is lost either way, but the endpoint\nstays usable.\n\nUnit test: arm a bulk endpoint, drop its completion against a full\nqueue, verify the endpoint can be claimed and re-armed.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "79802e70f01669a379bda159c6552e1d2ac50eb9",
      "old_mode": 33188,
      "old_path": "src/device/usbd.c",
      "new_id": "f5c3046d609a5f6e21e38a915060864313700d81",
      "new_mode": 33188,
      "new_path": "src/device/usbd.c"
    },
    {
      "type": "modify",
      "old_id": "935a20221379c40fe2fd4d0860a68226bc88c108",
      "old_mode": 33188,
      "old_path": "test/unit-test/test/device/usbd/test_usbd.c",
      "new_id": "8490973266dbf8a44d8017116a76fed1126da79b",
      "new_mode": 33188,
      "new_path": "test/unit-test/test/device/usbd/test_usbd.c"
    }
  ]
}
