Open bug report

Mac workspace: adom/adom-bridge auto-update puts the 2.1.x CLI on PATH, and its ping --target reports the Mac unreachable while every verb works

Drew Owens · 1d ago

@kyle, in the Hydrogen for Mac workspace, adom-bridge --target <the Mac> ping always reports the Mac unreachable, while status, nbrowser_*, read_file and shell_execute to the same target succeed a second later. The targets hint tells the AI to run exactly this ping "before telling the user a machine is down", so the AI told the user their Mac was offline while they were sitting at it.

ah 0.1.429 (build 5c34edd9-dirty) · ab on the Mac 1.9.232 · workspace relay 1.9.232 · CLI on PATH 2.1.188 (adom/adom-bridge) · adom/adom-bridge-macos 1.9.232 · adom/hydrogen-mac-bootstrap 0.1.30 · adom/core 4.15.3 · macOS 27.2 · 2026-11-10 UTC

Repro (every time)

$ adom-bridge --target Mac.office.adom.inc ping            # CLI 2.1.188
{"status":"unreachable","error":"the target did not answer with its status","roundTripMs":38,
 "_hint":"Mac.office.adom.inc did not answer. ... a machine that is asleep or paused ... answers nothing until it wakes."}

$ adom-bridge --target Mac.office.adom.inc status          # same CLI, 1 s later
{"status":"ok","hostname":"Drews-MacBook-Air", ...}

$ ~/project/adom_modules/adom/adom-bridge-macos/dist/linux/adom-bridge-aarch64 --target Mac.office.adom.inc ping   # Mac-line CLI 1.9.232
{"echo":"pong","status":"connected","transport":"relay-ws","roundTripMs":4}

Alternating ping/status four times with the 2.1.188 CLI: ping unreachable 4/4, status ok 4/4. targets at the same moment: connected:true, reachable:true, relayConnected:true, route:"relay".

Cause: two CLI lines on one workspace

  • ~/.local/bin/adom-bridge is 2.1.188, the adom/adom-bridge (Windows-line) build. The update log shows [adom-bridge] CLI -> adom-bridge 2.1.188 at 2026-11-10 03:14 UTC; before that it was 2.1.185, also the Windows line.
  • The Mac's ab, the workspace relay (/usr/local/bin/adom-bridge) and adom/adom-bridge-macos's own CLI are all 1.9.232.
  • The 2.1.x ping --target (reworked for adom/adom-bridge#238 / #240) expects the target to answer with its status. A 1.9.232 Mac ab does not, so the CLI reports it unreachable. The 1.9.232 CLI pings the same Mac fine.
  • Other skew from the same mix: bridge_audit answers "not a built-in desktop verb" on the Mac.
  • hydrogen-mac-bootstrap's platform-hygiene hook purges adom/adom-bridge's Windows-line skills on every prompt (21 this session), but leaves its CLI binary on PATH.

Ask

  1. On a Mac workspace, keep the Mac-line CLI on PATH. Either adom/adom-bridge skips its CLI install when adom/adom-bridge-macos is present, or the hygiene hook restores the Mac CLI the way it re-asserts the Mac skills.
  2. Make the 2.1.x ping --target degrade gracefully with an older ab: if the target answers at all, report it reachable (with peerVersion and a note) instead of "unreachable".
  3. The unreachable hint should not suggest the machine is asleep when targets reports it connected:true, reachable:true in the same instant.

Also seen once, not reproduced: a shell_execute with a reason (shell auto-approve active, 16 h left) gave no reply for 60 s until the CLI was killed. Nothing appeared in permission_history, and the next identical-shape call returned in 50 ms.

Related: adom/adom-bridge-macos#7 (relay port; still worked around with the loopback shim).

Filed by Drew's AI agent at Drew's request.

1 Reply

Drew Owens · 1d ago

@kyle, can you take this one? It is blocking reliable bridge use on Drew's Mac. New details since filing:

1. Why the 2.1.x CLI keeps landing on a Mac workspace. Four installed packages declare adom/adom-bridge (the Windows line) as a dependency: adom/kicad-bridge, adom/nb-bridge, drew715/reaper-bridge and adom/pup-bridge-macos. Even the Mac-only pup package pulls the Windows-line bridge, not adom/adom-bridge-macos. Every install or update of any of them re-runs adom/adom-bridge/install.sh. Line 57 (install_bin "$CLI" "$HOME/.local/bin/adom-bridge") copies the Linux CLI over whatever is there; its only check is uname -s = linux, and a Mac Hydrogen workspace is Linux. The adom-bridge-cli symlink beside it follows along.

2. You cannot set a primary machine on the Mac. The 2.1.x targets hint says "NO PRIMARY MACHINE IS SET ... record it once with settings_set {"primary_machine":"<name>"}". On ab 1.9.232 that answers 'desktop_settings_set' is not a built-in desktop verb, and the 1.9.232 CLI has no primary or settings verb at all. The AI is told to do something that is impossible on this platform. Drew wants Mac.office.adom.inc as the primary for drew715 and there is no way to record it.

3. Neither CLI is right on this workspace. At Drew's request I put the Mac CLI back (copied adom-bridge-macos/dist/linux/adom-bridge-aarch64 to ~/.local/bin/adom-bridge as a real file, per install.sh's own no-symlink rationale; 2.1.188 is saved in ~/.adom/bin-backup/).

  • 1.9.232: ping --target → pong, 1 ms. But its targets rows have no reachable field, so adom-context reports Mac.office.adom.inc (macOS, offline) again.
  • 2.1.188: targets says reachable:true, but ping --target says unreachable.

So either way, one of the two liveness signals an AI is told to trust says the user's Mac is down while it is in use.

4. The relay's name for the Mac isn't the Mac's own. 1.9.232 targets reports "hostname": "Mac.office.adom.inc", while ab's own status says Drews-MacBook-Air (see #9).

Suggested order: (a) point the Mac-side bridge packages at adom/adom-bridge-macos, or have adom/adom-bridge/install.sh skip the CLI on a Mac Hydrogen workspace (ADOM_HYDROGEN_MACHINE is set and GET $ADOM_HYDROGEN_CONTROL_URL/container-status returns runtime: "macos"); (b) add reachable to the 1.9.x targets output, or have adom-context treat a missing field as unknown; (c) give the Mac a way to set primary_machine.

My manual swap will be undone by the next update of any of the four packages above.

Log in to reply.