Skip to content

Commit edc40ce

Browse files
committed
Respect locked provider fallback
1 parent 576dc16 commit edc40ce

2 files changed

Lines changed: 22 additions & 1 deletion

File tree

apps/web/src/providerInstances.test.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
deriveProviderInstanceEntries,
55
resolveSelectableProviderInstance,
66
resolveProviderDriverKindForInstanceSelection,
7+
resolveSelectedProviderInstanceId,
78
} from "./providerInstances";
89

910
function provider(input: {
@@ -130,3 +131,22 @@ describe("resolveProviderDriverKindForInstanceSelection", () => {
130131
).toBeUndefined();
131132
});
132133
});
134+
135+
describe("resolveSelectedProviderInstanceId", () => {
136+
it("falls back to the locked provider before the selected provider", () => {
137+
const providers = [
138+
provider({ provider: ProviderDriverKind.make("codex"), instanceId: "codex" }),
139+
provider({ provider: ProviderDriverKind.make("claudeAgent"), instanceId: "claudeAgent" }),
140+
];
141+
const entries = deriveProviderInstanceEntries(providers);
142+
143+
expect(
144+
resolveSelectedProviderInstanceId({
145+
entries,
146+
candidates: [null],
147+
selectedProvider: ProviderDriverKind.make("claudeAgent"),
148+
lockedProvider: ProviderDriverKind.make("codex"),
149+
}),
150+
).toBe("codex");
151+
});
152+
});

apps/web/src/providerInstances.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,10 +210,11 @@ export function resolveSelectedProviderInstanceId(input: {
210210
return ProviderInstanceId.make(explicitSelection);
211211
}
212212

213+
const fallbackProvider = lockedProvider ?? input.selectedProvider;
213214
const byKind = input.entries.find(
214215
(entry) =>
215216
entry.enabled &&
216-
entry.driverKind === input.selectedProvider &&
217+
entry.driverKind === fallbackProvider &&
217218
(!lockedContinuationGroupKey || entry.continuationGroupKey === lockedContinuationGroupKey),
218219
);
219220
if (byKind) return byKind.instanceId;

0 commit comments

Comments
 (0)