Skip to content

Environment identification artwork setting is silently overridden to the version pill on custom themes #27885

Closed

Description

@ray-filet

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) returns true only for BUILT_IN_THEME_DEFINITIONS that have sidebarArtwork: true. Custom themes always return false.
  • resolveEnvironmentIdentificationMode() (apps/web/src/hooks/useSettings.ts:386) then turns every artwork mode (artwork, nightly-artwork, dev-artwork) into pill whenever 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 sidebarArtwork from 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):

  1. 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.
  2. 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

  1. Run a nightly desktop build (seen on 0.1.6-nightly.20261030.3940).
  2. Settings → Appearance → Environment identification → Nightly artwork.
  3. Import or create any custom theme and select it.
  4. Result: the sidebar header shows the Version pill, and the setting still reads "Nightly artwork".
  5. 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions