| ... | @@ -200,19 +200,33 @@ describe("provider enabled defaults", () => { | ... | @@ -200,19 +200,33 @@ describe("provider enabled defaults", () => { |
| 200 | const decoded = decodeServerSettings({}); | 200 | const decoded = decodeServerSettings({}); |
| 201 | expect(decoded.providers.codex.enabled).toBe(true); | 201 | expect(decoded.providers.codex.enabled).toBe(true); |
| 202 | expect(decoded.providers.claudeAgent.enabled).toBe(true); | 202 | expect(decoded.providers.claudeAgent.enabled).toBe(true); |
| 203 | expect(decoded.providers.cursor.enabled).toBe(true); | 203 | expect(decoded.providers.cursor.enabled).toBe(false); |
| 204 | expect(decoded.providers.grok.enabled).toBe(false); | 204 | expect(decoded.providers.grok.enabled).toBe(false); |
| 205 | expect(decoded.providers.opencode.enabled).toBe(false); | 205 | expect(decoded.providers.opencode.enabled).toBe(false); |
| 206 | }); | 206 | }); |
| 207 | | 207 | |
| 208 | it("derives per-driver defaults from the settings schemas", () => { | 208 | it("derives per-driver defaults from the settings schemas", () => { |
| 209 | expect(defaultEnabledForDriver(ProviderDriverKind.make("codex"))).toBe(true); | 209 | expect(defaultEnabledForDriver(ProviderDriverKind.make("codex"))).toBe(true); |
| 210 | expect(defaultEnabledForDriver(ProviderDriverKind.make("cursor"))).toBe(true); | 210 | expect(defaultEnabledForDriver(ProviderDriverKind.make("cursor"))).toBe(false); |
| 211 | expect(defaultEnabledForDriver(ProviderDriverKind.make("grok"))).toBe(false); | 211 | expect(defaultEnabledForDriver(ProviderDriverKind.make("grok"))).toBe(false); |
| 212 | // Unknown fork drivers stay enabled; their own build decides otherwise. | 212 | // Unknown fork drivers stay enabled; their own build decides otherwise. |
| 213 | expect(defaultEnabledForDriver(ProviderDriverKind.make("ollama"))).toBe(true); | 213 | expect(defaultEnabledForDriver(ProviderDriverKind.make("ollama"))).toBe(true); |
| 214 | }); | 214 | }); |
| 215 | | 215 | |
| | 216 | it("keeps Cursor enabled when an existing user explicitly opted in", () => { |
| | 217 | const cursor = ProviderDriverKind.make("cursor"); |
| | 218 | const cursorId = ProviderInstanceId.make("cursor"); |
| | 219 | const decoded = decodeServerSettings({ |
| | 220 | providers: { cursor: { enabled: true } }, |
| | 221 | providerInstances: { |
| | 222 | [cursorId]: { driver: cursor, enabled: true, config: {} }, |
| | 223 | }, |
| | 224 | }); |
| | 225 | |
| | 226 | expect(decoded.providers.cursor.enabled).toBe(true); |
| | 227 | expect(resolveProviderInstanceEnabled(decoded.providerInstances[cursorId]!)).toBe(true); |
| | 228 | }); |
| | 229 | |
| 216 | it("resolves instance enabled state with explicit false winning", () => { | 230 | it("resolves instance enabled state with explicit false winning", () => { |
| 217 | const grok = ProviderDriverKind.make("grok"); | 231 | const grok = ProviderDriverKind.make("grok"); |
| 218 | const codex = ProviderDriverKind.make("codex"); | 232 | const codex = ProviderDriverKind.make("codex"); |