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
1.0.114: toasts stack above the demo transport pill while a demo runs (they were hidden under it)
2 files changed
+5−3
dashboard/ui/index.html+4−2@@ -232,6 +232,8 @@ input:focus-visible{outline:none;border-color:var(--accent) !important} .shot img{width:100%;display:block} .shot .cap{font-size:11.5px;color:var(--text-2);padding:6px 8px} #toasts{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);display:flex;flex-direction:column-reverse;gap:8px;z-index:400}+/* John, 2026-09-03: toasts were hidden under the demo transport pill; while the pill is up, toasts stack above it */+body.demo-running #toasts{bottom:112px;z-index:99999} .toast{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--teal); border-radius:8px;padding:10px 14px;color:var(--text);font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.4); animation:toastin 180ms ease-out}@@ -637,7 +639,7 @@ async function startDemo(){ const s=await act('demo',{muted:demoMuted()});const d=s.data||s; if(d.success===false){toast('demo failed to start: '+(d.error||'unknown'),'err');return;} $('#demoBar').style.display='block';- $('#demoToolbar').style.display='flex';+ $('#demoToolbar').style.display='flex';document.body.classList.add('demo-running'); const poll=setInterval(async()=>{ const p=await act('demo_progress');const q=p.data||p; const paused=(q.stepLabel==='Paused');@@ -651,7 +653,7 @@ async function startDemo(){ c.innerHTML='<img src="data:image/png;base64,'+q.stepShot.image+'" alt="'+(q.stepShot.title||'')+'"><div class="cap">'+(q.stepShot.title||q.stepShot.step||'')+'</div>'; $('#demoShots').appendChild(c); }- if(q.done){clearInterval(poll);$('#demoToolbar').style.display='none';toast(q.error?('demo failed: '+q.error):(q.result&&q.result.exited?'demo stopped':'demo complete'),'' + (q.error?'err':'ok'));refresh(true);}+ if(q.done){clearInterval(poll);$('#demoToolbar').style.display='none';document.body.classList.remove('demo-running');toast(q.error?('demo failed: '+q.error):(q.result&&q.result.exited?'demo stopped':'demo complete'),'' + (q.error?'err':'ok'));refresh(true);} },3000); } // Demo transport: mirrors the ab toast buttons; the bridge applies commands
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "kicad-bridge",- "version": "1.0.113",+ "version": "1.0.114", "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": [