# Local Fleet Canary The local fleet canary runs a small tmux-backed Mosaic agent fleet on an isolated tmux socket. The default socket is `mosaic-factory`; the commands do not use or stop the default tmux server. ## Files Product-owned defaults: - `packages/mosaic/framework/fleet/roster.schema.json` - `packages/mosaic/framework/fleet/examples/minimal.yaml` - `packages/mosaic/framework/fleet/examples/local-canary.yaml` - `packages/mosaic/framework/systemd/user/mosaic-tmux-holder.service` - `packages/mosaic/framework/systemd/user/mosaic-agent@.service` - `packages/mosaic/framework/tools/fleet/start-agent-session.sh` - `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 ~/.config/mosaic/fleet/roster.yaml ``` Do not put a host-specific full roster into product defaults. Start from an example and edit the local roster after `mosaic fleet init --write`. ## Install Minimal canary: ```bash mosaic fleet init --profile minimal --write # If a site-owned roster already exists, inspect it first; overwrite only explicitly: # mosaic fleet init --profile minimal --write --force mosaic fleet install-systemd systemctl --user daemon-reload mosaic fleet start mosaic fleet verify ``` Small dogfood roster: ```bash mosaic fleet init --profile local-canary --write # Use --force only after preserving any site-owned roster changes. mosaic fleet install-systemd systemctl --user daemon-reload mosaic fleet start mosaic fleet status ``` ## Agent Operations ```bash mosaic agent roster mosaic agent status mosaic agent status canary-pi mosaic agent send canary-pi --message "status check" mosaic agent reset canary-pi --new mosaic agent tail canary-pi -n 80 ``` 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