{"record":{"id":"ed90cd856b5f2c6b","repo":"Hmbown/CodeWhale","slug":"full-access-cannot-override-change-that-contro","errorCode":null,"errorMessage":"Full Access cannot override {}; change that controlling source first","messagePattern":"Full Access cannot override (.+?); change that controlling source first","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/tui/src/tui/ui/apply.rs","lineNumber":2272,"sourceCode":"    state: codewhale_config::SetupState,\n) -> Result<String> {\n    if let Some(source) = config.runtime_preset_blocker(\n        app.config_path.as_deref(),\n        app.config_profile.as_deref(),\n        &app.workspace,\n    ) {\n        anyhow::bail!(\n            \"Runtime presets cannot override {source}; change that controlling source first\"\n        );\n    }\n    if preset == crate::tui::setup::SetupRuntimePreset::HighTrustLocal {\n        let approval = config.approval_policy_control(\n            app.config_path.as_deref(),\n            app.config_profile.as_deref(),\n            &app.workspace,\n        );\n        if !approval.editable_root() {\n            anyhow::bail!(\n                \"Full Access cannot override {}; change that controlling source first\",\n                approval.label()\n            );\n        }\n    }\n\n    let settings_path = Settings::path().context(\"failed to resolve settings path\")?;\n    let settings_snapshot = RuntimePresetFileSnapshot::capture(settings_path)?;\n    // The preset's settings read, its config-document write, and its settings\n    // write are one durable transaction with file-snapshot rollback. Hold the\n    // settings transaction lock across all of it so a concurrent writer (a queued\n    // mode/thinking drain, the Shift+Tab posture write) can neither be lost by\n    // this save nor be reverted by the rollback.\n    // Every durable write happens inside this closure, so the settings lock is\n    // released before live state moves below.\n    crate::settings::with_settings_transaction(|settings_transaction| {\n        let mut settings = settings_transaction\n            .load()","sourceCodeStart":2254,"sourceCodeEnd":2290,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/0c42157ee52f9d55af2b506d71b46249910f77d3/crates/tui/src/tui/ui/apply.rs#L2254-L2290","documentation":"Raised in apply_setup_runtime_preset when selecting the Full Access (HighTrustLocal) preset while runtime_preset_blocker reports a controlling config source that would be overridden. Full Access raises the trust level, so an explicitly configured lower-trust controlling source must be changed first rather than being silently overridden.","triggerScenarios":"Thrown at crates/tui/src/tui/ui/apply.rs:2272 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Change or remove the controlling approval/trust source named in the error","Re-run the Full Access preset after the explicit setting is cleared","If the controlling source must stay, configure Full Access equivalents in that source directly"],"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"}