From c82340a97b2d8a401919ccf28d30589ddcff0397 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sat, 12 Sep 2026 18:16:21 -0400 Subject: [PATCH] fix(tui): probe palette only for system theme --- packages/tui/src/context/theme.tsx | 6 +++++- packages/tui/src/theme/index.ts | 5 ++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/tui/src/context/theme.tsx b/packages/tui/src/context/theme.tsx index 25bf298ffa8..380c97b91e9 100644 --- a/packages/tui/src/context/theme.tsx +++ b/packages/tui/src/context/theme.tsx @@ -159,7 +159,9 @@ const themeContext = createSimpleContext({ createEffect(() => { const theme = config.theme?.name - if (theme) setStore("active", theme) + if (!theme) return + setStore("active", theme) + if (theme === "system") refreshPalette() }) createEffect(() => { @@ -204,6 +206,7 @@ const themeContext = createSimpleContext({ let queued = false let disposed = false function refreshPalette() { + if (store.active !== "system") return queued = true if (!canProbe || probing || disposed) return @@ -347,6 +350,7 @@ const themeContext = createSimpleContext({ set(theme: string) { if (!hasTheme(theme)) return false setStore("active", theme) + if (theme === "system") refreshPalette() void configState .update((draft) => { draft.theme = { ...draft.theme, name: theme } diff --git a/packages/tui/src/theme/index.ts b/packages/tui/src/theme/index.ts index 68d7833b3b0..91318219e34 100644 --- a/packages/tui/src/theme/index.ts +++ b/packages/tui/src/theme/index.ts @@ -15,17 +15,16 @@ const listeners = new Set<(themes: Record) => void> const parsed = new WeakMap() const decodeThemeDocument = Schema.decodeUnknownSync(ThemeDocument, { reportInput: true }) -function listThemes() { +function listThemes(): Record { // Priority: defaults < plugin installs < custom files < generated system. const themes: Record = { ...DEFAULT_THEMES, ...pluginThemes, ...customThemes, } - if (!systemTheme) return themes return { ...themes, - system: systemTheme, + system: systemTheme ?? themes.system ?? themes.opencode, } }