1  #!/bin/bash
   2  # ==============================================================================
   3  # NEURALOS MEMORY & FLEET SYNCHRONIZATION
   4  # Synchronizes project directives, schemas, and memory between Master and Body
   5  # ==============================================================================
   6  
   7  set -e
   8  
   9  DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  10  CONF_FILE="$DIR/neuralos.conf"
  11  
  12  if [ -f "$CONF_FILE" ]; then
  13      source "$CONF_FILE"
  14  else
  15      DELL_IP="192.168.31.65"
  16      DELL_USER="agent"
  17  fi
  18  
  19  echo "========================================================================"
  20  echo "  [SYNC] NEURALOS FLEET SYNCHRONIZATION"
  21  echo "  TARGET ANCHOR: $DELL_USER@$DELL_IP"
  22  echo "========================================================================"
  23  
  24  # Test connection
  25  TARGET_IP="$DELL_IP"
  26  printf "  [+] Checking connection to anchor node... "
  27  if ping -c 1 -W 1000 "$DELL_IP" > /dev/null 2>&1; then
  28      TARGET_IP="$DELL_IP"
  29      echo "[ONLINE via LAN: $TARGET_IP]"
  30  elif [ -n "$DELL_TAILSCALE_IP" ] && ping -c 1 -W 1500 "$DELL_TAILSCALE_IP" > /dev/null 2>&1; then
  31      TARGET_IP="$DELL_TAILSCALE_IP"
  32      echo "[ONLINE via Tailscale: $TARGET_IP]"
  33  else
  34      echo "[OFFLINE]"
  35      echo "  [!] Cannot reach Dell anchor at LAN ($DELL_IP) or Tailscale ($DELL_TAILSCALE_IP)."
  36      exit 1
  37  fi
  38  
  39  # Ensure remote sync directory exists
  40  echo "  [+] Preparing sync anchor directory on /dev/sda3..."
  41  ssh -o BatchMode=yes -o ConnectTimeout=5 "$DELL_USER@$TARGET_IP" "sudo mkdir -p /var/neural_memory/project_docs && sudo chown -R $DELL_USER:$DELL_USER /var/neural_memory"
  42  
  43  # Push project markdown docs and configs to Dell
  44  echo "  [+] Pushing core architecture directives (Mac -> Dell SSD)..."
  45  rsync -avz --exclude '.obsidian' --exclude '*.db*' "$DIR/" "$DELL_USER@$TARGET_IP:/var/neural_memory/project_docs/"
  46  
  47  # Pull memory snapshots to Mac for offline reading cache
  48  echo "  [+] Pulling latest memory snapshot (Dell SSD -> Mac cache)..."
  49  rsync -avz "$DELL_USER@$TARGET_IP:/var/neural_memory/data/memory.db" "$DIR/.memory_cache.db"
  50  rsync -avz "$DELL_USER@$TARGET_IP:/var/neural_memory/data/graph_memory.db" "$DIR/.graph_memory_cache.db"
  51  
  52  echo ""
  53  echo "========================================================================"
  54  echo "  SYNCHRONIZATION COMPLETE"
  55  echo "  Local docs backed up on Dell: /var/neural_memory/project_docs/"
  56  echo "  Offline memory cache: $DIR/.memory_cache.db"
  57  echo "  Offline graph memory cache: $DIR/.graph_memory_cache.db"
  58  echo "========================================================================"
  59