fix(lib): resolve root causes of login prompt in claude and TOS/theme onboarding in agy
This commit is contained in:
+35
-17
@@ -1184,9 +1184,15 @@ provision_isolation() {
|
||||
case "$agent" in
|
||||
claude)
|
||||
if [ -e "$HOME/.claude.json" ]; then ln -sfn "$HOME/.claude.json" "$root/.claude.json"; seeded=".claude.json"; fi
|
||||
ln -sfn "$HOME/.claude/.credentials.json" "$root/.credentials.json"; seeded="${seeded:+$seeded,}.credentials.json"
|
||||
if [ -e "$HOME/.claude/settings.json" ]; then ln -sfn "$HOME/.claude/settings.json" "$root/settings.json"; seeded="$seeded,settings.json"; fi
|
||||
if [ -d "$HOME/.claude/plugins" ]; then ln -sfn "$HOME/.claude/plugins" "$root/plugins"; seeded="$seeded,plugins"; fi
|
||||
if [ -e "$HOME/.claude/.credentials.json" ]; then ln -sfn "$HOME/.claude/.credentials.json" "$root/.credentials.json"; seeded="${seeded:+$seeded,}.credentials.json"; fi
|
||||
if [ -e "$HOME/.claude/settings.json" ]; then
|
||||
if [ ! -e "$root/settings.json" ]; then cp -a "$HOME/.claude/settings.json" "$root/settings.json"; fi
|
||||
seeded="${seeded:+$seeded,}settings.json"
|
||||
fi
|
||||
if [ -d "$HOME/.claude/plugins" ]; then ln -sfn "$HOME/.claude/plugins" "$root/plugins"; seeded="${seeded:+$seeded,}plugins"; fi
|
||||
if [ -d "$HOME/.claude/session-env" ]; then ln -sfn "$HOME/.claude/session-env" "$root/session-env"; seeded="${seeded:+$seeded,}session-env"; fi
|
||||
if [ -d "$HOME/.claude/sessions" ]; then ln -sfn "$HOME/.claude/sessions" "$root/sessions"; seeded="${seeded:+$seeded,}sessions"; fi
|
||||
if [ -d "$HOME/.claude/cache" ]; then ln -sfn "$HOME/.claude/cache" "$root/cache"; seeded="${seeded:+$seeded,}cache"; fi
|
||||
;;
|
||||
cline)
|
||||
# CLI 가 --data-dir <root> 를 읽을 때 최상위 루트 하위에서 설정을 찾으므로 다이렉트 맵핑
|
||||
@@ -1214,19 +1220,23 @@ provision_isolation() {
|
||||
for f in oauth_creds.json google_accounts.json installation_id settings.json state.json; do
|
||||
if [ -e "$HOME/.gemini/$f" ]; then ln -sfn "$HOME/.gemini/$f" "$root/.gemini/$f"; seeded="${seeded:+$seeded,}.gemini/$f"; fi
|
||||
done
|
||||
for f in antigravity-oauth-token installation_id settings.json; do
|
||||
for f in antigravity-oauth-token installation_id settings.json conversation_summaries.db jetski_state.pbtxt; do
|
||||
if [ -e "$HOME/.gemini/antigravity-cli/$f" ]; then ln -sfn "$HOME/.gemini/antigravity-cli/$f" "$root/.gemini/antigravity-cli/$f"; seeded="${seeded:+$seeded,}.gemini/antigravity-cli/$f"; fi
|
||||
done
|
||||
if [ -d "$HOME/.gemini/antigravity" ]; then
|
||||
ln -sfn "$HOME/.gemini/antigravity" "$root/.gemini/antigravity"
|
||||
seeded="${seeded:+$seeded,}.gemini/antigravity"
|
||||
fi
|
||||
if [ -d "$HOME/.gemini/antigravity-ide" ]; then
|
||||
if [ ! -d "$root/.gemini/antigravity-ide" ]; then cp -a "$HOME/.gemini/antigravity-ide" "$root/.gemini/antigravity-ide"; fi
|
||||
seeded="${seeded:+$seeded,}.gemini/antigravity-ide"
|
||||
fi
|
||||
if [ -d "$HOME/.gemini/config" ]; then
|
||||
ln -sfn "$HOME/.gemini/config" "$root/.gemini/config"
|
||||
seeded="${seeded:+$seeded,}.gemini/config"
|
||||
fi
|
||||
# On macOS, seed ~/Library/Keychains to allow isolated agy to query Keychain Access credentials
|
||||
# Also seed Preferences and Application Support for Antigravity settings/TOS
|
||||
# Also seed Preferences and Application Support for Antigravity settings/TOS/Theme (using cp -a for write isolation)
|
||||
if [ "$(uname)" = "Darwin" ]; then
|
||||
mkdir -p "$root/Library"
|
||||
if [ -d "$HOME/Library/Keychains" ]; then
|
||||
@@ -1234,42 +1244,50 @@ provision_isolation() {
|
||||
seeded="${seeded:+$seeded,}Library/Keychains"
|
||||
fi
|
||||
mkdir -p "$root/Library/Preferences"
|
||||
for plist in com.google.antigravity.plist com.google.GeminiMacOS.plist com.google.GeminiMacOS.shareddata.plist; do
|
||||
for plist in com.google.antigravity.plist com.google.antigravity-ide.plist com.google.GeminiMacOS.plist com.google.GeminiMacOS.shareddata.plist com.google.GeminiMacOS.launcher.plist; do
|
||||
if [ -f "$HOME/Library/Preferences/$plist" ]; then
|
||||
ln -sfn "$HOME/Library/Preferences/$plist" "$root/Library/Preferences/$plist"
|
||||
seeded="$seeded,Library/Preferences/$plist"
|
||||
if [ ! -f "$root/Library/Preferences/$plist" ]; then cp -a "$HOME/Library/Preferences/$plist" "$root/Library/Preferences/$plist"; fi
|
||||
seeded="${seeded:+$seeded,}Library/Preferences/$plist"
|
||||
fi
|
||||
done
|
||||
mkdir -p "$root/Library/Application Support"
|
||||
if [ -d "$HOME/Library/Application Support/Antigravity" ]; then
|
||||
mkdir -p "$root/Library/Application Support"
|
||||
ln -sfn "$HOME/Library/Application Support/Antigravity" "$root/Library/Application Support/Antigravity"
|
||||
seeded="$seeded,Library/Application Support/Antigravity"
|
||||
if [ ! -d "$root/Library/Application Support/Antigravity" ]; then cp -a "$HOME/Library/Application Support/Antigravity" "$root/Library/Application Support/Antigravity"; fi
|
||||
seeded="${seeded:+$seeded,}Library/Application Support/Antigravity"
|
||||
fi
|
||||
if [ -d "$HOME/Library/Application Support/Antigravity IDE" ]; then
|
||||
if [ ! -d "$root/Library/Application Support/Antigravity IDE" ]; then cp -a "$HOME/Library/Application Support/Antigravity IDE" "$root/Library/Application Support/Antigravity IDE"; fi
|
||||
seeded="${seeded:+$seeded,}Library/Application Support/Antigravity IDE"
|
||||
fi
|
||||
if [ -d "$HOME/Library/Application Support/com.google.GeminiMacOS" ]; then
|
||||
if [ ! -d "$root/Library/Application Support/com.google.GeminiMacOS" ]; then cp -a "$HOME/Library/Application Support/com.google.GeminiMacOS" "$root/Library/Application Support/com.google.GeminiMacOS"; fi
|
||||
seeded="${seeded:+$seeded,}Library/Application Support/com.google.GeminiMacOS"
|
||||
fi
|
||||
if [ -d "$HOME/Library/Group Containers/group.com.google.gemini" ]; then
|
||||
mkdir -p "$root/Library/Group Containers"
|
||||
ln -sfn "$HOME/Library/Group Containers/group.com.google.gemini" "$root/Library/Group Containers/group.com.google.gemini"
|
||||
seeded="$seeded,Library/Group Containers/group.com.google.gemini"
|
||||
seeded="${seeded:+$seeded,}Library/Group Containers/group.com.google.gemini"
|
||||
fi
|
||||
else
|
||||
# On Linux/Unix, seed XDG config and local data dirs for Antigravity settings/TOS
|
||||
# On Linux/Unix, seed XDG config and local data dirs for Antigravity settings/TOS (using cp -a for write isolation)
|
||||
local xdg_config="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||
local xdg_data="${XDG_DATA_HOME:-$HOME/.local/share}"
|
||||
if [ -d "$xdg_config/Antigravity" ]; then
|
||||
mkdir -p "$root/.config"
|
||||
ln -sfn "$xdg_config/Antigravity" "$root/.config/Antigravity"
|
||||
if [ ! -d "$root/.config/Antigravity" ]; then cp -a "$xdg_config/Antigravity" "$root/.config/Antigravity"; fi
|
||||
seeded="${seeded:+$seeded,}.config/Antigravity"
|
||||
elif [ -d "$xdg_config/antigravity" ]; then
|
||||
mkdir -p "$root/.config"
|
||||
ln -sfn "$xdg_config/antigravity" "$root/.config/antigravity"
|
||||
if [ ! -d "$root/.config/antigravity" ]; then cp -a "$xdg_config/antigravity" "$root/.config/antigravity"; fi
|
||||
seeded="${seeded:+$seeded,}.config/antigravity"
|
||||
fi
|
||||
if [ -d "$xdg_data/Antigravity" ]; then
|
||||
mkdir -p "$root/.local/share"
|
||||
ln -sfn "$xdg_data/Antigravity" "$root/.local/share/Antigravity"
|
||||
if [ ! -d "$root/.local/share/Antigravity" ]; then cp -a "$xdg_data/Antigravity" "$root/.local/share/Antigravity"; fi
|
||||
seeded="${seeded:+$seeded,}.local/share/Antigravity"
|
||||
elif [ -d "$xdg_data/antigravity" ]; then
|
||||
mkdir -p "$root/.local/share"
|
||||
ln -sfn "$xdg_data/antigravity" "$root/.local/share/antigravity"
|
||||
if [ ! -d "$root/.local/share/antigravity" ]; then cp -a "$xdg_data/antigravity" "$root/.local/share/antigravity"; fi
|
||||
seeded="${seeded:+$seeded,}.local/share/antigravity"
|
||||
fi
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user