fix(api): constrain preset target defaults

- limit preset default targets to persisted API profile targets

- add regression coverage for preset target resolution and profile target persistence
This commit is contained in:
Tam Nhu Tran committed 2026-04-10 17:44:25 -04:00
1 parent 414e8c80f5
commit 52ac29e7a8
4 files changed
+83 -7

No files matched your search

+19 -6
View File
@@ -269,12 +269,12 @@ async function resolveDefaultTarget(
providedTarget: TargetType | undefined,
yes: boolean | undefined
): Promise<TargetType> {
if (providedTarget) {
return providedTarget;
}
if (preset?.defaultTarget) {
console.log(info(`Using preset default target: ${preset.defaultTarget}`));
return preset.defaultTarget;
const resolvedTarget = resolvePresetDefaultTarget(preset, providedTarget);
if (resolvedTarget) {
if (preset?.defaultTarget && !providedTarget) {
console.log(info(`Using preset default target: ${preset.defaultTarget}`));
}
return resolvedTarget;
}
if (yes) {
return 'claude';
@@ -287,6 +287,19 @@ async function resolveDefaultTarget(
return useDroidByDefault ? 'droid' : 'claude';
}
export function resolvePresetDefaultTarget(
preset: Pick<ProviderPreset, 'defaultTarget'> | null,
providedTarget: TargetType | undefined
): TargetType | null {
if (providedTarget) {
return providedTarget;
}
if (preset?.defaultTarget) {
return preset.defaultTarget;
}
return null;
}
async function resolveClaudeLongContextPreference(
models: ModelMapping,
explicitPreference: boolean | undefined,
+1 -1
View File
@@ -6,7 +6,7 @@
*/
export type PresetCategory = 'recommended' | 'alternative';
export type ProviderPresetTarget = 'claude' | 'droid' | 'codex';
export type ProviderPresetTarget = 'claude' | 'droid';
export const PROVIDER_PRESET_IDS = [
'openrouter',