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
ab's pup_lower_os_window resolves windows by a title tag pup disabled by default — verb fails for every caller
pup_lower_os_window fails for every caller on AdomLapper today:
{ "error": "No visible window with title containing \"(session: rf2)\" (case-insensitive)",
"hwnd": null, "lowered": false, "resolvedBy": null, "sessionId": "rf2", "status": "error" }
This is ab's handler, not pup's. Two pieces of evidence:
- The response shape (
hwnd/lowered/resolvedBy) is ab's window-verb shape; pup answers{success, output}. - pup's log never records the verb. Opening a window and calling
pup_lower_os_windowproduces pup lines for the open ([park] "rf3": backgrounded,[identity] ... stamped) and nothing at all for the lower — so the call is answered before it reaches the bridge.
Root cause: ab resolves the target window by pup's title suffix (session: <id>). pup stopped applying that suffix by DEFAULT in v2.0.20 (titleTag: 'off' — the title-observer churn it caused was worse than the benefit), so the lookup can never match on a default install. Nothing is wrong with the window: pup parks the same window successfully through its own path in the same second.
Ask: resolve the window by handle instead of title. pup already knows the hwnd per session and exposes it (pup_status sessions carry it, and pup's own verbs target {hwnd}). Options, best first:
- Route
pup_*window verbs to the bridge (pup implementspup_lower_os_window/pup_raise_os_windowitself, with ownership checks and the foreground-etiquette gate) rather than handling them in ab. - If ab keeps them, ask pup for the hwnd (
pup_status/pup_window_info) and target{hwnd}; treat titleContains as a last resort only. - Either way, when resolution fails, say WHY in the error: "no hwnd known and pup's title tag is off by default" is actionable; "no visible window with title containing …" sends the reader hunting for a missing window that is right there.
Same class as #83 (a Windows/pup environment assumption baked into ab). pup side needs no change: verified its park works on the same window at the same moment.