{"record":{"id":"a3252d18761f8e94","repo":"Hmbown/CodeWhale","slug":"unsupported-theme-other","errorCode":null,"errorMessage":"unsupported theme '{other}'","messagePattern":"unsupported theme '(.+?)'","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/tui/src/config_ui.rs","lineNumber":1127,"sourceCode":"    fn from_setting(value: &str) -> Result<Self> {\n        if crate::palette::normalize_user_theme_selector(value)\n            .map_err(anyhow::Error::msg)?\n            .is_some()\n        {\n            return Ok(Self::Custom);\n        }\n        match crate::palette::normalize_theme_name(value) {\n            Some(\"system\") => Ok(Self::System),\n            Some(\"dark\") => Ok(Self::Dark),\n            Some(\"light\") => Ok(Self::Light),\n            Some(\"grayscale\") => Ok(Self::Grayscale),\n            Some(\"catppuccin-mocha\") => Ok(Self::CatppuccinMocha),\n            Some(\"tokyo-night\") => Ok(Self::TokyoNight),\n            Some(\"dracula\") => Ok(Self::Dracula),\n            Some(\"gruvbox-dark\") => Ok(Self::GruvboxDark),\n            Some(\"matrix\") => Ok(Self::Matrix),\n            Some(\"uwu\") => Ok(Self::Uwu),\n            Some(other) => bail!(\"unsupported theme '{other}'\"),\n            None => bail!(\"invalid theme '{value}'\"),\n        }\n    }\n}\n\nimpl OceanTreatmentValue {\n    fn as_setting(self) -> &'static str {\n        match self {\n            Self::Ombre => \"ombre\",\n            Self::Flat => \"flat\",\n        }\n    }\n}\n\nimpl From<&str> for OceanTreatmentValue {\n    fn from(value: &str) -> Self {\n        if value.trim().eq_ignore_ascii_case(\"flat\") {\n            Self::Flat","sourceCodeStart":1109,"sourceCodeEnd":1145,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/0c42157ee52f9d55af2b506d71b46249910f77d3/crates/tui/src/config_ui.rs#L1109-L1145","documentation":"Thrown by UiThemeValue::from_setting when crate::palette::normalize_theme_name (crates/tui/src/palette/themes.rs:906) recognizes the input but returns a canonical name the config-UI theme enum does not offer. Concretely, \"terminal\" (aliases term/transparent/follow-terminal/inherit), \"claude\", and \"solarized-light\" (alias solarized) normalize successfully yet are not in the config_ui match, so they land in the Some(other) arm.","triggerScenarios":"Setting the theme to \"terminal\", \"claude\", \"solarized-light\", or any of their aliases in the config UI settings path. Custom user-theme selectors are handled earlier via normalize_user_theme_selector and return Custom, so only these palette names trigger it.","commonSituations":"Copying a theme name that works elsewhere in the palette layer (or in an older build) into the UI setting; a theme renamed or not yet surfaced in the config UI enum.","solutions":["Pick a UI-selectable theme: system, dark, light, grayscale, catppuccin-mocha, tokyo-night, dracula, gruvbox-dark, matrix, or uwu","Use a custom theme selector if you want a user-defined theme instead of a built-in name","Upgrade Codewhale if release notes say the theme was added to the config UI"],"exampleFix":"# before\ntheme = \"solarized-light\"\n\n# after\ntheme = \"gruvbox-dark\"","handlingStrategy":"validation","validationCode":"const UI_THEMES: &[&str] = &[\"system\", \"dark\", \"light\", \"grayscale\", \"catppuccin-mocha\", \"tokyo-night\", \"dracula\", \"gruvbox-dark\", \"matrix\", \"uwu\"];\n\nfn theme_is_selectable(value: &str) -> bool {\n    crate::palette::normalize_theme_name(value)\n        .is_some_and(|name| UI_THEMES.contains(&name))\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Restrict the theme picker to the UI-selectable canonical names instead of free text","Remember that palette-level names like terminal, claude, and solarized-light are valid themes elsewhere but not selectable here","Centralize the supported-name list next to as_setting so it cannot drift"],"tags":["config","theme","rust","tui","palette"],"backgroundTag":"unsupported-theme-value","analyzedSha":"0c42157ee52f9d55af2b506d71b46249910f77d3","analyzedAt":"2026-08-20T21:50:45.477Z","schemaVersion":2},"datasetVersion":"2026-08-21T10:36:37.832Z"}