From 5e183041846806d44482c135d2864bd8524df19f Mon Sep 17 00:00:00 2001 From: Sam Valladares Date: Thu, 18 Jun 2026 20:10:28 -0500 Subject: [PATCH] Fix OpenCode init migration cleanup --- packages/vestige-init/bin/init.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/vestige-init/bin/init.js b/packages/vestige-init/bin/init.js index cb62f81..78ea98e 100755 --- a/packages/vestige-init/bin/init.js +++ b/packages/vestige-init/bin/init.js @@ -360,18 +360,24 @@ function injectConfig(ide, ideName, binaryPath) { // OpenCode uses top-level "mcp" entries with command arrays. if (!config.$schema) config.$schema = 'https://opencode.ai/config.json'; if (!config.mcp) config.mcp = {}; - if (config.mcp.vestige) { - console.log(` [skip] ${ideName} — already configured`); - return false; - } + let migratedOpenCodeConfig = false; if (config.mcpServers && config.mcpServers.vestige) { delete config.mcpServers.vestige; + migratedOpenCodeConfig = true; if (Object.keys(config.mcpServers).length === 0) { delete config.mcpServers; } console.log(` [migrate] ${ideName} — moved vestige from mcpServers to mcp`); } - config.mcp.vestige = buildOpenCodeConfig(binaryPath); + if (config.mcp.vestige) { + if (!migratedOpenCodeConfig) { + console.log(` [skip] ${ideName} — already configured`); + return false; + } + // Preserve the valid OpenCode entry while still writing the stale-key cleanup. + } else { + config.mcp.vestige = buildOpenCodeConfig(binaryPath); + } } else { // Standard mcpServers format (Cursor, Claude Desktop, JetBrains, Windsurf) const key = ide.key || 'mcpServers';