From e7b184b0e22dc6026f70aa1d1cfc2b2485b1d468 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Sat, 20 Jun 2026 15:26:44 -0500 Subject: [PATCH] fix(fleet): harden operator sends for release --- docs/guides/fleet-local-canary.md | 32 ++++ .../2026-06-20-fleet-release-hardening.md | 35 +++++ packages/mosaic/src/commands/fleet.spec.ts | 145 +++++++++++++++++- packages/mosaic/src/commands/fleet.ts | 35 +++-- 4 files changed, 236 insertions(+), 11 deletions(-) create mode 100644 docs/scratchpads/2026-06-20-fleet-release-hardening.md diff --git a/docs/guides/fleet-local-canary.md b/docs/guides/fleet-local-canary.md index 78ad59f..24861ff 100644 --- a/docs/guides/fleet-local-canary.md +++ b/docs/guides/fleet-local-canary.md @@ -17,6 +17,9 @@ Product-owned defaults: - `packages/mosaic/framework/tools/tmux/agent-send.sh` - `packages/mosaic/framework/tools/tmux/send-message.sh` +These files are published through `packages/mosaic/package.json`, whose `files` +allowlist includes `framework` along with `dist`. + Site-owned local roster: ```text @@ -66,6 +69,14 @@ These commands read the roster and target the configured tmux socket. The generated systemd agent services use `start-agent-session.sh`; message delivery uses the tmux send tools with `-L mosaic-factory`. +`mosaic agent send` is operator-origin traffic unless a caller explicitly says +otherwise. The CLI always passes a deterministic source label to +`agent-send.sh` with `-S`, defaulting to `:operator`, so it does not +query the target tmux socket and accidentally identify as an active agent pane. +Use `--source-label