From a95cae3729833f21ac6b1d33da5450a12da704c6 Mon Sep 17 00:00:00 2001 From: Matt Toohey Date: Thu, 16 Jul 2026 16:46:17 +1000 Subject: [PATCH 1/2] feat(desktop): remove theme selection from onboarding, default to Buzz + System MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drop the "Pick a theme" onboarding step and instead ship the Buzz theme with System (follow-OS) switching as the out-of-the-box default: - Delete ThemeStep and the unreachable theme/backup/setup branches left in the relay-scoped OnboardingFlow after the machine-onboarding split; the flow now matches its two active steps (profile → avatar). The onboarding-forced github-light-default/neutral-accent seeding goes with it, so fresh profiles keep pure defaults with nothing persisted. - Default ThemeProvider to the buzz theme, and enable follow-system for fresh profiles (no stored theme). Profiles with a stored theme keep their existing fixed-theme behavior until they opt in. - Seed the first-launch boot class in index.html from the OS color scheme instead of hardcoding dark-houston, so the pre-React paint matches the Buzz System default with no wrong-scheme flash. - Remove the now-unused ONBOARDING_DEFAULT_THEME_NAME plumbing, refresh the stale step-count unit tests to mirror the current two-step flow, and update e2e expectations for the light-scheme first boot. Verified by driving the built app through the mock bridge: fresh boot renders light Buzz with the gradient sidebar and flips to Buzz Dark live when the OS scheme changes, settings opens with System mode selected, and onboarding runs profile (1/2) → avatar (2/2) with no theme page. Co-Authored-By: Claude Fable 5 Signed-off-by: Matt Toohey --- desktop/index.html | 22 +- .../features/onboarding/ui/OnboardingFlow.tsx | 100 +----- .../src/features/onboarding/ui/ThemeStep.tsx | 311 ------------------ .../ui/onboardingFlowSteps.test.mjs | 104 ++---- desktop/src/features/onboarding/ui/types.ts | 8 - desktop/src/main.tsx | 2 +- desktop/src/shared/theme/ThemeProvider.tsx | 9 +- desktop/src/shared/theme/theme-loader.ts | 10 - desktop/tests/e2e/onboarding.spec.ts | 8 +- desktop/tests/e2e/profile.spec.ts | 5 +- 10 files changed, 59 insertions(+), 520 deletions(-) delete mode 100644 desktop/src/features/onboarding/ui/ThemeStep.tsx diff --git a/desktop/index.html b/desktop/index.html index c219f214dc7..4b58bd43264 100644 --- a/desktop/index.html +++ b/desktop/index.html @@ -15,10 +15,10 @@ The inline script below reads the cached theme background (same `buzz-theme-cache` entry ThemeProvider writes) and applies it synchronously so the boot color matches the themed loading gate — no black flash on light - themes. On the first-ever launch (no cache yet) it seeds the `dark` class - synchronously so the setup gate reads the dark `:root` vars instead of the - light Catppuccin-Latte default, matching the dark `houston` theme - ThemeProvider applies moments later — no light flash before it loads. + themes. On the first-ever launch (no cache yet) it seeds the light/dark + class from the OS color scheme, matching the Buzz theme in System mode + that ThemeProvider applies moments later — no wrong-scheme flash before + it loads. -->