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
v0.9.129: PM plugin bind-wait 15s -> 45s (KiCad starts the PM's embedded Python lazily; a fresh 10.0.5 PM takes 30-45s before the plugin can answer)
5 files changed
+13−9
BRIDGE_VERSION+1−1@@ -1 +1 @@-0.9.128+0.9.129
adom-bridge-kicad-manifest.json+5−5@@ -1,15 +1,15 @@ { "manifest_version": 1, "name": "kicad",- "version": "0.9.128",- "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.128/adom-bridge-kicad-v0.9.128.zip",- "sha256": "b9b67d49d99e4610de41af67a85a6b3c376359735e957e12790a6b0656251293",- "size": 413017,+ "version": "0.9.129",+ "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.129/adom-bridge-kicad-v0.9.129.zip",+ "sha256": "a4c2263511a6c4f953f4110695f26c89e7512ac333f136b725f46fba02f2a355",+ "size": 413143, "verbPrefixes": [ "kicad_" ], "healthEndpoint": "/status",- "released_at": "2026-08-16T18:24:36Z",+ "released_at": "2026-08-16T18:32:28Z", "hero": "https://wiki.adom.inc/blob/app/kicad-bridge/kicad-hero.png", "languages": [ "Python",
adom-bridge-kicad-v0.9.129.zipadded⋯ 1 unchanged line ⋯
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "kicad", "displayName": "KiCad EDA",- "version": "0.9.128",+ "version": "0.9.129", "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.",
handlers/open_symbol_editor.py+6−2@@ -444,8 +444,12 @@ def handle_open_symbol_editor(kicad_info: dict, args: dict) -> dict: # 1a's eeschema id can post 'successfully' while opening # nothing — 0.9.127 and earlier treated that as terminal and # never tried 1b (the demo's beats 1-3 died exactly there).- # The plugin can still be binding on a fresh PM: retry ~15s.- for _attempt in range(5):+ # The plugin binds when the PM's EMBEDDED PYTHON comes up,+ # which KiCad starts lazily — a fresh PM can take 30-45s+ # (measured live on 10.0.5, 2026-08-16; 15s of retries all hit+ # plugin_not_running while a minutes-old PM answered+ # instantly). Retry for up to ~45s.+ for _attempt in range(15): sym_hwnd, tier1 = _post_and_wait( "kicad", KICAD_SYMBOL_EDITOR_CMD_ID, "kicad-20011", 24) if sym_hwnd: