#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR=$(cd -- "$(dirname -- "$0")" && pwd) START="$SCRIPT_DIR/start-agent-session.sh" SOCKET="mosaic-agent-test-$RANDOM-$$" AGENT="agent-$RANDOM" WORKDIR=$(mktemp -d) trap 'tmux -L "$SOCKET" kill-server >/dev/null 2>&1 || true; rm -rf "$WORKDIR"' EXIT fail() { echo "FAIL: $*" >&2 exit 1 } MOSAIC_TMUX_SOCKET="$SOCKET" \ MOSAIC_AGENT_WORKDIR="$WORKDIR" \ MOSAIC_AGENT_COMMAND='bash --noprofile --norc -i' \ "$START" "$AGENT" tmux -L "$SOCKET" has-session -t "=$AGENT:0.0" || fail "agent session was not created" actual_dir=$(tmux -L "$SOCKET" display-message -p -t "=$AGENT:0.0" '#{pane_current_path}') [ "$actual_dir" = "$WORKDIR" ] || fail "agent workdir mismatch: $actual_dir" MOSAIC_TMUX_SOCKET="$SOCKET" \ MOSAIC_AGENT_WORKDIR="$WORKDIR" \ MOSAIC_AGENT_COMMAND='bash --noprofile --norc -i' \ "$START" "$AGENT" >/tmp/mosaic-start-agent-idempotent.out grep -qF 'already running' /tmp/mosaic-start-agent-idempotent.out || fail "duplicate start was not idempotent" echo "ok - start-agent-session"