Skip to content

refactor(usb): source compile identities from boards registry - #1061

Merged
zackees merged 1 commit into
mainfrom
refactor/registry-compile-usb-identity
Jul 15, 2026
Merged

refactor(usb): source compile identities from boards registry#1061
zackees merged 1 commit into
mainfrom
refactor/registry-compile-usb-identity

Conversation

@zackees

Copy link
Copy Markdown
Member

Advances #1047 and #1049.\n\n- consume digest-verified FastLED/boards primary compile identities\n- validate that each primary is exact and belongs to the board compile set\n- remove the MCU-to-VID heuristic\n- strip all 349 affected bundled board snapshots (516 VID/PID fields; zero remain)\n- stop validation/enrichment from copying PlatformIO hwids into fbuild assets\n- preserve explicit project-local overrides and ESP32 framework-owned defines\n- add live Pico 1/Pico 2 publication and compile-define acceptance\n\nUpstream dependency merged and published: FastLED/boards#54.\n\nValidation:\n- fbuild-core/config suites pass\n- strict clippy passes for both crates\n- live published profiles: rpipico=2e8a:000a, rpipico2=2e8a:000f, rpipicow=2e8a:f00a\n- live registry-to-Pico define test passes\n- independent review approved with no blockers

@zackees
zackees merged commit 2ed3a1a into mainJul 15, 2026
79 of 92 checks passed
@zackees
zackees deleted the refactor/registry-compile-usb-identity branch July 15, 2026 04:19
@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 360 files, which is 210 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: aaaecf98-a628-4b44-ac3e-19c052d5f6f8

📥 Commits

Reviewing files that changed from the base of the PR and between 7e84d97 and aeebd39.

📒 Files selected for processing (360)
  • ci/validate_boards.py
  • crates/fbuild-config/assets/boards/json/32u416m.json
  • crates/fbuild-config/assets/boards/json/4d_systems_esp32s3_gen4_r8n16.json
  • crates/fbuild-config/assets/boards/json/LilyPadUSB.json
  • crates/fbuild-config/assets/boards/json/a-star32U4.json
  • crates/fbuild-config/assets/boards/json/adafruit_blm_badge.json
  • crates/fbuild-config/assets/boards/json/adafruit_camera_esp32s3.json
  • crates/fbuild-config/assets/boards/json/adafruit_circuitplayground_m0.json
  • crates/fbuild-config/assets/boards/json/adafruit_clue_nrf52840.json
  • crates/fbuild-config/assets/boards/json/adafruit_cplaynrf52840.json
  • crates/fbuild-config/assets/boards/json/adafruit_crickit_m0.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_esp32s2.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_esp32s2_reversetft.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_esp32s2_tft.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_esp32s3.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_esp32s3_nopsram.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_esp32s3_reversetft.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_esp32s3_tft.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_m0.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_m0_express.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_m4.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_m4_can.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_nrf52832.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_nrf52840.json
  • crates/fbuild-config/assets/boards/json/adafruit_feather_nrf52840_sense.json
  • crates/fbuild-config/assets/boards/json/adafruit_funhouse_esp32s2.json
  • crates/fbuild-config/assets/boards/json/adafruit_gemma_m0.json
  • crates/fbuild-config/assets/boards/json/adafruit_grandcentral_m4.json
  • crates/fbuild-config/assets/boards/json/adafruit_hallowing.json
  • crates/fbuild-config/assets/boards/json/adafruit_hallowing_m4.json
  • crates/fbuild-config/assets/boards/json/adafruit_itsybitsy_m0.json
  • crates/fbuild-config/assets/boards/json/adafruit_itsybitsy_m4.json
  • crates/fbuild-config/assets/boards/json/adafruit_itsybitsy_nrf52840.json
  • crates/fbuild-config/assets/boards/json/adafruit_ledglasses_nrf52840.json
  • crates/fbuild-config/assets/boards/json/adafruit_magtag29_esp32s2.json
  • crates/fbuild-config/assets/boards/json/adafruit_matrix_portal_m4.json
  • crates/fbuild-config/assets/boards/json/adafruit_matrixportal_esp32s3.json
  • crates/fbuild-config/assets/boards/json/adafruit_metro_esp32s2.json
  • crates/fbuild-config/assets/boards/json/adafruit_metro_esp32s3.json
  • crates/fbuild-config/assets/boards/json/adafruit_metro_m0.json
  • crates/fbuild-config/assets/boards/json/adafruit_metro_m4.json
  • crates/fbuild-config/assets/boards/json/adafruit_metro_m4_airliftlite.json
  • crates/fbuild-config/assets/boards/json/adafruit_metro_nrf52840.json
  • crates/fbuild-config/assets/boards/json/adafruit_monster_m4sk.json
  • crates/fbuild-config/assets/boards/json/adafruit_neokeytrinkey_m0.json
  • crates/fbuild-config/assets/boards/json/adafruit_neotrinkey_m0.json
  • crates/fbuild-config/assets/boards/json/adafruit_pirkey.json
  • crates/fbuild-config/assets/boards/json/adafruit_proxlighttrinkey_m0.json
  • crates/fbuild-config/assets/boards/json/adafruit_pybadge_airlift_m4.json
  • crates/fbuild-config/assets/boards/json/adafruit_pybadge_m4.json
  • crates/fbuild-config/assets/boards/json/adafruit_pygamer_advance_m4.json
  • crates/fbuild-config/assets/boards/json/adafruit_pygamer_m4.json
  • crates/fbuild-config/assets/boards/json/adafruit_pyportal_m4.json
  • crates/fbuild-config/assets/boards/json/adafruit_pyportal_m4_titano.json
  • crates/fbuild-config/assets/boards/json/adafruit_qt_py_m0.json
  • crates/fbuild-config/assets/boards/json/adafruit_qt_py_rp2040.json
  • crates/fbuild-config/assets/boards/json/adafruit_qtpy_esp32c3.json
  • crates/fbuild-config/assets/boards/json/adafruit_qtpy_esp32s2.json
  • crates/fbuild-config/assets/boards/json/adafruit_qtpy_esp32s3_n4r2.json
  • crates/fbuild-config/assets/boards/json/adafruit_qtpy_esp32s3_nopsram.json
  • crates/fbuild-config/assets/boards/json/adafruit_qualia_s3_rgb666.json
  • crates/fbuild-config/assets/boards/json/adafruit_rotarytrinkey_m0.json
  • crates/fbuild-config/assets/boards/json/adafruit_slidetrinkey_m0.json
  • crates/fbuild-config/assets/boards/json/adafruit_trellis_m4.json
  • crates/fbuild-config/assets/boards/json/adafruit_trinket_m0.json
  • crates/fbuild-config/assets/boards/json/arduboy.json
  • crates/fbuild-config/assets/boards/json/arduboy_devkit.json
  • crates/fbuild-config/assets/boards/json/arduino_nano_esp32.json
  • crates/fbuild-config/assets/boards/json/arduino_nano_matter.json
  • crates/fbuild-config/assets/boards/json/atd147_s3.json
  • crates/fbuild-config/assets/boards/json/atmegazero_esp32s2.json
  • crates/fbuild-config/assets/boards/json/aventen_s3_sync.json
  • crates/fbuild-config/assets/boards/json/bee_data_logger.json
  • crates/fbuild-config/assets/boards/json/bee_motion.json
  • crates/fbuild-config/assets/boards/json/bee_motion_s3.json
  • crates/fbuild-config/assets/boards/json/bee_s3.json
  • crates/fbuild-config/assets/boards/json/blackpill_f103c8.json
  • crates/fbuild-config/assets/boards/json/blackpill_f103c8_128.json
  • crates/fbuild-config/assets/boards/json/blend.json
  • crates/fbuild-config/assets/boards/json/blendmicro16.json
  • crates/fbuild-config/assets/boards/json/blendmicro8.json
  • crates/fbuild-config/assets/boards/json/bluefruitmicro.json
  • crates/fbuild-config/assets/boards/json/bluepill_f103c6.json
  • crates/fbuild-config/assets/boards/json/bluepill_f103c8.json
  • crates/fbuild-config/assets/boards/json/bluepill_f103c8_128k.json
  • crates/fbuild-config/assets/boards/json/bpi-centi-s3.json
  • crates/fbuild-config/assets/boards/json/bpi_leaf_s3.json
  • crates/fbuild-config/assets/boards/json/calliopemini_v3.json
  • crates/fbuild-config/assets/boards/json/cezerio_dev_esp32c6.json
  • crates/fbuild-config/assets/boards/json/cezerio_mini_dev_esp32c6.json
  • crates/fbuild-config/assets/boards/json/ch32v003f4p6_evt_r0.json
  • crates/fbuild-config/assets/boards/json/chiwawa.json
  • crates/fbuild-config/assets/boards/json/cicada_l082cz.json
  • crates/fbuild-config/assets/boards/json/circuitplay_classic.json
  • crates/fbuild-config/assets/boards/json/connaxio_espoir.json
  • crates/fbuild-config/assets/boards/json/controllino_maxi.json
  • crates/fbuild-config/assets/boards/json/controllino_maxi_automation.json
  • crates/fbuild-config/assets/boards/json/controllino_mega.json
  • crates/fbuild-config/assets/boards/json/controllino_mini.json
  • crates/fbuild-config/assets/boards/json/cricket_l082cz.json
  • crates/fbuild-config/assets/boards/json/current_ranger.json
  • crates/fbuild-config/assets/boards/json/cytron_maker_feather_aiot_s3.json
  • crates/fbuild-config/assets/boards/json/deneyapkart1Av2.json
  • crates/fbuild-config/assets/boards/json/deneyapmini.json
  • crates/fbuild-config/assets/boards/json/deneyapminiv2.json
  • crates/fbuild-config/assets/boards/json/dfrobot_beetle_esp32c3.json
  • crates/fbuild-config/assets/boards/json/dfrobot_firebeetle2_esp32s3.json
  • crates/fbuild-config/assets/boards/json/dfrobot_romeo_esp32s3.json
  • crates/fbuild-config/assets/boards/json/digix.json
  • crates/fbuild-config/assets/boards/json/due.json
  • crates/fbuild-config/assets/boards/json/dueUSB.json
  • crates/fbuild-config/assets/boards/json/dwenguino.json
  • crates/fbuild-config/assets/boards/json/econode_l082cz.json
  • crates/fbuild-config/assets/boards/json/elektor_uno_r4.json
  • crates/fbuild-config/assets/boards/json/engduinov3.json
  • crates/fbuild-config/assets/boards/json/esp-wrover-kit.json
  • crates/fbuild-config/assets/boards/json/esp32-devkitlipo.json
  • crates/fbuild-config/assets/boards/json/esp32-evb.json
  • crates/fbuild-config/assets/boards/json/esp32-gateway.json
  • crates/fbuild-config/assets/boards/json/esp32-h2-devkitm-1.json
  • crates/fbuild-config/assets/boards/json/esp32-poe-iso.json
  • crates/fbuild-config/assets/boards/json/esp32-poe.json
  • crates/fbuild-config/assets/boards/json/esp32-s2-saola-1.json
  • crates/fbuild-config/assets/boards/json/esp32-s3-devkitc-1-n32r8v.json
  • crates/fbuild-config/assets/boards/json/esp32-s3-devkitc-1.json
  • crates/fbuild-config/assets/boards/json/esp32-s3-devkitc1-n16r16.json
  • crates/fbuild-config/assets/boards/json/esp32-s3-devkitc1-n16r2.json
  • crates/fbuild-config/assets/boards/json/esp32-s3-devkitc1-n16r8.json
  • crates/fbuild-config/assets/boards/json/esp32-s3-devkitc1-n4r2.json
  • crates/fbuild-config/assets/boards/json/esp32-s3-devkitc1-n4r8.json
  • crates/fbuild-config/assets/boards/json/esp32-s3-devkitc1-n8r2.json
  • crates/fbuild-config/assets/boards/json/esp32-s3-devkitc1-n8r8.json
  • crates/fbuild-config/assets/boards/json/esp32-s3-devkitm-1.json
  • crates/fbuild-config/assets/boards/json/esp32-s3-fh4r2.json
  • crates/fbuild-config/assets/boards/json/esp32s3_120_16_8-qio_opi.json
  • crates/fbuild-config/assets/boards/json/esp32s3_powerfeather.json
  • crates/fbuild-config/assets/boards/json/esp32s3box.json
  • crates/fbuild-config/assets/boards/json/esp32s3camlcd.json
  • crates/fbuild-config/assets/boards/json/esp32s3usbotg.json
  • crates/fbuild-config/assets/boards/json/esplora.json
  • crates/fbuild-config/assets/boards/json/feather328p.json
  • crates/fbuild-config/assets/boards/json/feather32u4.json
  • crates/fbuild-config/assets/boards/json/featheresp32-s2.json
  • crates/fbuild-config/assets/boards/json/feenove-esp32-s3-n8r8.json
  • crates/fbuild-config/assets/boards/json/flora8.json
  • crates/fbuild-config/assets/boards/json/franzininho_wifi_esp32s2.json
  • crates/fbuild-config/assets/boards/json/franzininho_wifi_msc_esp32s2.json
  • crates/fbuild-config/assets/boards/json/freenove-esp32-s3-n8r8.json
  • crates/fbuild-config/assets/boards/json/freenove_esp32_s3_wroom.json
  • crates/fbuild-config/assets/boards/json/ftduino.json
  • crates/fbuild-config/assets/boards/json/fysetc_f6_13.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103C8.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103CB.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103R8.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103RB.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103RC.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103RE.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103T8.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103TB.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103VB.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103VC.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103VD.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103VE.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103ZC.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103ZD.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F103ZE.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F407IGT6.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F407VET6.json
  • crates/fbuild-config/assets/boards/json/genericSTM32F407VGT6.json
  • crates/fbuild-config/assets/boards/json/giga_r1_m4.json
  • crates/fbuild-config/assets/boards/json/giga_r1_m7.json
  • crates/fbuild-config/assets/boards/json/gnat_l082cz.json
  • crates/fbuild-config/assets/boards/json/grasshopper_l082cz.json
  • crates/fbuild-config/assets/boards/json/heltec_wifi_kit_32_V3.json
  • crates/fbuild-config/assets/boards/json/heltec_wifi_lora_32_V3.json
  • crates/fbuild-config/assets/boards/json/huidu_hd_wf2.json
  • crates/fbuild-config/assets/boards/json/huidu_hd_wf4.json
  • crates/fbuild-config/assets/boards/json/hy_tinystm103tb.json
  • crates/fbuild-config/assets/boards/json/itsybitsy32u4_3V.json
  • crates/fbuild-config/assets/boards/json/itsybitsy32u4_5V.json
  • crates/fbuild-config/assets/boards/json/leonardo.json
  • crates/fbuild-config/assets/boards/json/leonardoeth.json
  • crates/fbuild-config/assets/boards/json/lightup.json
  • crates/fbuild-config/assets/boards/json/lilka_v2.json
  • crates/fbuild-config/assets/boards/json/lilygo-t-display-s3.json
  • crates/fbuild-config/assets/boards/json/lilygo-t-display.json
  • crates/fbuild-config/assets/boards/json/lionbits3.json
  • crates/fbuild-config/assets/boards/json/lolin_c3_mini.json
  • crates/fbuild-config/assets/boards/json/lolin_s2_mini.json
  • crates/fbuild-config/assets/boards/json/lolin_s2_pico.json
  • crates/fbuild-config/assets/boards/json/lolin_s3.json
  • crates/fbuild-config/assets/boards/json/lolin_s3_mini.json
  • crates/fbuild-config/assets/boards/json/lolin_s3_mini_pro.json
  • crates/fbuild-config/assets/boards/json/lolin_s3_pro.json
  • crates/fbuild-config/assets/boards/json/lora32u4II.json
  • crates/fbuild-config/assets/boards/json/lpmsp430f5529.json
  • crates/fbuild-config/assets/boards/json/lpmsp430fr2311.json
  • crates/fbuild-config/assets/boards/json/lpmsp430fr2355.json
  • crates/fbuild-config/assets/boards/json/lpmsp430fr2433.json
  • crates/fbuild-config/assets/boards/json/lpmsp430fr2476.json
  • crates/fbuild-config/assets/boards/json/lpmsp430fr4133.json
  • crates/fbuild-config/assets/boards/json/lpmsp430fr5739.json
  • crates/fbuild-config/assets/boards/json/lpmsp430fr5969.json
  • crates/fbuild-config/assets/boards/json/lpmsp430fr5994.json
  • crates/fbuild-config/assets/boards/json/lpmsp430fr6989.json
  • crates/fbuild-config/assets/boards/json/lpmsp430g2231.json
  • crates/fbuild-config/assets/boards/json/lpmsp430g2452.json
  • crates/fbuild-config/assets/boards/json/lpmsp430g2553.json
  • crates/fbuild-config/assets/boards/json/m5stack-atoms3.json
  • crates/fbuild-config/assets/boards/json/m5stack-cores3.json
  • crates/fbuild-config/assets/boards/json/m5stack-stamps3.json
  • crates/fbuild-config/assets/boards/json/malyanm200_f103cb.json
  • crates/fbuild-config/assets/boards/json/maple.json
  • crates/fbuild-config/assets/boards/json/maple_mini_b20.json
  • crates/fbuild-config/assets/boards/json/maple_mini_origin.json
  • crates/fbuild-config/assets/boards/json/maple_ret6.json
  • crates/fbuild-config/assets/boards/json/megaatmega2560.json
  • crates/fbuild-config/assets/boards/json/micro.json
  • crates/fbuild-config/assets/boards/json/microduino32_flash.json
  • crates/fbuild-config/assets/boards/json/micros2.json
  • crates/fbuild-config/assets/boards/json/minimain_esp32s2.json
  • crates/fbuild-config/assets/boards/json/minitronics20.json
  • crates/fbuild-config/assets/boards/json/mkr1000USB.json
  • crates/fbuild-config/assets/boards/json/mkrfox1200.json
  • crates/fbuild-config/assets/boards/json/mkrgsm1400.json
  • crates/fbuild-config/assets/boards/json/mkrnb1500.json
  • crates/fbuild-config/assets/boards/json/mkrvidor4000.json
  • crates/fbuild-config/assets/boards/json/mkrwan1300.json
  • crates/fbuild-config/assets/boards/json/mkrwan1310.json
  • crates/fbuild-config/assets/boards/json/mkrwifi1010.json
  • crates/fbuild-config/assets/boards/json/mkrzero.json
  • crates/fbuild-config/assets/boards/json/moteino_zero.json
  • crates/fbuild-config/assets/boards/json/motorgo_mini_1.json
  • crates/fbuild-config/assets/boards/json/mzeroUSB.json
  • crates/fbuild-config/assets/boards/json/mzeropro.json
  • crates/fbuild-config/assets/boards/json/mzeroproUSB.json
  • crates/fbuild-config/assets/boards/json/namino_arancio.json
  • crates/fbuild-config/assets/boards/json/namino_rosso.json
  • crates/fbuild-config/assets/boards/json/nano33ble.json
  • crates/fbuild-config/assets/boards/json/nano_33_iot.json
  • crates/fbuild-config/assets/boards/json/nano_every.json
  • crates/fbuild-config/assets/boards/json/nanorp2040connect.json
  • crates/fbuild-config/assets/boards/json/nebulas3.json
  • crates/fbuild-config/assets/boards/json/netduino2plus.json
  • crates/fbuild-config/assets/boards/json/nice_nano.json
  • crates/fbuild-config/assets/boards/json/nicla_sense_me.json
  • crates/fbuild-config/assets/boards/json/nicla_vision.json
  • crates/fbuild-config/assets/boards/json/nicla_vision_m4.json
  • crates/fbuild-config/assets/boards/json/nodemcu.json
  • crates/fbuild-config/assets/boards/json/nrf52840_dk_adafruit.json
  • crates/fbuild-config/assets/boards/json/nrfmicro.json
  • crates/fbuild-config/assets/boards/json/nscreen-32.json
  • crates/fbuild-config/assets/boards/json/one.json
  • crates/fbuild-config/assets/boards/json/opta.json
  • crates/fbuild-config/assets/boards/json/opta_m4.json
  • crates/fbuild-config/assets/boards/json/particle_xenon.json
  • crates/fbuild-config/assets/boards/json/pico.json
  • crates/fbuild-config/assets/boards/json/portenta_h7_m4.json
  • crates/fbuild-config/assets/boards/json/portenta_h7_m7.json
  • crates/fbuild-config/assets/boards/json/prusa_mm_control.json
  • crates/fbuild-config/assets/boards/json/quirkbot.json
  • crates/fbuild-config/assets/boards/json/raytac_mdbt50q_rx.json
  • crates/fbuild-config/assets/boards/json/redpill_esp32s3.json
  • crates/fbuild-config/assets/boards/json/reel_board.json
  • crates/fbuild-config/assets/boards/json/reel_board_v2.json
  • crates/fbuild-config/assets/boards/json/robotControl.json
  • crates/fbuild-config/assets/boards/json/robotMotor.json
  • crates/fbuild-config/assets/boards/json/rpipico.json
  • crates/fbuild-config/assets/boards/json/rpipico2.json
  • crates/fbuild-config/assets/boards/json/rpipicow.json
  • crates/fbuild-config/assets/boards/json/rymcu-esp32-s3-devkitc-1.json
  • crates/fbuild-config/assets/boards/json/rymcu_f407ve.json
  • crates/fbuild-config/assets/boards/json/rymcu_nebulapi_f103ve.json
  • crates/fbuild-config/assets/boards/json/sainSmartDue.json
  • crates/fbuild-config/assets/boards/json/sainSmartDueUSB.json
  • crates/fbuild-config/assets/boards/json/samd21g18a.json
  • crates/fbuild-config/assets/boards/json/seeed_femto.json
  • crates/fbuild-config/assets/boards/json/seeed_wio_lite_mg126.json
  • crates/fbuild-config/assets/boards/json/seeed_wio_terminal.json
  • crates/fbuild-config/assets/boards/json/seeed_xiao.json
  • crates/fbuild-config/assets/boards/json/seeed_xiao_esp32c3.json
  • crates/fbuild-config/assets/boards/json/seeed_xiao_esp32c6.json
  • crates/fbuild-config/assets/boards/json/seeed_xiao_esp32s3.json
  • crates/fbuild-config/assets/boards/json/seeed_xiao_mg24.json
  • crates/fbuild-config/assets/boards/json/seeed_xiao_rp2040.json
  • crates/fbuild-config/assets/boards/json/seeed_zero.json
  • crates/fbuild-config/assets/boards/json/seeeduino.json
  • crates/fbuild-config/assets/boards/json/seeeduino_lorawan.json
  • crates/fbuild-config/assets/boards/json/sensebox_mcu_esp32s2.json
  • crates/fbuild-config/assets/boards/json/smart7688.json
  • crates/fbuild-config/assets/boards/json/sodaq_autonomo.json
  • crates/fbuild-config/assets/boards/json/sodaq_explorer.json
  • crates/fbuild-config/assets/boards/json/sodaq_one.json
  • crates/fbuild-config/assets/boards/json/sodaq_sara.json
  • crates/fbuild-config/assets/boards/json/sodaq_sff.json
  • crates/fbuild-config/assets/boards/json/sparkfun_esp32s2_thing_plus.json
  • crates/fbuild-config/assets/boards/json/sparkfun_esp32s3_thing_plus.json
  • crates/fbuild-config/assets/boards/json/sparkfun_fiov3.json
  • crates/fbuild-config/assets/boards/json/sparkfun_makeymakey.json
  • crates/fbuild-config/assets/boards/json/sparkfun_promicro16.json
  • crates/fbuild-config/assets/boards/json/sparkfun_promicro8.json
  • crates/fbuild-config/assets/boards/json/sparkfun_qduinomini.json
  • crates/fbuild-config/assets/boards/json/sparkfun_qwiic_micro_samd21e.json
  • crates/fbuild-config/assets/boards/json/sparkfun_redboard_turbo.json
  • crates/fbuild-config/assets/boards/json/sparkfun_samd21_9dof.json
  • crates/fbuild-config/assets/boards/json/sparkfun_samd21_dev_usb.json
  • crates/fbuild-config/assets/boards/json/sparkfun_samd21_mini_usb.json
  • crates/fbuild-config/assets/boards/json/sparkfun_samd21_proRF.json
  • crates/fbuild-config/assets/boards/json/sparkfun_samd51_micromod.json
  • crates/fbuild-config/assets/boards/json/sparkfun_samd51_thing_plus.json
  • crates/fbuild-config/assets/boards/json/sparkfun_thingplusmatter.json
  • crates/fbuild-config/assets/boards/json/sparkfun_xrp_controller.json
  • crates/fbuild-config/assets/boards/json/stm32f4stamp.json
  • crates/fbuild-config/assets/boards/json/tamc_termod_s3.json
  • crates/fbuild-config/assets/boards/json/teensy40.json
  • crates/fbuild-config/assets/boards/json/the_things_uno.json
  • crates/fbuild-config/assets/boards/json/tian.json
  • crates/fbuild-config/assets/boards/json/tuinozero96.json
  • crates/fbuild-config/assets/boards/json/um_bling.json
  • crates/fbuild-config/assets/boards/json/um_edges3_d.json
  • crates/fbuild-config/assets/boards/json/um_feathers2.json
  • crates/fbuild-config/assets/boards/json/um_feathers2_neo.json
  • crates/fbuild-config/assets/boards/json/um_feathers3.json
  • crates/fbuild-config/assets/boards/json/um_feathers3_neo.json
  • crates/fbuild-config/assets/boards/json/um_nanos3.json
  • crates/fbuild-config/assets/boards/json/um_omgs3.json
  • crates/fbuild-config/assets/boards/json/um_pros3.json
  • crates/fbuild-config/assets/boards/json/um_rmp.json
  • crates/fbuild-config/assets/boards/json/um_squixl.json
  • crates/fbuild-config/assets/boards/json/um_tinys2.json
  • crates/fbuild-config/assets/boards/json/um_tinys3.json
  • crates/fbuild-config/assets/boards/json/uno.json
  • crates/fbuild-config/assets/boards/json/uno_mini.json
  • crates/fbuild-config/assets/boards/json/uno_pic32.json
  • crates/fbuild-config/assets/boards/json/uno_wifi_rev2.json
  • crates/fbuild-config/assets/boards/json/unphone9.json
  • crates/fbuild-config/assets/boards/json/valtrack_v4_mfw_esp32_c3.json
  • crates/fbuild-config/assets/boards/json/valtrack_v4_vts_esp32_c3.json
  • crates/fbuild-config/assets/boards/json/waveshare_esp32s3_touch_lcd_128.json
  • crates/fbuild-config/assets/boards/json/weactstudio_esp32c3coreboard.json
  • crates/fbuild-config/assets/boards/json/wifiduino32s3.json
  • crates/fbuild-config/assets/boards/json/wt32-sc01-plus.json
  • crates/fbuild-config/assets/boards/json/yb_esp32s3_amp_v2.json
  • crates/fbuild-config/assets/boards/json/yb_esp32s3_amp_v3.json
  • crates/fbuild-config/assets/boards/json/yb_esp32s3_drv.json
  • crates/fbuild-config/assets/boards/json/yb_esp32s3_eth.json
  • crates/fbuild-config/assets/boards/json/yun.json
  • crates/fbuild-config/assets/boards/json/yunmini.json
  • crates/fbuild-config/assets/boards/json/zero.json
  • crates/fbuild-config/assets/boards/json/zeroUSB.json
  • crates/fbuild-config/src/bin/enrich_boards.rs
  • crates/fbuild-config/src/board/loaders.rs
  • crates/fbuild-config/src/board/mcu_vid.rs
  • crates/fbuild-config/src/board/methods.rs
  • crates/fbuild-config/src/board/mod.rs
  • crates/fbuild-config/src/board/tests_common_board_vidpid.rs
  • crates/fbuild-config/src/board/tests_usb_vid.rs
  • crates/fbuild-config/src/board/types.rs
  • crates/fbuild-core/src/usb/profiles.rs
  • docs/usb-vidpid-audit.md

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/registry-compile-usb-identity

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

