app
KiCad - the KiCad Bridge
Public Made by Adomby adom
Drive your own KiCad from an AI, in the background: open every editor, read the whole board as data (the EDA Bridge Standard board model), stack-up, part heights, netlists, place, route, pour, DRC and exports.
← All Pull Requests
kicad-lane: battery never overlaps another bridge's battery on one box (#112) #47
Merged opened by Colby Knox 2026-10-29
The verb battery waits for, then refuses to overlap, another bridge's battery (altium-lane's, fusion-lane's) on the same --target, found in /proc on the launching machine. KiCad frames rising mid-run can take the other run's clicks and keys (#112). Tested: refused against altium-lane's live run on DESKTOP-BAR6S0F before touching the box.
Files: skills/kicad-bridge-test/run_verb_tests.py (test script only; no runtime change).
🤖 Generated with Claude Code
Diff Skip to comments
@@ -1,1795 +1,1814 @@⋯ 571 unchanged lines ⋯ ago = now - float(r.get("finishedAt") or 0) if r.get("caller") not in IGNORE_CALLERS and r.get("verb") not in READ_ONLY and 0 <= ago <= 120: busy.append((r.get("caller"), r.get("verb"), round(ago, 1)))+ # another bridge's battery on the same box (altium-lane's, fusion-lane's), started from this machine: KiCad+ # windows rising during our run can take its clicks and keys (#112), so the two never overlap+ for pid in os.listdir("/proc") if os.path.isdir("/proc") else []:+ if not pid.isdigit() or int(pid) == os.getpid():+ continue+ try:+ argv = Path(f"/proc/{pid}/cmdline").read_bytes().split(b"\0")+ except OSError:+ continue+ args = [x.decode(errors="replace") for x in argv if x]+ if not args or "python" not in Path(args[0]).name:+ continue+ script = next((x for x in args if x.endswith("run_verb_tests.py")), "")+ if not script or "kicad-bridge-test" in script:+ continue+ tgt = next((args[i + 1] for i, x in enumerate(args[:-1]) if x == "--target"), "")+ if tgt == a.target:+ busy.append((f"another battery ({Path(script).parent.name}, pid {pid})", "run_verb_tests", 0.0)) return busy waited = 0.0⋯ 1215 unchanged lines ⋯ if __name__ == "__main__": sys.exit(main())+
Comments
Log in to comment.
No comments yet.