diff --git a/.gemini/settings.json b/.gemini/settings.json index 1167e60f10..1a4c889066 100644 --- a/.gemini/settings.json +++ b/.gemini/settings.json @@ -6,17 +6,5 @@ }, "general": { "devtools": true - }, - "maintainer": { - "deepReview": { - "projectId": "gemini-cli-team-quota", - "zone": "us-west1-a", - "remoteHost": "gcli-worker", - "remoteWorkDir": "~/dev/main", - "userFork": "google-gemini/gemini-cli", - "upstreamRepo": "google-gemini/gemini-cli", - "useContainer": false, - "terminalType": "iterm2" - } } -} \ No newline at end of file +} diff --git a/.gemini/skills/offload/scripts/check.ts b/.gemini/skills/offload/scripts/check.ts index 0ab6c18a97..4c8efe5153 100644 --- a/.gemini/skills/offload/scripts/check.ts +++ b/.gemini/skills/offload/scripts/check.ts @@ -14,13 +14,13 @@ export async function runChecker(args: string[], env: NodeJS.ProcessEnv = proces return 1; } - const settingsPath = path.join(REPO_ROOT, '.gemini/settings.json'); + const settingsPath = path.join(REPO_ROOT, '.gemini/offload/settings.json'); if (!fs.existsSync(settingsPath)) { console.error('❌ Settings not found. Run "npm run offload:setup" first.'); return 1; } const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8')); - const config = settings.maintainer?.deepReview; + const config = settings.deepReview; if (!config) { console.error('❌ Deep Review configuration not found.'); return 1; diff --git a/.gemini/skills/offload/scripts/fleet.ts b/.gemini/skills/offload/scripts/fleet.ts index 6b9df3b871..1be08082fd 100644 --- a/.gemini/skills/offload/scripts/fleet.ts +++ b/.gemini/skills/offload/scripts/fleet.ts @@ -17,11 +17,11 @@ const INSTANCE_PREFIX = `gcli-offload-${USER}`; const DEFAULT_ZONE = 'us-west1-a'; function getProjectId(): string { - const settingsPath = path.join(REPO_ROOT, '.gemini/settings.json'); + const settingsPath = path.join(REPO_ROOT, '.gemini/offload/settings.json'); if (fs.existsSync(settingsPath)) { try { const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8')); - return settings.maintainer?.deepReview?.projectId; + return settings.deepReview?.projectId; } catch (e) {} } return process.env.GOOGLE_CLOUD_PROJECT || ''; @@ -79,13 +79,13 @@ async function stopWorker() { } async function remoteStatus() { - const settingsPath = path.join(REPO_ROOT, '.gemini/settings.json'); + const settingsPath = path.join(REPO_ROOT, '.gemini/offload/settings.json'); if (!fs.existsSync(settingsPath)) { console.error('❌ Settings not found. Run "npm run offload:setup" first.'); return; } const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8')); - const config = settings.maintainer?.deepReview; + const config = settings.deepReview; const provider = ProviderFactory.getProvider({ projectId: config?.projectId || getProjectId(), diff --git a/.gemini/skills/offload/scripts/orchestrator.ts b/.gemini/skills/offload/scripts/orchestrator.ts index 286fc4f09b..41e85c106b 100644 --- a/.gemini/skills/offload/scripts/orchestrator.ts +++ b/.gemini/skills/offload/scripts/orchestrator.ts @@ -23,13 +23,13 @@ export async function runOrchestrator(args: string[], env: NodeJS.ProcessEnv = p } // 1. Load Settings - const settingsPath = path.join(REPO_ROOT, '.gemini/settings.json'); + const settingsPath = path.join(REPO_ROOT, '.gemini/offload/settings.json'); if (!fs.existsSync(settingsPath)) { console.error('❌ Settings not found. Run "npm run offload:setup" first.'); return 1; } const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8')); - const config = settings.maintainer?.deepReview; + const config = settings.deepReview; if (!config) { console.error('❌ Deep Review configuration not found.'); return 1; diff --git a/.gemini/skills/offload/scripts/providers/GceCosProvider.ts b/.gemini/skills/offload/scripts/providers/GceCosProvider.ts index 84e1ad9e5f..49d1187068 100644 --- a/.gemini/skills/offload/scripts/providers/GceCosProvider.ts +++ b/.gemini/skills/offload/scripts/providers/GceCosProvider.ts @@ -22,8 +22,10 @@ export class GceCosProvider implements WorkerProvider { this.projectId = projectId; this.zone = zone; this.instanceName = instanceName; - this.sshConfigPath = path.join(repoRoot, '.gemini/offload_ssh_config'); - this.knownHostsPath = path.join(repoRoot, '.gemini/offload_known_hosts'); + const offloadDir = path.join(repoRoot, '.gemini/offload'); + if (!fs.existsSync(offloadDir)) fs.mkdirSync(offloadDir, { recursive: true }); + this.sshConfigPath = path.join(offloadDir, 'ssh_config'); + this.knownHostsPath = path.join(offloadDir, 'known_hosts'); } async provision(): Promise { diff --git a/.gemini/skills/offload/scripts/setup.ts b/.gemini/skills/offload/scripts/setup.ts index 9bfcc5ae64..e1d19cf40b 100644 --- a/.gemini/skills/offload/scripts/setup.ts +++ b/.gemini/skills/offload/scripts/setup.ts @@ -68,8 +68,9 @@ export async function runSetup(env: NodeJS.ProcessEnv = process.env) { const setupRes = await provider.setup({ projectId, zone, dnsSuffix }); if (setupRes !== 0) return setupRes; - const sshConfigPath = path.join(REPO_ROOT, '.gemini/offload_ssh_config'); - const knownHostsPath = path.join(REPO_ROOT, '.gemini/offload_known_hosts'); + const offloadDir = path.join(REPO_ROOT, '.gemini/offload'); + const sshConfigPath = path.join(offloadDir, 'ssh_config'); + const knownHostsPath = path.join(offloadDir, 'known_hosts'); // 1b. Security Fork Management (Temporarily Disabled) const upstreamRepo = 'google-gemini/gemini-cli'; @@ -133,13 +134,12 @@ export async function runSetup(env: NodeJS.ProcessEnv = process.env) { } // Save Settings - const settingsPath = path.join(REPO_ROOT, '.gemini/settings.json'); + const settingsPath = path.join(REPO_ROOT, '.gemini/offload/settings.json'); let settings: any = {}; if (fs.existsSync(settingsPath)) { try { settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8')); } catch (e) {} } - settings.maintainer = settings.maintainer || {}; - settings.maintainer.deepReview = { + settings.deepReview = { projectId, zone, remoteHost: 'gcli-worker', remoteWorkDir, userFork, upstreamRepo,