fix(team): clarify cross-provider model labels
This commit is contained in:
parent
dd6f50cad6
commit
bbb653d3d4
3 changed files with 27 additions and 2 deletions
|
|
@ -134,9 +134,14 @@ export function formatTeamModelSummary(
|
||||||
(providerId === 'codex' && normalizedModel.startsWith('gpt')) ||
|
(providerId === 'codex' && normalizedModel.startsWith('gpt')) ||
|
||||||
(providerId === 'gemini' && normalizedModel.startsWith('gemini')));
|
(providerId === 'gemini' && normalizedModel.startsWith('gemini')));
|
||||||
|
|
||||||
|
const providerActsAsBackendOnly =
|
||||||
|
providerId !== 'anthropic' && modelLabel !== 'Default' && !modelAlreadyCarriesProviderBrand;
|
||||||
|
|
||||||
const parts = modelAlreadyCarriesProviderBrand
|
const parts = modelAlreadyCarriesProviderBrand
|
||||||
? [modelLabel, effortLabel]
|
? [modelLabel, effortLabel]
|
||||||
: [providerLabel, modelLabel, effortLabel];
|
: providerActsAsBackendOnly
|
||||||
|
? [modelLabel, `via ${providerLabel}`, effortLabel]
|
||||||
|
: [providerLabel, modelLabel, effortLabel];
|
||||||
|
|
||||||
return parts.filter(Boolean).join(' · ');
|
return parts.filter(Boolean).join(' · ');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -118,9 +118,14 @@ function buildRuntimeSummary(
|
||||||
(normalizedModel.startsWith('codex') || normalizedModel.startsWith('gpt'))) ||
|
(normalizedModel.startsWith('codex') || normalizedModel.startsWith('gpt'))) ||
|
||||||
(providerId === 'gemini' && normalizedModel.startsWith('gemini')));
|
(providerId === 'gemini' && normalizedModel.startsWith('gemini')));
|
||||||
|
|
||||||
|
const providerActsAsBackendOnly =
|
||||||
|
providerId !== 'anthropic' && modelLabel !== 'Default' && !modelAlreadyCarriesProviderBrand;
|
||||||
|
|
||||||
const parts = modelAlreadyCarriesProviderBrand
|
const parts = modelAlreadyCarriesProviderBrand
|
||||||
? [modelLabel, effortLabel]
|
? [modelLabel, effortLabel]
|
||||||
: [providerLabel, modelLabel, effortLabel];
|
: providerActsAsBackendOnly
|
||||||
|
? [modelLabel, `via ${providerLabel}`, effortLabel]
|
||||||
|
: [providerLabel, modelLabel, effortLabel];
|
||||||
return parts.filter(Boolean).join(' · ');
|
return parts.filter(Boolean).join(' · ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
15
test/renderer/components/team/TeamModelSelector.test.ts
Normal file
15
test/renderer/components/team/TeamModelSelector.test.ts
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
import { describe, expect, it } from 'vitest';
|
||||||
|
|
||||||
|
import { formatTeamModelSummary } from '@renderer/components/team/dialogs/TeamModelSelector';
|
||||||
|
|
||||||
|
describe('formatTeamModelSummary', () => {
|
||||||
|
it('shows cross-provider Anthropic models as backend-routed instead of brand-mismatched', () => {
|
||||||
|
expect(formatTeamModelSummary('codex', 'claude-opus-4-6', 'medium')).toBe(
|
||||||
|
'Opus 4.6 · via Codex · Medium'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('keeps native Codex-family models branded normally', () => {
|
||||||
|
expect(formatTeamModelSummary('codex', 'gpt-5.4', 'medium')).toBe('GPT-5.4 · Medium');
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Reference in a new issue