)]}'
{
  "log": [
    {
      "commit": "9b1b781c3efb778d7e631d41e44d36c8ee435906",
      "tree": "b1dda2c88b03c5f5d9bfb1f0db82793dbf9b64ce",
      "parents": [
        "3170fa0bf2667c4cc8e5a22944c15686c681654e",
        "076fd79b4c16b7435060585c0337bc69133e073f"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Tue May 05 15:08:41 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 15:08:41 2026 +0700"
      },
      "message": "Merge pull request #3627 from hathach/merge-usbd-control\n\nRefactor USB control transfer handling into `usbd.c`"
    },
    {
      "commit": "076fd79b4c16b7435060585c0337bc69133e073f",
      "tree": "c8ae44aafd34a63eed8512c22c626e10e49bc476",
      "parents": [
        "77258a35ef2dcddef4f62bc51d31b9beef3b46d2"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 22:13:14 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 22:13:14 2026 +0700"
      },
      "message": "Adjust RAM configuration for nrf54h20 to optimize memory usage in video examples\n"
    },
    {
      "commit": "77258a35ef2dcddef4f62bc51d31b9beef3b46d2",
      "tree": "c71170f556f30cd5731159e354e0f4a675d9e9f8",
      "parents": [
        "fc0747c2a7c04b25b640bfb5acce711fa39f8443"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 19:42:28 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 19:42:28 2026 +0700"
      },
      "message": "add default implementation for tuh_hid_report_received_cb()\n"
    },
    {
      "commit": "fc0747c2a7c04b25b640bfb5acce711fa39f8443",
      "tree": "ceb3c925dce69f5ca34fec4b57b6fbeb4795b059",
      "parents": [
        "f6a263e5233362c1eed3a0e4a3155410d06db384"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 19:39:46 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 19:39:46 2026 +0700"
      },
      "message": "hil remove hub from pico native host test for now\n"
    },
    {
      "commit": "3170fa0bf2667c4cc8e5a22944c15686c681654e",
      "tree": "e3800f4a7bcdcd6536b52d3ab5dbec6a35feecf2",
      "parents": [
        "84e2e6d1186b3dd1d5f88154adce4f5ecb8b403d",
        "25ddb7ff0cfd361b733dadd3bb5307fdb94b6dc1"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 14:16:15 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 14:16:15 2026 +0700"
      },
      "message": "Merge pull request #3568 from hathach/copilot/upgrade-net-lwip-webserver-descriptors\n\nnet: replace CFG_TUD_NET_ENDPOINT_SIZE with actual descriptor-based ep size"
    },
    {
      "commit": "f6a263e5233362c1eed3a0e4a3155410d06db384",
      "tree": "a10b8b05ba8e6074ae6692b44bfd199a01b3d3e5",
      "parents": [
        "e954302c103b4fc6870c6914945e6da1f62f6423",
        "84e2e6d1186b3dd1d5f88154adce4f5ecb8b403d"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 14:15:14 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 14:15:14 2026 +0700"
      },
      "message": "Merge branch \u0027master\u0027 into merge-usbd-control\n"
    },
    {
      "commit": "e954302c103b4fc6870c6914945e6da1f62f6423",
      "tree": "dfff4e77a5a122d40f48397273d672b5040646e7",
      "parents": [
        "2a8e659bb9422655236accd84e4d1c5e39383adc"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 13:39:39 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 13:39:39 2026 +0700"
      },
      "message": "fix usbd control to support wLength hack\n"
    },
    {
      "commit": "2a8e659bb9422655236accd84e4d1c5e39383adc",
      "tree": "75595f4a3515f4a332353d86d62ef60a29570f83",
      "parents": [
        "9d68ed65f7200f155f01416b332c5e9f2340a8b2"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 12:12:45 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 12:12:45 2026 +0700"
      },
      "message": "hil_test: use non-blocking writes with timeout for printer tests\n"
    },
    {
      "commit": "9d68ed65f7200f155f01416b332c5e9f2340a8b2",
      "tree": "7b44e1b20af35b17eccbaec4b9b24d7c7b7f161d",
      "parents": [
        "a5e9ce5fbb300702d04c47c7c06436396912d3d6"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 11:19:26 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 12:11:03 2026 +0700"
      },
      "message": "refactor: replace `tu_edpt_state_t` struct with `uint8_t` and update all endpoint state handling methods and accesses\n"
    },
    {
      "commit": "a5e9ce5fbb300702d04c47c7c06436396912d3d6",
      "tree": "5332ae253c39f14a50e9291aba4884b0c23c794d",
      "parents": [
        "eb66712196b54ff5dcf39df020fb0cad72e853d0"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 10:29:29 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 10:29:29 2026 +0700"
      },
      "message": "refactor `usbd.c`: extract `process_std_device_request` for clarity\n"
    },
    {
      "commit": "25ddb7ff0cfd361b733dadd3bb5307fdb94b6dc1",
      "tree": "bae063011aba6e960c99e77b79f967d8b6155e16",
      "parents": [
        "ea2de8be7e939fdffd73efd75cc2e2051ca495a9"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 09:22:11 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 09:22:11 2026 +0700"
      },
      "message": "minor clean up\n"
    },
    {
      "commit": "84e2e6d1186b3dd1d5f88154adce4f5ecb8b403d",
      "tree": "a398be8b016d6e6fdbcdb8ef0fa5faa6796745aa",
      "parents": [
        "939c2f91c200db2bf9874c2e6c50b3530f8a6725",
        "4e7db9c60d9ff77b3e0de14ecdfeb372813c46b7"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 08:57:27 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 08:57:27 2026 +0700"
      },
      "message": "Merge pull request #3628 from hathach/fix_uart_write\n\nensure board_uart_write return -1 on default"
    },
    {
      "commit": "eb66712196b54ff5dcf39df020fb0cad72e853d0",
      "tree": "348200793fcd7e5be5ac019be19279f50617ca27",
      "parents": [
        "9d3ad336bfad062fa1e6f6d63feb97a9851cc9e1"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 22:23:32 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon May 04 08:55:08 2026 +0700"
      },
      "message": "refactor `usbd.c`: centralize control transfer state management into `_usbd_dev` structure and remove `usbd_control_reset`\n"
    },
    {
      "commit": "ea2de8be7e939fdffd73efd75cc2e2051ca495a9",
      "tree": "f2801e76d9643eb277ba49498f0fedeee9aa2e6b",
      "parents": [
        "5c0c1662464e48681533e8ecc1217613fb6e3820",
        "939c2f91c200db2bf9874c2e6c50b3530f8a6725"
      ],
      "author": {
        "name": "Zixun LI",
        "email": "admin@hifiphile.com",
        "time": "Sun May 03 14:36:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 03 14:36:25 2026 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into copilot/upgrade-net-lwip-webserver-descriptors"
    },
    {
      "commit": "4e7db9c60d9ff77b3e0de14ecdfeb372813c46b7",
      "tree": "a398be8b016d6e6fdbcdb8ef0fa5faa6796745aa",
      "parents": [
        "4722252558d4b2a5d77fff7a59ab9c9e51befe47"
      ],
      "author": {
        "name": "HiFiPhile",
        "email": "admin@hifiphile.com",
        "time": "Wed Apr 29 22:11:36 2026 +0200"
      },
      "committer": {
        "name": "HiFiPhile",
        "email": "admin@hifiphile.com",
        "time": "Wed Apr 29 22:11:36 2026 +0200"
      },
      "message": "fixup\n\nSigned-off-by: HiFiPhile \u003cadmin@hifiphile.com\u003e\n"
    },
    {
      "commit": "4722252558d4b2a5d77fff7a59ab9c9e51befe47",
      "tree": "bbc24fea07a9b3aa3b83f48fdd125334a3a39e51",
      "parents": [
        "939c2f91c200db2bf9874c2e6c50b3530f8a6725"
      ],
      "author": {
        "name": "HiFiPhile",
        "email": "admin@hifiphile.com",
        "time": "Wed Apr 29 22:00:05 2026 +0200"
      },
      "committer": {
        "name": "HiFiPhile",
        "email": "admin@hifiphile.com",
        "time": "Wed Apr 29 22:00:05 2026 +0200"
      },
      "message": "ensure board_uart_write return -1 on default\n\nSigned-off-by: HiFiPhile \u003cadmin@hifiphile.com\u003e\n"
    },
    {
      "commit": "9d3ad336bfad062fa1e6f6d63feb97a9851cc9e1",
      "tree": "b72ef398d47529eb25810333b319c4ca644cc397",
      "parents": [
        "939c2f91c200db2bf9874c2e6c50b3530f8a6725"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 17:27:59 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 17:27:59 2026 +0700"
      },
      "message": "deprecated `usbd_control.c` and merge its functionality into `usbd.c`\n"
    },
    {
      "commit": "939c2f91c200db2bf9874c2e6c50b3530f8a6725",
      "tree": "6c83cb33854099f28bdb29855f048d429b0fb05c",
      "parents": [
        "5845df2e08157c394a771327331688d30e2c5f67",
        "2c6d42771e2707f38cefc782a1defefff6a7e22d"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 16:14:33 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 16:14:33 2026 +0700"
      },
      "message": "Merge pull request #3619 from hathach/hil_hfp\n\nrun my HIL on gcc build"
    },
    {
      "commit": "5845df2e08157c394a771327331688d30e2c5f67",
      "tree": "b021c9d6ce50710f8ef57706e3e182d7e9a62492",
      "parents": [
        "096977889641be99815e31a12ab352650520e971",
        "d529c5321f474ccdd80ccb6fdcfb732abb1b7a45"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 16:13:51 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 16:13:51 2026 +0700"
      },
      "message": "Merge pull request #3615 from kira-live/master\n\nfix zero wLength request in control request"
    },
    {
      "commit": "2c6d42771e2707f38cefc782a1defefff6a7e22d",
      "tree": "4ff15ad50fc8affa1626dd02dfff86482d1a6a53",
      "parents": [
        "f53a9ec9afee11dbbb57c4561ef3eeeb37e572a6"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 15:43:01 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 15:43:01 2026 +0700"
      },
      "message": "clean up\n"
    },
    {
      "commit": "f53a9ec9afee11dbbb57c4561ef3eeeb37e572a6",
      "tree": "ec061e7c6e53bb113fe25db58c3fa56d72b7d4e1",
      "parents": [
        "d11543a72260c340836aff505104e27cfdc92ccb",
        "096977889641be99815e31a12ab352650520e971"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 15:01:16 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 15:01:16 2026 +0700"
      },
      "message": "Merge branch \u0027master\u0027 into hil_hfp\n"
    },
    {
      "commit": "d529c5321f474ccdd80ccb6fdcfb732abb1b7a45",
      "tree": "b021c9d6ce50710f8ef57706e3e182d7e9a62492",
      "parents": [
        "ecbe37c19f213edb2e66527fc7636a5ab16740b3"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 14:46:13 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 14:56:47 2026 +0700"
      },
      "message": "clean up\n"
    },
    {
      "commit": "ecbe37c19f213edb2e66527fc7636a5ab16740b3",
      "tree": "8d5b01ecba3b8101b4e6b1fc40341f3f5c9e9db7",
      "parents": [
        "7d556a3ae108fcc43515e1ef2c5ea613ec324551",
        "096977889641be99815e31a12ab352650520e971"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 13:15:24 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 13:15:24 2026 +0700"
      },
      "message": "Merge branch \u0027master\u0027 into fork/kira-live/master\n"
    },
    {
      "commit": "096977889641be99815e31a12ab352650520e971",
      "tree": "7623400e9d0bccb646d9369d3b4cffbf2ea83cde",
      "parents": [
        "4a4420cd070f4460f6f5ed3c17011d78c325d7c0",
        "17572a960a53e27ffa07d7d7fda3486bfcc95a2d"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 13:14:07 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 13:14:07 2026 +0700"
      },
      "message": "Merge pull request #3624 from hathach/update-agents-md\n\nAGENTS.md cleanup, add hil and code-size skills, harden hil_ci.sh"
    },
    {
      "commit": "17572a960a53e27ffa07d7d7fda3486bfcc95a2d",
      "tree": "7623400e9d0bccb646d9369d3b4cffbf2ea83cde",
      "parents": [
        "6ba8aeff1603ae54e0fcf2309b0f19e335a16cdc"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 12:59:40 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 12:59:40 2026 +0700"
      },
      "message": "metrics_compare_base: use git worktree add --detach\n\n`git worktree add \u003cpath\u003e \u003cbranch\u003e` fails if \u003cbranch\u003e is already checked out\nelsewhere (main repo, another worktree). --detach checks out the ref at a\ndetached HEAD instead of claiming the branch, making the script work\nregardless of what is currently checked out.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "6ba8aeff1603ae54e0fcf2309b0f19e335a16cdc",
      "tree": "366a6617ec5bde8a8faa69f340ab05bc2475b79d",
      "parents": [
        "f5d6c6ba91e7176ddf5965608c361ccf5d515bde"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 12:45:55 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 12:45:55 2026 +0700"
      },
      "message": "metrics_compare_base: catch TimeoutExpired; fix code-size skill docs\n\n- run() now catches subprocess.TimeoutExpired (only triggered by `cmake --build`\u0027s\n  timeout\u003d600) and returns CompletedProcess(rc\u003d124) so the caller falls through to\n  error reporting and worktree cleanup instead of crashing with a traceback.\n- code-size SKILL.md: document the actual default filter (per-side absolute\n  \u003ccheckout\u003e/src/ path, not the old `tinyusb/src` substring) and adjust the\n  reporting guidance to match what the report rows actually contain.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "f5d6c6ba91e7176ddf5965608c361ccf5d515bde",
      "tree": "7253aba789df7c486f8687ca8f9d49ce77096efa",
      "parents": [
        "fd715afcc52b27127de4e7a6a89a7782fdef5676"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 11:56:37 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 12:32:25 2026 +0700"
      },
      "message": "Improve remote execution in `hil_ci.sh`\n"
    },
    {
      "commit": "fd715afcc52b27127de4e7a6a89a7782fdef5676",
      "tree": "b1cbab1d5f7a2681b1a1baf873c4642f819f8029",
      "parents": [
        "47f2228cedfb216411c1ac50c4f10a30907cdb51"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 11:46:34 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 11:46:34 2026 +0700"
      },
      "message": "Add `code-size` skill and integrate `metrics_compare_base.py` tool\n\n- Introduced a `code-size` skill under `.claude/skills` for evaluating TinyUSB code size changes between the base branch and current branch.\n- Added `metrics_compare_base.py`, automating code size comparison with granular options for examples, boards, and CI-wide runs.\n- Updated `AGENTS.md` to include quick references and usage guidance for the new feature.\n"
    },
    {
      "commit": "47f2228cedfb216411c1ac50c4f10a30907cdb51",
      "tree": "68f3820823019391f8ca61060af3b726e6252d47",
      "parents": [
        "8010366808656937ed684af6fedb899a7130e9ba"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 11:09:48 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 11:09:48 2026 +0700"
      },
      "message": "address review feedback for AGENTS.md and hil skill\n\nAGENTS.md:\n- fix build dir to cmake-build-\u003cboard\u003e (matches hil_test.py expectation)\n- reformat flash section to avoid shell-pipe ambiguity, use \u003cboard\u003e\n- mention board.mk for Make-based builds\n- complete OpenOCD jlink interface example\n- update stale \"Build Option 2\" references to \"All examples for a board\"\n- split PVS-Studio command so it is copy-pasteable\n\n.claude/skills/hil/SKILL.md:\n- clarify local.json is user-supplied, not tracked in repo\n- use python3 consistently\n- add all-boards variant for remote execution\n- delegate remote execution to test/hil/hil_ci.sh\n\ntest/hil/hil_ci.sh:\n- portable shebang (/usr/bin/env bash)\n- set -euo pipefail\n- env overrides for REMOTE, REMOTE_DIR, CONFIG, ROOT_DIR\n- --prune-empty-dirs on rsync to skip empty subdirs\n- fail-fast sanity check on repo layout\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "8010366808656937ed684af6fedb899a7130e9ba",
      "tree": "706f8e6aee003fa6fb9f9804d93eecb146e052b1",
      "parents": [
        "da9d36fa4cef193abf12b581ac02e1986ea215a7",
        "4a4420cd070f4460f6f5ed3c17011d78c325d7c0"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 11:02:37 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 29 11:02:37 2026 +0700"
      },
      "message": "Merge remote-tracking branch \u0027origin/master\u0027 into update-agents-md\n"
    },
    {
      "commit": "da9d36fa4cef193abf12b581ac02e1986ea215a7",
      "tree": "8bf45897014077b5a14a2dbe7ffdb92bc037977e",
      "parents": [
        "81641e35c67ea8197397d1d03c666e94db6fdaec"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 28 22:18:21 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 28 22:18:21 2026 +0700"
      },
      "message": "update AGENTS.md and claude hil skill\n"
    },
    {
      "commit": "7d556a3ae108fcc43515e1ef2c5ea613ec324551",
      "tree": "5e02238c6b8cad4880b2ba2a9fa9983bc79e4a6e",
      "parents": [
        "d3107be360b45c4b8dbc223dcc5e5f57b582c5ff",
        "4a4420cd070f4460f6f5ed3c17011d78c325d7c0"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 28 22:08:28 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 28 22:08:28 2026 +0700"
      },
      "message": "Merge branch \u0027master\u0027 into fork/kira-live/master\n\n# Conflicts:\n#\tsrc/device/usbd_control.c\n"
    },
    {
      "commit": "4a4420cd070f4460f6f5ed3c17011d78c325d7c0",
      "tree": "7595327abe8468e63eb470bf73a4531fb1c87495",
      "parents": [
        "4c7fd70e53b34bf63ef9334f2b5624cac48299f1",
        "f2654a675b67b0b83337dd4df13afd498c3a0809"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 28 22:02:31 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 22:02:31 2026 +0700"
      },
      "message": "Merge pull request #3605 from hathach/musb-followup-3594\n\nEnhance dcd musb, double packet, refactor EP0, fix DATAEND race with EP0"
    },
    {
      "commit": "f2654a675b67b0b83337dd4df13afd498c3a0809",
      "tree": "7595327abe8468e63eb470bf73a4531fb1c87495",
      "parents": [
        "3792a9a3871cad32d7f38bc831417f60aeb17aff"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 28 16:50:44 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 28 19:17:56 2026 +0700"
      },
      "message": "only re-run tests that failed per board\nhil remove hub from pico2 since it is not stable\n"
    },
    {
      "commit": "3792a9a3871cad32d7f38bc831417f60aeb17aff",
      "tree": "903921b57be34e546640c7b0801cd58e32a4ae7f",
      "parents": [
        "cf50ea245bb02fc5674ef2ba6a3593a27c005b82"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 23:15:49 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 28 16:38:36 2026 +0700"
      },
      "message": "fix warning, change hil jlink for feather nrf52840\n"
    },
    {
      "commit": "d11543a72260c340836aff505104e27cfdc92ccb",
      "tree": "46de479731ac384434523fcb21913088d6ae651d",
      "parents": [
        "9a2bd7b46ca06490f96d7a7de5ff7d775ef9cfdb"
      ],
      "author": {
        "name": "HiFiPhile",
        "email": "admin@hifiphile.com",
        "time": "Sun Apr 26 14:10:57 2026 +0200"
      },
      "committer": {
        "name": "HiFiPhile",
        "email": "admin@hifiphile.com",
        "time": "Sun Apr 26 14:10:57 2026 +0200"
      },
      "message": "change job name\n\nCo-authored-by: Copilot \u003ccopilot@github.com\u003e\nSigned-off-by: HiFiPhile \u003cadmin@hifiphile.com\u003e\n"
    },
    {
      "commit": "9a2bd7b46ca06490f96d7a7de5ff7d775ef9cfdb",
      "tree": "bea5661a7d7e7447da97d8909359bfa122a73739",
      "parents": [
        "4c7fd70e53b34bf63ef9334f2b5624cac48299f1"
      ],
      "author": {
        "name": "HiFiPhile",
        "email": "admin@hifiphile.com",
        "time": "Sun Apr 26 12:47:59 2026 +0200"
      },
      "committer": {
        "name": "HiFiPhile",
        "email": "admin@hifiphile.com",
        "time": "Sun Apr 26 12:47:59 2026 +0200"
      },
      "message": "run hil_hfp on gcc build\n\nCo-authored-by: Copilot \u003ccopilot@github.com\u003e\nSigned-off-by: HiFiPhile \u003cadmin@hifiphile.com\u003e\n"
    },
    {
      "commit": "cf50ea245bb02fc5674ef2ba6a3593a27c005b82",
      "tree": "301214f765a57a3f969ed009b84ffe4065d31ae4",
      "parents": [
        "053cac96ab841b3f01053a0c8606afb7297aeccb"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 14:54:00 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 14:54:00 2026 +0700"
      },
      "message": "hil: comment out net_lwip_webserver test for PR #3605\n\nThe CI HIL host hits an intermittent USB net interface enumeration race\nthat fails this test consistently while the device-side build/code is\nfine. Disable the entry in device_tests so the rest of the HIL suite can\ngate the PR; will re-enable once the host-side flake is addressed.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "053cac96ab841b3f01053a0c8606afb7297aeccb",
      "tree": "903b9a86c99d30f48f9ab810fc45209b5328544c",
      "parents": [
        "dd107171535c20272e80e2b11e3bc2a368f531d3"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 14:41:00 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 14:41:00 2026 +0700"
      },
      "message": "hil: bump net iface enum timeout to 30s for net_lwip_webserver\n\nThe CI HIL host repeatedly fails the test with \"USB net iface enx... did\nnot come up with 192.168.7.x within 15s\" — USB enumeration + DHCP serve\ntakes longer there than on the local rig. Bump just this test\u0027s timeout\nto 30s; other tests stay on the 15s global ENUM_TIMEOUT.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "d3107be360b45c4b8dbc223dcc5e5f57b582c5ff",
      "tree": "5fe81a43ee805c78546a2d6c590a6edd42187365",
      "parents": [
        "8a63f9c57ee29bd34367c347663e86fe432a0a37"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 24 12:04:56 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 11:51:49 2026 +0700"
      },
      "message": "usbd_control: consolidate status stage ep selection\n\nExtract the \"which endpoint is the Status stage on\" rule into a single\nTU_ATTR_ALWAYS_INLINE helper, and use it from both status_stage_xact()\nand the completion callback. Replaces the two-operand wLength/direction\ncheck with a direct endpoint-match comparison, matching the first\noperand\u0027s pattern.\n\nPer USB 2.0 §9.3.1, when wLength \u003d\u003d 0 the bmRequestType Direction bit\nis ignored and the Status stage is always IN; otherwise the Status\nstage is opposite to the Data stage direction.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "dd107171535c20272e80e2b11e3bc2a368f531d3",
      "tree": "3971919220ac60a7ff3c83be00d1cfb9f8387466",
      "parents": [
        "5ba472d5c9777e83523d7db718743e3cd5c8761a"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 10:34:50 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 11:42:52 2026 +0700"
      },
      "message": "max32 change bulk endpoint to EP8,9 (2KB FIFO) and Audio ISO to EP10, 11 (4KB FIFO)\n"
    },
    {
      "commit": "5ba472d5c9777e83523d7db718743e3cd5c8761a",
      "tree": "21024eddf067bd615b14dea1fa26b25d3201eb5a",
      "parents": [
        "ef2f24cddbce107c80f43e1e8f8a3cd1bf763d84"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 10:14:31 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 10:14:31 2026 +0700"
      },
      "message": "shrink cdc_msc_throughput MSC buffer for FS targets\n\nCFG_TUD_MSC_EP_BUFSIZE: 4096 → (HS ? 4096 : 1024). Keep the big buffer for\nHS where it actually amortises CBW overhead at iperf-class throughput; FS\npeaks around ~830 kBps so 1 KB is plenty and the example now fits on\nsmall-RAM MCUs (lpc11/13, samd11, kinetis_kl, stm32f0/l0, stm32f1, etc.).\nAlso dedupe CDC_TX_BUFSIZE \u003d CDC_RX_BUFSIZE.\n\nDrops the previously-needed skip.txt — verified builds locally on\nlpcxpresso1347, cynthion_d11, lpcxpresso11u37/u68, stm32f072disco/eval,\nfrdm_kl25z, stm32l052dap52.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "ef2f24cddbce107c80f43e1e8f8a3cd1bf763d84",
      "tree": "b66ffa9db2f0ee6ff8472d821c41699df62ffde0",
      "parents": [
        "bafce337f76551cc60e15e4072fc563380b8e908"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 09:50:47 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 09:50:47 2026 +0700"
      },
      "message": "skip cdc_msc_throughput on small-RAM MCUs\n\nThe example uses 4 KB MSC bulk buffer + 2-4 KB CDC buffers to push USB\nthroughput, which overflows on lpcxpresso1347 (RamUsb2) and cynthion_d11.\nSkip the same MCU set as net_lwip_webserver — these targets don\u0027t have\nthe RAM headroom to benefit from throughput tuning anyway.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "bafce337f76551cc60e15e4072fc563380b8e908",
      "tree": "3812dd8bf8c6b334635f09c3b054507b799c3069",
      "parents": [
        "2dc90e364aa4354a2f07912a2fb6b22169928a35"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 09:43:58 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sun Apr 26 09:43:58 2026 +0700"
      },
      "message": "gate lwIP throughput tuning + iperf on MCU SRAM tier\n\nThe bigger TCP_WND/PBUF_POOL/MEMP_NUM_TCP_SEG and the always-on iperf\noverflowed SRAM on stm32c0/f1/wb, lpc11/13, samd11. Add LWIP_HIGH_THROUGHPUT\ngate (defined in tusb_config.h, consumed by lwipopts.h) so RAM-tight MCUs\nkeep the original modest buffers and skip iperf, while RAM-rich targets\n(max32*/stm32f2/f4/f7/h5/h7/h7rs/u5/n6, rp2040, mimxrt1xxx, nrf5x) keep\nthe throughput tuning needed for the iperf HIL test.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "2dc90e364aa4354a2f07912a2fb6b22169928a35",
      "tree": "ac006e58a7935c986882f546af5006a0cabbaa39",
      "parents": [
        "b87876b2760cf265b093637205c3e72e7550f521",
        "4c7fd70e53b34bf63ef9334f2b5624cac48299f1"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sat Apr 25 23:00:48 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sat Apr 25 23:00:48 2026 +0700"
      },
      "message": "Merge branch \u0027master\u0027 into musb-followup-3594\n\n# Conflicts:\n#\tsrc/common/tusb_types.h\n#\tsrc/portable/mentor/musb/dcd_musb.c\n"
    },
    {
      "commit": "b87876b2760cf265b093637205c3e72e7550f521",
      "tree": "c3368084a905d070e06e77ae9a798d9b33720211",
      "parents": [
        "0e4869a729ce32b157a60ae5730abf6f5802381b"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sat Apr 25 17:03:59 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sat Apr 25 22:50:59 2026 +0700"
      },
      "message": "separate pipe0 since it is 1 packet per transfer, merge PIPE0 STATUS PENDING\n"
    },
    {
      "commit": "0e4869a729ce32b157a60ae5730abf6f5802381b",
      "tree": "c4e7c658ffae06ee30922c04b63148f30583bb0f",
      "parents": [
        "9fd6788add2223789e9ab08e99337bb96c77ba2a"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sat Apr 25 14:41:08 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sat Apr 25 14:41:08 2026 +0700"
      },
      "message": "clean up\n"
    },
    {
      "commit": "9fd6788add2223789e9ab08e99337bb96c77ba2a",
      "tree": "f66fd38c6f2986b5ae59760818bf093aa0270fbc",
      "parents": [
        "1b55dde72a657a802b76f4c64410adc8904d6468"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sat Apr 25 02:22:00 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Sat Apr 25 08:02:12 2026 +0700"
      },
      "message": "musb more ep0 refactor. add back remaining_ctrl for correct ep0 state transition. handle status out to make sure xfer_complete() not called before dcd_edpt_xfer()\n"
    },
    {
      "commit": "1b55dde72a657a802b76f4c64410adc8904d6468",
      "tree": "92d1e5d758f075b885622d53a30ec81f14b62d15",
      "parents": [
        "f0305eac01ebe3df270e5ff77dca6f310de11a32"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 24 22:18:05 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 24 22:18:05 2026 +0700"
      },
      "message": "add throughput test for hil\n"
    },
    {
      "commit": "f0305eac01ebe3df270e5ff77dca6f310de11a32",
      "tree": "6b691606e8c827b675f04daf3a7abdd8055ba8ab",
      "parents": [
        "fd4279a027a2535dbe5177a962b4cac316357af9"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 24 22:04:10 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 24 22:04:10 2026 +0700"
      },
      "message": "musb migrate to ep0_state, remove setup packet from dcd data\n"
    },
    {
      "commit": "fd4279a027a2535dbe5177a962b4cac316357af9",
      "tree": "e053d5f5a080b3d2569e4bfcdae5def020e6edc9",
      "parents": [
        "45754d82591f45ddf4a489dce290145f417526df"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 24 15:50:32 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 24 19:50:37 2026 +0700"
      },
      "message": "refactor musb ep0 xfer\n"
    },
    {
      "commit": "4c7fd70e53b34bf63ef9334f2b5624cac48299f1",
      "tree": "827d5c3ab5e53bdf2ab633a5805715ef05c8e686",
      "parents": [
        "1e644339fd984fd6168b8cc09728d3bb56f2eea2",
        "5939831f17272571911d089508b458f496a4cc62"
      ],
      "author": {
        "name": "Zixun LI",
        "email": "admin@hifiphile.com",
        "time": "Fri Apr 24 11:19:41 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 11:19:41 2026 +0200"
      },
      "message": "Merge pull request #3597 from canokeys/big-endian-for-setup-packets\n\nfix #3596: big-endian host support for SETUP packet handling"
    },
    {
      "commit": "8a63f9c57ee29bd34367c347663e86fe432a0a37",
      "tree": "d8bd12ea603b5546b8817770113147598e8a4a28",
      "parents": [
        "1e644339fd984fd6168b8cc09728d3bb56f2eea2"
      ],
      "author": {
        "name": "akari",
        "email": "akari@akari.tv",
        "time": "Fri Apr 24 09:43:13 2026 +0800"
      },
      "committer": {
        "name": "akari",
        "email": "akari@akari.tv",
        "time": "Fri Apr 24 09:43:13 2026 +0800"
      },
      "message": "fix zero wLength request in control request\n"
    },
    {
      "commit": "45754d82591f45ddf4a489dce290145f417526df",
      "tree": "4e31813190596790abfce0e2c20f8c77ea85227b",
      "parents": [
        "d808111cfd1708c25cc9ec671985f742560ebf83"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Thu Apr 23 18:59:01 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Thu Apr 23 23:38:54 2026 +0700"
      },
      "message": "add cdc msc throughput example\n"
    },
    {
      "commit": "d808111cfd1708c25cc9ec671985f742560ebf83",
      "tree": "6007e9d21605ffbae246ef4496f9b9cc6c0870a6",
      "parents": [
        "d3b6a252b142592a3bacae5e44ab8770421812b7"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Thu Apr 23 18:10:17 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Thu Apr 23 18:10:17 2026 +0700"
      },
      "message": "musb double packet for epout\n"
    },
    {
      "commit": "5c0c1662464e48681533e8ecc1217613fb6e3820",
      "tree": "c3610534cb8307504707bd0c27eab5f461fc863d",
      "parents": [
        "b46147a497bf68d680e9a8a898eeca2d255ce53b",
        "1e644339fd984fd6168b8cc09728d3bb56f2eea2"
      ],
      "author": {
        "name": "copilot-swe-agent[bot]",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Thu Apr 23 09:49:02 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 09:49:02 2026 +0000"
      },
      "message": "Merge upstream master into net descriptor-based ep_size branch\n\n- Resolve .gitignore conflict: incorporate upstream\u0027s .worktrees entry and\n  expand dependency path patterns to cover all tools/get_deps.py fetched dirs\n  (lib/, tools/linkermap, tools/uf2, hw/mcu/*) instead of listing only a few\n\n- Auto-merged upstream changes: build system cleanups, BSP updates,\n  portability fixes, new boards (nrf54lm20dk, stm32h743_weact),\n  fatfs relocation, and many other upstream improvements\n\n- Net driver changes (ecm_rndis_device.c, ncm_device.c, net_device.h,\n  usbd.h, usb_descriptors.c) retain our PR\u0027s descriptor-based ep_size\n  approach as our branch takes precedence\n\nCo-authored-by: HiFiPhile \u003c4375114+HiFiPhile@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "d3b6a252b142592a3bacae5e44ab8770421812b7",
      "tree": "05c8226e9d83e9a867dad5c36611ffccb2df71c6",
      "parents": [
        "f9ffb94f3d392140cc350cdb532f0576552bbeb8"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Thu Apr 23 15:57:47 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Thu Apr 23 16:09:23 2026 +0700"
      },
      "message": "reduce memory, focus on keep iperf speed\n"
    },
    {
      "commit": "1e644339fd984fd6168b8cc09728d3bb56f2eea2",
      "tree": "aa4c5ee5827d44dea0be36b9bd434e74fa5acb8c",
      "parents": [
        "0d1c0903ec6d65d40f8196b72493a692f7a180de",
        "5540b2a83fb83dd7f1a477e99084b1818abc2e46"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Thu Apr 23 15:39:12 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 15:39:12 2026 +0700"
      },
      "message": "Merge pull request #3590 from hathach/copilot/extract-hcd-pma-buffer-errata-workaround\n\nRefactor STM32 FSDEV PMA errata delay into shared static inline helper and apply to DCD/HCD with overridable timing"
    },
    {
      "commit": "0d1c0903ec6d65d40f8196b72493a692f7a180de",
      "tree": "fad73aa11fa3dc451a1f0925a099933637ab9667",
      "parents": [
        "ce1d37ad97c1f5fe537e1d72aef2dbbdd43c21ed",
        "a6dcc3f089bd4468949ea9e138fea9f80025577e"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Thu Apr 23 15:35:23 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 15:35:23 2026 +0700"
      },
      "message": "Merge pull request #3601 from hathach/fix-conversion-warnings\n\nFix some -Wconversion warnings"
    },
    {
      "commit": "f9ffb94f3d392140cc350cdb532f0576552bbeb8",
      "tree": "ef8ffed588d3e8e3546d3f460ac7996a90b073a1",
      "parents": [
        "8513c50231e1935657737b42a739e96c6d0dd154"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Thu Apr 23 15:27:05 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Thu Apr 23 15:29:27 2026 +0700"
      },
      "message": "tweak lwip config to get better iperf throughput\n"
    },
    {
      "commit": "ce1d37ad97c1f5fe537e1d72aef2dbbdd43c21ed",
      "tree": "4a54d2eab6b718df85b7951135ef1dc947d311e1",
      "parents": [
        "723e0167a3d164918c1453d3941cb2b9a6a2d463",
        "776f613dbf9ebb14e7dab6529db96a273157a943"
      ],
      "author": {
        "name": "Zixun LI",
        "email": "admin@hifiphile.com",
        "time": "Thu Apr 23 09:50:23 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 09:50:23 2026 +0200"
      },
      "message": "Merge pull request #3612 from espressif/feat/esp32s31_support\n\nAdd ESP32-S31 as a supported MCU in TinyUSB"
    },
    {
      "commit": "776f613dbf9ebb14e7dab6529db96a273157a943",
      "tree": "4a54d2eab6b718df85b7951135ef1dc947d311e1",
      "parents": [
        "723e0167a3d164918c1453d3941cb2b9a6a2d463"
      ],
      "author": {
        "name": "igor.masar",
        "email": "igor.masar@espressif.com",
        "time": "Wed Apr 22 14:22:23 2026 +0200"
      },
      "committer": {
        "name": "igor.masar",
        "email": "igor.masar@espressif.com",
        "time": "Wed Apr 22 22:51:12 2026 +0200"
      },
      "message": "Add ESP32-S31 as a supported MCU in TinyUSB\n"
    },
    {
      "commit": "8513c50231e1935657737b42a739e96c6d0dd154",
      "tree": "4f3d90e6bdab4b18f1d47b117f8618682eabbe84",
      "parents": [
        "d0c550cadceff3fdf30060f4ac0ebf919e5934a1"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 22 11:53:02 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Wed Apr 22 11:53:02 2026 +0700"
      },
      "message": "musb implement double buffer for tx\n"
    },
    {
      "commit": "d0c550cadceff3fdf30060f4ac0ebf919e5934a1",
      "tree": "74118fd0fd1b10095773d848fbe8d814535ae937",
      "parents": [
        "100cfd6360ddd0c94a0aaeaa2da05449c0648dc1"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 21 19:44:10 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 21 19:44:10 2026 +0700"
      },
      "message": "enable double buffer for tm4c\n"
    },
    {
      "commit": "100cfd6360ddd0c94a0aaeaa2da05449c0648dc1",
      "tree": "4224d5e3a15cf4d5865079cfab0819e7c504cfd0",
      "parents": [
        "c13864dbe49b2009f9ad3be2f912ddd80a9ecd40"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 21 16:36:31 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 21 16:36:31 2026 +0700"
      },
      "message": "minor clean up\n"
    },
    {
      "commit": "c13864dbe49b2009f9ad3be2f912ddd80a9ecd40",
      "tree": "98bd831ada6ddb839488792488fa9729ddd35243",
      "parents": [
        "85b967c9b0d26c8dbd16fedfc07d166b8f9b77ae"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 21 15:28:44 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 21 15:28:44 2026 +0700"
      },
      "message": "optimize pipe_state_t sram for port with CFG_TUD_ENDPOINT_ONE_DIRECTION_ONLY.\nseparate process_edpt_n() to process_epin() and process_epout()\n"
    },
    {
      "commit": "85b967c9b0d26c8dbd16fedfc07d166b8f9b77ae",
      "tree": "2aaf51b605de8f1768b64992221ecd197cdc30c8",
      "parents": [
        "f9e79844edd9757243c786c9e901cfba3f281b6b"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 21 11:28:29 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 21 11:28:29 2026 +0700"
      },
      "message": "refactor interrupt handling and add `pipe_write` to fix IN ZLP issue\n"
    },
    {
      "commit": "f9e79844edd9757243c786c9e901cfba3f281b6b",
      "tree": "357b7529f4b9ad393343b66ba5f92f44ba07ce42",
      "parents": [
        "da2368bc141c7e76e818df2336ffe672b7927748"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 21 11:26:51 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 21 11:26:51 2026 +0700"
      },
      "message": "replace `TUD_ENDPOINT_ONE_DIRECTION_ONLY` with `CFG_TUD_ENDPOINT_ONE_DIRECTION_ONLY` for improved configuration consistency across examples and core sources\n"
    },
    {
      "commit": "da2368bc141c7e76e818df2336ffe672b7927748",
      "tree": "446974c6158ed6e3bd4b4efe97f6907255c5168d",
      "parents": [
        "9d0af750a5463f3a54c6fdd5932d82f7fc208ffc"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon Apr 20 22:11:17 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon Apr 20 22:11:17 2026 +0700"
      },
      "message": "fix usbnet hardcode speed. disable hil test for now\n"
    },
    {
      "commit": "9d0af750a5463f3a54c6fdd5932d82f7fc208ffc",
      "tree": "1979c057855cd9bbca4365d624ba81bd4347e412",
      "parents": [
        "ce81b01eda0f9e833bbb717e6f2cebad0030afa1"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon Apr 20 17:46:15 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon Apr 20 17:46:15 2026 +0700"
      },
      "message": "add test for net_lwip_webserver with iperf throughput validation\n"
    },
    {
      "commit": "ce81b01eda0f9e833bbb717e6f2cebad0030afa1",
      "tree": "49ecf3e9b00ba807debc9398600346d7ea67a460",
      "parents": [
        "723e0167a3d164918c1453d3941cb2b9a6a2d463"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon Apr 20 16:44:25 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Mon Apr 20 16:44:25 2026 +0700"
      },
      "message": "improving transfer tracking and adding support for un-armed Rx data handling\n"
    },
    {
      "commit": "5540b2a83fb83dd7f1a477e99084b1818abc2e46",
      "tree": "b47ad370b176e1bb919367921849af18bbafeacf",
      "parents": [
        "35045e0346f64fe3b19e94c8e9c8d2eb908fc5d6"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 17 19:06:56 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 17 19:17:17 2026 +0700"
      },
      "message": "use single volatile counter\n"
    },
    {
      "commit": "5939831f17272571911d089508b458f496a4cc62",
      "tree": "a12d00a818aa4850440925651d59281bd7b35b98",
      "parents": [
        "41462d2b79d5c7f82ce9e8fa8268b342f3f89a67"
      ],
      "author": {
        "name": "Fan DANG",
        "email": "i@dang.fan",
        "time": "Fri Apr 17 18:39:56 2026 +0800"
      },
      "committer": {
        "name": "Fan DANG",
        "email": "i@dang.fan",
        "time": "Fri Apr 17 18:39:56 2026 +0800"
      },
      "message": "remove duplicated tu_le16toh since we have converted the endian when setup.\n"
    },
    {
      "commit": "723e0167a3d164918c1453d3941cb2b9a6a2d463",
      "tree": "bc7cdd24dd4406eaad38c273f5f8cb90bfc88da0",
      "parents": [
        "e346617ecd1893952fc83191afa55d7197c4a787",
        "269589df064eb79998c15148d60e987302cfe96a"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 17 17:37:53 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 17:37:53 2026 +0700"
      },
      "message": "Merge pull request #3603 from andrewleech/fix-tinyusb-mk-duplicate\n\ntinyusb.mk: Remove duplicate usbc.c entry."
    },
    {
      "commit": "269589df064eb79998c15148d60e987302cfe96a",
      "tree": "bc7cdd24dd4406eaad38c273f5f8cb90bfc88da0",
      "parents": [
        "e346617ecd1893952fc83191afa55d7197c4a787"
      ],
      "author": {
        "name": "Andrew Leech",
        "email": "andrew.leech@planetinnovation.com.au",
        "time": "Fri Apr 17 20:01:53 2026 +1000"
      },
      "committer": {
        "name": "Andrew Leech",
        "email": "andrew.leech@planetinnovation.com.au",
        "time": "Fri Apr 17 20:01:53 2026 +1000"
      },
      "message": "tinyusb.mk: Remove duplicate usbc.c entry.\n\nSigned-off-by: Andrew Leech \u003candrew.leech@planetinnovation.com.au\u003e\n"
    },
    {
      "commit": "e346617ecd1893952fc83191afa55d7197c4a787",
      "tree": "54bb0c7565efb125c99fde4467b728a7a3417403",
      "parents": [
        "1c1e80542941911d292fd6e27a165ec1776f072a",
        "ed37ad8ce2c7175aacb7dbc6348b4328835a2ff2"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 17 15:23:47 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 15:23:47 2026 +0700"
      },
      "message": "Merge pull request #3594\n\nFix musb RXRDY Clearing"
    },
    {
      "commit": "1c1e80542941911d292fd6e27a165ec1776f072a",
      "tree": "112719669057f679bd7a26fcdbc79bb039af0406",
      "parents": [
        "81641e35c67ea8197397d1d03c666e94db6fdaec",
        "c1e6b2635f9b89313dca86b31287176949c68380"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 17 15:16:04 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 15:16:04 2026 +0700"
      },
      "message": "Merge pull request #3599\n\nfix(docs): update URL for STM32C071 Nucleo board documentation"
    },
    {
      "commit": "a6dcc3f089bd4468949ea9e138fea9f80025577e",
      "tree": "cb12a05886c51eba2c76702fdc67cf09a90ad1b3",
      "parents": [
        "81641e35c67ea8197397d1d03c666e94db6fdaec"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 17 00:10:44 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 17 10:16:31 2026 +0700"
      },
      "message": "fix some Wconversion warnings\n"
    },
    {
      "commit": "c1e6b2635f9b89313dca86b31287176949c68380",
      "tree": "8abaa48f14273b97eb4323a7adf32fd9fc0c8256",
      "parents": [
        "3cfe7a0ed1c8c0ca7b1ad747cfce502a5312bf1c"
      ],
      "author": {
        "name": "StefanOroel",
        "email": "\u003d",
        "time": "Thu Apr 16 10:40:42 2026 +0200"
      },
      "committer": {
        "name": "StefanOroel",
        "email": "\u003d",
        "time": "Thu Apr 16 10:40:42 2026 +0200"
      },
      "message": "fix(docs): update URL for STM32C071 Nucleo board documentation\n"
    },
    {
      "commit": "81641e35c67ea8197397d1d03c666e94db6fdaec",
      "tree": "052b672ede4a84983b374b8a8c9534b17edf5939",
      "parents": [
        "3cfe7a0ed1c8c0ca7b1ad747cfce502a5312bf1c",
        "e7642cf753b67bcfee21983e2caa292c2722ba4c"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Thu Apr 16 10:18:54 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 10:18:54 2026 +0700"
      },
      "message": "Merge pull request #3598 from hathach/worktree-rp2040-freertos\n\nAdd FreeRTOS support for RP2040/RP2350 "
    },
    {
      "commit": "e7642cf753b67bcfee21983e2caa292c2722ba4c",
      "tree": "583870724a11bd52165ad9d953e534ce51326403",
      "parents": [
        "e32a510ce610507717d940d329169d8939c10eab"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 14 20:06:26 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 14 20:06:26 2026 +0700"
      },
      "message": "suppress null-dereference warnings in FreeRTOS builds\n"
    },
    {
      "commit": "e32a510ce610507717d940d329169d8939c10eab",
      "tree": "45b9250a79cf53cf2db863e45923a2ba058ba464",
      "parents": [
        "5da96a38f046aeaaf2e7f3dddb0b6d11b169a779"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 14 19:14:05 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 14 19:14:05 2026 +0700"
      },
      "message": "remove -Werror from example sources to prevent build examples\n"
    },
    {
      "commit": "5da96a38f046aeaaf2e7f3dddb0b6d11b169a779",
      "tree": "f4c3e474d7d1ad72086151a001d39dfbc65bbae2",
      "parents": [
        "b55786e43af764397ebadf96609d77826d38bffe"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 14 14:04:07 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 14 14:04:07 2026 +0700"
      },
      "message": "fix ci\n"
    },
    {
      "commit": "b55786e43af764397ebadf96609d77826d38bffe",
      "tree": "60cfbefe23a1e45f00687c5492ff40723885ed5c",
      "parents": [
        "44b0ee05390b0f97d006a016b25fa513699e0a96"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 14 13:17:12 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 14 13:17:12 2026 +0700"
      },
      "message": "refactor rp2040 family.cmake to use family_configure_example() and apply WARN_FLAGS to tinyusb sources and examples sources only (skip 3rd party library and mcu vendor)\n"
    },
    {
      "commit": "41462d2b79d5c7f82ce9e8fa8268b342f3f89a67",
      "tree": "23131631cfd865c9486883f6292ba809125cb87d",
      "parents": [
        "ce9864a0bcad0b22b1494466b7ef379e1b688319",
        "3cfe7a0ed1c8c0ca7b1ad747cfce502a5312bf1c"
      ],
      "author": {
        "name": "Dang Fan",
        "email": "i@dang.fan",
        "time": "Tue Apr 14 13:58:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 13:58:02 2026 +0800"
      },
      "message": "Merge branch \u0027hathach:master\u0027 into big-endian-for-setup-packets\n"
    },
    {
      "commit": "44b0ee05390b0f97d006a016b25fa513699e0a96",
      "tree": "93decf8946c6eacabcae6d063fb5d576c99e5d86",
      "parents": [
        "7c3f5979ff9be05b7938f10dbaa6e55daaf8bdc1"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 14 10:51:20 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Tue Apr 14 10:51:20 2026 +0700"
      },
      "message": "get freertos working with rp2040\n"
    },
    {
      "commit": "3cfe7a0ed1c8c0ca7b1ad747cfce502a5312bf1c",
      "tree": "9d8446af4f99ffddec1f4506740c30847e14d454",
      "parents": [
        "470715ad8cb07b496ad2c2e9bf0b95d32cf768c7",
        "5358b204a5b701073ae1051ac48f2d8400533df4"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Mon Apr 13 13:40:26 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 13:40:26 2026 +0700"
      },
      "message": "Merge pull request #3574 from gab-k/support-nrf54lm20a\n\nAdd initial board support for nRF54LM20 DK"
    },
    {
      "commit": "ce9864a0bcad0b22b1494466b7ef379e1b688319",
      "tree": "c846368956e02d01c1911bfc5db8be0cf53adea8",
      "parents": [
        "34aded88edd5b1403bb35b531985953502a0faab"
      ],
      "author": {
        "name": "Fan DANG",
        "email": "i@dang.fan",
        "time": "Mon Apr 13 10:14:20 2026 +0800"
      },
      "committer": {
        "name": "Fan DANG",
        "email": "i@dang.fan",
        "time": "Mon Apr 13 10:14:20 2026 +0800"
      },
      "message": "introduce two more macros to follow tinyusb\u0027s style\n"
    },
    {
      "commit": "34aded88edd5b1403bb35b531985953502a0faab",
      "tree": "0afc50460d2cd7eccd3f55029f2638d62c75dda2",
      "parents": [
        "470715ad8cb07b496ad2c2e9bf0b95d32cf768c7"
      ],
      "author": {
        "name": "Fan DANG",
        "email": "i@dang.fan",
        "time": "Mon Apr 13 08:56:36 2026 +0800"
      },
      "committer": {
        "name": "Fan DANG",
        "email": "i@dang.fan",
        "time": "Mon Apr 13 08:56:36 2026 +0800"
      },
      "message": "fix(device): big-endian host support for SETUP packet handling\n\n1. Add TU_LITTLE_ENDIAN_BITFIELD / TU_BIG_ENDIAN_BITFIELD macros in\ntusb_compiler.h (GCC and IAR), following Linux kernel style.\n\n2. Update bmAttributes (tusb_desc_endpoint_t) and bmRequestType_bit\n(tusb_control_request_t) in tusb_types.h to use these macros with explicit\n#error fallback if undefined.\n\n3. Add tu_le16toh() conversion in dcd_event_setup_received() for\nwValue/wIndex/wLength.\n\nTested on CIU98320B (big-endian ARM Cortex-M, full-speed HID keyboard).\n"
    },
    {
      "commit": "ed37ad8ce2c7175aacb7dbc6348b4328835a2ff2",
      "tree": "c4fa5139b946a8a5814e466e65cebc27a47c7a92",
      "parents": [
        "470715ad8cb07b496ad2c2e9bf0b95d32cf768c7"
      ],
      "author": {
        "name": "Brent Kowal",
        "email": "brent.kowal@analog.com",
        "time": "Fri Apr 10 14:25:28 2026 -0400"
      },
      "committer": {
        "name": "Brent Kowal",
        "email": "brent.kowal@analog.com",
        "time": "Sat Apr 11 07:29:06 2026 -0400"
      },
      "message": "Fix musb RXRDY Clearing\n\nResolves an issue in the musb handle_xfer_out function where not all\nexecution paths cleared the MUSB_RXCSRL1_RXRDY bit, causing the RX\ninterface to hang and no longer communicate with the host.\n\nSigned-off-by: Brent Kowal \u003cbrent.kowal@analog.com\u003e\n"
    },
    {
      "commit": "5358b204a5b701073ae1051ac48f2d8400533df4",
      "tree": "a174cc8e2d2c8452cca5a7190d37aa933c8d765b",
      "parents": [
        "3f3d65aabab8478ce0c6cce095c327a395eb1ab4"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 10 21:28:44 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 10 21:28:44 2026 +0700"
      },
      "message": "update README.rst\n"
    },
    {
      "commit": "3f3d65aabab8478ce0c6cce095c327a395eb1ab4",
      "tree": "648c965be9d2c6aaa8001edd8356bc5dcea58fbf",
      "parents": [
        "b2b498f17e403b006943ca15d9884b4f596eacfb"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 10 21:20:57 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 21:20:57 2026 +0700"
      },
      "message": "Update src/portable/synopsys/dwc2/dcd_dwc2.c\n\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "b2b498f17e403b006943ca15d9884b4f596eacfb",
      "tree": "965ebb346493ea011bc26f230388e50a68a9bc58",
      "parents": [
        "de59d95c325e9776d344e7e6272bd79335184ae2"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 10 21:17:46 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 10 21:17:46 2026 +0700"
      },
      "message": "clean up\n"
    },
    {
      "commit": "de59d95c325e9776d344e7e6272bd79335184ae2",
      "tree": "7113c17374556545061de706902257d661a1eb0b",
      "parents": [
        "4b0ed0b29ab967eef555c4189c9061936927ab17"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 10 21:14:01 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 10 21:14:01 2026 +0700"
      },
      "message": "fix DWC2 FIFO depth values for STM32 families\n"
    },
    {
      "commit": "35045e0346f64fe3b19e94c8e9c8d2eb908fc5d6",
      "tree": "bda4ccef4c42a1adee341d57cd1767311dfd1200",
      "parents": [
        "37ace45508fb32568e78ba3410d708db359a46d4"
      ],
      "author": {
        "name": "HiFiPhile",
        "email": "admin@hifiphile.com",
        "time": "Fri Apr 10 13:33:13 2026 +0200"
      },
      "committer": {
        "name": "HiFiPhile",
        "email": "admin@hifiphile.com",
        "time": "Fri Apr 10 13:36:24 2026 +0200"
      },
      "message": "debloat the workaround\n\nSigned-off-by: HiFiPhile \u003cadmin@hifiphile.com\u003e\n"
    },
    {
      "commit": "37ace45508fb32568e78ba3410d708db359a46d4",
      "tree": "c3150508acf8ab793cd9daafb2acaa8ced3710cc",
      "parents": [
        "54e1973906c6152ffd5d650d4f8fb146b4fa9068"
      ],
      "author": {
        "name": "copilot-swe-agent[bot]",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Fri Apr 10 11:11:31 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 11:11:31 2026 +0000"
      },
      "message": "Allow STM32 FSDEV delay override macros to satisfy 32-bit guard\n\nAgent-Logs-Url: https://github.com/hathach/tinyusb/sessions/b35badc2-444a-4329-b136-f314591cf693\n\nCo-authored-by: HiFiPhile \u003c4375114+HiFiPhile@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "54e1973906c6152ffd5d650d4f8fb146b4fa9068",
      "tree": "48e5c9abf1113266ccf4172f0705f43bcd7671bc",
      "parents": [
        "048bb5ca690311a24cae69fd177bd2f4721f27b6"
      ],
      "author": {
        "name": "copilot-swe-agent[bot]",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Fri Apr 10 10:53:41 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 10:53:41 2026 +0000"
      },
      "message": "Restore errata context comment on inline delay helper\n\nAgent-Logs-Url: https://github.com/hathach/tinyusb/sessions/8588a09c-d4e5-4284-8944-47ae4e2a2a1f\n\nCo-authored-by: HiFiPhile \u003c4375114+HiFiPhile@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "048bb5ca690311a24cae69fd177bd2f4721f27b6",
      "tree": "71b906a79b61b9b5e8bff8c62a22b84c422dfb2e",
      "parents": [
        "41575d2de943393f6cc7e5228ab904614fadce28"
      ],
      "author": {
        "name": "copilot-swe-agent[bot]",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Fri Apr 10 10:53:03 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 10:53:03 2026 +0000"
      },
      "message": "Make fsdev errata delay helper static inline\n\nAgent-Logs-Url: https://github.com/hathach/tinyusb/sessions/8588a09c-d4e5-4284-8944-47ae4e2a2a1f\n\nCo-authored-by: HiFiPhile \u003c4375114+HiFiPhile@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "4b0ed0b29ab967eef555c4189c9061936927ab17",
      "tree": "68370cb4b82ac6875fe4d13f158b1281e80531f5",
      "parents": [
        "c96ff6b6d978bdcacc7cd49ad66ef00438cfb9f6"
      ],
      "author": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 10 17:46:41 2026 +0700"
      },
      "committer": {
        "name": "hathach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 10 17:46:41 2026 +0700"
      },
      "message": "fix nrf54 and freertos port\n"
    },
    {
      "commit": "470715ad8cb07b496ad2c2e9bf0b95d32cf768c7",
      "tree": "1b59ce6001a11b6695771dff7422121fede78c3f",
      "parents": [
        "7c3f5979ff9be05b7938f10dbaa6e55daaf8bdc1",
        "8320d8f8f49232c25476f8efdde55e7bedec11e3"
      ],
      "author": {
        "name": "Ha Thach",
        "email": "thach@tinyusb.org",
        "time": "Fri Apr 10 17:07:03 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 17:07:03 2026 +0700"
      },
      "message": "Merge pull request #3593 from hathach/worktree-fix-stm32h5-uid-icache\n\nfix stm32h5 hard fault when reading UID with ICACHE enabled"
    }
  ],
  "next": "c96ff6b6d978bdcacc7cd49ad66ef00438cfb9f6"
}
