#!/usr/bin/env bash # ============================================================================== # sync-agy-session.sh # 用途:将本机 (MacBook Air) 当前的 AGY 会话上下文与 GEMINI.md 永久记忆同步至 # Mac mini 云端工作台 (https://agy.961504.xyz),实现网页端无缝接力 # ============================================================================== set -euo pipefail SESSION_ID="${1:-6293ebb4-df60-4db6-bf5d-df33433ba106}" MINI_HOST="${MINI_HOST:-mini}" AGY_DIR="$HOME/.gemini/antigravity-cli" echo "==> [1/4] 同步全局永久记忆文件 GEMINI.md 至本机与 Mac mini..." cp /Users/ixvii0iv/homelab/GEMINI.md "$HOME/GEMINI.md" ssh "$MINI_HOST" "mkdir -p ~/homelab ~/workspace ~/.gemini/antigravity-cli/conversations ~/.gemini/antigravity-cli/brain" rsync -az /Users/ixvii0iv/homelab/GEMINI.md "$MINI_HOST:~/GEMINI.md" rsync -az /Users/ixvii0iv/homelab/GEMINI.md "$MINI_HOST:~/homelab/GEMINI.md" rsync -az /Users/ixvii0iv/homelab/GEMINI.md "$MINI_HOST:~/workspace/GEMINI.md" echo "==> [2/4] 同步会话索引库与历史记录 (conversation_summaries.db / history.jsonl)..." for f in conversation_summaries.db conversation_summaries.db-wal conversation_summaries.db-shm jetbox_summaries_proto.pb history.jsonl; do if [ -f "$AGY_DIR/$f" ]; then rsync -az "$AGY_DIR/$f" "$MINI_HOST:~/.gemini/antigravity-cli/$f" fi done echo "==> [3/4] 同步当前会话数据库与 Brain 上下文 ($SESSION_ID)..." rsync -az "$AGY_DIR/conversations/${SESSION_ID}".db* "$MINI_HOST:~/.gemini/antigravity-cli/conversations/" if [ -d "$AGY_DIR/brain/${SESSION_ID}" ]; then rsync -az "$AGY_DIR/brain/${SESSION_ID}/" "$MINI_HOST:~/.gemini/antigravity-cli/brain/${SESSION_ID}/" fi echo "==> [4/4] 在 Mac mini 的 tmux (agy) 会话中配置一键恢复别名..." ssh "$MINI_HOST" "grep -q 'alias agy-resume=' ~/.zshrc 2>/dev/null || echo \"alias agy-resume='agy --conversation ${SESSION_ID}'\" >> ~/.zshrc" echo "✅ 同步完成!" echo " • 网页端工作台地址: https://agy.961504.xyz (或在中控台右上角点击 [>_ AGY 终端])" echo " • 恢复当前完整会话: agy --conversation ${SESSION_ID} (或直接输入: agy-resume / agy -c)" echo " • 开启新会话(自带完整架构记忆): agy"