diff --git a/.gemini-clipboard/clipboard-1766102301215.png b/.gemini-clipboard/clipboard-1766102301215.png new file mode 100644 index 0000000000..e364573d70 Binary files /dev/null and b/.gemini-clipboard/clipboard-1766102301215.png differ diff --git a/docs/get-started/examples.md b/docs/get-started/examples.md index 2c2b29aa23..38c9568904 100644 --- a/docs/get-started/examples.md +++ b/docs/get-started/examples.md @@ -24,7 +24,7 @@ Rename the photos in my "photos" directory based on their contents. Result: Gemini will ask for permission to rename your files. -Select **Yes, allow once.** and your files will be renamed: +Select **Allow once** and your files will be renamed: ```bash photos/yellow_flowers.png diff --git a/docs/ide-integration/index.md b/docs/ide-integration/index.md index 8dfe89e25e..c187a92f37 100644 --- a/docs/ide-integration/index.md +++ b/docs/ide-integration/index.md @@ -128,8 +128,8 @@ editor. You can also **modify the suggested changes** directly in the diff view before accepting them. -If you select ‘Yes, allow always’ in the CLI, changes will no longer show up in -the IDE as they will be auto-accepted. +If you select ‘Allow for this session’ in the CLI, changes will no longer show +up in the IDE as they will be auto-accepted. ## Using with sandboxing diff --git a/packages/cli/src/ui/components/ShellConfirmationDialog.test.tsx b/packages/cli/src/ui/components/ShellConfirmationDialog.test.tsx index fb656b613f..971a498fe0 100644 --- a/packages/cli/src/ui/components/ShellConfirmationDialog.test.tsx +++ b/packages/cli/src/ui/components/ShellConfirmationDialog.test.tsx @@ -24,23 +24,23 @@ describe('ShellConfirmationDialog', () => { expect(lastFrame()).toMatchSnapshot(); }); - it('calls onConfirm with ProceedOnce when "Yes, allow once" is selected', () => { + it('calls onConfirm with ProceedOnce when "Allow once" is selected', () => { const { lastFrame } = renderWithProviders( , ); const select = lastFrame()!.toString(); // Simulate selecting the first option // This is a simplified way to test the selection - expect(select).toContain('Yes, allow once'); + expect(select).toContain('Allow once'); }); - it('calls onConfirm with ProceedAlways when "Yes, allow always for this session" is selected', () => { + it('calls onConfirm with ProceedAlways when "Allow for this session" is selected', () => { const { lastFrame } = renderWithProviders( , ); const select = lastFrame()!.toString(); // Simulate selecting the second option - expect(select).toContain('Yes, allow always for this session'); + expect(select).toContain('Allow for this session'); }); it('calls onConfirm with Cancel when "No (esc)" is selected', () => { diff --git a/packages/cli/src/ui/components/ShellConfirmationDialog.tsx b/packages/cli/src/ui/components/ShellConfirmationDialog.tsx index fb3ebace6e..b31b267677 100644 --- a/packages/cli/src/ui/components/ShellConfirmationDialog.tsx +++ b/packages/cli/src/ui/components/ShellConfirmationDialog.tsx @@ -51,14 +51,14 @@ export const ShellConfirmationDialog: React.FC< const options: Array> = [ { - label: 'Yes, allow once', + label: 'Allow once', value: ToolConfirmationOutcome.ProceedOnce, - key: 'Yes, allow once', + key: 'Allow once', }, { - label: 'Yes, allow always for this session', + label: 'Allow for this session', value: ToolConfirmationOutcome.ProceedAlways, - key: 'Yes, allow always for this session', + key: 'Allow for this session', }, { label: 'No (esc)', diff --git a/packages/cli/src/ui/components/__snapshots__/ShellConfirmationDialog.test.tsx.snap b/packages/cli/src/ui/components/__snapshots__/ShellConfirmationDialog.test.tsx.snap index 8c9ceb298d..500ac184fb 100644 --- a/packages/cli/src/ui/components/__snapshots__/ShellConfirmationDialog.test.tsx.snap +++ b/packages/cli/src/ui/components/__snapshots__/ShellConfirmationDialog.test.tsx.snap @@ -13,8 +13,8 @@ exports[`ShellConfirmationDialog > renders correctly 1`] = ` │ │ │ Do you want to proceed? │ │ │ - │ ● 1. Yes, allow once │ - │ 2. Yes, allow always for this session │ + │ ● 1. Allow once │ + │ 2. Allow for this session │ │ 3. No (esc) │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯" diff --git a/packages/cli/src/ui/components/messages/ToolConfirmationMessage.test.tsx b/packages/cli/src/ui/components/messages/ToolConfirmationMessage.test.tsx index ef41d5590c..4063af9116 100644 --- a/packages/cli/src/ui/components/messages/ToolConfirmationMessage.test.tsx +++ b/packages/cli/src/ui/components/messages/ToolConfirmationMessage.test.tsx @@ -104,17 +104,17 @@ describe('ToolConfirmationMessage', () => { { description: 'for edit confirmations', details: editConfirmationDetails, - alwaysAllowText: 'Yes, allow always', + alwaysAllowText: 'Allow for this session', }, { description: 'for exec confirmations', details: execConfirmationDetails, - alwaysAllowText: 'Yes, allow always', + alwaysAllowText: 'Allow for this session', }, { description: 'for info confirmations', details: infoConfirmationDetails, - alwaysAllowText: 'Yes, allow always', + alwaysAllowText: 'Allow for this session', }, { description: 'for mcp confirmations', diff --git a/packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx b/packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx index 3939a5d211..17b4477067 100644 --- a/packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx +++ b/packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx @@ -102,20 +102,20 @@ export const ToolConfirmationMessage: React.FC< if (!confirmationDetails.isModifying) { question = `Apply this change?`; options.push({ - label: 'Yes, allow once', + label: 'Allow once', value: ToolConfirmationOutcome.ProceedOnce, - key: 'Yes, allow once', + key: 'Allow once', }); if (isTrustedFolder) { options.push({ - label: 'Yes, allow always', + label: 'Allow for this session', value: ToolConfirmationOutcome.ProceedAlways, - key: 'Yes, allow always', + key: 'Allow for this session', }); options.push({ - label: 'Yes, allow always and save to policy', + label: 'Allow for all future sessions', value: ToolConfirmationOutcome.ProceedAlwaysAndSave, - key: 'Yes, allow always and save to policy', + key: 'Allow for all future sessions', }); } if (!config.getIdeMode() || !isDiffingEnabled) { @@ -137,20 +137,20 @@ export const ToolConfirmationMessage: React.FC< question = `Allow execution of: '${executionProps.rootCommand}'?`; options.push({ - label: 'Yes, allow once', + label: 'Allow once', value: ToolConfirmationOutcome.ProceedOnce, - key: 'Yes, allow once', + key: 'Allow once', }); if (isTrustedFolder) { options.push({ - label: `Yes, allow always ...`, + label: `Allow for this session`, value: ToolConfirmationOutcome.ProceedAlways, - key: `Yes, allow always ...`, + key: `Allow for this session`, }); options.push({ - label: `Yes, allow always and save to policy`, + label: `Allow for all future sessions`, value: ToolConfirmationOutcome.ProceedAlwaysAndSave, - key: `Yes, allow always and save to policy`, + key: `Allow for all future sessions`, }); } options.push({ @@ -161,20 +161,20 @@ export const ToolConfirmationMessage: React.FC< } else if (confirmationDetails.type === 'info') { question = `Do you want to proceed?`; options.push({ - label: 'Yes, allow once', + label: 'Allow once', value: ToolConfirmationOutcome.ProceedOnce, - key: 'Yes, allow once', + key: 'Allow once', }); if (isTrustedFolder) { options.push({ - label: 'Yes, allow always', + label: 'Allow for this session', value: ToolConfirmationOutcome.ProceedAlways, - key: 'Yes, allow always', + key: 'Allow for this session', }); options.push({ - label: 'Yes, allow always and save to policy', + label: 'Allow for all future sessions', value: ToolConfirmationOutcome.ProceedAlwaysAndSave, - key: 'Yes, allow always and save to policy', + key: 'Allow for all future sessions', }); } options.push({ @@ -187,25 +187,25 @@ export const ToolConfirmationMessage: React.FC< const mcpProps = confirmationDetails; question = `Allow execution of MCP tool "${mcpProps.toolName}" from server "${mcpProps.serverName}"?`; options.push({ - label: 'Yes, allow once', + label: 'Allow once', value: ToolConfirmationOutcome.ProceedOnce, - key: 'Yes, allow once', + key: 'Allow once', }); if (isTrustedFolder) { options.push({ - label: `Yes, always allow tool "${mcpProps.toolName}" from server "${mcpProps.serverName}"`, - value: ToolConfirmationOutcome.ProceedAlwaysTool, // Cast until types are updated - key: `Yes, always allow tool "${mcpProps.toolName}" from server "${mcpProps.serverName}"`, + label: 'Allow tool for this session', + value: ToolConfirmationOutcome.ProceedAlwaysTool, + key: 'Allow tool for this session', }); options.push({ - label: `Yes, always allow all tools from server "${mcpProps.serverName}"`, + label: 'Allow all server tools for this session', value: ToolConfirmationOutcome.ProceedAlwaysServer, - key: `Yes, always allow all tools from server "${mcpProps.serverName}"`, + key: 'Allow all server tools for this session', }); options.push({ - label: `Yes, allow always tool "${mcpProps.toolName}" and save to policy`, + label: 'Allow tool for all future sessions', value: ToolConfirmationOutcome.ProceedAlwaysAndSave, - key: `Yes, allow always tool "${mcpProps.toolName}" and save to policy`, + key: 'Allow tool for all future sessions', }); } options.push({ diff --git a/packages/cli/src/ui/components/messages/__snapshots__/ToolConfirmationMessage.test.tsx.snap b/packages/cli/src/ui/components/messages/__snapshots__/ToolConfirmationMessage.test.tsx.snap index 577432734e..9187fad554 100644 --- a/packages/cli/src/ui/components/messages/__snapshots__/ToolConfirmationMessage.test.tsx.snap +++ b/packages/cli/src/ui/components/messages/__snapshots__/ToolConfirmationMessage.test.tsx.snap @@ -8,9 +8,9 @@ URLs to fetch: Do you want to proceed? -● 1. Yes, allow once - 2. Yes, allow always - 3. Yes, allow always and save to policy +● 1. Allow once + 2. Allow for this session + 3. Allow for all future sessions 4. No, suggest changes (esc) " `; @@ -20,9 +20,9 @@ exports[`ToolConfirmationMessage > should not display urls if prompt and url are Do you want to proceed? -● 1. Yes, allow once - 2. Yes, allow always - 3. Yes, allow always and save to policy +● 1. Allow once + 2. Allow for this session + 3. Allow for all future sessions 4. No, suggest changes (esc) " `; @@ -36,7 +36,7 @@ exports[`ToolConfirmationMessage > with folder trust > 'for edit confirmations' Apply this change? -● 1. Yes, allow once +● 1. Allow once 2. Modify with external editor 3. No, suggest changes (esc) " @@ -51,9 +51,9 @@ exports[`ToolConfirmationMessage > with folder trust > 'for edit confirmations' Apply this change? -● 1. Yes, allow once - 2. Yes, allow always - 3. Yes, allow always and save to policy +● 1. Allow once + 2. Allow for this session + 3. Allow for all future sessions 4. Modify with external editor 5. No, suggest changes (esc) " @@ -64,7 +64,7 @@ exports[`ToolConfirmationMessage > with folder trust > 'for exec confirmations' Allow execution of: 'echo'? -● 1. Yes, allow once +● 1. Allow once 2. No, suggest changes (esc) " `; @@ -74,9 +74,9 @@ exports[`ToolConfirmationMessage > with folder trust > 'for exec confirmations' Allow execution of: 'echo'? -● 1. Yes, allow once - 2. Yes, allow always ... - 3. Yes, allow always and save to policy +● 1. Allow once + 2. Allow for this session + 3. Allow for all future sessions 4. No, suggest changes (esc) " `; @@ -86,7 +86,7 @@ exports[`ToolConfirmationMessage > with folder trust > 'for info confirmations' Do you want to proceed? -● 1. Yes, allow once +● 1. Allow once 2. No, suggest changes (esc) " `; @@ -96,9 +96,9 @@ exports[`ToolConfirmationMessage > with folder trust > 'for info confirmations' Do you want to proceed? -● 1. Yes, allow once - 2. Yes, allow always - 3. Yes, allow always and save to policy +● 1. Allow once + 2. Allow for this session + 3. Allow for all future sessions 4. No, suggest changes (esc) " `; @@ -109,7 +109,7 @@ Tool: test-tool Allow execution of MCP tool "test-tool" from server "test-server"? -● 1. Yes, allow once +● 1. Allow once 2. No, suggest changes (esc) " `; @@ -120,10 +120,10 @@ Tool: test-tool Allow execution of MCP tool "test-tool" from server "test-server"? -● 1. Yes, allow once - 2. Yes, always allow tool "test-tool" from server "test-server" - 3. Yes, always allow all tools from server "test-server" - 4. Yes, allow always tool "test-tool" and save to policy +● 1. Allow once + 2. Allow tool for this session + 3. Allow all server tools for this session + 4. Allow tool for all future sessions 5. No, suggest changes (esc) " `; diff --git a/packages/cli/src/ui/components/messages/__snapshots__/ToolGroupMessage.test.tsx.snap b/packages/cli/src/ui/components/messages/__snapshots__/ToolGroupMessage.test.tsx.snap index af18637dbd..7133df2b58 100644 --- a/packages/cli/src/ui/components/messages/__snapshots__/ToolGroupMessage.test.tsx.snap +++ b/packages/cli/src/ui/components/messages/__snapshots__/ToolGroupMessage.test.tsx.snap @@ -37,9 +37,9 @@ exports[` > Confirmation Handling > shows confirmation dialo │ │ │ Do you want to proceed? │ │ │ -│ ● 1. Yes, allow once │ -│ 2. Yes, allow always │ -│ 3. Yes, allow always and save to policy │ +│ ● 1. Allow once │ +│ 2. Allow for this session │ +│ 3. Allow for all future sessions │ │ 4. No, suggest changes (esc) │ │ │ │ │ @@ -121,9 +121,9 @@ exports[` > Golden Snapshots > renders tool call awaiting co │ │ │ Do you want to proceed? │ │ │ -│ ● 1. Yes, allow once │ -│ 2. Yes, allow always │ -│ 3. Yes, allow always and save to policy │ +│ ● 1. Allow once │ +│ 2. Allow for this session │ +│ 3. Allow for all future sessions │ │ 4. No, suggest changes (esc) │ │ │ ╰──────────────────────────────────────────────────────────────────────────────╯"