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.174: the footprint tier waited 6s for a window that needs 10-30s on a cold pcbnew, so it declared failure while the editor was opening behind it
5 files changed
+15−8
BRIDGE_VERSION+1−1@@ -1 +1 @@-0.9.173+0.9.174
adom-bridge-kicad-manifest.json+5−5@@ -1,15 +1,15 @@ { "manifest_version": 1, "name": "kicad",- "version": "0.9.173",- "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.173/adom-bridge-kicad-v0.9.173.zip",- "sha256": "e91db7bcd39cc72cd1ee6cc6790d6dbab1c40ba4c56858600018ea3d32e70b3a",- "size": 447228,+ "version": "0.9.174",+ "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.174/adom-bridge-kicad-v0.9.174.zip",+ "sha256": "13daa131f7541d37af456a73176201d88ce6a194db39ff056cfe3498e9263712",+ "size": 447445, "verbPrefixes": [ "kicad_" ], "healthEndpoint": "/status",- "released_at": "2026-08-19T08:48:03Z",+ "released_at": "2026-08-19T08:51:29Z", "hero": "https://wiki.adom.inc/blob/app/kicad-bridge/kicad-hero.png", "languages": [ "Python",
adom-bridge-kicad-v0.9.174.zipadded⋯ 1 unchanged line ⋯
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "kicad", "displayName": "KiCad EDA",- "version": "0.9.173",+ "version": "0.9.174", "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_footprint_editor.py+8−1@@ -505,7 +505,14 @@ def handle_open_footprint_editor(kicad_info: dict, args: dict) -> dict: ) pathways_tried.append("pcbnew" if tier0.get("success") else f"pcbnew-failed:{tier0.get('errorCode','')}") if tier0.get("success"):- for _ in range(12):+ # 0.9.174: 6s was far too short. The Footprint Editor is a whole+ # frame that loads the footprint libraries as it opens; on a cold+ # pcbnew it routinely needs 10-30s. The post SUCCEEDS, the window+ # simply is not there yet - so the tier declared failure and fell+ # through to paths that cannot work, and the caller was told the+ # background path had failed while the editor was opening behind+ # it (John, live). Same 30s ceiling the other tiers use.+ for _ in range(60): time.sleep(0.5) fp_hwnd = _find_footprint_editor() if fp_hwnd: