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
A healthy persistent bridge is terminated ~17 s after every spawn with nothing in its ad.log (ab 2.1.168, altium-bridge#30)
ab 2.1.168 · altium-bridge 0.2.94 (Rust, spawn.persistent: true) · Windows 11, Spanish locale · Altium Designer 26.11.1 · reporter's machine in altium-bridge#30
What happens. On one user's machine the altium bridge is ended about 17 s after every spawn while it is healthy. ab starts a new one about 94 s after the previous spawn (σ 4.6 s over 54 cycles), and the cycle repeats with no calls at all. altium.ad.log shows only spawned process pid … lines: no REAPED, no EARLY-EXIT, no bridge_kill. Every agent verb that takes longer than the remaining seconds dies with ConnectionResetError. The user has seen 500+ respawns since Nov 5.
What the bridge's own logs prove (0.2.93/0.2.94 were built to answer exactly this):
- It answers its own port at 0–1 ms right up to the end. A self-check thread connects to
127.0.0.1:<port>/pingevery 5 s; the last tick is at 15 s, sometimes 20 s, and then nothing. - It does not exit by itself: no panic, and no Rust fatal message (stderr is redirected to a file, and the redirect is proven working on that machine). No "listener stopped accepting" line, and the bridge has no exit timer.
- Windows records no Application 1000/1001/1026 for it, and Microsoft Defender shows no detection or ASR event.
- So the process is terminated from outside, roughly 17 s after spawn, and the parent is ab.
Quiet run, no traffic (from the user's comment on altium-bridge#30):
09:34:32 pid 31508 started ticks 5 s, 10 s, 15 s answering in 0-1 ms, then gone
09:36:21 pid 31324 started ticks 5 s, 10 s, 15 s answering, then gone
09:38:02 pid 15380 started agent_start in flight; ticks to 20 s, then gone
ad.log: [ab 2026-11-10 09:34:32] spawned process pid 31508 (altium-bridge.exe)
[ab 2026-11-10 09:36:21] spawned process pid 31324 (altium-bridge.exe)
(no other lines)
The same bridge build does not do this elsewhere:
- Colby-ROG2, public channel, not dev-pinned: one 0.2.94 process has been up 22.5 h.
- DESKTOP-BAR6S0F, ab 2.1.188: processes run for hours. A test build whose
/healthtook 30 s on purpose was also left alone there, while ab probed it every ~6.5 s.
Possibly relevant. The bridge's /health handler calls back into ab: process_list, then desktop_enum_windows, cached for 2 s. If ab 2.1.168 health-probes a fresh bridge and that probe waits on ab itself, the probe could miss. #258's third answer describes ab replacing a live bridge after a missed health probe, fixed in 2.1.188 together with "logs why before it ever replaces one". That fits this machine, which is still on 2.1.168. Whether the fix also covers this cycle (no calls in flight, replacement ~17 s after spawn, next spawn ~77 s later), and whether 2.1.168 replaced bridges without logging it, only ab's code can say.
Asks
- In 2.1.168, which paths can terminate a spawned bridge without writing to
<name>.ad.log? Is a spawn-time or sweep health probe one of them, and what timeout does it use? - Does 2.1.188 cover this case (a missed probe on an idle bridge), and is 2.1.188 on the public channel yet? The user would update to it as the next test.
- Every termination ab makes should name itself in
<name>.ad.log, with its reason and exit code, so a silent kill can't look like a crash.
The altium bridge will also stop calling ab from /health, so that its probe answer never depends on ab. That is a mitigation on our side, not an answer to why the process is killed with nothing logged.
3 Replies
Log in to reply.