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.167: the already-current short-circuit skipped 0.9.166's new plugin-dir loader entirely; the up-to-date check now covers every artifact we deploy
5 files changed
+14−8
BRIDGE_VERSION+1−1@@ -1 +1 @@-0.9.166+0.9.167
adom-bridge-kicad-manifest.json+5−5@@ -1,15 +1,15 @@ { "manifest_version": 1, "name": "kicad",- "version": "0.9.166",- "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.166/adom-bridge-kicad-v0.9.166.zip",- "sha256": "d83c5a35c1ee5995fa078e4b12f484a27b4fc5a671f719e8ba675ac85a471a47",- "size": 444512,+ "version": "0.9.167",+ "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.167/adom-bridge-kicad-v0.9.167.zip",+ "sha256": "124f5d6a01a20d99540b7757debda09b93364b95f70743e648ad7e2ab50ce2e1",+ "size": 444653, "verbPrefixes": [ "kicad_" ], "healthEndpoint": "/status",- "released_at": "2026-08-18T12:48:46Z",+ "released_at": "2026-08-18T13:32:28Z", "hero": "https://wiki.adom.inc/blob/app/kicad-bridge/kicad-hero.png", "languages": [ "Python",
adom-bridge-kicad-v0.9.167.zipadded⋯ 1 unchanged line ⋯
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "kicad", "displayName": "KiCad EDA",- "version": "0.9.166",+ "version": "0.9.167", "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_install.py+7−1@@ -320,8 +320,14 @@ def _install_one_version(version: str, version_info: dict) -> dict: dest_bridge_hash = pre_state["adom_bridge.py"].get("sha256") dest_loader_hash = pre_state["usercustomize.py"].get("sha256") + # 0.9.167: the up-to-date check must cover EVERY artifact we deploy, or a+ # new loader silently never ships (0.9.166's plugin-dir loader hit exactly+ # this: "already-current" returned before it was written).+ _plugin_dir_ok = all((d / "adom_bridge_plugin.py").exists()+ for d in _kicad_plugin_dirs(str(version or "10.0"))) \+ if _kicad_plugin_dirs(str(version or "10.0")) else False if (dest_bridge_hash == src_bridge_hash and dest_loader_hash == src_loader_hash- and pre_state["adom_bridge_boot.pth"]["exists"]):+ and pre_state["adom_bridge_boot.pth"]["exists"] and _plugin_dir_ok): report["action"] = "already-current" report["payloadVersion"] = PAYLOAD_VERSION report["message"] = (