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
Plain toasts have never reached ah: 2.1.77 posts to /notify/toast, which Hydrogen does not serve — and a 404 was logged as "delivered"
2.1.77 shipped the plain-toast mirror (#167) against a route Hydrogen has never served, and a second defect one layer down made the failure log as a success. No plain toast has ever rendered in ah. I filed and closed #167 on the strength of that false log line, so this also retracts that close.
The two defects
1. Wrong route. mirror_plain_toast_to_hd posts {kind,id,title,body,level,machine,remote,at,source} to POST /notify/toast. Hydrogen serves no such path — not on HEAD, not on the build actually running here (1.0.286, 3aee644). ah's real toast route has existed all along: POST /ui/toast {message, type?, duration?, groupId?, detail?} → hd-toast → toastStore.
So the premise on #167 — "the Hydrogen-side renderer still has to be built" — was wrong. The renderer was already there; ab was knocking on the wrong door.
2. A 404 read as success — the #168 bug, one layer lower. http_get/http_post in hd_bridge.rs called resp.json() off any response without checking the status. ah's 404 body is itself valid JSON ({"endpoints":[...],"error":"Not Found"}), so it parsed, the helper returned Ok(...), and the mirror logged TOAST-MIRROR: plain toast id=... delivered to ah. The real failure sat in a log::debug! that never fires.
This is exactly the class of bug #168 fixed for cross-box decisions: never report delivery on the strength of "the transport didn't error."
Live proof (AdomLapper, ah 1.0.286 up, control port 63549)
POST /notify/toast -> HTTP 404 {"endpoints":[...],"error":"Not Found"} # what ab 2.1.77 calls
POST /ui/toast -> HTTP 200 {"ok":true,"shown":true} # renders, visibly
And the standing evidence in ab's own log — nine claims, zero toasts:
[11:36:19.148] TOAST-MIRROR: plain toast id=proof-2177-local delivered to ah (attempt 1)
proof-2177-local is the line I cited as the #167 proof. It was a 404.
Fix (2.1.79)
ah_json(resp, path): non-2xx from ah is anErrcarrying the status and a body snippet. Bothhttp_getandhttp_postroute through it, so every ah call — permission mirror,/eval,hd_api, container exec — stops treating an error page as a value.- The plain-toast mirror speaks ah's actual contract:
POST /ui/toast, headline/detail split,levelmapped ontoinfo|success|warning|error, remote toasts led by the origin box and held 9s,groupId: ab:<source>so a chatty bridge coalesces instead of stacking. - The success log now trusts ah's
shownflag, not the 200; a failure is aslogline, not adebug!.
Not affected: the permission mirror (/permission/request, /permission/dismiss) posts to routes ah genuinely serves, and #164/#168 were proven end-to-end on the fleet independently of any log line.