58 lines
1.8 KiB
Markdown
58 lines
1.8 KiB
Markdown
# Mosaic tmux Fleet PoC
|
|
|
|
This directory contains the first durable tmux-backed fleet primitives for the
|
|
Mosaic software-factory model.
|
|
|
|
The lifecycle model follows the organization-neutral AI Guide playbook
|
|
`mosaicstack/aiguide:playbooks/tmux-fleet.md` (commit `2a0b0b5`): a dedicated
|
|
holder owns the tmux server/socket; agent units join it and stop only their own
|
|
exact-match session.
|
|
|
|
## Layout
|
|
|
|
- `mosaic-tmux-holder.service` — user-mode holder that owns the named tmux server.
|
|
- `mosaic-agent@.service` — user-mode template for one reusable agent session.
|
|
- `test-fleet-units.sh` — validates unit syntax and required relationships.
|
|
|
|
The agent template calls:
|
|
|
|
```text
|
|
~/.config/mosaic/tools/fleet/start-agent-session.sh <agent-name>
|
|
```
|
|
|
|
which starts or reuses a tmux session on `MOSAIC_TMUX_SOCKET`.
|
|
|
|
## Local customization
|
|
|
|
Per-agent overrides live outside the package in:
|
|
|
|
```text
|
|
~/.config/mosaic/fleet/agents/<agent>.env
|
|
```
|
|
|
|
Example:
|
|
|
|
```dotenv
|
|
MOSAIC_TMUX_SOCKET=mosaic-factory
|
|
MOSAIC_AGENT_RUNTIME=claude
|
|
MOSAIC_AGENT_WORKDIR=/home/jarvis/src/mosaic-stack
|
|
# Optional escape hatch for PoC/canary agents:
|
|
# MOSAIC_AGENT_COMMAND=mosaic yolo claude
|
|
```
|
|
|
|
## Manual canary sequence
|
|
|
|
```bash
|
|
mkdir -p ~/.config/systemd/user ~/.config/mosaic/tools/fleet ~/.config/mosaic/fleet/agents
|
|
cp packages/mosaic/framework/systemd/user/mosaic-*.service ~/.config/systemd/user/
|
|
cp packages/mosaic/framework/tools/fleet/start-agent-session.sh ~/.config/mosaic/tools/fleet/
|
|
chmod +x ~/.config/mosaic/tools/fleet/start-agent-session.sh
|
|
systemctl --user daemon-reload
|
|
systemctl --user start mosaic-tmux-holder.service
|
|
systemctl --user start mosaic-agent@canary.service
|
|
tmux -L mosaic-factory ls
|
|
```
|
|
|
|
Do not use `tmux kill-server` without `-L mosaic-factory`; this pattern is meant
|
|
to avoid disturbing the user's default tmux server.
|