app
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
← Commit history
docs/mesh: merge the Hydrogen, limits and verb sections back in
1 file changed
+57−9
docs/mesh.md+57−9@@ -151,8 +151,9 @@ raises one card**, and only a person can answer it: - clicking it in Adom Bridge's own window, or - answering the mirrored copy that appeared on another of your machines. -There is no verb that approves a join. An AI can list trust records and it can-revoke or deny one, but approving is human-only, permanently. A decision made on+There is no verb that approves a join. An AI can list trust records, re-`raise` a+card a human has not got to yet, and revoke or deny one, but approving is+human-only, permanently. A decision made on one machine is carried to your other trusted machines over the mesh itself, so one click settles the fleet and the duplicate cards disappear. @@ -231,6 +232,38 @@ machine:  +## In Hydrogen: the cards show up where you are looking++When Adom Bridge runs embedded under Hydrogen, the human is looking at Hydrogen, not at Adom+Bridge's window and, if toasts are hidden or Do Not Disturb is on, not at a toast either. So every+card is forwarded to Hydrogen's permission dialog:++- **A local prompt** (an AI asking to run something on this machine) has always been forwarded.+- **A prompt from another of your boxes** is forwarded too since 2.1.74. Before that, a cross-box+ card stopped at Adom Bridge's own window and a Windows toast, and Hydrogen never showed it: you+ could see "Permission request on winvm, open Adom Bridge to decide it here" and find nothing in+ Hydrogen. Now the same card, with the machine chip, renders in Hydrogen on every box you have it+ open on, and deciding it there (2.1.75) routes the decision back to the origin with the nonce,+ the same path a click in Adom Bridge takes.+- **Dismissals are forwarded as well.** When the origin decides, expires, or drops a prompt,+ Hydrogen's copy on every other box goes down with it. A mirrored card nobody answers is dropped+ from the receiving box after 330 seconds (the same cap Hydrogen applies), so a stack never+ fills with prompts that can no longer be answered.+- **The join card for a new mesh machine** is forwarded the same way, and re-raised as described+ above until a human decides.+- **Plain toasts reach Hydrogen too (2.1.77).** A toast with nothing to decide ("export done", a+ bridge's "library imported", "Hydrogen was restarted by ...") is shown to Hydrogen as one of its+ own toasts, with the origin box named when it came from another of your machines (subject to+ `cross_box_toasts`, exactly as the Windows toast is).++The reliable surface is the dialog, in Hydrogen or in Adom Bridge's window. A Windows toast is a+courtesy: on a fresh Windows 11 install Do Not Disturb stays on until the one-time "Allow important+notifications from Adom Bridge" prompt is answered, and until then a toast folds into the+notification center unseen. `GET /status` on the loopback API reports this as+`notifications.mayBeSuppressed` (2.1.73), so an AI that raised a prompt can tell you to look at+the dialog instead of waiting for a toast, and `notification_settings_open` opens the Windows page+where the permission is granted. Adom Bridge never grants that permission for itself.+ ### How a decision is safe A mirrored card is a grant path, so it is locked down.@@ -276,15 +309,18 @@ card everywhere. --- -## Verbs+## Verbs and settings -| Verb | What it does |+| Surface | What | |---|---|-| `desktop_mesh_status` | mode, running, node ID, relay, endpoints, phase |-| `desktop_mesh_peers` | the machines in your directory, with link path and trust |-| `desktop_mesh_trust` | `list`, `revoke`, `deny`. There is no approve: that is human-only |-| `desktop_ui_panel {panel:"mesh"}` | open the Mesh view |-| `settings_set {mesh_mode}` | change mode; the endpoint is rebound live |+| `desktop_mesh_status` | this box: node id, mode, relay, endpoints, counters; also re-raises any pending join card older than 330 s |+| `desktop_mesh_peers` | every same-account box: reach, link (transport, encryption, RTT, bytes), version, trust |+| `desktop_mesh_trust` | `list`, `raise` (2.1.74), `revoke`, `deny`; never approve |+| `desktop_ui_panel {"panel": "mesh"}` | open the Mesh view |+| `settings_set {"mesh_mode": "off" \| "relay" \| "direct"}` | the mode; `mesh_enabled: true` means `direct` |+| `settings_set {"cross_box_toasts": "prompts" \| "decisions" \| "all"}` | how much plain toast traffic crosses boxes |+| `GET /status` -> `notifications.mayBeSuppressed` | whether a toast on this box may go unseen |+| `POST /permission/resolve {id, decision}` | how Hydrogen decides a card; a `remote:<peer>:<id>` id is routed back to the origin (2.1.75), and `/permission/state` lists those ids as pending so Hydrogen keeps the card up | Addressing a machine is the same as ever: `--target <name>`. When the mesh has a route it is used, and the cloud relay is the fallback. `targets` tells you which@@ -292,6 +328,18 @@ path each machine is on. --- +## What it cannot do yet++- **Direct paths across different networks.** Two boxes behind different NATs talk through the+ Adom mesh relay (still end-to-end encrypted). Hole punching needs a UDP-reachable relay host+ and is not on yet; a box on the same network as you connects directly in `direct` mode.+- **Other accounts.** The mesh is one account. Pairing a work account with a personal one is+ planned, not shipped.+- **Containers as full nodes.** Your Hydrogen containers are drawn under their parent box and are+ reachable through it; they do not yet hold their own node keys.++---+ ## If something is not working - **A machine is missing from the Mesh view.** Its directory entry may be stale.