diff --git a/packages/core/src/__tests__/agent-permission-policy.test.ts b/packages/core/src/__tests__/agent-permission-policy.test.ts index 3c8aa5def..1d949dbcc 100644 --- a/packages/core/src/__tests__/agent-permission-policy.test.ts +++ b/packages/core/src/__tests__/agent-permission-policy.test.ts @@ -15,6 +15,7 @@ describe("agent-permission-policy", () => { "unrestricted", "approval-required", "locked-down", + "custom", ]); }); @@ -65,6 +66,6 @@ describe("agent-permission-policy", () => { expect(isAgentPermissionPolicyPresetId("unrestricted")).toBe(true); expect(isAgentPermissionPolicyPresetId("approval-required")).toBe(true); expect(isAgentPermissionPolicyPresetId("locked-down")).toBe(true); - expect(isAgentPermissionPolicyPresetId("custom")).toBe(false); + expect(isAgentPermissionPolicyPresetId("custom")).toBe(true); }); }); diff --git a/packages/core/src/agent-permission-policy.ts b/packages/core/src/agent-permission-policy.ts index 9b8812271..f362b9602 100644 --- a/packages/core/src/agent-permission-policy.ts +++ b/packages/core/src/agent-permission-policy.ts @@ -126,6 +126,10 @@ function normalizeProjectDefaultPolicy( merged[category] = nextValue; } + if (Object.keys(merged).length === 0) { + return normalizeAgentPermissionPolicyFromPreset(DEFAULT_AGENT_PERMISSION_POLICY_PRESET_ID); + } + return normalizeAgentPermissionPolicy({ presetId: "custom", rules: { ...seed, ...merged }, diff --git a/packages/dashboard/src/__tests__/routes-agents.test.ts b/packages/dashboard/src/__tests__/routes-agents.test.ts index a3fcd5147..0cd49259e 100644 --- a/packages/dashboard/src/__tests__/routes-agents.test.ts +++ b/packages/dashboard/src/__tests__/routes-agents.test.ts @@ -1959,7 +1959,7 @@ describe("Agent create/update routes", () => { JSON.stringify({ name: "Invalid Policy Agent", role: "executor", - permissionPolicy: { presetId: "custom" }, + permissionPolicy: { presetId: "not-a-preset" }, }), { "Content-Type": "application/json" }, );