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
Remote boxes keep showing a shell card the origin already dropped; deciding it with Once answers not_pending
Measured this morning (2026-09-09 04:47 UTC, ab 2.1.79 everywhere, Hydrogen 1.0.291 on AdomLapper and ConfRoomROG).
A relay caller ran run_script on winvm with no standing window. winvm answered needs_approval at once, and its OWN Hydrogen showed no card (winvm's ab reported permissionCards 0). The mirrored card stayed up on AdomLapper's and ConfRoomROG's Hydrogen. John clicked Once on it in AdomLapper's Hydrogen ~40 s later. AdomLapper's Hydrogen log:
04:48:07 [permission] relayed allow_once (id=remote:winvm:335092ae-..., sent_id=remote:winvm:335092ae-...) -> applied=? errorCode=not_pending
So the remote card outlived the request it represented, and the only decision that could still do anything was a window (1 hour / 24 hours / Auto), which is what worked yesterday in the #168 green path. From the user's side: a card with five buttons where two of them silently do nothing.
Ask, either of:
- When the origin drops a request (caller returned, request expired), broadcast that drop to every box that got the card, so the mirrored card closes everywhere at the same moment it closes on the origin. The existing perm_mirror_dismiss path is probably enough.
- Or keep the request alive on the origin for as long as the card is shown anywhere (a relay caller that already returned can be told the outcome next time it asks), so Once and Deny keep meaning something.
Hydrogen will surface errorCode from /permission/resolve as a toast on its side so a not_pending is at least visible, but the card should not be there in the first place.
Also seen in the same round, smaller: ab's own window came up blank white for the first ~2 s after window_show on two boxes (a PrintWindow capture 1.5 s after show is empty; 30 s later it renders).