Merge pull request #2806 from code-yeongyu/fix/b5-permission-merge-order

fix(plugin): restore permission merge order precedence
This commit is contained in:
YeonGyu-Kim
2026-03-25 00:31:43 +09:00
committed by GitHub
2 changed files with 31 additions and 1 deletions
@@ -23,6 +23,36 @@ function createParams(overrides: {
}
describe("applyToolConfig", () => {
describe("#given config permission sets webfetch and external_directory", () => {
describe("#when applying tool config", () => {
it("#then should preserve explicit deny over OmO defaults", () => {
const params = createParams({})
params.config.permission = {
webfetch: "deny",
external_directory: "deny",
}
applyToolConfig(params)
const permission = params.config.permission as Record<string, unknown>
expect(permission.webfetch).toBe("deny")
expect(permission.external_directory).toBe("deny")
expect(permission.task).toBe("deny")
})
it("#then should allow webfetch and external_directory by default", () => {
const params = createParams({})
applyToolConfig(params)
const permission = params.config.permission as Record<string, unknown>
expect(permission.webfetch).toBe("allow")
expect(permission.external_directory).toBe("allow")
expect(permission.task).toBe("deny")
})
})
})
describe("#given task_system is enabled", () => {
describe("#when applying tool config", () => {
it("#then should deny todowrite and todoread globally", () => {
+1 -1
View File
@@ -116,9 +116,9 @@ export function applyToolConfig(params: {
}
params.config.permission = {
...(params.config.permission as Record<string, unknown>),
webfetch: "allow",
external_directory: "allow",
...(params.config.permission as Record<string, unknown>),
task: "deny",
};
}