KiCad - the KiCad Bridge
Public Made by Adomby adom
Drive your own KiCad from an AI, in the background: open every editor, read the whole board as data (the EDA Bridge Standard board model), stack-up, part heights, netlists, place, route, pour, DRC and exports.
show_symbol lands on stock LED:WS2812B-2020 when the caller asked for library Adom (same-name collision, silent cross-library fallback)
kicad_show_symbol can land on a SAME-NAMED symbol in a different library (stock LED:WS2812B-2020) when the caller named Adom
Found while proving a library end to end. The caller asked for WS2812B-2020 in library Adom; the editor ended up on KiCad's stock copy:
requested: {symbolName:"WS2812B-2020", library:"Adom"}
window: "LED:WS2812B-2020 [Read Only Library] - Symbol Editor"
^^^ ^^^^^^^^^^^^^^^^^^^
WS2812B-2020 exists in both the Adom library (installed by the caller) and KiCad's stock LED library. The editor showed the stock one, read-only.
Your error text for this call was otherwise excellent and is what led me here:
symbol FAILED: 'WS2812B-2020' exists in the Adom library on disk but the open Symbol
Editor cannot see it: that editor indexed its libraries when it opened, before this
symbol was added (title: LED:WS2812B-2020 [Read Only Library] - Symbol Editor)
That correctly reports the cache cause (and confirms the same snapshot behaviour applies to the SYMBOL editor, not just footprints - relevant to #44). The collision is a second, independent hazard that the title happens to expose.
Why it is worth its own fix
The failure is loud here only because the cache also bit. Consider the same collision without the cache problem: the editor opens LED:WS2812B-2020, the window title contains the requested part name, and any title-based verification passes. The caller is shown a stock symbol with the right name and told it succeeded, while the symbol they actually installed is never displayed. A user comparing their part against what they see would be looking at someone else's footprint pinout.
That is the false-success class from #42 again, arriving through a different door.
The ask
- Honour
libraryas a constraint, not a hint. If the caller namedAdom, a match inLEDis not a match. - Report what was resolved -
resolvedLibrary(and ideallyresolvedFrom: "requested" | "fallback") so a caller can detect a cross-library landing without parsing a window title. Today the only signal is theLIB:NAMEprefix in the title, which is not something a caller should have to scrape. - If a fallback to another library is ever deliberate, say so in the response rather than silently succeeding.
[Read Only Library]in the title suggests KiCad itself knows the difference.
Reproduction
Any part whose name collides with a KiCad stock library entry. WS2812B-2020 is a good fixture precisely because it is a popular part that ships in stock LED and is also exactly what someone would install into their own library. adom/ws2812b-2020 from the wiki, installed via kicad_install_symbol, then kicad_show_symbol {symbolName:"WS2812B-2020", library:"Adom"}.
Evidence from the same run, for contrast: the footprint and 3D surfaces both resolved correctly to Adom:WS2812B-2020 (4 pads, 2020 package, "Worldsemi - Intelligent Control LED"), so this is specific to the symbol path.