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.111: faulthandler at boot (issue #27) - native crash now dumps all thread stacks to stderr, which ab 2.0.44+ captures into bridge-logs/kicad.log
5 files changed
+17−7
BRIDGE_VERSION+1−1@@ -1 +1 @@-0.9.110+0.9.111
adom-bridge-kicad-manifest.json+5−5@@ -1,15 +1,15 @@ { "manifest_version": 1, "name": "kicad",- "version": "0.9.110",- "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.110/adom-bridge-kicad-v0.9.110.zip",- "sha256": "61601524d3d1052914b6e00e7fe22378cb63b015eb3bb496f8e0e722f1059465",- "size": 407549,+ "version": "0.9.111",+ "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.111/adom-bridge-kicad-v0.9.111.zip",+ "sha256": "75a8178fff97a637f9b57e1c53c9e57796df45e736e2019a20cc5d79b4c7287c",+ "size": 407709, "verbPrefixes": [ "kicad_" ], "healthEndpoint": "/status",- "released_at": "2026-08-16T00:48:42Z",+ "released_at": "2026-08-16T01:08:24Z", "hero": "https://wiki.adom.inc/blob/app/kicad-bridge/kicad-hero.png", "languages": [ "Python",
adom-bridge-kicad-v0.9.111.zipadded⋯ 1 unchanged line ⋯
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "kicad", "displayName": "KiCad EDA",- "version": "0.9.110",+ "version": "0.9.111", "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.",
server.py+10@@ -991,6 +991,16 @@ def main(): except Exception: pass + # Issue #27: a native crash (ctypes/GDI) once killed the process silently.+ # faulthandler dumps every thread's Python stack to stderr on a hard fault —+ # and ab 2.0.44+ captures our stderr into ~/.adom/bridge-logs/kicad.log, so+ # the next native death leaves a usable trace instead of nothing.+ try:+ import faulthandler+ faulthandler.enable(file=sys.stderr, all_threads=True)+ except Exception:+ pass+ port = DEFAULT_PORT if "--port" in sys.argv: idx = sys.argv.index("--port")