-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Closed
Description
Summary
src/plugin-config.ts treats disabled_tools as a partially valid string-array section, but mergeConfigs() does not union it the way it already unions:
disabled_agentsdisabled_mcpsdisabled_hooksdisabled_commandsdisabled_skills
That means project-level disabled_tools can replace or shadow user-level disabled_tools instead of preserving both.
Evidence
PARTIAL_STRING_ARRAY_KEYSincludesdisabled_toolsnear the top ofsrc/plugin-config.tsmergeConfigs()unions five disabled arrays but omitsdisabled_toolssrc/plugin-config.test.tshas merge coverage fordisabled_hooksbut no equivalent test fordisabled_tools
Impact
- user-level disabled tools can silently reappear when project config is merged
- config semantics are inconsistent across the
disabled_*family - debugging config precedence is harder than necessary
Proposed fix
- union
disabled_toolsinmergeConfigs()exactly like the other disabled arrays - add regression tests proving user + project disabled tools are preserved and deduplicated
Acceptance criteria
- merging config preserves both base and override
disabled_tools - duplicates are removed
- regression test covers the omission
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels