feat: add custom execution command settings for CLI providers#686
Open
Devdha wants to merge 7 commits intogeneralaction:mainfrom
Open
feat: add custom execution command settings for CLI providers#686Devdha wants to merge 7 commits intogeneralaction:mainfrom
Devdha wants to merge 7 commits intogeneralaction:mainfrom
Conversation
- Add ProviderCustomConfig interface for storing custom CLI flags - Add getProviderCustomConfig and getAllProviderCustomConfigs functions - Add updateProviderCustomConfig function for CRUD operations - Return shallow/deep copies from getter functions to prevent cache corruption - Normalize custom config values in normalizeSettings function
- Add providers:getCustomConfig handler to retrieve single config - Add providers:getAllCustomConfigs handler to retrieve all configs - Add providers:updateCustomConfig handler to update/delete config - Expose APIs to renderer via preload contextBridge
- Add ProviderCustomConfig and ProviderCustomConfigs types - Add type definitions for getProviderCustomConfig - Add type definitions for getAllProviderCustomConfigs - Add type definitions for updateProviderCustomConfig
- Add parseShellArgs function for proper shell argument parsing - Support single quotes, double quotes, and escape characters - Apply custom provider config overrides at command execution time - Use parseShellArgs for resumeFlag, defaultArgs, autoApproveFlag, initialPromptFlag
- Add CustomCommandModal component with granular flag configuration - Add Escape key handler for modal dismissal - Add settings button to detected providers in CliProvidersList - Add command preview, reset to defaults, and save functionality - Improve accessibility with aria-label on tooltip buttons
Author
|
@Devdha is attempting to deploy a commit to the General Action Team on Vercel. A member of the Team first needs to authorize it. |
Contributor
|
Imho thats not good UX. I mean, yes an "advanced mode" would be beneficial, but forcing the cli onto every user is a bad decision imho. |
Author
|
Thanks for the feedback! I think there may be a misunderstanding. This PR doesn't force anything. the default behavior remains exactly the same. The customize icon only appears for users who want to customize. If you never click it, nothing changes. It's essentially an optional "advanced settings" panel hidden unless explicitly opened. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue #685
Summary
Add the ability to customize CLI execution commands for each provider in Settings > Connections. Users can now override:
--yolofor Codex instead of--full-auto)This addresses #659 and similar requests for custom CLI flags.
Changes
src/main/settings.ts- AddProviderCustomConfigtype and CRUD functions with cache-safe getterssrc/main/ipc/connectionsIpc.ts- Add IPC handlers for get/update custom configssrc/main/preload.ts- Expose APIs to renderersrc/main/services/ptyManager.ts- AddparseShellArgs()for proper shell-style argument parsing (supports quoted strings)src/renderer/components/CustomCommandModal.tsx- New modal with granular flag configuration and live previewsrc/renderer/components/CliProvidersList.tsx- Add settings gear icon for detected providerssrc/renderer/types/electron-api.d.ts- TypeScript definitionsScreenshots