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.178: report progress for every instrumented verb, not only runs over 3s - a fast warm run is exactly the cold-vs-warm fact #32 asks to surface, and it feeds the warm history
5 files changed
+13−9
BRIDGE_VERSION+1−1@@ -1 +1 @@-0.9.177+0.9.178
adom-bridge-kicad-manifest.json+5−5@@ -1,15 +1,15 @@ { "manifest_version": 1, "name": "kicad",- "version": "0.9.177",- "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.177/adom-bridge-kicad-v0.9.177.zip",- "sha256": "a365efe23c514019617723f8a62885da2feaf26243b52463074231cf84d4da1a",- "size": 452257,+ "version": "0.9.178",+ "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.178/adom-bridge-kicad-v0.9.178.zip",+ "sha256": "c69c075b4cce46fd4478185e5485f21ae434a42a4519e0415d6e23506fdd3854",+ "size": 452395, "verbPrefixes": [ "kicad_" ], "healthEndpoint": "/status",- "released_at": "2026-08-19T09:21:23Z",+ "released_at": "2026-08-19T09:22:18Z", "hero": "https://wiki.adom.inc/blob/app/kicad-bridge/kicad-hero.png", "languages": [ "Python",
adom-bridge-kicad-v0.9.178.zipadded⋯ 1 unchanged line ⋯
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "kicad", "displayName": "KiCad EDA",- "version": "0.9.177",+ "version": "0.9.178", "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+6−2@@ -851,8 +851,12 @@ def dispatch_command(command: str, args: dict) -> dict: if isinstance(result, dict): result.setdefault("kicadVersionUsed", selected_info.get("version")) result.setdefault("bridgeVersion", BRIDGE_VERSION)- _elapsed = time.time() - _prog_started- if _prog_phase and (_elapsed >= 3.0 or result.get("progress")):+ # ALWAYS report for an instrumented verb, even when this particular run+ # was fast. A warm run finishing in 0.4s is exactly the fact #32 wants+ # surfaced ("cold and warm differ by 10-50x, and today the user gets one+ # pessimistic sentence covering both") - and it feeds the warm history,+ # which is what makes the next estimate measured rather than guessed.+ if _prog_phase: try: from handlers import progress as _pg ok = result.get("success") is not False