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.148: guardian arms without an hwnd (the vestigial not-hwnd early-return silently disabled ALL post-verb guards whenever foreground capture returned None - the root of every unguarded gap this weekend)
5 files changed
+12−8
BRIDGE_VERSION+1−1@@ -1 +1 @@-0.9.147+0.9.148
adom-bridge-kicad-manifest.json+5−5@@ -1,15 +1,15 @@ { "manifest_version": 1, "name": "kicad",- "version": "0.9.147",- "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.147/adom-bridge-kicad-v0.9.147.zip",- "sha256": "527e7f27a30724c00955686b2f98c45e883fdc8855db06b4e84aad3b58f635c5",- "size": 419197,+ "version": "0.9.148",+ "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.148/adom-bridge-kicad-v0.9.148.zip",+ "sha256": "e8cbef9b98554667ef37777118316f6ca38508ce2a6edc3805fd9c5beda8c421",+ "size": 419322, "verbPrefixes": [ "kicad_" ], "healthEndpoint": "/status",- "released_at": "2026-08-17T14:35:29Z",+ "released_at": "2026-08-17T14:36:47Z", "hero": "https://wiki.adom.inc/blob/app/kicad-bridge/kicad-hero.png", "languages": [ "Python",
adom-bridge-kicad-v0.9.148.zipadded⋯ 1 unchanged line ⋯
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "kicad", "displayName": "KiCad EDA",- "version": "0.9.147",+ "version": "0.9.148", "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/win_focus.py+5−1@@ -753,7 +753,11 @@ def restore_foreground_persistent(hwnd, seconds: float = 6.0, interval: float = directly below the user's window, so it doesn't sit painted over their work even unfocused. Screenshots/PrintWindow keep working on it there. Non-blocking: returns immediately; the response isn't delayed."""- if not IS_WINDOWS or not hwnd:+ # 2026-08-17: hwnd is VESTIGIAL post-0.9.104 (the guardian touches only+ # KiCad windows, never the user's) — but `not hwnd` still gated the whole+ # arm, so whenever foreground capture returned None NO guard ever armed+ # and the parking sweep went idle mid-editor-load. Arm regardless.+ if not IS_WINDOWS: return import threading import time as _t