Update companionPort not existing to be a warning so the user can still proceed with running /ide install (#4382)

This commit is contained in:
Shreya Keshive
2025-07-17 12:59:57 -04:00
committed by GitHub
parent 79d36ac0a5
commit 88b5f20943
2 changed files with 27 additions and 22 deletions

View File

@@ -947,16 +947,20 @@ describe('loadCliConfig ideMode', () => {
expect(mcpServers['_ide_server'].trust).toBe(false); expect(mcpServers['_ide_server'].trust).toBe(false);
}); });
it('should throw an error if ideMode is true and no port is set', async () => { it('should warn if ideMode is true and no port is set', async () => {
const consoleWarnSpy = vi
.spyOn(console, 'warn')
.mockImplementation(() => {});
process.argv = ['node', 'script.js', '--ide-mode']; process.argv = ['node', 'script.js', '--ide-mode'];
const argv = await parseArguments(); const argv = await parseArguments();
process.env.TERM_PROGRAM = 'vscode'; process.env.TERM_PROGRAM = 'vscode';
const settings: Settings = {}; const settings: Settings = {};
await expect( await loadCliConfig(settings, [], 'test-session', argv);
loadCliConfig(settings, [], 'test-session', argv), expect(consoleWarnSpy).toHaveBeenCalledWith(
).rejects.toThrow( '[WARN]',
'Could not connect to IDE. Make sure you have the companion VS Code extension installed from the marketplace or via /ide install.', 'Could not connect to IDE. Make sure you have the companion VS Code extension installed from the marketplace or via /ide install.',
); );
consoleWarnSpy.mockRestore();
}); });
it('should warn and overwrite if settings contain the reserved _ide_server name and ideMode is active', async () => { it('should warn and overwrite if settings contain the reserved _ide_server name and ideMode is active', async () => {

View File

@@ -312,27 +312,28 @@ export async function loadCliConfig(
); );
} }
const companionPort = process.env.GEMINI_CLI_IDE_SERVER_PORT; const companionPort = process.env.GEMINI_CLI_IDE_SERVER_PORT;
if (!companionPort) { if (companionPort) {
throw new Error( const httpUrl = `http://localhost:${companionPort}/mcp`;
mcpServers[IDE_SERVER_NAME] = new MCPServerConfig(
undefined, // command
undefined, // args
undefined, // env
undefined, // cwd
undefined, // url
httpUrl, // httpUrl
undefined, // headers
undefined, // tcp
undefined, // timeout
false, // trust
'IDE connection', // description
undefined, // includeTools
undefined, // excludeTools
);
} else {
logger.warn(
'Could not connect to IDE. Make sure you have the companion VS Code extension installed from the marketplace or via /ide install.', 'Could not connect to IDE. Make sure you have the companion VS Code extension installed from the marketplace or via /ide install.',
); );
} }
const httpUrl = `http://localhost:${companionPort}/mcp`;
mcpServers[IDE_SERVER_NAME] = new MCPServerConfig(
undefined, // command
undefined, // args
undefined, // env
undefined, // cwd
undefined, // url
httpUrl, // httpUrl
undefined, // headers
undefined, // tcp
undefined, // timeout
false, // trust
'IDE connection', // description
undefined, // includeTools
undefined, // excludeTools
);
} }
const sandboxConfig = await loadSandboxConfig(settings, argv); const sandboxConfig = await loadSandboxConfig(settings, argv);