fix(setup): auto-redirect to setup when no API keys are configured

If setup was previously completed but no provider API keys were saved
(due to the legacy bug where validation didn't persist keys), the app
now detects this on startup and redirects to the setup wizard so the
user can re-enter their key with the fixed save flow.
This commit is contained in:
Haze
2026-02-06 03:27:32 +08:00
Unverified
parent 00475ce2b5
commit 4b9ab69b9b

View File

@@ -29,9 +29,29 @@ function App() {
}, [initGateway]); }, [initGateway]);
// Redirect to setup wizard if not complete // Redirect to setup wizard if not complete
// Also check if provider keys exist - if setup was "completed" but
// no keys were saved (legacy bug), re-run setup
useEffect(() => { useEffect(() => {
if (!setupComplete && !location.pathname.startsWith('/setup')) { if (!setupComplete && !location.pathname.startsWith('/setup')) {
navigate('/setup'); navigate('/setup');
return;
}
// Check if we have any saved providers with keys
if (setupComplete && !location.pathname.startsWith('/setup')) {
window.electron.ipcRenderer.invoke('provider:list')
.then((providers: unknown) => {
const list = providers as Array<{ hasKey: boolean }>;
const hasAnyKey = Array.isArray(list) && list.some(p => p.hasKey);
if (!hasAnyKey) {
// No API keys configured - re-run setup
console.log('No provider API keys found, redirecting to setup');
navigate('/setup');
}
})
.catch(() => {
// Ignore errors
});
} }
}, [setupComplete, location.pathname, navigate]); }, [setupComplete, location.pathname, navigate]);