Skip to content

[ENHANCEMENT] Use objects / dictionaries for allowedCommands & deniedCommands #12064

@Zocker1999NET

Description

@Zocker1999NET

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    EnhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions