diff --git a/src/tools/delegate-task/constants.ts b/src/tools/delegate-task/constants.ts index 3d94c90eb..ba5cbe963 100644 --- a/src/tools/delegate-task/constants.ts +++ b/src/tools/delegate-task/constants.ts @@ -325,7 +325,7 @@ export const PLAN_AGENT_NAMES = ["plan"] */ export function isPlanAgent(agentName: string | undefined): boolean { if (!agentName) return false - const lowerName = agentName.toLowerCase().trim() + const lowerName = getAgentConfigKey(agentName).toLowerCase().trim() return PLAN_AGENT_NAMES.some(name => lowerName === name) } diff --git a/src/tools/delegate-task/tools.test.ts b/src/tools/delegate-task/tools.test.ts index 3e7c242b2..941d0e06a 100644 --- a/src/tools/delegate-task/tools.test.ts +++ b/src/tools/delegate-task/tools.test.ts @@ -191,7 +191,7 @@ describe("sisyphus-task", () => { expect(result).toBe(false) }) - test("returns true for 'planner' (matches via includes('plan'))", () => { + test("returns false for 'planner' (no longer matches via substring)", () => { //#given / #when const result = isPlanAgent("planner") @@ -251,6 +251,13 @@ describe("sisyphus-task", () => { //#given / #when / #then expect(PLAN_AGENT_NAMES).toEqual(["plan"]) }) + + test("returns false for non-plan agent display names (regression: isPlanAgent display-name false-positive)", () => { + //#given / #when / #then + expect(isPlanAgent(getAgentDisplayName("metis"))).toBe(false) + expect(isPlanAgent(getAgentDisplayName("momus"))).toBe(false) + expect(isPlanAgent(getAgentDisplayName("atlas"))).toBe(false) + }) }) describe("isPlanFamily", () => { @@ -296,6 +303,13 @@ describe("sisyphus-task", () => { expect(result).toBe(false) }) + test("returns false for non-plan-family agent display names (regression: isPlanFamily includes() false-positive)", () => { + //#given / #when / #then + expect(isPlanFamily(getAgentDisplayName("metis"))).toBe(false) + expect(isPlanFamily(getAgentDisplayName("momus"))).toBe(false) + expect(isPlanFamily(getAgentDisplayName("atlas"))).toBe(false) + }) + test("PLAN_FAMILY_NAMES contains plan and prometheus", () => { //#given / #when / #then expect(PLAN_FAMILY_NAMES).toEqual(["plan", "prometheus"])