Closed bug report

Windows CLI: 'status --target <peer>' and 'targets' ignore the mesh (they read only the local relay's client list); ordinary verbs already route over the mesh

John Lauer · 2mo ago ·closed by John Lauer

On AdomLapper (ab 2.1.88, mesh enabled, 3 peers connected over the relay) the Windows CLI routes an ordinary targeted verb through the local ab's egress and the mesh: 'adom-bridge-cli --target winvm update_status' answers from winvm with route.via = mesh. But two CLI-level composites never take that path: 'status' asks the LOCAL relay server for its client list and sends a bare status envelope, so 'adom-bridge-cli --target winvm status' answers the laptop's own status wrapper with desktop.error = target_not_found ('Connected right now: AdomLapper'); and 'targets' lists only the ABs attached to the local relay (one box) although the mesh directory knows three more. Fix (CLI): when --target names a peer (not 'all'), 'status' routes 'status' as a desktop command through the same local-ab hand-off every other verb uses (mesh first, relays as fallback) and reports route.via; 'targets' unions the local ab's mesh peers (desktop_mesh_peers: name, machine, version, connected, path) with the relay's client list, tagging each row via relay/mesh. Ships as insiders with the CLI rebuilt and signed inside the bundle.

3 Replies

John Lauer · 2mo ago

Root cause pinned on AdomLapper (2.1.88): a direct POST to the local ab's /command with target winvm answered winvm's status with route.via = mesh, and 'adom-bridge-cli --target winvm update_status' did the same - the hand-off (relay::desktop_command -> direct_call_target -> direct_api_peer_egress, since 2.1.40) works. Only the CLI-level composites skipped it: status() called relay::get_clients + a bare status envelope on the local relay (which on the laptop holds only AdomLapper -> target_not_found), and targets() listed that same relay-only client list. Fix in 2.1.89 (building now): status with a named target goes through desktop_command like every verb (answer carries target + route); targets asks the local ab's own targets (relay list unioned with the mesh directory) and tags rows via/mesh/path/rttMs, falling back to the relay list where no local ab exists (gallia, containers). The CLI is rebuilt and Azure-signed inside the bundle.

John Lauer · 2mo ago

Shipped 2.1.89 then 2.1.90 (insiders). Fleet: winvm (canary, real embedded update path), ConfRoomROG, AdomLapper on 2.1.90; arav-rog picks it up via ah's supervisor; Linux CLI 2.1.90 published and gallia's relay module refreshed. Proof on AdomLapper with the Windows CLI, the box whose embedded relay holds only itself (the 2.1.88 failure condition): 'adom-bridge-cli --target winvm status' -> hostname winvm, route.via mesh; --target arav-rog -> arav-rog via mesh; --target ConfRoomROG -> via mesh (via relay for the first minute after its own restart, which is the intended fallback). 'adom-bridge-cli targets' -> source local-ab, count 4: arav-rog mesh:true rttMs 30, winvm mesh:true rttMs 41, ConfRoomROG mesh:true rttMs 26, AdomLapper (self). Plain verbs unchanged (update_status --target winvm via mesh). 2.1.90 was needed because the relay's get_clients is a bare array and ab's relay-plus-mesh union (direct_api_list_peers) had silently dropped every mesh flag since 2.1.40 - the 2.1.89 target list said mesh:false for peers the mesh had connected; it now normalises the shape and copies path/rttMs/meshConnected onto the row. Smoke suite on 2.1.89: 60/60 executed, 0 unexpected failures; 2.1.90's run is in progress and closes this when green.

John Lauer · 2mo ago

Closing: 2.1.90 insiders on the whole fleet; proof above (status --target answers the named box over the mesh, targets lists all four boxes with mesh:true/path/rttMs for every mesh-connected peer, plain verbs unchanged); smoke suite on 2.1.90: 60/60 executed, 0 unexpected failures (T11/T12 lifecycle skipped by design; a first run had 3 relay-unreachable hits caused by my own package publish bouncing gallia's relay child mid-suite, rerun clean).

John Lauer closed this · 2mo ago

Log in to reply.