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.348: Focus guardian identity survives hwnd reuse; editors spawn without activation (pre-promotion run findings)
3 files changed
+13−2
BRIDGE_VERSION+1−1@@ -1 +1 @@-0.9.347+0.9.348
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "kicad", "displayName": "KiCad EDA",- "version": "0.9.347",+ "version": "0.9.348", "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_files.py+11@@ -43,8 +43,19 @@ def _open_file(kicad_info: dict, args: dict, exe_key: str, file_type_label: str) } try:+ # Launch WITHOUT activation (SW_SHOWNOACTIVATE), the way launch.py starts+ # kicad.exe: ConfRoomROG 2026-09-08, eeschema opened by this Popen landed on+ # top of the user's Chrome window (a measured steal with a victim). The focus+ # guardian still catches a later self-raise; this stops the first one.+ _si = None+ try:+ from handlers import win_focus+ _si = win_focus.background_startupinfo()+ except Exception: # pylint: disable=broad-except+ _si = None _p = subprocess.Popen( [exe, str(path)],+ startupinfo=_si, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, )