app
KiCad - the KiCad Bridge
Public Made by Adomby adom
Reference implementation of the KiCad bridge: multi-instance Python server, forward path via kicad-cli, reverse path via in-process plugin. Most complex of the three bundled bridges.
← Commit history
0.9.283: Wiki #73: kicad_list_design_rules and kicad_set_design_rules consume adom/pcb-design-rules at call time (fab, layers, process; layers defaults to the board's copper count; stages <stem>.kicad_dru with backup; runs DRC with it). Wiki #62: kicad_list_symbols (bridge inventory + kicadParser), and kicad_show_library resolves an MPN/file name to the real symbol name (exact, case-insensitive, unique prefix) reporting aliasedFrom/aliasHow. Navigation trace no longer implies the filter was not applied when wx answers WM_GETTEXT with ''. kicad-bridge-dev skill records the #71 lessons.
3 files changed
+14−2
BRIDGE_VERSION+1−1@@ -1 +1 @@-0.9.282+0.9.283
SKILL.md+12@@ -234,3 +234,15 @@ If you ever find yourself wanting to talk directly to the KiCad bridge process: ## KiCad's verdict vs the bridge's reader (from 0.9.279) A `.kicad_sym` the bridge's reader balances can still be one KiCad refuses, and KiCad then lists that library EMPTY in the Symbol Editor (one malformed symbol hides the whole file). `kicadParser` on `kicad_adom_library_status`, `kicad_lint_library`, install results and the `kicad_show_library` error is KiCad's own answer: `ok`, `symbols` (KiCad's inventory), `error` (KiCad's words). `kicad_install_symbol` and `kicad_install_library` refuse a file KiCad refuses (`errorCode kicad_refuses_symbol` / `kicad_refuses_library`) and write nothing. If a library is already poisoned: `kicad_adom_library_heal {"mode":"prune","dryRun":true}` names the culprit(s); without `dryRun` it rebuilds from the symbols KiCad accepts and keeps the original as `.pruned.bak`.++### Design rules by fab (from 0.9.283, wiki #73)++Rules live on the wiki page adom/pcb-design-rules and are fetched at call time, so a rule change is a wiki publish, not a bridge release.++- `kicad_list_design_rules {"fab": "jlcpcb"}` (fab optional): fabs, processes, layer counts, file URLs. InstaPCB (`adom-instapcb`) is the house baseline and is listed first.+- `kicad_set_design_rules {"fab": "adom-instapcb", "layers": 2, "boardPath": "C:/.../board.kicad_pcb"}`: downloads the fab's `.kicad_dru`, stages it as `<board stem>.kicad_dru` (KiCad loads that name automatically; an existing file is backed up next to it), then runs DRC with it and returns the violations. `layers` defaults to the board's copper count, `druPath` uses a local file instead, `runDrc:false` only stages, `keepExisting:true` refuses to replace.++### Symbol names vs file names (from 0.9.283, wiki #62)++- `kicad_list_symbols {"libraryName": "Adom"}` (default Adom, or `libraryPath`): the names inside the library, plus `kicadParser.symbols` (what KiCad itself loads).+- `kicad_show_library` resolves an MPN or file name to the real symbol name (exact, then case-insensitive, then a unique prefix match) and reports `aliasedFrom` / `aliasHow`; an ambiguous or missing name is stated in `aliasNote`.
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "kicad", "displayName": "KiCad EDA",- "version": "0.9.282",+ "version": "0.9.283", "description": "Reverse bridge for KiCad \u2014 board/schematic introspection, lint via kicad-cli, plugin install, multi-instance probe, in-process DRC.", "homepage": "https://wiki.adom.inc/adom/adom-bridge", "author": "Adom Inc.",