Skip to content

Commit 0e8e72c

Browse files
committed
fix(gemini): ensure workspace context expansion in GEMINI.md
1 parent 92e74bf commit 0e8e72c

1 file changed

Lines changed: 32 additions & 11 deletions

File tree

  • packages/lib/src/core/templates-entrypoint

packages/lib/src/core/templates-entrypoint/gemini.ts

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -91,19 +91,40 @@ GEMINI_CONFIG_SETTINGS_FILE="$GEMINI_SETTINGS_DIR/settings.json"
9191
# Wait for symlink to be established by the auth config step
9292
mkdir -p "$GEMINI_SETTINGS_DIR" || true
9393
94-
# Disable folder trust prompt in settings.json
95-
if [[ ! -f "$GEMINI_CONFIG_SETTINGS_FILE" ]]; then
96-
cat <<'EOF' > "$GEMINI_CONFIG_SETTINGS_FILE"
97-
{
98-
"security": {
99-
"folderTrust": {
100-
"enabled": false
94+
# Disable folder trust prompt and enable auto-approval in settings.json
95+
GEMINI_SYNC_SETTINGS_SCRIPT=$(cat <<'NODE'
96+
const fs = require("node:fs")
97+
const path = require("node:path")
98+
const settingsPath = process.argv[2]
99+
if (!settingsPath) process.exit(1)
100+
101+
const isRecord = (v) => typeof v === "object" && v !== null && !Array.isArray(v)
102+
103+
let settings = {}
104+
try {
105+
settings = JSON.parse(fs.readFileSync(settingsPath, "utf8"))
106+
if (!isRecord(settings)) settings = {}
107+
} catch {}
108+
109+
const nextSettings = {
110+
...settings,
111+
security: {
112+
...(isRecord(settings.security) ? settings.security : {}),
113+
folderTrust: {
114+
...(isRecord(settings.security?.folderTrust) ? settings.security.folderTrust : {}),
115+
enabled: false
101116
}
102117
},
103-
"approvalPolicy": "never"
118+
approvalPolicy: "never"
104119
}
105-
EOF
106-
fi
120+
121+
if (JSON.stringify(settings) !== JSON.stringify(nextSettings)) {
122+
fs.mkdirSync(path.dirname(settingsPath), { recursive: true })
123+
fs.writeFileSync(settingsPath, JSON.stringify(nextSettings, null, 2) + "\n")
124+
}
125+
NODE
126+
)
127+
node -e "$GEMINI_SYNC_SETTINGS_SCRIPT" "$GEMINI_CONFIG_SETTINGS_FILE" || true
107128
108129
# Pre-trust important directories in trustedFolders.json
109130
# Use flat mapping as required by recent Gemini CLI versions
@@ -184,7 +205,7 @@ cat <<EOF > "$GEMINI_MD_PATH"
184205
Ты автономный агент, который имеет полностью все права управления контейнером. У тебя есть доступ к командам sudo, gh, codex, gemini, claude, opencode, oh-my-opencode, sshpass, git, node, pnpm и всем остальным другим. Проекты с которыми идёт работа лежат по пути ~
185206
Рабочая папка проекта (git clone): __TARGET_DIR__
186207
Доступные workspace пути: __TARGET_DIR__
187-
\$GEMINI_WORKSPACE_CONTEXT
208+
$GEMINI_WORKSPACE_CONTEXT
188209
Фокус задачи: работай только в workspace, который запрашивает пользователь. Текущий workspace: __TARGET_DIR__
189210
Доступ к интернету: есть. Если чего-то не знаешь — ищи в интернете или по кодовой базе.
190211
Для решения задач обязательно используй subagents. Сам агент обязан выполнять финальную проверку, интеграцию и валидацию результата перед ответом пользователю.

0 commit comments

Comments
 (0)