diff --git a/docs/cli/settings.md b/docs/cli/settings.md index a7689fbcea0..5011f55b2ca 100644 --- a/docs/cli/settings.md +++ b/docs/cli/settings.md @@ -22,17 +22,16 @@ they appear in the UI. ### General -| UI Label | Setting | Description | Default | -| ------------------------ | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------- | -| Vim Mode | `general.vimMode` | Enable Vim keybindings | `false` | -| Default Approval Mode | `general.defaultApprovalMode` | The default approval mode for tool execution. 'default' prompts for approval, 'auto_edit' auto-approves edit tools, and 'plan' is read-only mode. 'yolo' is not supported yet. | `"default"` | -| Enable Auto Update | `general.enableAutoUpdate` | Enable automatic updates. | `true` | -| Enable Notifications | `general.enableNotifications` | Enable run-event notifications for action-required prompts and session completion. Currently macOS only. | `false` | -| Plan Directory | `general.plan.directory` | The directory where planning artifacts are stored. If not specified, defaults to the system temporary directory. | `undefined` | -| Enable Prompt Completion | `general.enablePromptCompletion` | Enable AI-powered prompt completion suggestions while typing. | `false` | -| Debug Keystroke Logging | `general.debugKeystrokeLogging` | Enable debug logging of keystrokes to the console. | `false` | -| Enable Session Cleanup | `general.sessionRetention.enabled` | Enable automatic session cleanup | `false` | -| Keep chat history | `general.sessionRetention.maxAge` | Automatically delete chats older than this time period (e.g., "30d", "7d", "24h", "1w") | `undefined` | +| UI Label | Setting | Description | Default | +| ----------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------- | +| Vim Mode | `general.vimMode` | Enable Vim keybindings | `false` | +| Default Approval Mode | `general.defaultApprovalMode` | The default approval mode for tool execution. 'default' prompts for approval, 'auto_edit' auto-approves edit tools, and 'plan' is read-only mode. 'yolo' is not supported yet. | `"default"` | +| Enable Auto Update | `general.enableAutoUpdate` | Enable automatic updates. | `true` | +| Enable Notifications | `general.enableNotifications` | Enable run-event notifications for action-required prompts and session completion. Currently macOS only. | `false` | +| Plan Directory | `general.plan.directory` | The directory where planning artifacts are stored. If not specified, defaults to the system temporary directory. | `undefined` | +| Debug Keystroke Logging | `general.debugKeystrokeLogging` | Enable debug logging of keystrokes to the console. | `false` | +| Enable Session Cleanup | `general.sessionRetention.enabled` | Enable automatic session cleanup | `false` | +| Keep chat history | `general.sessionRetention.maxAge` | Automatically delete chats older than this time period (e.g., "30d", "7d", "24h", "1w") | `undefined` | ### Output diff --git a/docs/reference/configuration.md b/docs/reference/configuration.md index de639f95cf9..b9874e017b5 100644 --- a/docs/reference/configuration.md +++ b/docs/reference/configuration.md @@ -137,12 +137,6 @@ their corresponding top-level category object in your `settings.json` file. - **Default:** `undefined` - **Requires restart:** Yes -- **`general.enablePromptCompletion`** (boolean): - - **Description:** Enable AI-powered prompt completion suggestions while - typing. - - **Default:** `false` - - **Requires restart:** Yes - - **`general.retryFetchErrors`** (boolean): - **Description:** Retry on "exception TypeError: fetch failed sending request" errors. diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index 27b251139c9..38ab62ac225 100755 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -848,7 +848,6 @@ export async function loadCliConfig( enableShellOutputEfficiency: settings.tools?.shell?.enableShellOutputEfficiency ?? true, skipNextSpeakerCheck: settings.model?.skipNextSpeakerCheck, - enablePromptCompletion: settings.general?.enablePromptCompletion, truncateToolOutputThreshold: settings.tools?.truncateToolOutputThreshold, eventEmitter: coreEvents, useWriteTodos: argv.useWriteTodos ?? settings.useWriteTodos, diff --git a/packages/cli/src/config/settingsSchema.ts b/packages/cli/src/config/settingsSchema.ts index f0e092b45b2..cbe2df5f301 100644 --- a/packages/cli/src/config/settingsSchema.ts +++ b/packages/cli/src/config/settingsSchema.ts @@ -287,16 +287,6 @@ const SETTINGS_SCHEMA = { }, }, }, - enablePromptCompletion: { - type: 'boolean', - label: 'Enable Prompt Completion', - category: 'General', - requiresRestart: true, - default: false, - description: - 'Enable AI-powered prompt completion suggestions while typing.', - showInDialog: true, - }, retryFetchErrors: { type: 'boolean', label: 'Retry Fetch Errors', diff --git a/packages/cli/src/config/settings_repro.test.ts b/packages/cli/src/config/settings_repro.test.ts index a93450de359..36495a99c45 100644 --- a/packages/cli/src/config/settings_repro.test.ts +++ b/packages/cli/src/config/settings_repro.test.ts @@ -131,7 +131,6 @@ describe('Settings Repro', () => { }, general: { debugKeystrokeLogging: false, - enablePromptCompletion: false, preferredEditor: 'vim', vimMode: false, }, diff --git a/packages/cli/src/test-utils/mockConfig.ts b/packages/cli/src/test-utils/mockConfig.ts index 0a02e018895..74b3eeb2a6e 100644 --- a/packages/cli/src/test-utils/mockConfig.ts +++ b/packages/cli/src/test-utils/mockConfig.ts @@ -128,7 +128,6 @@ export const createMockConfig = (overrides: Partial = {}): Config => getShellToolInactivityTimeout: vi.fn().mockReturnValue(300000), getShellExecutionConfig: vi.fn().mockReturnValue({}), setShellExecutionConfig: vi.fn(), - getEnablePromptCompletion: vi.fn().mockReturnValue(false), getEnableToolOutputTruncation: vi.fn().mockReturnValue(true), getTruncateToolOutputThreshold: vi.fn().mockReturnValue(1000), getTruncateToolOutputLines: vi.fn().mockReturnValue(100), diff --git a/packages/cli/src/ui/components/SettingsDialog.test.tsx b/packages/cli/src/ui/components/SettingsDialog.test.tsx index 81aadc29acd..72ef839ea3e 100644 --- a/packages/cli/src/ui/components/SettingsDialog.test.tsx +++ b/packages/cli/src/ui/components/SettingsDialog.test.tsx @@ -1620,7 +1620,6 @@ describe('SettingsDialog', () => { vimMode: true, enableAutoUpdate: false, debugKeystrokeLogging: true, - enablePromptCompletion: true, }, ui: { hideWindowTitle: true, @@ -1766,7 +1765,6 @@ describe('SettingsDialog', () => { vimMode: false, enableAutoUpdate: true, debugKeystrokeLogging: false, - enablePromptCompletion: false, }, ui: { hideWindowTitle: false, diff --git a/packages/cli/src/ui/components/__snapshots__/SettingsDialog.test.tsx.snap b/packages/cli/src/ui/components/__snapshots__/SettingsDialog.test.tsx.snap index 3fec2244d77..09b45dfec73 100644 --- a/packages/cli/src/ui/components/__snapshots__/SettingsDialog.test.tsx.snap +++ b/packages/cli/src/ui/components/__snapshots__/SettingsDialog.test.tsx.snap @@ -25,15 +25,15 @@ exports[`SettingsDialog > Initial Rendering > should render settings list with v │ Plan Directory undefined │ │ The directory where planning artifacts are stored. If not specified, defaults t… │ │ │ -│ Enable Prompt Completion false │ -│ Enable AI-powered prompt completion suggestions while typing. │ -│ │ │ Debug Keystroke Logging false │ │ Enable debug logging of keystrokes to the console. │ │ │ │ Enable Session Cleanup false │ │ Enable automatic session cleanup │ │ │ +│ Keep chat history undefined │ +│ Automatically delete chats older than this time period (e.g., "30d", "7d", "24h… │ +│ │ │ ▼ │ │ │ │ Apply To │ @@ -72,15 +72,15 @@ exports[`SettingsDialog > Snapshot Tests > should render 'accessibility settings │ Plan Directory undefined │ │ The directory where planning artifacts are stored. If not specified, defaults t… │ │ │ -│ Enable Prompt Completion false │ -│ Enable AI-powered prompt completion suggestions while typing. │ -│ │ │ Debug Keystroke Logging false │ │ Enable debug logging of keystrokes to the console. │ │ │ │ Enable Session Cleanup false │ │ Enable automatic session cleanup │ │ │ +│ Keep chat history undefined │ +│ Automatically delete chats older than this time period (e.g., "30d", "7d", "24h… │ +│ │ │ ▼ │ │ │ │ Apply To │ @@ -119,15 +119,15 @@ exports[`SettingsDialog > Snapshot Tests > should render 'all boolean settings d │ Plan Directory undefined │ │ The directory where planning artifacts are stored. If not specified, defaults t… │ │ │ -│ Enable Prompt Completion false* │ -│ Enable AI-powered prompt completion suggestions while typing. │ -│ │ │ Debug Keystroke Logging false* │ │ Enable debug logging of keystrokes to the console. │ │ │ │ Enable Session Cleanup false │ │ Enable automatic session cleanup │ │ │ +│ Keep chat history undefined │ +│ Automatically delete chats older than this time period (e.g., "30d", "7d", "24h… │ +│ │ │ ▼ │ │ │ │ Apply To │ @@ -166,15 +166,15 @@ exports[`SettingsDialog > Snapshot Tests > should render 'default state' correct │ Plan Directory undefined │ │ The directory where planning artifacts are stored. If not specified, defaults t… │ │ │ -│ Enable Prompt Completion false │ -│ Enable AI-powered prompt completion suggestions while typing. │ -│ │ │ Debug Keystroke Logging false │ │ Enable debug logging of keystrokes to the console. │ │ │ │ Enable Session Cleanup false │ │ Enable automatic session cleanup │ │ │ +│ Keep chat history undefined │ +│ Automatically delete chats older than this time period (e.g., "30d", "7d", "24h… │ +│ │ │ ▼ │ │ │ │ Apply To │ @@ -213,15 +213,15 @@ exports[`SettingsDialog > Snapshot Tests > should render 'file filtering setting │ Plan Directory undefined │ │ The directory where planning artifacts are stored. If not specified, defaults t… │ │ │ -│ Enable Prompt Completion false │ -│ Enable AI-powered prompt completion suggestions while typing. │ -│ │ │ Debug Keystroke Logging false │ │ Enable debug logging of keystrokes to the console. │ │ │ │ Enable Session Cleanup false │ │ Enable automatic session cleanup │ │ │ +│ Keep chat history undefined │ +│ Automatically delete chats older than this time period (e.g., "30d", "7d", "24h… │ +│ │ │ ▼ │ │ │ │ Apply To │ @@ -260,15 +260,15 @@ exports[`SettingsDialog > Snapshot Tests > should render 'focused on scope selec │ Plan Directory undefined │ │ The directory where planning artifacts are stored. If not specified, defaults t… │ │ │ -│ Enable Prompt Completion false │ -│ Enable AI-powered prompt completion suggestions while typing. │ -│ │ │ Debug Keystroke Logging false │ │ Enable debug logging of keystrokes to the console. │ │ │ │ Enable Session Cleanup false │ │ Enable automatic session cleanup │ │ │ +│ Keep chat history undefined │ +│ Automatically delete chats older than this time period (e.g., "30d", "7d", "24h… │ +│ │ │ ▼ │ │ │ │ > Apply To │ @@ -307,15 +307,15 @@ exports[`SettingsDialog > Snapshot Tests > should render 'mixed boolean and numb │ Plan Directory undefined │ │ The directory where planning artifacts are stored. If not specified, defaults t… │ │ │ -│ Enable Prompt Completion false │ -│ Enable AI-powered prompt completion suggestions while typing. │ -│ │ │ Debug Keystroke Logging false │ │ Enable debug logging of keystrokes to the console. │ │ │ │ Enable Session Cleanup false │ │ Enable automatic session cleanup │ │ │ +│ Keep chat history undefined │ +│ Automatically delete chats older than this time period (e.g., "30d", "7d", "24h… │ +│ │ │ ▼ │ │ │ │ Apply To │ @@ -354,15 +354,15 @@ exports[`SettingsDialog > Snapshot Tests > should render 'tools and security set │ Plan Directory undefined │ │ The directory where planning artifacts are stored. If not specified, defaults t… │ │ │ -│ Enable Prompt Completion false │ -│ Enable AI-powered prompt completion suggestions while typing. │ -│ │ │ Debug Keystroke Logging false │ │ Enable debug logging of keystrokes to the console. │ │ │ │ Enable Session Cleanup false │ │ Enable automatic session cleanup │ │ │ +│ Keep chat history undefined │ +│ Automatically delete chats older than this time period (e.g., "30d", "7d", "24h… │ +│ │ │ ▼ │ │ │ │ Apply To │ @@ -401,15 +401,15 @@ exports[`SettingsDialog > Snapshot Tests > should render 'various boolean settin │ Plan Directory undefined │ │ The directory where planning artifacts are stored. If not specified, defaults t… │ │ │ -│ Enable Prompt Completion true* │ -│ Enable AI-powered prompt completion suggestions while typing. │ -│ │ │ Debug Keystroke Logging true* │ │ Enable debug logging of keystrokes to the console. │ │ │ │ Enable Session Cleanup false │ │ Enable automatic session cleanup │ │ │ +│ Keep chat history undefined │ +│ Automatically delete chats older than this time period (e.g., "30d", "7d", "24h… │ +│ │ │ ▼ │ │ │ │ Apply To │ diff --git a/packages/cli/src/ui/hooks/useCommandCompletion.test.tsx b/packages/cli/src/ui/hooks/useCommandCompletion.test.tsx index 47f7e63a4e7..2b0bad27430 100644 --- a/packages/cli/src/ui/hooks/useCommandCompletion.test.tsx +++ b/packages/cli/src/ui/hooks/useCommandCompletion.test.tsx @@ -94,7 +94,6 @@ const setupMocks = ({ describe('useCommandCompletion', () => { const mockCommandContext = {} as CommandContext; const mockConfig = { - getEnablePromptCompletion: () => false, getGeminiClient: vi.fn(), } as unknown as Config; const testRootDir = '/'; @@ -499,7 +498,6 @@ describe('useCommandCompletion', () => { describe('prompt completion filtering', () => { it('should not trigger prompt completion for line comments', async () => { const mockConfig = { - getEnablePromptCompletion: () => true, getGeminiClient: vi.fn(), } as unknown as Config; @@ -532,7 +530,6 @@ describe('useCommandCompletion', () => { it('should not trigger prompt completion for block comments', async () => { const mockConfig = { - getEnablePromptCompletion: () => true, getGeminiClient: vi.fn(), } as unknown as Config; @@ -567,7 +564,6 @@ describe('useCommandCompletion', () => { it('should trigger prompt completion for regular text when enabled', async () => { const mockConfig = { - getEnablePromptCompletion: () => true, getGeminiClient: vi.fn(), } as unknown as Config; diff --git a/packages/cli/src/ui/hooks/useCommandCompletion.tsx b/packages/cli/src/ui/hooks/useCommandCompletion.tsx index 5ae009d5a2d..b9fcb956266 100644 --- a/packages/cli/src/ui/hooks/useCommandCompletion.tsx +++ b/packages/cli/src/ui/hooks/useCommandCompletion.tsx @@ -156,9 +156,7 @@ export function useCommandCompletion({ // Check for prompt completion - only if enabled const trimmedText = buffer.text.trim(); - const isPromptCompletionEnabled = - config?.getEnablePromptCompletion() ?? false; - + const isPromptCompletionEnabled = false; if ( isPromptCompletionEnabled && trimmedText.length >= PROMPT_COMPLETION_MIN_LENGTH && @@ -179,7 +177,7 @@ export function useCommandCompletion({ completionStart: -1, completionEnd: -1, }; - }, [cursorRow, cursorCol, buffer.lines, buffer.text, config]); + }, [cursorRow, cursorCol, buffer.lines, buffer.text]); useAtCompletion({ enabled: active && completionMode === CompletionMode.AT, @@ -204,7 +202,6 @@ export function useCommandCompletion({ const promptCompletion = usePromptCompletion({ buffer, config, - enabled: active && completionMode === CompletionMode.PROMPT, }); useEffect(() => { diff --git a/packages/cli/src/ui/hooks/usePromptCompletion.ts b/packages/cli/src/ui/hooks/usePromptCompletion.ts index f359b27b2b0..d6dbc8b18c8 100644 --- a/packages/cli/src/ui/hooks/usePromptCompletion.ts +++ b/packages/cli/src/ui/hooks/usePromptCompletion.ts @@ -26,13 +26,11 @@ export interface PromptCompletion { export interface UsePromptCompletionOptions { buffer: TextBuffer; config?: Config; - enabled: boolean; } export function usePromptCompletion({ buffer, config, - enabled, }: UsePromptCompletionOptions): PromptCompletion { const [ghostText, setGhostText] = useState(''); const [isLoadingGhostText, setIsLoadingGhostText] = useState(false); @@ -42,8 +40,7 @@ export function usePromptCompletion({ const lastSelectedTextRef = useRef(''); const lastRequestedTextRef = useRef(''); - const isPromptCompletionEnabled = - enabled && (config?.getEnablePromptCompletion() ?? false); + const isPromptCompletionEnabled = false; const clearGhostText = useCallback(() => { setGhostText(''); diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index 4944a25b9bc..d885e5dc7f8 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -466,7 +466,6 @@ export interface ConfigParameters { skipNextSpeakerCheck?: boolean; shellExecutionConfig?: ShellExecutionConfig; extensionManagement?: boolean; - enablePromptCompletion?: boolean; truncateToolOutputThreshold?: number; eventEmitter?: EventEmitter; useWriteTodos?: boolean; @@ -639,7 +638,6 @@ export class Config { private readonly useBackgroundColor: boolean; private shellExecutionConfig: ShellExecutionConfig; private readonly extensionManagement: boolean = true; - private readonly enablePromptCompletion: boolean = false; private readonly truncateToolOutputThreshold: number; private compressionTruncationCounter = 0; private initialized = false; @@ -861,7 +859,6 @@ export class Config { this.fakeResponses = params.fakeResponses; this.recordResponses = params.recordResponses; - this.enablePromptCompletion = params.enablePromptCompletion ?? false; this.fileExclusions = new FileExclusions(this); this.eventEmitter = params.eventEmitter; this.policyEngine = new PolicyEngine({ @@ -2438,10 +2435,6 @@ export class Config { return this.accessibility.screenReader ?? false; } - getEnablePromptCompletion(): boolean { - return this.enablePromptCompletion; - } - getTruncateToolOutputThreshold(): number { return Math.min( // Estimate remaining context window in characters (1 token ~= 4 chars). diff --git a/schemas/settings.schema.json b/schemas/settings.schema.json index 4c51c13e1b9..7ef861d8822 100644 --- a/schemas/settings.schema.json +++ b/schemas/settings.schema.json @@ -121,13 +121,6 @@ }, "additionalProperties": false }, - "enablePromptCompletion": { - "title": "Enable Prompt Completion", - "description": "Enable AI-powered prompt completion suggestions while typing.", - "markdownDescription": "Enable AI-powered prompt completion suggestions while typing.\n\n- Category: `General`\n- Requires restart: `yes`\n- Default: `false`", - "default": false, - "type": "boolean" - }, "retryFetchErrors": { "title": "Retry Fetch Errors", "description": "Retry on \"exception TypeError: fetch failed sending request\" errors.",