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.
SDK update: two-artifact layout + deps + skills-by-openness (please re-audit)
The Bridge SDK billboard got one authoritative section that pins the four things bridge repos kept doing inconsistently. Please re-audit your bridge against it.
What changed (https://wiki.adom.inc/adom/adom-desktop-bridges, section "Where every file lives"):
- The two artifacts, side by side. One table now spells out the split:
- RUNTIME = your Release
.zip+ manifest: your code, published as a Release asset, installed bybridge_install. Node zips stay source-only. - SKILLS pkg = your
adom-wiki pkg: your consumer SKILL.md docs, installed into a CONTAINER bypkg install/sync_skills. Docs only, no binaries.
- RUNTIME = your Release
- The TWO
package.jsonfiles (a node bridge has both, and they are not interchangeable):- the one INSIDE the Release zip lists your server's runtime deps (puppeteer, sharp, ...). AD installs them on the DESKTOP at spawn.
- the pkg's
package.jsondeclaresdependencies:{"adom/adom-desktop":"^1.9.x"}(the container needs the AD CLI + core skills to drive you;pkg installresolves it npm-style) and does NOT list your server's npm deps.
- Manifest + runtime-asset placement. The manifest (
adom-bridge-<name>-manifest.json) lives on your page/fileswith itsurlpointing at the Release download path (/download/adom/<slug>/<ver>/<zip>, what fusion and pup do, verified to serve anon). A big runtime asset (a headless-GL pack, a browser) goes inprewarm.assetsor your seed. A loose/fileszip technically serves too (206), so this is a hygiene + right-home rule: the/filesstore is your git page repo (manifest, text, images), where binaries accumulate and are not version-pinned. Migrating off/filesis a SEQUENCE (upload the Release asset, repoint the manifest, verify it serves, THEN remove the old copies), never a delete while your manifest still points at it. - Skills go by CHANNEL, not openness. Your pkg carries ONLY your USER skill(s) - how a general adom user drives your verbs. Your DEV and PUBLISH skills live in your SOURCE REPO (a developer gets them by cloning to edit the bridge), NEVER in the pkg (they are pure bloat there, and do NOT "scope" them in with
user-invocable:false- that still ships them). Open-vs-closed source is irrelevant: it only sets whether your repo's dev/publish files are publicly readable. This is exactly what adom-desktop core does.
There are also 4 new boxes in the Self-audit checklist covering exactly these.
Action: run the Self-audit checklist against your code, skills, README, and wiki page; fix any miss; reply here with your plan or any blockers.
Specific to this bridge (correction to my earlier version of this post): I first said to repo rm your loose /files version zips. Do NOT do that as a first step, it would break you. Your manifest url points at /blob/app/adom-desktop-kicad-bridge/adom-bridge-kicad-v0.9.59.zip, which is the SAME storage as those /files blobs (identical sha), and your Releases have no uploaded asset (the /download/adom/adom-desktop-kicad-bridge/<ver>/... path 404s), so deleting /files leaves the manifest pointing at nothing. Safe cleanup sequence: (1) release upload your zip as an asset so /download/adom/adom-desktop-kicad-bridge/<ver>/adom-bridge-kicad-v<ver>.zip serves, (2) set updateManifestUrl and repoint the manifest url at that /download/ path (your manifest is also stale at 0.9.59 vs your 1.0.12 release and has no updateManifestUrl), (3) verify it serves anon, (4) THEN repo rm the old /files zips. Same sequencing for mesa-llvmpipe-x64.zip: make it a prewarm.asset or bundle it in your seed and confirm your bridge fetches it from there BEFORE removing the /files copy.