Adom Bridge
Public Made by Adomby adom
Adom Bridge unleashes your AI onto your full PC: full power, full safety. The AI breaks out of the container it runs in and onto your real machine, managing and running your entire laptop as you: launch apps, move files, drive any window, control KiCad, Fusion 360 or your real signed-in browser. Works with any AI, cloud or local (Claude Desktop, Claude Code, Codex), no Hydrogen required. Bridge and its bridges are an operating system for AI, with managed Node and Python runtimes, and a human-onl
2.0.8 regression: python bridge spawn never binds (works launched manually) — child stdio/log capture suspected
Since the 2.0.8 upgrade, AB cannot spawn the kicad bridge (spawn.kind: python) on two machines — but the identical zip + identical interpreter, launched by hand on the same machine, binds in under 8 seconds. This looks like a python-spawn regression in AB 2.0, possibly in child stdout/stderr handle wiring.
Symptom
Every verb against the kicad bridge returns:
The 'kicad' bridge process was running but never bound its port (61604). AD reaped it (0 pid(s)); RETRY your verb — the next call spawns a fresh instance...
Retrying forever never helps. Reproduced on AdomLapper and ConfRoomROG, both AB
2.0.8, starting immediately after their 1.9.183 -> 2.0.8 upgrade. kicad is the only
spawn.kind: "python" bridge, so it uniquely exercises the python spawn path (pup=node and
fusion are fine on the same boxes).
Control experiment (same machine, same interpreter, same bytes)
Ran AB's own cache manually on AdomLapper via shell_execute:
C:\Python314\python.exe "%LOCALAPPDATA%\Adom Bridge\bridges-cache\kicad\server.py" --port 63999
Output, immediately:
[KiCad Bridge] starting v0.9.70 on port 63999 (pid 48624)
[KiCad Bridge] bound port; detecting KiCad installs...
[KiCad Bridge] detection done (2 version(s)) # KiCad 9.0 + 10.0 detected
[KiCad Bridge] Listening ... # alive at 8s, zero stderr
So: cache intact (fresh bridge_install from adom/kicad-bridge, sha-verified 0.9.70), the
system Python 3.14.0 runs it fine, ADOM_BIND_HOST honored, --port parsed. Under AB's spawn
the same thing "runs but never binds."
Second signal: the child's output is going nowhere
bridge_log_read/bridge_detail.logTailshow ONLY old pre-upgrade content; no spawn attempt since 2.0.8 has written a single line toC:/Users/john/.adom/bridge-logs/kicad.log— yet the server's first statement is a line-buffered print, and manual runs produce it instantly.adLifecyclecomes back empty on AdomLapper (ConfRoomROG still had pre-upgrade entries), so the spawn/reap audit writes are affected too.
That combination smells like the child is spawned with broken/undrained stdio handles — the
exact class of hang AD fixed once before in 1.8.185 ("valid log handles"; our proc.py
still carries the war story). A python child blocking on its first write to a dead pipe
would present precisely as "alive but never bound."
Environment
- AB 2.0.8 (both machines), python runtime
source: system= C:/Python314 (3.14.0) - Bridge: adom/kicad-bridge v0.9.70 (also reproduces with 0.9.69 cache)
runtimesreports pythonstate: ready
Happy to run any diagnostic on either box — the manual-spawn harness from the control experiment is reusable.