fix: union disabled_tools in mergeConfigs() like other disabled_* arrays
disabled_tools was defined in the Zod schema but omitted from mergeConfigs(), causing project-level config to shadow user-level disabled_tools instead of merging both sets. Add Set union and regression test. Closes #2555
This commit is contained in:
@@ -115,6 +115,23 @@ describe("mergeConfigs", () => {
|
||||
expect(result.disabled_hooks).toContain("session-recovery");
|
||||
expect(result.disabled_hooks?.length).toBe(3);
|
||||
});
|
||||
|
||||
it("should union disabled_tools from base and override without duplicates", () => {
|
||||
const base: OhMyOpenCodeConfig = {
|
||||
disabled_tools: ["todowrite", "interactive_bash"],
|
||||
};
|
||||
|
||||
const override: OhMyOpenCodeConfig = {
|
||||
disabled_tools: ["interactive_bash", "look_at"],
|
||||
};
|
||||
|
||||
const result = mergeConfigs(base, override);
|
||||
|
||||
expect(result.disabled_tools).toContain("todowrite");
|
||||
expect(result.disabled_tools).toContain("interactive_bash");
|
||||
expect(result.disabled_tools).toContain("look_at");
|
||||
expect(result.disabled_tools?.length).toBe(3);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -146,6 +146,12 @@ export function mergeConfigs(
|
||||
...(override.disabled_skills ?? []),
|
||||
]),
|
||||
],
|
||||
disabled_tools: [
|
||||
...new Set([
|
||||
...(base.disabled_tools ?? []),
|
||||
...(override.disabled_tools ?? []),
|
||||
]),
|
||||
],
|
||||
claude_code: deepMerge(base.claude_code, override.claude_code),
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user