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
Publish 1.0.77
3 files changed
+29−2
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "kicad-bridge",- "version": "1.0.76",+ "version": "1.0.77", "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.76",+ "version": "1.0.77", "tags": [ "kicad", "pcb",
skills/kicad-bridge-dev/SKILL.md+27@@ -700,6 +700,33 @@ logo makes the tab strip a logo salad). Two traps, both paid for: and check the icon is THERE (count bright pixels), not merely that it looks good. +### Send to AI is UN-PARKED, and two lessons from the flip (2026-08-24, #58/#59)++`say_send` is live: ONE call, `POST /ai-threads/run-prompt {"new":true,+"prompt":..,"submit":true,"name":"KiCad - say it","tags":["dock:kicad-bridge"]}`,+120s timeout, never retried blind, verified by `delivered_to` and NEVER by the+thread name, gated on `GET /updater/status` `current_version >= 1.0.142`+compared NUMERICALLY (`_ver_tuple`; a lexical compare passes 1.0.99). The old+two-call flow (`/ai-threads/new` then run-prompt with its sid) was wrong+fleet-wide: `/new` never returns an id, so the button opened a tab and+delivered nothing. Resume and typing-into-existing stay parked; `try_phrase`+is retired, its body DELETED rather than dormant because it held a forbidden+`/ai-threads/resume` call.++1. **A static check proves a string, only RUNNING proves a program.** The+ un-park checklist says grep the installed tarball, and every grep passed+ (call site, tag literal, no park flag) while the dashboard could not boot at+ all. Always follow the greps with: start it, curl `/health`, and exercise+ one real route.+2. **Slice a function to the NEXT TOP-LEVEL DEF, never to a hand-picked+ anchor.** Deleting "from `def stage_phrase` to `def build_status`" also ate+ `log`, `CONSOLE`, `HUB`, `get_targets`, `ab` (40 call sites), `rollup_state`+ and `_suite_led`, because they lived in between. Recovery was+ `adom-wiki pkg install adom/kicad-bridge@<last-good>` to get a known-good+ file, then re-applying the intended edits with a regex slice bounded by+ `\n(?=(?:def |class |[A-Z_]+ = ))` plus asserts that the removed text does+ NOT contain the neighbours.+ ### The footprint stale-cache remedy is a TREE REFRESH, not a restart (2026-08-22, #51) `View > Refresh` (F5) on the Footprint Editor frame reloads the library TREE,