← Commit history

0.9.258: reveal waits for the cold eeschema's plugin to bind (15s) instead of racing it

Colby Knox ·6fe134b999 ·1mo ago ·parent 4f19e97
4 files changed +19−8
BRIDGE_VERSION+1−1
@@ -1 +1 @@-0.9.257\ No newline at end of file+0.9.258\ No newline at end of file
adom-bridge-kicad-manifest.json+5−5
@@ -1,15 +1,15 @@ {   "manifest_version": 1,   "name": "kicad",-  "version": "0.9.257",-  "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.257/adom-bridge-kicad-v0.9.257.zip",-  "sha256": "43e2bde6b49395dfed8089f16d62040c832b7ea89403f623655e10b05a3bf61f",-  "size": 454458,+  "version": "0.9.258",+  "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.258/adom-bridge-kicad-v0.9.258.zip",+  "sha256": "8770e221c66b27ec4ee37a0bd426cd6939ee6fef5439796b50fcf470000ec568",+  "size": 454669,   "verbPrefixes": [     "kicad_"   ],   "healthEndpoint": "/status",-  "released_at": "2026-08-27T21:21:27Z",+  "released_at": "2026-08-27T21:23:18Z",   "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.257",+  "version": "0.9.258",   "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/install_library_bundle.py+12−1
@@ -113,8 +113,19 @@ def _capture_proof(kicad_info: dict, args: dict, lib_name: str, first_symbol: st             # library node by name (plugin 0.9.2 reveal_library; a text filter             # made generic names like 'UI' lose a fuzzy match to other libs).             try:+                import time as _rt                 from handlers.bridge_client import _resolve_plugin, call as _plugin_call-                info, err = _resolve_plugin("eeschema")+                # A cold-started eeschema takes a few seconds to bind its+                # reverse-bridge plugin; wait like the open path does instead+                # of racing it (the capture itself may have used the win32+                # fallback and proves nothing about plugin liveness).+                _deadline = _rt.monotonic() + 15+                info = err = None+                while _rt.monotonic() < _deadline:+                    info, err = _resolve_plugin("eeschema")+                    if info and err is None:+                        break+                    _rt.sleep(1.5)                 if info and err is None:                     rev = _plugin_call(info["port"], "reveal_library",                                        {"libraryName": lib_name}, timeout=20.0)