{"record":{"id":"53fd392cb44888dd","repo":"Hmbown/CodeWhale","slug":"failed-to-update-setting-err","errorCode":null,"errorMessage":"Failed to update setting: {err}","messagePattern":"Failed to update setting: (.+?)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/tui/src/settings.rs","lineNumber":2550,"sourceCode":"        }\n        _ => None,\n    }\n}\n\nfn normalize_reasoning_effort_setting(value: &str) -> Result<Option<String>> {\n    let trimmed = value.trim();\n    if trimmed.is_empty()\n        || matches!(\n            trimmed.to_ascii_lowercase().as_str(),\n            \"default\" | \"(default)\" | \"config\" | \"configured\" | \"unset\"\n        )\n    {\n        return Ok(None);\n    }\n\n    ReasoningEffort::parse_strict(trimmed)\n        .map(|effort| Some(effort.as_setting().to_string()))\n        .map_err(|err| anyhow::anyhow!(\"Failed to update setting: {err}\"))\n}\n\n/// Parse a boolean value from various formats\nfn parse_bool(value: &str) -> Result<bool> {\n    match value.to_lowercase().as_str() {\n        \"on\" | \"true\" | \"yes\" | \"1\" | \"enabled\" => Ok(true),\n        \"off\" | \"false\" | \"no\" | \"0\" | \"disabled\" => Ok(false),\n        _ => {\n            anyhow::bail!(\"Failed to parse boolean '{value}': expected on/off, true/false, yes/no.\")\n        }\n    }\n}\n\nfn default_thinking_preview_lines() -> usize {\n    2\n}\n\nfn default_true() -> bool {","sourceCodeStart":2532,"sourceCodeEnd":2568,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/0c42157ee52f9d55af2b506d71b46249910f77d3/crates/tui/src/settings.rs#L2532-L2568","documentation":"Wrapper produced by normalize_reasoning_effort_setting when ReasoningEffort::parse_strict rejects the trimmed value: after the sentinel words (default/config/unset) are excluded, the remaining string is not a recognized effort level. The {err} carries the parser's specific complaint; the setting update aborts with no change.","triggerScenarios":"Thrown at crates/tui/src/settings.rs:2550 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a supported reasoning-effort value as accepted by ReasoningEffort (e.g. minimal/low/medium/high per the current parser)","Use 'default' or 'unset' to clear the override instead of an unknown word","Check the inner {err} text for the exact accepted vocabulary"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0c42157ee52f9d55af2b506d71b46249910f77d3","analyzedAt":"2026-08-20T21:50:45.477Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}