From 05de1c4e8afb220c72a6af80086498f4b480c515 Mon Sep 17 00:00:00 2001 From: Steven Enamakel <31011319+senamakel@users.noreply.github.com> Date: Fri, 15 May 2026 19:28:51 -0700 Subject: [PATCH] feat: redesign onboarding, boot, and LLM settings end-to-end (#1885) --- app/src/App.tsx | 6 +- app/src/components/AppBackground.tsx | 20 + .../BootCheckGate/BootCheckGate.tsx | 127 +- .../__tests__/BootCheckGate.test.tsx | 107 +- app/src/components/BottomTabBar.tsx | 18 +- app/src/components/LanguageSelect.tsx | 47 + app/src/components/settings/SettingsHome.tsx | 191 +-- .../settings/__tests__/SettingsHome.test.tsx | 172 +- .../components/settings/panels/AIPanel.tsx | 1483 +++++++++-------- .../settings/panels/ComposioPanel.tsx | 60 +- .../settings/panels/DeveloperOptionsPanel.tsx | 145 +- .../settings/panels/MemoryDataPanel.tsx | 24 +- .../components/settings/panels/ToolsPanel.tsx | 24 +- .../components/settings/panels/VoicePanel.tsx | 24 +- .../panels/__tests__/AIPanel.test.tsx | 27 +- .../panels/__tests__/ComposioPanel.test.tsx | 8 +- .../__tests__/DeveloperOptionsPanel.test.tsx | 8 + .../__tests__/RecoveryPhrasePanel.test.tsx | 2 - .../panels/__tests__/VoicePanel.test.tsx | 2 +- app/src/index.css | 12 +- app/src/lib/i18n/I18nContext.tsx | 2 +- app/src/lib/i18n/en.ts | 205 ++- app/src/lib/i18n/zh-CN.ts | 3 +- app/src/pages/Intelligence.tsx | 2 +- app/src/pages/Welcome.tsx | 165 +- app/src/pages/__tests__/Home.test.tsx | 1 - app/src/pages/__tests__/Welcome.test.tsx | 433 +---- app/src/pages/onboarding/Onboarding.tsx | 40 +- .../pages/onboarding/OnboardingContext.tsx | 9 + app/src/pages/onboarding/OnboardingLayout.tsx | 2 +- .../onboarding/components/BetaBanner.tsx | 6 +- .../components/ConfigureLaterCallout.tsx | 29 + .../onboarding/components/WizardStepper.tsx | 91 + app/src/pages/onboarding/customWizardSteps.ts | 30 + .../pages/onboarding/pages/ApiKeysPage.tsx | 20 + .../onboarding/pages/CustomInferencePage.tsx | 63 + .../onboarding/pages/CustomMemoryPage.tsx | 59 + .../onboarding/pages/CustomOAuthPage.tsx | 63 + .../onboarding/pages/CustomSearchPage.tsx | 52 + .../onboarding/pages/CustomVoicePage.tsx | 63 + .../onboarding/pages/RuntimeChoicePage.tsx | 32 + .../pages/onboarding/pages/WelcomePage.tsx | 2 +- .../pages/onboarding/steps/ApiKeysStep.tsx | 122 ++ .../onboarding/steps/CustomWizardStep.tsx | 156 ++ .../onboarding/steps/RuntimeChoiceStep.tsx | 167 ++ app/src/services/api/aiSettingsApi.ts | 156 ++ app/src/test/test-utils.tsx | 2 + app/src/types/accounts.ts | 16 +- 48 files changed, 2625 insertions(+), 1873 deletions(-) create mode 100644 app/src/components/AppBackground.tsx create mode 100644 app/src/components/LanguageSelect.tsx create mode 100644 app/src/pages/onboarding/components/ConfigureLaterCallout.tsx create mode 100644 app/src/pages/onboarding/components/WizardStepper.tsx create mode 100644 app/src/pages/onboarding/customWizardSteps.ts create mode 100644 app/src/pages/onboarding/pages/ApiKeysPage.tsx create mode 100644 app/src/pages/onboarding/pages/CustomInferencePage.tsx create mode 100644 app/src/pages/onboarding/pages/CustomMemoryPage.tsx create mode 100644 app/src/pages/onboarding/pages/CustomOAuthPage.tsx create mode 100644 app/src/pages/onboarding/pages/CustomSearchPage.tsx create mode 100644 app/src/pages/onboarding/pages/CustomVoicePage.tsx create mode 100644 app/src/pages/onboarding/pages/RuntimeChoicePage.tsx create mode 100644 app/src/pages/onboarding/steps/ApiKeysStep.tsx create mode 100644 app/src/pages/onboarding/steps/CustomWizardStep.tsx create mode 100644 app/src/pages/onboarding/steps/RuntimeChoiceStep.tsx diff --git a/app/src/App.tsx b/app/src/App.tsx index 9387b847e..53f7f6694 100644 --- a/app/src/App.tsx +++ b/app/src/App.tsx @@ -5,6 +5,7 @@ import { HashRouter as Router, useLocation, useNavigate } from 'react-router-dom import { PersistGate } from 'redux-persist/integration/react'; import AppRoutes from './AppRoutes'; +import AppBackground from './components/AppBackground'; import AppUpdatePrompt from './components/AppUpdatePrompt'; import BootCheckGate from './components/BootCheckGate/BootCheckGate'; import BottomTabBar from './components/BottomTabBar'; @@ -13,7 +14,6 @@ import ServiceBlockingGate from './components/daemon/ServiceBlockingGate'; import DictationHotkeyManager from './components/DictationHotkeyManager'; import ErrorFallbackScreen from './components/ErrorFallbackScreen'; import LocalAIDownloadSnackbar from './components/LocalAIDownloadSnackbar'; -import MeshGradient from './components/MeshGradient'; import OpenhumanLinkModal from './components/OpenhumanLinkModal'; import PersistRehydrationScreen from './components/PersistRehydrationScreen'; import GlobalUpsellBanner from './components/upsell/GlobalUpsellBanner'; @@ -181,8 +181,8 @@ function AppShell() { return (
- -
+ +