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
Toast onClick with a prefixed verb (hd_api) fails at click time: Unknown hd command
What happens
A toast armed with onClick: {"command": "hd_api", "args": {...}} is accepted: notify_user answers clickBehavior: "runs-onclick-verb". But when the user clicks it, nothing happens. notify_response shows why:
"response": {
"action": "onClick",
"command": "hd_api",
"ok": false,
"error": "Unknown hd command: hd_api. Known: status, eval, iframe_eval, log, open_url, browser_profiles, screenshot, reload_vscode, container_exec, build, build_frontend, build_rust, build_status, build_log, build_tail, launch, stop, restart."
}
Seen on ab 2.1.162 (winvm, 2026-09-30) with Hydrogen 1.0.510's "Hydrogen is still running" toast.
Why
hd_api is the CLI spelling. The CLI and the direct API strip the hd_ prefix before dispatch, so inside the hd app the verb is api (hd_bridge.rs, handle_hd_command: "api" => hd_api(...)).
The toast-click path does not strip it. In lib.rs (the notify-click handler), when the armer gives no app, it calls direct_api::infer_app(&act.command, ...), which maps the hd_ prefix to app hd, and then sends command: act.command unchanged. So the hd app receives hd_api and rejects it. The same happens for any prefixed verb whose app strips the prefix (hd_status, hd_launch, and so on).
Workaround (what Hydrogen now does)
Name the app and the unprefixed verb explicitly:
"onClick": {"app": "hd", "command": "api", "args": {"method": "POST", "path": "/window/show"}}
Verified working on winvm: the click reached Hydrogen's POST /window/show.
Suggested fix
When onClick has no app, route it exactly as the direct API routes the same verb, prefix stripping included, so {"command": "hd_api"} behaves the same from a toast as from adom-bridge hd_api. Failing that, reject it at arm time (in notify_user) with the correct {app, command} form, instead of accepting it and failing only when the user clicks, where nobody sees the error.