#!/usr/bin/env bash set -euo pipefail BASE_DIR="${REPO_DIR:-$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)}" ENV_FILE="${ENV_FILE:-/home/m/assistant-deploy/production-compose.env}" COMPOSE_FILE="$BASE_DIR/deploy/docker-compose.prod.yml" set -a . "$ENV_FILE" set +a compose() { docker compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" "$@"; } stable_services=(creator-web core-runtime cognitive-worker research-runtime) stable_ids() { local service container id for service in "${stable_services[@]}"; do container="assistant-${service}-1" id=$(docker inspect -f '{{.Id}}' "$container" 2>/dev/null || true) [[ -n "$id" ]] || { echo "stable container missing: $container" >&2; return 1; } printf '%s=%s\n' "$service" "$id" done } before=$(stable_ids) compose up -d --no-build --no-deps supervisor after=$(stable_ids) [[ "$before" == "$after" ]] || { echo "stable container IDs changed while updating supervisor" >&2 diff -u <(printf '%s\n' "$before") <(printf '%s\n' "$after") >&2 || true exit 1 } printf '%s\n' "$after"