From 2a39ce3170c5956468c9c362f5d83c2d0b0ffe9d Mon Sep 17 00:00:00 2001 From: Jonathan Friedman Date: Wed, 12 Aug 2026 13:34:32 -0400 Subject: [PATCH 1/2] cursor: Test Grok 4.6 Fast parameter mapping --- tests/cursor-discovery.test.ts | 1 + tests/cursor-effort-suffix.test.ts | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/tests/cursor-discovery.test.ts b/tests/cursor-discovery.test.ts index c8343deda7..b7c3843eaf 100644 --- a/tests/cursor-discovery.test.ts +++ b/tests/cursor-discovery.test.ts @@ -37,6 +37,7 @@ describe("Cursor discovery metadata", () => { expect(ids).toContain("glm-5.2"); expect(ids).toContain("kimi-k2.7-code"); expect(ids).toContain("kimi-k3"); + expect(ids).toContain("grok-4.6-fast"); expect(ids).toContain("claude-opus-4-7-fast"); // 260709 refresh: stale ids dropped from the static seed (cursor.com docs); gpt-5.5-extra // stays — it survives the live GetUsableModels filter (004_live_snapshot.md). diff --git a/tests/cursor-effort-suffix.test.ts b/tests/cursor-effort-suffix.test.ts index 2d4c627f0a..44118518b0 100644 --- a/tests/cursor-effort-suffix.test.ts +++ b/tests/cursor-effort-suffix.test.ts @@ -127,6 +127,13 @@ describe("Cursor per-model reasoning-effort suffix", () => { expect(cursorModelEffortLadder("grok-4.5-fast")).toEqual(["low", "medium", "high"]); }); + test("grok-4.6 sends effort and Fast as separate model parameters", () => { + expect(selectionFor("cursor/grok-4.6-fast", "high")).toEqual({ + modelId: "grok-4.6", + parameters: [{ id: "effort", value: "high" }, { id: "fast", value: "true" }], + }); + }); + test("regular grok-4.5 request ids match the recorded discovery fixture", () => { for (const effort of ["low", "medium", "high"] as const) { const requestModelId = modelIdFor("cursor/grok-4.5", effort); From e36f0592423b71994ea2ed9623f1c928a8054fbd Mon Sep 17 00:00:00 2001 From: Jonathan Friedman Date: Wed, 12 Aug 2026 13:59:33 -0400 Subject: [PATCH 2/2] cursor: Fix Grok 4.6 Fast context window --- src/adapters/cursor/discovery.ts | 2 +- tests/cursor-discovery.test.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/adapters/cursor/discovery.ts b/src/adapters/cursor/discovery.ts index db078631b8..f691b5e570 100644 --- a/src/adapters/cursor/discovery.ts +++ b/src/adapters/cursor/discovery.ts @@ -242,7 +242,7 @@ export const CURSOR_STATIC_MODELS: readonly CursorModelInfo[] = normalizeCursorM { id: "grok-4.5-fast", contextWindow: 500_000, supportsReasoningEffort: true }, // 260813 preemptive: grok-4.6 seeded ahead of Cursor's lineup update (mirrors grok-4.5). { id: "grok-4.6", contextWindow: 500_000, supportsReasoningEffort: true }, - { id: "grok-4.6-fast", contextWindow: 500_000, supportsReasoningEffort: true }, + { id: "grok-4.6-fast", contextWindow: 256_000, supportsReasoningEffort: true }, ]); export function cursorModelIds(models: readonly CursorModelInfo[] = CURSOR_STATIC_MODELS): string[] { diff --git a/tests/cursor-discovery.test.ts b/tests/cursor-discovery.test.ts index b7c3843eaf..ffb433f6d7 100644 --- a/tests/cursor-discovery.test.ts +++ b/tests/cursor-discovery.test.ts @@ -51,6 +51,7 @@ describe("Cursor discovery metadata", () => { expect(cursorModelContextWindows(CURSOR_STATIC_MODELS)[id]).toBe(200_000); } expect(cursorModelContextWindows(CURSOR_STATIC_MODELS)["composer-2.5-fast"]).toBe(200_000); + expect(cursorModelContextWindows(CURSOR_STATIC_MODELS)["grok-4.6-fast"]).toBe(256_000); }); test("auto is not activated by live GetUsableModels wire ids alone", () => {