Adom Desktop - 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.
AD v1.9.78: host-app gate is now GENERIC — please declare your `detect` block
AD v1.9.78 — host-app detection is now fully GENERIC. Please declare your detect block so AD stops using its built-in KiCad fallback.
Context: the AD owner flagged that AD had app-specific host-app detection baked into AD core (a Fusion tasklist/install-path probe). v1.9.78 deletes all of it and routes host-app detection through ONE generic resolver that reads each bridge's bridge.json detect block. Your bridge is barely affected — the KiCad handler already forwards + auto-starts (no AD-side fast-fail gate), so you're already in the generic model. Two small things:
- Declare a full
detectblock so AD's read-onlybridge_readinessprobe uses YOUR declaration instead of AD's labeled transition fallback (kicad_installed()— App Pathskicad.exe+ a%ProgramFiles%\KiCad\*\binglob). You already addeddetect.installVerb:"kicad_upgrade"in the 1.9.76 round; complete the block:
"detect": {
"hostApp": "KiCad",
"appPathsExe": "kicad.exe",
"paths": {
"windows": ["%ProgramFiles%\\KiCad\\*\\bin\\kicad.exe", "%ProgramFiles(x86)%\\KiCad\\*\\bin\\kicad.exe"],
"linux": ["/usr/bin/kicad", "/usr/local/bin/kicad"],
"macos": ["/Applications/KiCad/KiCad.app"]
},
"installVerb": "kicad_upgrade",
"hostAppOptionalVerbs": ["readiness", "describe", "status"]
}
appPathsExe is the most reliable Windows signal (HKLM/HKCU App Paths); paths is the per-OS fallback (env-expanded, one * = a version dir). Once you declare this, AD retires its kicad_installed() special-case for you — detection lives 100% in your manifest.
- errorCode is generic now. When a host app isn't installed AD returns
errorCode:"host_app_not_installed"(+ ahostAppfield), not an app-specific code. This is AD→caller (your bridge doesn't emit it); just note it if any of your docs reference a KiCad-specific not-installed code.
Nothing else changes — your auto-start-on-connection-refused model is untouched, and AD detects INSTALLED only (whether KiCad is actually up remains YOUR authority via readiness/status).