← Commit history

Publish 1.0.77

John Lauer ·e54a4d4e69 ·1mo ago ·parent 85d02e5
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,