{"record":{"id":"511047dbb5a50cd0","repo":"Hmbown/CodeWhale","slug":"unsupported-permission-posture-value-expected","errorCode":null,"errorMessage":"unsupported permission posture {value:?}; expected ask, auto-review, or full-access","messagePattern":"unsupported permission posture (.+?); expected ask, auto-review, or full-access","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/tui/src/runtime_policy.rs","lineNumber":57,"sourceCode":"        Self {\n            mode: visible_mode(parsed_mode),\n            permission,\n        }\n    }\n\n    /// Validate and normalize a new Runtime request. Legacy aliases are\n    /// accepted as one-way inputs, but only current values are persisted.\n    pub(crate) fn from_request(\n        mode: &str,\n        permission_posture: Option<&str>,\n        auto_approve: Option<bool>,\n    ) -> Result<Self> {\n        let parsed_mode = parse_runtime_mode(mode).ok_or_else(|| {\n            anyhow::anyhow!(\"unsupported Runtime mode {mode:?}; expected plan, act, or operate\")\n        })?;\n        let permission = match permission_posture {\n            Some(value) => ApprovalMode::from_config_value(value).ok_or_else(|| {\n                anyhow::anyhow!(\n                    \"unsupported permission posture {value:?}; expected ask, auto-review, or full-access\"\n                )\n            })?,\n            None if parsed_mode == AppMode::Yolo || auto_approve.unwrap_or(false) => {\n                ApprovalMode::Bypass\n            }\n            None => ApprovalMode::Suggest,\n        };\n        if permission == ApprovalMode::Never {\n            bail!(\"permission posture 'never' is not part of the Runtime product contract\");\n        }\n        Ok(Self {\n            mode: visible_mode(parsed_mode),\n            permission,\n        })\n    }\n\n    #[must_use]","sourceCodeStart":39,"sourceCodeEnd":75,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/0c42157ee52f9d55af2b506d71b46249910f77d3/crates/tui/src/runtime_policy.rs#L39-L75","documentation":"RuntimePolicy::from_request rejected the permission posture string: it matches none of ask, auto-review, or full-access after mode parsing succeeded.","triggerScenarios":"Thrown at crates/tui/src/runtime_policy.rs:57 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use ask, auto-review, or full-access","Fix the posture string sent by the requesting client"],"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-14T05:17:10.506Z"}