<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/AGENTS.md, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/AGENTS.md?h=master</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/AGENTS.md?h=master'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-07-21T05:35:00Z</updated>
<entry>
<title>docs: make CLAUDE.md the real agent-instructions file (#3769)</title>
<updated>2026-07-21T05:35:00Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-07-21T05:35:00Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=c6a1c66f8a64446ad1160b8e5b2da88ad1f3eac5'/>
<id>urn:sha1:c6a1c66f8a64446ad1160b8e5b2da88ad1f3eac5</id>
<content type='text'>
* docs: make CLAUDE.md the real agent-instructions file</content>
</entry>
<entry>
<title>docs(AGENTS): prefer git worktrees for branch/multi-step work</title>
<updated>2026-07-07T10:56:51Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-07-07T10:56:51Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=98099a569e7d9d528a1d5aaf3e3ed44014710ff3'/>
<id>urn:sha1:98099a569e7d9d528a1d5aaf3e3ed44014710ff3</id>
<content type='text'>
Direct agents to work in a git worktree rather than switching the shared
primary checkout's branch. Concurrent sessions share that checkout, so a
mid-flight branch switch disrupts the other sessions and can silently
point a review, build, or commit at the wrong diff. CLAUDE.md is a
symlink to AGENTS.md, so both pick this up.

Co-Authored-By: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
</content>
</entry>
<entry>
<title>Address Copilot review; move release process into the make-release skill</title>
<updated>2026-06-30T02:10:50Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-30T02:10:50Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=ce23b8d72e18398873d4e5deb8e38206218aea3d'/>
<id>urn:sha1:ce23b8d72e18398873d4e5deb8e38206218aea3d</id>
<content type='text'>
- README: restore the separate CH32V103 / CH583,CH582 rows in the Supported
  CPUs table — the merged row wrongly applied "ISO data loss [2]" to CH583/2
- Fix typos in historical changelog entries (santiy, Venndor, dynamnic, bagde,
  masstorage, techinical, walkaround, "Update Update") flagged by Copilot
- Replace the AGENTS.md Release section with a pointer to the make-release
  skill; add a Finalize step (maintainer commit/tag/push + GitHub release) to
  the skill so nothing is lost

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Bump version to 0.21.0; rework changelog, contributors, and docs</title>
<updated>2026-06-29T16:38:01Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-29T16:38:01Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=c887bd907c6ca5d06c8db69039b2811079f7731c'/>
<id>urn:sha1:c887bd907c6ca5d06c8db69039b2811079f7731c</id>
<content type='text'>
Release:
- Bump version to 0.21.0 and regenerate tusb_option.h, library.json,
  repository.yml, sonar-project.properties, boards.rst, dependencies.rst
- Add 0.21.0 release notes and split the changelog into per-release files
  under docs/info/changelog/ (date out of title, driver/class groups as
  sub-headings, DCD &amp; HCD section after Device/Host stacks)

Contributors:
- Credit each release's PR authors in a Contributors section
- Drop the curated contributors page; add MAINTAINERS.rst

Docs:
- Update Code of Conduct to Contributor Covenant 3.0 (keep it in the repo,
  remove it from the built docs)
- Sidebar: add a home entry, rename the group to "Documentation", move
  Changelog into it, add a GitHub Sponsor button, merge external links,
  rename FAQ; hide the inline toctree on the landing page
- Add the make-release skill and update the AGENTS.md release process

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>docs: add build-doc tooling and a README for every example</title>
<updated>2026-06-29T03:16:25Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-29T03:16:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=4b1c8d16f72bb5d8f2eb8a2e8dde35abdd2f2a88'/>
<id>urn:sha1:4b1c8d16f72bb5d8f2eb8a2e8dde35abdd2f2a88</id>
<content type='text'>
Documentation tooling:
- Add the `build-doc` skill and `tools/build_doc.py` wrapper for local
  Sphinx builds (clean / -W / open).
- Enable Markdown (MyST) in conf.py and auto-collect
  examples/{device,host,dual}/*/README.md into a 3-level Examples nav
  (Examples &gt; Device/Host/Dual &gt; example), noting each page's source
  location and normalizing headings to a single H1.
- Remove the stale `.claude/commands/build-doc.md`; point the AGENTS.md
  Documentation section at the skill.

Example docs:
- Add a README.md for every device/host/dual example: what it does, USB
  interface table, notable tusb_config.h settings, generic CMake + Make
  build steps, and how to try it.
- Fold each *_freertos variant into its base README, noting the FreeRTOS
  source path and any RTOS-specific behavior.

Generated docs/examples/ output is git-ignored. Builds clean with
`sphinx-build -W`.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Merge pull request #3695 from hathach/claude/adoring-pasteur-kbaFa</title>
<updated>2026-06-11T16:19:17Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-11T16:19:17Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=5014146fef1aac07362ee35c0c361b8475f7636d'/>
<id>urn:sha1:5014146fef1aac07362ee35c0c361b8475f7636d</id>
<content type='text'>
Add pvs skill to run PVS-Studio analysis for a board</content>
</entry>
<entry>
<title>pvs skill: harden credentials parsing; note compile DB is exported by default</title>
<updated>2026-06-11T14:56:16Z</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-06-11T14:56:16Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=dd31ba4530f1904b0d2d83fa6b008502354fb400'/>
<id>urn:sha1:dd31ba4530f1904b0d2d83fa6b008502354fb400</id>
<content type='text'>
- Parse PVS_STUDIO_CREDENTIALS into two quoted fields (no glob/word-split).
- AGENTS.md: examples build sets CMAKE_EXPORT_COMPILE_COMMANDS ON already.

Addresses Copilot review on #3695.
</content>
</entry>
<entry>
<title>pvs skill: mirror CI --security-related-issues flag and ignore SARIF output</title>
<updated>2026-06-11T14:53:24Z</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-06-11T14:53:24Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=65b2aeb6a92a4681ec495a4d89565862dfaa55cf'/>
<id>urn:sha1:65b2aeb6a92a4681ec495a4d89565862dfaa55cf</id>
<content type='text'>
- Add --security-related-issues to run_pvs.sh and AGENTS.md analyze commands
  so local runs reproduce the CI SAST classification (static_analysis.yml).
- Ignore *.sarif so a successful run leaves the worktree clean.

Addresses Codex review on #3695.
</content>
</entry>
<entry>
<title>Fix stm32f723disco host/cdc_msc_hid HIL: UART RX starvation + DWC2 DMA split-IN NAK storm (#3677)</title>
<updated>2026-06-11T03:17:28Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-11T03:17:28Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=dffc57135846a4b00aca06b2f588daa6d13b67ef'/>
<id>urn:sha1:dffc57135846a4b00aca06b2f588daa6d13b67ef</id>
<content type='text'>
Fix stm32f723disco host HIL: UART RX starvation + DWC2 split bulk NAK/XactErr handling (#3677)
stm32f7 BSP — UART RX starvation
- The host console USART shared interrupt priority with the USB OTG ISR, so a long
  OTG interrupt could starve RXNE and drop received bytes. Raise the USART RX IRQ
  above OTG_FS/OTG_HS in both the bare-metal and FreeRTOS init paths, guarded by
  #ifdef UART_ID so boards without a UART console keep the default OTG priority.

dwc2 host — split NAK/XactErr handling
- Slave mode: a persistently-NAKing split bulk/control IN poll re-armed the
  start-split immediately, storming the ISR and starving task context. Throttle by
  disabling the channel and re-arming on the resulting halt (no frame deferral).
- Buffer-DMA mode: a pure split bulk-OUT NAK was unhandled, leaving the channel
  halted and stalling the transfer — the dominant cause of CDC echo truncation.
  Handle it by rewinding the buffer pointers and retrying the start-split
  (Programming Guide v4.20a 5.1.4.2).
- Buffer-DMA mode: a split bulk-OUT XactErr was retried immediately, exhausting
  HCD_XFER_ERROR_MAX before the transient cleared. Throttle via channel_disable +
  re-arm to give the hub TT a recovery gap, mirroring slave mode.
- All three are scoped to split transfers (hcsplt.split_en); non-split NAK/XactErr
  keep the core-handled / immediate-retry behavior. The OUT XactErr throttle also
  excludes periodic split, where channel_disable() is a no-op and would wedge the
  channel. The nak_disabled flag is generalized to retry_disabled and honors
  xfer-&gt;closing so an endpoint close during a throttled retry tears down cleanly.

Verified on stm32f723disco HIL (slave + CFG_TUH_DWC2_DMA_ENABLE): host/cdc_msc_hid,
msc_file_explorer, and device_info all pass on both variants; DMA CDC echo went
from ~15-25% raw failure to 10/10 clean.</content>
</entry>
<entry>
<title>Compact pvs skill; fix PVS-Studio -S/--dump-files docs in AGENTS.md</title>
<updated>2026-06-05T07:30:23Z</updated>
<author>
<name>Claude</name>
<email>noreply@anthropic.com</email>
</author>
<published>2026-06-05T07:30:23Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=c3b4ef03aa26f29d5ab28313130b677c1ea00c51'/>
<id>urn:sha1:c3b4ef03aa26f29d5ab28313130b677c1ea00c51</id>
<content type='text'>
The AGENTS.md '-S src/foo.c' example was inaccurate: -S takes a plaintext
file listing source paths, not paths directly. Drop --dump-files from the
documented commands (it scatters .PVS-Studio.i/.cfg dumps across the tree;
FP-debugging only) and reference the new pvs skill.

https://claude.ai/code/session_015inWmFhRYSq17CxMukdoqX
</content>
</entry>
</feed>
