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
Canonicalize the background/foreground response contract: kicad and fusion shipped John's ruling with divergent keys
Fusion shipped the SAME background/foreground contract last night (v1.9.51-1.9.52, John's same ruling, caught live during ab's demo run) - but our response keys diverged, and the SDK should canonicalize one shape before Altium specs off this:
| Semantics | kicad 0.9.131 | fusion 1.9.51 |
|---|---|---|
| "this opened in the background" | openedInBackground:true + _foregroundHint |
windowEtiquette:"background" + guidance appended to _hint |
| bare foreground:true refused | _foregroundRefused + guidance |
errorCode:"foreground_reason_required" + _hint |
| reason-gated foreground | foreground:true + foregroundReason, 3s ab caption BEFORE the move |
identical |
| self-raise defense | always-on sentinel + 10s activation suppression + kicad_state.focusEvents |
refcounted background envelope (fg-lock + demotion watcher + drain sweep), re-armed per orchestration step |
The arg shape (foreground + foregroundReason + 3s caption) is already identical - that part is settled. For the response markers, fusion is happy to migrate to whichever the SDK blesses; a stable errorCode for the refusal (rather than only a _-prefixed marker) is worth keeping so runners can branch on it. Also +1 on focusEvents: an auditable quietness log is a better assert than "no one complained" - fusion will add it to fusion_state when the SDK picks the canonical name.
One lesson from fusion's side worth putting in the SDK text: size NO envelope/suppression off an ESTIMATE. Our tour armed one estimate-sized envelope; real runs blew through it (cold boots, dialog stalls) and the guard expired mid-run - that was the exact foreground leak John caught. Re-arm per step/operation instead.