From 9810de7d008e8cc4807ab3706c5e9371534cc0b5 Mon Sep 17 00:00:00 2001 From: Solomon Date: Thu, 18 Sep 2025 15:17:02 +0100 Subject: [PATCH] Codex: remove ask-for-approval flag (#771) --- crates/executors/src/executors/codex.rs | 19 +------------------ crates/server/src/bin/generate_types.rs | 1 - shared/schemas/codex.json | 14 -------------- shared/types.ts | 4 +--- 4 files changed, 2 insertions(+), 36 deletions(-) diff --git a/crates/executors/src/executors/codex.rs b/crates/executors/src/executors/codex.rs index fbd1f897..eb3d5fc0 100644 --- a/crates/executors/src/executors/codex.rs +++ b/crates/executors/src/executors/codex.rs @@ -43,17 +43,6 @@ pub enum SandboxMode { DangerFullAccess, } -/// Approval policy for Codex -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, TS, AsRefStr, JsonSchema)] -#[serde(rename_all = "kebab-case")] -#[strum(serialize_all = "kebab-case")] -pub enum ApprovalPolicy { - Untrusted, - OnFailure, - OnRequest, - Never, -} - /// Reasoning effort for the underlying model #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, TS, JsonSchema, AsRefStr)] #[serde(rename_all = "kebab-case")] @@ -82,8 +71,6 @@ pub struct Codex { #[serde(default, skip_serializing_if = "Option::is_none")] pub sandbox: Option, #[serde(default, skip_serializing_if = "Option::is_none")] - pub approval: Option, - #[serde(default, skip_serializing_if = "Option::is_none")] pub oss: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub model: Option, @@ -100,16 +87,12 @@ impl Codex { let mut builder = CommandBuilder::new("npx -y @openai/codex@latest exec") .params(["--json", "--skip-git-repo-check"]); - if let Some(approval) = &self.approval { - builder = builder.extend_params(["--ask-for-approval", approval.as_ref()]); - } - if let Some(sandbox) = &self.sandbox { if sandbox == &SandboxMode::Auto { builder = builder.extend_params(["--full-auto"]); } else { builder = builder.extend_params(["--sandbox", sandbox.as_ref()]); - if sandbox == &SandboxMode::DangerFullAccess && self.approval.is_none() { + if sandbox == &SandboxMode::DangerFullAccess { builder = builder.extend_params(["--dangerously-bypass-approvals-and-sandbox"]); } } diff --git a/crates/server/src/bin/generate_types.rs b/crates/server/src/bin/generate_types.rs index 73055007..19c24f6b 100644 --- a/crates/server/src/bin/generate_types.rs +++ b/crates/server/src/bin/generate_types.rs @@ -73,7 +73,6 @@ fn generate_types_content() -> String { executors::executors::amp::Amp::decl(), executors::executors::codex::Codex::decl(), executors::executors::codex::SandboxMode::decl(), - executors::executors::codex::ApprovalPolicy::decl(), executors::executors::codex::ReasoningEffort::decl(), executors::executors::codex::ReasoningSummary::decl(), executors::executors::cursor::Cursor::decl(), diff --git a/shared/schemas/codex.json b/shared/schemas/codex.json index bf29be59..e7f916b5 100644 --- a/shared/schemas/codex.json +++ b/shared/schemas/codex.json @@ -25,20 +25,6 @@ null ] }, - "approval": { - "description": "Approval policy for Codex", - "type": [ - "string", - "null" - ], - "enum": [ - "untrusted", - "on-failure", - "on-request", - "never", - null - ] - }, "oss": { "type": [ "boolean", diff --git a/shared/types.ts b/shared/types.ts index 7e674ade..e7ce7112 100644 --- a/shared/types.ts +++ b/shared/types.ts @@ -146,12 +146,10 @@ export type GeminiModel = "default" | "flash"; export type Amp = { append_prompt: AppendPrompt, dangerously_allow_all?: boolean | null, base_command_override?: string | null, additional_params?: Array | null, }; -export type Codex = { append_prompt: AppendPrompt, sandbox?: SandboxMode | null, approval?: ApprovalPolicy | null, oss?: boolean | null, model?: string | null, model_reasoning_effort?: ReasoningEffort | null, model_reasoning_summary?: ReasoningSummary | null, base_command_override?: string | null, additional_params?: Array | null, }; +export type Codex = { append_prompt: AppendPrompt, sandbox?: SandboxMode | null, oss?: boolean | null, model?: string | null, model_reasoning_effort?: ReasoningEffort | null, model_reasoning_summary?: ReasoningSummary | null, base_command_override?: string | null, additional_params?: Array | null, }; export type SandboxMode = "auto" | "read-only" | "workspace-write" | "danger-full-access"; -export type ApprovalPolicy = "untrusted" | "on-failure" | "on-request" | "never"; - export type ReasoningEffort = "low" | "medium" | "high"; export type ReasoningSummary = "auto" | "concise" | "detailed" | "none";