{"record":{"id":"45c7b3eeb06cbcb7","repo":"Hmbown/CodeWhale","slug":"selected-fleet-has-invalid-operator-reasoning","errorCode":null,"errorMessage":"selected Fleet '{}' has invalid operator reasoning: {}","messagePattern":"selected Fleet '(.+?)' has invalid operator reasoning: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/tui/src/lib.rs","lineNumber":8362,"sourceCode":"                anyhow!(\n                    \"selected Fleet '{}' operator route {}/{} is invalid: {}\",\n                    fleet_name,\n                    safe_provider_id,\n                    safe_model_id,\n                    crate::safe_label::safe_error_text(&error)\n                )\n            })?;\n    let mut selected_config = *resolved.config;\n    selected_config.fleet_operator_route_applied = true;\n    selected_config.fleet_operator_reasoning_applied = false;\n    if !explicit_reasoning_override\n        && let Some(reasoning) = operator\n            .reasoning\n            .as_deref()\n            .map(str::trim)\n            .filter(|reasoning| !reasoning.is_empty())\n        && let Some(reasoning) = normalize_cli_reasoning_effort(reasoning).map_err(|error| {\n            anyhow!(\n                \"selected Fleet '{}' has invalid operator reasoning: {}\",\n                fleet_name,\n                crate::safe_label::safe_error_text(&error.to_string())\n            )\n        })?\n    {\n        selected_config.reasoning_effort = Some(reasoning);\n        selected_config.reasoning_effort_inferred_from_legacy_alias = false;\n        selected_config.fleet_operator_reasoning_applied = true;\n    }\n    *config = selected_config;\n    Ok(true)\n}\n\n/// Resolve `project_instruction_imports` into the loader's opt-in set.\n///\n/// Unrecognized names are reported rather than dropped: a typo in this key\n/// silently means \"import nothing\", which is exactly the failure mode a user","sourceCodeStart":8344,"sourceCodeEnd":8380,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/73e0f67d83c59909b571efdfc88c4bc28c309cb1/crates/tui/src/lib.rs#L8344-L8380","documentation":"Thrown when the selected Fleet's operator specifies a `reasoning` effort string that `normalize_cli_reasoning_effort` cannot normalize to a valid effort level. Only recognized reasoning effort values are accepted for the operator route.","triggerScenarios":"A turn starts with a selected Fleet whose `operator.reasoning` is a non-empty string that is not a valid reasoning effort token (e.g. \"highs\", \"maximum\", wrong casing if parsing is case-sensitive).","commonSituations":"Hand-editing the fleet file with an unsupported reasoning level; copying a reasoning value from another tool with different vocabulary; schema changes between versions renamed the accepted tokens.","solutions":["Edit the fleet's operator.reasoning to a supported effort value (e.g. the same tokens the CLI accepts).","Remove the operator.reasoning field to use the default effort.","Check the CLI's accepted reasoning-effort values and match them exactly.","Re-select the fleet via /fleet after fixing the value."],"exampleFix":"// before (fleet file)\noperator:\n  reasoning: maximum\n// after\noperator:\n  reasoning: high","handlingStrategy":"validation","validationCode":"// normalize the reasoning value the same way the CLI does before saving the fleet\nif let Some(r) = &fleet.operator.reasoning {\n    assert!(normalize_cli_reasoning_effort(r.trim()).is_some(), \"invalid reasoning: {r}\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use only reasoning-effort tokens the CLI accepts when authoring fleets.","Omit operator.reasoning when unsure; the default applies.","Validate fleet files with the app's own parser before committing them."],"tags":["fleet","reasoning","config","validation"],"backgroundTag":"invalid-enum-value","analyzedSha":"73e0f67d83c59909b571efdfc88c4bc28c309cb1","analyzedAt":"2026-09-22T01:30:00.501Z","contentChangedAt":"2026-09-22T01:30:00.501Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}