You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Meta / tracking issue: burn down all open fbuild issues, one at a time
This is a sequencing/tracking issue for the 5 currently-open issues on FastLED/fbuild. Each is worked and merged one by one in the order below. The order is chosen by dependency first, then user-facing impact, then scope (smallest self-contained work before the large architectural refactor). Check each box as its PR merges; this meta auto-closes when all are CLOSED.
These three share one subsystem (fbuild-core::usb resolver + the online-data VID/PID pipeline) and should land together, smallest/most-acute first so each builds on the last.
Why first: concrete user-facing bug (a physically-attached Teensy is invisible to port scan), smallest scope, unblocks the "port-scan before declaring a board absent" agent workflow.
Work: (1) stop filtering serial ports on PnP Status == OK so Unknown/phantom/composite MI_00 interfaces enumerate; (2) add PJRC PIDs to the resolver (16C0:0483 USB Serial, 16C0:0478 HalfKay, 16C0:0489 Serial+MIDI+Audio, 04D0..04D9); (3) bonus: surface the MI_xx composite-interface index.
Why fourth: independent of the USB cluster and self-contained, with high CI payoff (replaces the fragile six-path actions/cache@v4 workaround; parallel walk/extract fixes the Windows-Defender untar throttle). Modeled on soldr's cache_lib::save/load.
v1 scope:save/restore/list/verify subcommands, hand-written prost manifest (no protoc), --include/--exclude/--zstd-level(=9)/--threads(=num_cpus)/--zccache-sidecar, round-trip tests per slice on Linux + Windows. Delta archives, mtime replay, sketch caching, and extra slices are explicitly deferred to v2.
Phase 3 — Architecture (largest refactor, do last)
Why last: largest architectural change; touches every per-platform orchestrator. Doing it after the smaller wins means the codebase is stable and the change gets full design attention.
Work: define typed EnvNamespace { platform, board, framework, env_id }; thread it through every package fetcher, compile invocation, cache path, and output dir; propagate [env:*]build_flags to framework/lib/sketch compiles (currently dropped on nxplpc); env-scoped lib cache keys; namespace-keyed deployer dispatch; docs/namespacing.md. Success = one sample sketch builds on uno, teensy40, lpc845brk, esp32s3, esp32c6, teensy41 from one project root with one build_flags mechanism.
Working rules for each item
Confirm the issue is still open and re-read its body (bodies drift).
Plan non-trivial work in the issue thread first (per repo CLAUDE.md).
One PR per issue, conventional-commit title, TDD (red → green → refactor).
soldr cargo for Rust, uv run for Python — never bare cargo/python.
Merge, tick the box here, move to the next. Do not parallelize across phases.
Dependency summary
#962 ──▶ #959 ──▶ #722 (rollup of #723–#740) [USB cluster, sequential]
#527 [independent, after cluster]
#574 [independent, last]
🤖 Filed via Claude Code — meta tracking issue for the open-issue burn-down.
Meta / tracking issue: burn down all open fbuild issues, one at a time
This is a sequencing/tracking issue for the 5 currently-open issues on
FastLED/fbuild. Each is worked and merged one by one in the order below. The order is chosen by dependency first, then user-facing impact, then scope (smallest self-contained work before the large architectural refactor). Check each box as its PR merges; this meta auto-closes when all are CLOSED.Snapshot taken 2026-07-08. Open issues: #962, #959, #722, #527, #574.
Phase 1 — USB VID/PID resolution cluster
These three share one subsystem (
fbuild-core::usbresolver + theonline-dataVID/PID pipeline) and should land together, smallest/most-acute first so each builds on the last.fbuild port scan misses all PJRC/Teensy (VID 16C0) serial ports + no vendor/product resolution for them #962 (DONE — PR fix(serial): list Windows Status=Unknown ports so Teensy (16C0) is visible (#962) #1011 merged) —
fbuild port scanmisses all PJRC/Teensy (VID 16C0) ports + no vendor/product resolutionport scan), smallest scope, unblocks the "port-scan before declaring a board absent" agent workflow.Status == OKsoUnknown/phantom/compositeMI_00interfaces enumerate; (2) add PJRC PIDs to the resolver (16C0:0483USB Serial,16C0:0478HalfKay,16C0:0489Serial+MIDI+Audio,04D0..04D9); (3) bonus: surface theMI_xxcomposite-interface index.follow up all known vids needs built in embedding #959 (DONE — PR feat(config): embed MCU→VID heuristic so null-vid boards resolve offline (#959) #1012 merged) — all known VIDs need built-in embedding (not online fallback)
feat(online-data): ingest per-board VID:PID tables from upstream vendor manifests #722 (DONE — PR feat(usb): embed refreshed per-board VID:PID archive, drop hardcoded table (#722) #1013 merged; all sub-issues vid-ingest: Espressif Systems (0x303A — ESP32 native USB) #723–vid-ingest: final end-to-end verification (after #723–#739 close) #740 closed) — ingest per-board VID:PID tables from upstream vendor manifests (
online-data)0x303A, Raspberry Pi0x2E8A) + tier-2/3 Arduino-coreboards.txtparsers → newonline-data/data/usb-board-pids.json+ SQLitevidpidpopulation + runtime overlay, sopretty(0x303A, 0x4002)returns "Unexpected Maker TinyS2" instead of a placeholder.Phase 2 — CI cache
fbuild cache save / restorefor toolchains + platforms + framework + zccache sidecar #527 (DONE — PR feat(cli): first-classfbuild cache save/restore/list/verify(#527) #1014 merged) — first-classfbuild cache save / restorefor toolchains + platforms + framework + zccache sidecaractions/cache@v4workaround; parallel walk/extract fixes the Windows-Defender untar throttle). Modeled on soldr'scache_lib::save/load.save/restore/list/verifysubcommands, hand-written prost manifest (noprotoc),--include/--exclude/--zstd-level(=9)/--threads(=num_cpus)/--zccache-sidecar, round-trip tests per slice on Linux + Windows. Delta archives, mtime replay, sketch caching, and extra slices are explicitly deferred to v2.Phase 3 — Architecture (largest refactor, do last)
platformio.ini [env:*]EnvNamespace { platform, board, framework, env_id }; thread it through every package fetcher, compile invocation, cache path, and output dir; propagate[env:*]build_flagsto framework/lib/sketch compiles (currently dropped on nxplpc); env-scoped lib cache keys; namespace-keyed deployer dispatch;docs/namespacing.md. Success = one sample sketch builds on uno, teensy40, lpc845brk, esp32s3, esp32c6, teensy41 from one project root with onebuild_flagsmechanism.Working rules for each item
CLAUDE.md).soldr cargofor Rust,uv runfor Python — never barecargo/python.Dependency summary
🤖 Filed via Claude Code — meta tracking issue for the open-issue burn-down.