send-message.sh (mandated comms tool) silently drops on wrong-path guess — add compat symlinks #841

Open
opened 2026-07-19 08:53:44 +00:00 by jason.woltje · 0 comments
Owner

Problem

send-message.sh — now the mandated inter-agent comms channel (Jason directive, #mos 2026-07-17) — exists at exactly one path:

~/.config/mosaic/tools/tmux/send-message.sh   (only location)

A fleet coordinator session was observed invoking it at two plausible-but-wrong paths, both failing with Exit code 127:

/home/hermes/.config/mosaic/tools/agent-comms/send-message.sh: No such file or directory
/home/hermes/.config/mosaic/tools/send-message.sh: No such file or directory

Root cause

The tool lives under tools/tmux/, which is non-obvious for a comms tool — tools/agent-comms/ and a top-level tools/send-message.sh are natural guesses. No doc/skill/prompt under ~/.config/mosaic emits the wrong paths (grep -rl clean), so this is operator/agent path-guessing from muscle memory, not a stale reference. The observed occurrence was single and self-corrected.

Blast radius

Low-frequency but high-consequence: send-message.sh is the only sanctioned inter-agent channel (raw tmux send-keys and the purged agent-send.sh are forbidden). A wrong-path guess returns Exit 127 — a silent message drop. The sender's turn continues as if the message was queued; the recipient never gets it → a coordination gap that is invisible until someone notices the missing ACK. This directly undercuts the mandated comms protocol.

Proposed fix (trivial, defensive)

Add compat symlinks at the two natural-guess paths pointing at the canonical tool, placed in whatever source tree deploys ~/.config/mosaic/tools/ (framework SSOT), so they survive redeploys:

tools/send-message.sh              -> tmux/send-message.sh
tools/agent-comms/send-message.sh  -> ../tmux/send-message.sh

Alternatively (or additionally): have send-message.sh self-verify at start and, if invoked from a wrong basename/path, print the canonical path to stderr — but symlinks are the zero-friction fix.

Effort

Trivial — two symlinks in the tools source tree. Shared-runtime → coordinate/merge via Mos (AGENTS.md rule 38); I do not modify ~/.config/mosaic directly.


Filed by enhance nightly pass 2026-07-19. Evidence: fleet digest digest-20260719T084915Z, mosaic-stack coordinator session. Single observed occurrence; filed for the latent-trap hardening value, not frequency.

## Problem `send-message.sh` — now the **mandated** inter-agent comms channel (Jason directive, #mos 2026-07-17) — exists at exactly **one** path: ``` ~/.config/mosaic/tools/tmux/send-message.sh (only location) ``` A fleet coordinator session was observed invoking it at two *plausible-but-wrong* paths, both failing with `Exit code 127`: ``` /home/hermes/.config/mosaic/tools/agent-comms/send-message.sh: No such file or directory /home/hermes/.config/mosaic/tools/send-message.sh: No such file or directory ``` ## Root cause The tool lives under `tools/tmux/`, which is non-obvious for a *comms* tool — `tools/agent-comms/` and a top-level `tools/send-message.sh` are natural guesses. No doc/skill/prompt under `~/.config/mosaic` emits the wrong paths (`grep -rl` clean), so this is operator/agent path-guessing from muscle memory, not a stale reference. The observed occurrence was single and self-corrected. ## Blast radius Low-frequency but **high-consequence**: `send-message.sh` is the *only* sanctioned inter-agent channel (raw `tmux send-keys` and the purged `agent-send.sh` are forbidden). A wrong-path guess returns `Exit 127` — a **silent message drop**. The sender's turn continues as if the message was queued; the recipient never gets it → a coordination gap that is invisible until someone notices the missing ACK. This directly undercuts the mandated comms protocol. ## Proposed fix (trivial, defensive) Add compat symlinks at the two natural-guess paths pointing at the canonical tool, placed in whatever source tree deploys `~/.config/mosaic/tools/` (framework SSOT), so they survive redeploys: ``` tools/send-message.sh -> tmux/send-message.sh tools/agent-comms/send-message.sh -> ../tmux/send-message.sh ``` Alternatively (or additionally): have `send-message.sh` self-verify at start and, if invoked from a wrong basename/path, print the canonical path to stderr — but symlinks are the zero-friction fix. ## Effort Trivial — two symlinks in the tools source tree. Shared-runtime → coordinate/merge via Mos (AGENTS.md rule 38); I do not modify `~/.config/mosaic` directly. --- _Filed by `enhance` nightly pass 2026-07-19. Evidence: fleet digest digest-20260719T084915Z, mosaic-stack coordinator session. Single observed occurrence; filed for the latent-trap hardening value, not frequency._
jason.woltje added the fleet-enhancement label 2026-07-19 08:53:44 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#841