Compare commits

...

8 Commits

Author SHA1 Message Date
gemini-cli-robot 9e8778366c chore(release): v0.5.4 2025-09-18 18:47:43 +00:00
gemini-cli[bot] f3cb841e1a fix(patch): cherry-pick ad21c10 to release/v0.5.3 (#8719)
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
2025-09-18 17:58:17 +00:00
gemini-cli-robot a47015017b chore(release): v0.5.3 2025-09-17 20:36:33 +00:00
gemini-cli-robot cb341041ed chore(release): v0.5.0-preview-2 2025-09-12 18:46:56 +00:00
Shreya Keshive 3412e842e5 fix(ide): Correct IDE client temp dir and port matching (#8270) 2025-09-12 14:26:03 -04:00
gemini-cli-robot 444724c6db chore(release): v0.5.0-preview.1 2025-09-11 22:37:22 +00:00
Sandy Tao ffe7f5f6d8 fix(core): Default skipNextSpeakerCheck to true when the setting is not manually set (#8295) 2025-09-11 14:30:34 -07:00
gemini-cli-robot 5fc6dce719 chore(release): v0.5.0-preview 2025-09-10 00:41:53 +00:00
12 changed files with 56 additions and 22 deletions
+7 -7
View File
@@ -1,12 +1,12 @@
{
"name": "@google/gemini-cli",
"version": "0.4.0",
"version": "0.5.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@google/gemini-cli",
"version": "0.4.0",
"version": "0.5.4",
"workspaces": [
"packages/*"
],
@@ -16021,7 +16021,7 @@
},
"packages/a2a-server": {
"name": "@google/gemini-cli-a2a-server",
"version": "0.4.0",
"version": "0.5.4",
"dependencies": {
"@a2a-js/sdk": "^0.3.2",
"@google-cloud/storage": "^7.16.0",
@@ -16292,7 +16292,7 @@
},
"packages/cli": {
"name": "@google/gemini-cli",
"version": "0.4.0",
"version": "0.5.4",
"dependencies": {
"@google/gemini-cli-core": "file:../core",
"@google/genai": "1.16.0",
@@ -16483,7 +16483,7 @@
},
"packages/core": {
"name": "@google/gemini-cli-core",
"version": "0.4.0",
"version": "0.5.4",
"dependencies": {
"@google/genai": "1.16.0",
"@joshua.litt/get-ripgrep": "^0.0.2",
@@ -16624,7 +16624,7 @@
},
"packages/test-utils": {
"name": "@google/gemini-cli-test-utils",
"version": "0.4.0",
"version": "0.5.4",
"license": "Apache-2.0",
"devDependencies": {
"typescript": "^5.3.3"
@@ -16635,7 +16635,7 @@
},
"packages/vscode-ide-companion": {
"name": "gemini-cli-vscode-ide-companion",
"version": "0.4.0",
"version": "0.5.4",
"license": "LICENSE",
"dependencies": {
"@modelcontextprotocol/sdk": "^1.15.1",
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@google/gemini-cli",
"version": "0.4.0",
"version": "0.5.4",
"engines": {
"node": ">=20.0.0"
},
@@ -14,7 +14,7 @@
"url": "git+https://github.com/google-gemini/gemini-cli.git"
},
"config": {
"sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.4.0"
"sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.5.4"
},
"scripts": {
"start": "node scripts/start.js",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@google/gemini-cli-a2a-server",
"version": "0.4.0",
"version": "0.5.4",
"private": true,
"description": "Gemini CLI A2A Server",
"repository": {
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@google/gemini-cli",
"version": "0.4.0",
"version": "0.5.4",
"description": "Gemini CLI",
"repository": {
"type": "git",
@@ -25,7 +25,7 @@
"dist"
],
"config": {
"sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.4.0"
"sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.5.4"
},
"dependencies": {
"@google/gemini-cli-core": "file:../core",
+1
View File
@@ -435,6 +435,7 @@ Logging in with Google... Please restart Gemini CLI to continue.
setIsProcessing,
setGeminiMdFileCount,
slashCommandActions,
isConfigInitialized,
);
const performMemoryRefresh = useCallback(async () => {
@@ -59,6 +59,7 @@ export const useSlashCommandProcessor = (
setIsProcessing: (isProcessing: boolean) => void,
setGeminiMdFileCount: (count: number) => void,
actions: SlashCommandProcessorActions,
isConfigInitialized: boolean,
) => {
const session = useSessionStats();
const [commands, setCommands] = useState<readonly SlashCommand[]>([]);
@@ -255,7 +256,7 @@ export const useSlashCommandProcessor = (
return () => {
controller.abort();
};
}, [config, reloadTrigger]);
}, [config, reloadTrigger, isConfigInitialized]);
const handleSlashCommand = useCallback(
async (
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@google/gemini-cli-core",
"version": "0.4.0",
"version": "0.5.4",
"description": "Gemini CLI Core",
"repository": {
"type": "git",
+1 -1
View File
@@ -379,7 +379,7 @@ export class Config {
this.trustedFolder = params.trustedFolder;
this.useRipgrep = params.useRipgrep ?? false;
this.shouldUseNodePtyShell = params.shouldUseNodePtyShell ?? false;
this.skipNextSpeakerCheck = params.skipNextSpeakerCheck ?? false;
this.skipNextSpeakerCheck = params.skipNextSpeakerCheck ?? true;
this.truncateToolOutputThreshold =
params.truncateToolOutputThreshold ??
DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD;
+35 -3
View File
@@ -330,7 +330,7 @@ describe('IdeClient', () => {
expect(result).toEqual(config);
expect(fs.promises.readFile).toHaveBeenCalledWith(
path.join('/tmp/.gemini/ide', 'gemini-ide-server-12345-123.json'),
path.join('/tmp/gemini/ide', 'gemini-ide-server-12345-123.json'),
'utf8',
);
});
@@ -525,13 +525,45 @@ describe('IdeClient', () => {
expect(result).toEqual(validConfig);
expect(fs.promises.readFile).toHaveBeenCalledWith(
path.join('/tmp/.gemini/ide', 'gemini-ide-server-12345-111.json'),
path.join('/tmp/gemini/ide', 'gemini-ide-server-12345-111.json'),
'utf8',
);
expect(fs.promises.readFile).not.toHaveBeenCalledWith(
path.join('/tmp/.gemini/ide', 'not-a-config-file.txt'),
path.join('/tmp/gemini/ide', 'not-a-config-file.txt'),
'utf8',
);
});
it('should match env port string to a number port in the config', async () => {
process.env['GEMINI_CLI_IDE_SERVER_PORT'] = '3333';
const config1 = { port: 1111, workspacePath: '/test/workspace' };
const config2 = { port: 3333, workspacePath: '/test/workspace2' };
vi.mocked(fs.promises.readFile).mockRejectedValueOnce(
new Error('not found'),
);
(
vi.mocked(fs.promises.readdir) as Mock<
(path: fs.PathLike) => Promise<string[]>
>
).mockResolvedValue([
'gemini-ide-server-12345-111.json',
'gemini-ide-server-12345-222.json',
]);
vi.mocked(fs.promises.readFile)
.mockResolvedValueOnce(JSON.stringify(config1))
.mockResolvedValueOnce(JSON.stringify(config2));
vi.spyOn(IdeClient, 'validateWorkspacePath').mockReturnValue({
isValid: true,
});
const ideClient = await IdeClient.getInstance();
const result = await (
ideClient as unknown as {
getConnectionConfigFromFile: () => Promise<unknown>;
}
).getConnectionConfigFromFile();
expect(result).toEqual(config2);
});
});
});
+2 -2
View File
@@ -414,7 +414,7 @@ export class IdeClient {
// exist.
}
const portFileDir = path.join(os.tmpdir(), '.gemini', 'ide');
const portFileDir = path.join(os.tmpdir(), 'gemini', 'ide');
let portFiles;
try {
portFiles = await fs.promises.readdir(portFileDir);
@@ -476,7 +476,7 @@ export class IdeClient {
const portFromEnv = this.getPortFromEnv();
if (portFromEnv) {
const matchingPort = validWorkspaces.find(
(content) => content.port === portFromEnv,
(content) => String(content.port) === portFromEnv,
);
if (matchingPort) {
return matchingPort;
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@google/gemini-cli-test-utils",
"version": "0.4.0",
"version": "0.5.4",
"private": true,
"main": "src/index.ts",
"license": "Apache-2.0",
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "gemini-cli-vscode-ide-companion",
"displayName": "Gemini CLI Companion",
"description": "Enable Gemini CLI with direct access to your IDE workspace.",
"version": "0.4.0",
"version": "0.5.4",
"publisher": "google",
"icon": "assets/icon.png",
"repository": {