-
Notifications
You must be signed in to change notification settings - Fork 3k
[ENHANCEMENT] Use objects / dictionaries for allowedCommands & deniedCommands #12064
Description
Problem (one or two sentences)
The current problem is that the current implementation for roo-cline.allowedCommands & roo-cline.deniedCommands are based on arrays/lists. This allows (unintended) shadowing / overwriting of globally configured stuff.
Context (who is affected and when)
This means that when a project locally e.g. wants to deny a certain command, this then shadows all commands the user has denied in his/her global VSCode config.
Desired behavior (conceptual, not technical)
Merge both layers of configurations so that project settings only shadow global settings when actually intended, allowing users to share project settings concerned
Constraints / preferences (optional)
This probably breaks the current "simple" editor for those commands. Which is actually just shitty because when global settings are saved, this also induces that the project-specific allowed & denied settings are just (also) saved as global ones, totally overwriting what the user itself had configured before. Hence this UI should be adapted to only show the currently working config & send users to edit the configuration files directly, or direct users to the already in VSCode integrated settings page, which is better at handling that.
Request checklist
- I've searched existing Issues and Discussions for duplicates
- This describes a specific problem with clear context and impact
Roo Code Task Links (optional)
No response
Acceptance criteria (optional)
No response
Proposed approach (optional)
Use the same approach as VSCode currently uses for its files.exclude setting, using JSON objects/directories, where project-specific settings always just extend the global configuration, but where projects can proactively choose to ignore global configurations by setting the according setting to false.
Example setting:
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/.DS_Store": true,
"**/Thumbs.db": true
},Trade-offs / risks (optional)
No response