used default fallback provider and model if default are set (#8650)

This commit is contained in:
Lifei Zhou
2026-04-20 14:46:14 +10:00
committed by GitHub
parent 4656d1a706
commit 765213561e
2 changed files with 22 additions and 4 deletions
+2 -2
View File
@@ -87,6 +87,8 @@ vi.mock('./components/ModelAndProviderContext', () => ({
provider: null,
model: null,
getCurrentModelAndProvider: vi.fn(),
getFallbackModelAndProvider: vi.fn().mockResolvedValue({ provider: '', model: '' }),
refreshCurrentModelAndProvider: vi.fn().mockResolvedValue(undefined),
setCurrentModelAndProvider: vi.fn(),
}),
}));
@@ -205,8 +207,6 @@ describe('App Component - Brand New State', () => {
window.location.hash = '';
window.location.search = '';
window.location.pathname = '/';
window.sessionStorage?.clear?.();
window.localStorage?.clear?.();
});
afterEach(() => {
@@ -48,7 +48,7 @@ export default function OnboardingGuard({ children }: OnboardingGuardProps) {
const intl = useIntl();
const navigate = useNavigate();
const { read, upsert, getProviders } = useConfig();
const { refreshCurrentModelAndProvider } = useModelAndProvider();
const { getFallbackModelAndProvider, refreshCurrentModelAndProvider } = useModelAndProvider();
const [isCheckingProvider, setIsCheckingProvider] = useState(true);
const [hasProvider, setHasProvider] = useState(false);
@@ -67,7 +67,25 @@ export default function OnboardingGuard({ children }: OnboardingGuardProps) {
for (let attempt = 0; attempt <= retries; attempt++) {
try {
const provider = (await read('GOOSE_PROVIDER', false, { throwOnError: true })) as string | null;
setHasProvider(!!provider?.trim());
if (provider?.trim()) {
setHasProvider(true);
setIsCheckingProvider(false);
return;
}
const fallback = await getFallbackModelAndProvider();
if (fallback.provider?.trim() && fallback.model?.trim()) {
const configuredProvider = (await read('GOOSE_PROVIDER', false)) as string | null;
const configuredModel = (await read('GOOSE_MODEL', false)) as string | null;
if (configuredProvider?.trim() && configuredModel?.trim()) {
await refreshCurrentModelAndProvider();
setHasProvider(true);
setIsCheckingProvider(false);
return;
}
}
setHasProvider(false);
setIsCheckingProvider(false);
return;
} catch (error) {