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
dashboard/kicad_dashboard.py+7−3@@ -49,7 +49,7 @@ from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer from pathlib import Path from urllib.parse import unquote, urlparse -VERSION = "2.2.2"+VERSION = "2.2.3" AI_THREAD = "kicad-dashboard" DEFAULT_PORT = 8931 UI_DIR = Path(__file__).resolve().parent / "ui"@@ -1260,10 +1260,14 @@ def main(): if not pid.isdigit() or int(pid) == me: continue try:- cmd = open(f"/proc/{pid}/cmdline", "rb").read().replace(b"\0", b" ")+ argv_ = open(f"/proc/{pid}/cmdline", "rb").read().split(b"\0") except Exception: continue- if b"kicad_dashboard.py" in cmd and b" serve" in cmd:+ # EXACT argv shape, not a substring: a substring match also hit+ # the SHELL whose command text mentioned this script (it killed+ # its own parent shell, 2026-08-23). argv = [python, script, serve, ...]+ if (len(argv_) >= 3 and os.path.basename(argv_[0]).startswith(b"python")+ and argv_[1].endswith(b"kicad_dashboard.py") and argv_[2] == b"serve"): victims.append(int(pid)) import signal for pid in victims:
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "kicad-bridge",- "version": "1.0.59",+ "version": "1.0.60", "type": "app", "description": "Skills for your container so your AI knows how to drive the KiCad bridge. The bridge runtime itself is the release zip; Adom Bridge loads that.", "tags": [
page.json+1−1@@ -4,7 +4,7 @@ "slug": "kicad-bridge", "title": "KiCad - the KiCad Bridge", "brief": "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.",- "version": "1.0.59",+ "version": "1.0.60", "tags": [ "kicad", "pcb",