Repository navigation
Description
What happened
With a custom theme active, the Environment identification setting is not honored. I have Nightly artwork selected, but the sidebar shows the Version pill. This happens with every custom theme I've tried (for example, an imported Catppuccin Macchiato theme). Switching to a built-in theme shows the artwork correctly. The settings panel still shows "Nightly artwork" as selected, with no sign that the theme is overriding it.
Diagnosis
This is intentional behavior from #6183, but the UI doesn't explain it:
themeAllowsSidebarArtwork()(apps/web/src/themePalette.ts:1185) returnstrueonly forBUILT_IN_THEME_DEFINITIONSthat havesidebarArtwork: true. Custom themes always returnfalse.resolveEnvironmentIdentificationMode()(apps/web/src/hooks/useSettings.ts:386) then turns every artwork mode (artwork,nightly-artwork,dev-artwork) intopillwhenever a palette theme is active and doesn't allow artwork.- feat(web): make environment artwork theme aware #6183 removed the custom-theme "Sidebar artwork" toggle and drops
sidebarArtworkfrom theme files on import, so users have no way to opt back in.
So the stored setting (nightly-artwork) and what's rendered (pill) disagree, and nothing in Settings → Appearance says so.
Possible directions (maintainers' call):
- When the active theme forces the pill, say so in the Environment identification row (for example, "Custom themes show the version pill") or disable the artwork options.
- Let custom themes opt back into artwork, either per theme or with a global "use artwork even on custom themes" option, accepting that colors may clash.
Steps to reproduce
- Run a nightly desktop build (seen on
0.1.6-nightly.20261030.3940). - Settings → Appearance → Environment identification → Nightly artwork.
- Import or create any custom theme and select it.
- Result: the sidebar header shows the Version pill, and the setting still reads "Nightly artwork".
- Switch to a built-in theme (such as Ocean): the artwork appears.
Version
0.1.6-nightly.20261030.3940 (desktop app against local server; triage CLI was 0.1.5)
Environment
macOS (Darwin 27.0.0, arm64), Node v26.12.1, desktop app
Evidence
# apps/web/src/hooks/useSettings.ts @ v0.1.6-nightly.20261030.3940
const isArtwork = input.mode !== "pill" && input.mode !== "none";
return input.paletteThemeActive && !input.paletteThemeAllowsArtwork && isArtwork
? "pill"
: input.mode;
# apps/web/src/themePalette.ts
export function themeAllowsSidebarArtwork(theme: ThemePreference): boolean {
const themeId = themeIdFromPreference(theme);
return (
BUILT_IN_THEME_DEFINITIONS.find((definition) => definition.id === themeId)?.sidebarArtwork === true
);
}Related issues
#5728: same symptom on built-in themes. It was fixed by giving built-ins reviewed artwork palettes (#6183), and that same PR deliberately removed artwork for custom themes. This issue is about custom themes and the setting being silently overridden, so it isn't a duplicate.
Fix applied or workaround
None applied. Workaround: use a built-in theme (T3 Code, T3 Chat, Grove, Ocean, Ember, Iris) to get artwork.
Filed by
Claude Code (claude-opus-5-5) via t3 triage
Activity