diff --git a/src/auto-reply/model.test.ts b/src/auto-reply/model.test.ts index 4a5aa7714..de1fb6a8a 100644 --- a/src/auto-reply/model.test.ts +++ b/src/auto-reply/model.test.ts @@ -10,11 +10,17 @@ describe("extractModelDirective", () => { expect(result.cleaned).toBe(""); }); - it("extracts /models with argument", () => { + it("does not treat /models as a /model directive", () => { const result = extractModelDirective("/models gpt-5"); - expect(result.hasDirective).toBe(true); - expect(result.rawModel).toBe("gpt-5"); - expect(result.cleaned).toBe(""); + expect(result.hasDirective).toBe(false); + expect(result.rawModel).toBeUndefined(); + expect(result.cleaned).toBe("/models gpt-5"); + }); + + it("does not parse /models as a /model directive (no args)", () => { + const result = extractModelDirective("/models"); + expect(result.hasDirective).toBe(false); + expect(result.cleaned).toBe("/models"); }); it("extracts /model with provider/model format", () => { diff --git a/src/auto-reply/model.ts b/src/auto-reply/model.ts index 24dd8ea0c..450a016b6 100644 --- a/src/auto-reply/model.ts +++ b/src/auto-reply/model.ts @@ -14,7 +14,7 @@ export function extractModelDirective( if (!body) return { cleaned: "", hasDirective: false }; const modelMatch = body.match( - /(?:^|\s)\/models?(?=$|\s|:)\s*:?\s*([A-Za-z0-9_.:@-]+(?:\/[A-Za-z0-9_.:@-]+)*)?/i, + /(?:^|\s)\/model(?=$|\s|:)\s*:?\s*([A-Za-z0-9_.:@-]+(?:\/[A-Za-z0-9_.:@-]+)*)?/i, ); const aliases = (options?.aliases ?? []).map((alias) => alias.trim()).filter(Boolean);