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
puppeteer bridge never respawns on arav-rog: every routed verb times out while ab's audit says 'the next verb respawns a clean instance' (recorder unusable)
On arav-rog (ab 2.1.29, puppeteer bridge 2.0.396 from cache, Windows), every verb routed to the puppeteer bridge times out at 10 s and the bridge never comes up, so the desktop recorder (which lives in pup) is unusable there: pup_status, desktop_record_status, desktop_record_list, desktop_recorder_open and desktop_record_start all return Request timed out. Other bridges on the same box answer normally (kicad 0.9.318, list_windows, screenshots).
What ab's own audit says, over and over, one round per routed verb (bridge_log_read adLifecycle, 2026-09-04 19:32 to 19:33 and again tonight):
recover_not_listening: processWasLive=false trackedLivePids=[] port=Some(52405) portServesHealthyMarker=false
process GONE (exited or was killed ... not a bind failure): port Some(52405) unserved, nothing to reap — the next verb respawns a clean instance
"the next verb respawns a clean instance" never happens: bridge_list shows puppeteer with instanceCount 0, livePids [], port 8851 (the audit talks about 52405), processLive None, lastSpawnError None. So either the spawn is not attempted, or it fails before writing a line to puppeteer.log (its tail is the previous healthy run: warmup, session recovery, verbs), and nothing surfaces the failure to the caller beyond a timeout.
Two asks:
- When recover_not_listening decides "respawn on next verb", the next verb should actually spawn (or say why it cannot: runtime missing, entrypoint missing, port busy) and return that as an error inside the verb's budget instead of a bare timeout.
- bridge_detail/bridge_list should carry lastSpawnError or a spawn-attempt timestamp so an AI can tell "never tried" from "tried and died".
I did not use bridge_kill: it refused (correctly) because another AI thread used the desktop in the last 5 minutes, and nothing was live to kill anyway. Reproduce: any pup_* verb on arav-rog while it is in this state.