[eric] boot: bootstrap fetches retry until the backend answers and heal on focus, so a lost boot race stops bricking first paint

This commit is contained in:
ciregenz
2026-08-08 09:34:13 -07:00
parent 5c0d6d52b6
commit d60a99ddd1
5 changed files with 45 additions and 2 deletions
@@ -68,7 +68,7 @@ const AppShell: React.FC = () => {
};
}, []);
const modelsLoaded = useAppSelector((s) => s.models.loaded);
const modelsLoaded = useAppSelector((s) => s.models.loaded && !s.models.failed);
// The models list is marked loaded even when its fetch fails, so it alone can't tell "no model" from "couldn't ask". Settings is where the user's own key/sub lives, so the banner waits for it.
const settingsKnown = useAppSelector((s) => s.settings.loaded);
// "Connected" = the user's OWN model (key/sub/pro/custom), NOT a non-empty /models list: the free-trial Haiku is always in that list now, so a byProvider-length check would falsely read as connected and hide the out-of-runs banner.