fix: merge user-provided disallowedTools instead of overwriting (#295)

## Summary

- User-provided `disallowedTools` from `_meta.claudeCode.options` were
silently overwritten by ACP's internal list
- Now merges both lists, following the same pattern used for `hooks` and
`mcpServers`
- Updated `NewSessionMeta` JSDoc to document the merge behavior

Fixes #294
This commit is contained in:
Ben Limmer
2026-02-07 02:30:50 -07:00
committed by GitHub
parent 8420b50523
commit 7c87fe7a8c

View File

@@ -172,6 +172,7 @@ export type NewSessionMeta = {
* Those parameters will be used and updated to work with ACP:
* - hooks (merged with ACP's hooks)
* - mcpServers (merged with ACP's mcpServers)
* - disallowedTools (merged with ACP's disallowedTools)
*/
options?: Options;
};
@@ -1105,7 +1106,7 @@ export class ClaudeAcpAgent implements Agent {
options.allowedTools = allowedTools;
}
if (disallowedTools.length > 0) {
options.disallowedTools = disallowedTools;
options.disallowedTools = [...(options.disallowedTools || []), ...disallowedTools];
}
// Handle abort controller from meta options