Skip to content

fix(rp): select exact W/non-W runtime board profile - #1335

Merged
zackees merged 1 commit into
mainfrom
feat/rp-exact-runtime-profile
Aug 21, 2026
Merged

fix(rp): select exact W/non-W runtime board profile#1335
zackees merged 1 commit into
mainfrom
feat/rp-exact-runtime-profile

Conversation

@zackees

@zackees zackees commented Aug 21, 2026

Copy link
Copy Markdown
Member

Summary

  • select Raspberry Pi application CDC ports from the requested FastLED/boards runtime identities
  • canonicalize supported PlatformIO Pico aliases before registry lookup
  • retain generation matching only when no exact runtime profile is published
  • keep explicit ports, unhealthy-device exclusion, BOOTSEL fallback, and duplicate-device fail-closed behavior

Validation

  • RED: exact-profile selector initially failed to compile because the board-aware partitioner did not exist
  • RED: alias production-path test initially failed to compile because canonical profile selection did not exist
  • GREEN: 5 focused Raspberry Pi deploy-port tests
  • GREEN: fbuild-config (215 passed, 1 ignored)
  • GREEN: fbuild-daemon (238 passed, 1 ignored), plus integration/doc tests
  • GREEN: rustfmt check
  • GREEN: clippy for both affected crates with -D warnings
  • GREEN: clud-review clean after resolving its alias-path finding

Closes #1332

Coordinated with FastLED/FastLED#3836

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@zackees, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 43 minutes

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

An organization admin can change what happens after included review limits in Billing.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 323304ea-8b7e-42ad-baa9-9c872ffcff4e

📥 Commits

Reviewing files that changed from the base of the PR and between 7f78bc2 and 95d77ff.

📒 Files selected for processing (2)
  • crates/fbuild-config/src/board/methods.rs
  • crates/fbuild-daemon/src/handlers/operations/deploy_port.rs

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
zackees merged commit 2d65b3f into main Aug 21, 2026
92 of 97 checks passed
@fastled-project-sync fastled-project-sync Bot moved this to Triage in FastLED Tracker Aug 21, 2026
pull Bot pushed a commit to manmuqingshan/FastLED that referenced this pull request Aug 22, 2026
USB board identity belongs in https://github.com/FastLED/boards, which
publishes a zstd-compressed protobuf (usb-vids.proto.zstd) that fbuild ingests
both at build time and as its offline fallback. FastLED consumes it through
fbuild. Nothing in this repo may be the place a VID:PID first exists.

- Add agents/docs/usb-vid-pid-registry.md: the rule, the publication pipeline,
  the protobuf schema, what to do when an identity is missing, and the fbuild
  version-cascade procedure.
- Add the rule to CLAUDE.md (Core Rules + task table) and cross-link it from
  hardware-autoresearch.md and driver-bringup-postmortems.md.
- Freeze the two legacy tables in place with pointers at the point of
  temptation: ENVIRONMENT_TO_VCOM_VID_PIDS (port_utils.py) and
  BOARD_FINGERPRINTS (serial_probe.py). Neither may gain entries.
- Add ci/util/audit_usb_registry.py so migration status is re-derived rather
  than trusted: it fetches the live artifact, decodes it, and exits non-zero
  while any audited literal is unresolvable.

Audit result (2026-08-22, 36 vendors / 1056 products): 14 of 15 literals
resolve upstream. The lone gap is FTDI FT232H 0403:6014, absent registry-wide
and filed as FastLED/boards#60 — tracked there rather than papered over here.

Cascade the pin to fbuild 2.5.19, which selects the exact runtime RP board
profile from the verified registry instead of a local VID/PID guess
(FastLED/fbuild#1335). Refs FastLED#3836.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to 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.

fix(rp): select exact W/non-W runtime board profile

1 participant