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
Update 4 file(s)
4 files changed
+16−7
BRIDGE_VERSION+1−1@@ -1 +1 @@-0.9.215+0.9.216
adom-bridge-kicad-manifest.json+5−5@@ -1,15 +1,15 @@ { "manifest_version": 1, "name": "kicad",- "version": "0.9.215",- "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.215/adom-bridge-kicad-v0.9.215.zip",- "sha256": "3930ebde7c53b56f5c1e011f1d68a5495315dca33df7b7b5270e27e145378381",- "size": 483003,+ "version": "0.9.216",+ "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.216/adom-bridge-kicad-v0.9.216.zip",+ "sha256": "dbb8dd91e509f0f7c5f80fa24ec1190dc8bc7331777f64aad304f27ed560273e",+ "size": 483198, "verbPrefixes": [ "kicad_" ], "healthEndpoint": "/status",- "released_at": "2026-08-20T16:20:00Z",+ "released_at": "2026-08-20T18:20:00Z", "hero": "https://wiki.adom.inc/blob/app/kicad-bridge/kicad-hero.png", "languages": [ "Python",
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "kicad", "displayName": "KiCad EDA",- "version": "0.9.215",+ "version": "0.9.216", "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.",
plugin_payload/adom_bridge.py+9@@ -2992,6 +2992,15 @@ def _dispatch(method: str, params: dict) -> Any: return _call_on_ui_thread(_ui_get_schematic_info) if method == "get_open_editors": return _call_on_ui_thread(_ui_get_open_editors)+ if method == "payload_marker":+ # Exists so a caller can tell WHICH payload build a running KiCad has+ # in memory. Wiki #44: the bridge updated on disk while pcbnew kept+ # executing the old payload, and there was no way to see that from+ # outside - the only symptom was "unknown method", which reads like a+ # missing feature rather than a stale process.+ return {"payloadVersion": __version__, "marker": "reload-probe-1",+ "pid": _state["pid"], "exeName": _state["exe_name"],+ "uptimeMs": int(time.time() * 1000) - _STARTED_AT_MS} if method == "probe_footprint": return _call_on_ui_thread(lambda: _ui_probe_footprint( str(params.get("library") or ""), str(params.get("footprint") or "")))