zackees added a commit to FastLED/boards that referenced this pull request Jul 16, 2026
…d absent (#55)
PlatformIO platform builders fall back to build.hwids[0] for
USB_VID/USB_PID when a board manifest has no explicit build.vid/pid
(atmelsam is the canonical case). The extractor only honored explicit
keys, so every hwids-only manifest published
primary_compile_identity: null — and consumers that source
USB_VID/USB_PID from this registry (FastLED/fbuild#1061) fail to
compile USB cores such as ArduinoCore-samd USBCore.cpp, breaking all
SAMD board builds in fbuild CI.
Mirror the hwids[0] fallback and tag that identity with the compile
purpose so validate_profiles accepts it as primary.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
zackees added a commit that referenced this pull request Jul 16, 2026
…t allowlist, fmt toolchain, SAMD USB defines) (#1084)
* test(ci): align policy tests with blessed workflows and non-Windows hosts
The xwin CRT fixes changed template_native_build.yml's Windows MSVC
branches to 'soldr --no-cache build' without updating the pyo3 policy
test, failing Check Windows on every main commit since. The picotool
combined-failure test asserted the Windows-only WinUSB hint on every
platform, failing Check Ubuntu/macOS. Update the policy expectations
and make format_failure platform-injectable so both hint variants are
asserted on every host.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* docs(serial): unlink rustdoc references to private consts
ENVIRONMENT_TO_VCOM and BOARD_FINGERPRINTS are private; intra-doc
links to them fail 'cargo doc -D warnings' (the Documentation job)
from fbuild-cli and fbuild-serial. Plain code spans instead.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* chore(dylint): allowlist rp2040_picotool.rs for ban_std_pathbuf
The module was split out of rp2040_pqt.rs (which is allowlisted)
without carrying an allowlist entry, failing the Dylint job on every
main commit. NormalizedPath migration remains tracked by the
allowlist-shrink effort.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(ci): provision rustfmt for the pinned toolchain in the fmt job
setup-soldr installs the pinned toolchain with profile=minimal, which
omits rustfmt; on toolchain-cache misses 'cargo fmt' silently fell
back to the runner's newer stable rustfmt and failed with diffs the
pinned 1.94.1 does not produce.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* feat(config): PlatformIO USB define parity for boards without registry vid/pid
#1061 sources USB_VID/USB_PID from the boards registry;
complement it with the rest of PlatformIO's USB define surface:
USB_PRODUCT/USB_MANUFACTURER from board data (gated on usb_product,
quotes stripped, atmelsam arduino-common.py semantics), build.hwids
parsing for project-local PlatformIO-format manifests (bundled
snapshots stay hwids-free — guard extended), usb_product strings for
the five bundled SAMD boards, and SAM fingerprint coverage so define
changes invalidate cached artifacts. The SAMD CI healing itself ships
via the registry (FastLED/boards#55).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(ci): pin formatting style and test quote expectations
* style: format workspace with pinned rustfmt
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

1 participant

@zackees