diff --git a/codex-rs/core/src/tools/runtimes/shell/unix_escalation_tests.rs b/codex-rs/core/src/tools/runtimes/shell/unix_escalation_tests.rs index b59ef033d7..0a31fbdaf2 100644 --- a/codex-rs/core/src/tools/runtimes/shell/unix_escalation_tests.rs +++ b/codex-rs/core/src/tools/runtimes/shell/unix_escalation_tests.rs @@ -447,10 +447,7 @@ async fn execve_permission_request_hook_short_circuits_prompt() -> anyhow::Resul hook_inputs[0]["tool_input"]["command"], expected_hook_command ); - assert_eq!( - hook_inputs[0]["approval_context"]["attempt"]["stage"], - "initial" - ); + assert!(hook_inputs[0]["approval_context"]["attempt"].is_null()); Ok(()) } diff --git a/codex-rs/core/tests/suite/hooks.rs b/codex-rs/core/tests/suite/hooks.rs index 08c6c79167..9d1334a85f 100644 --- a/codex-rs/core/tests/suite/hooks.rs +++ b/codex-rs/core/tests/suite/hooks.rs @@ -1174,10 +1174,6 @@ async fn permission_request_hook_allows_shell_command_without_user_approval() -> assert_eq!( hook_inputs[0]["approval_context"], serde_json::json!({ - "attempt": { - "stage": "initial", - "retryReason": null, - }, "policy": { "sandboxPermissions": "use_default", "additionalPermissions": null, @@ -1281,10 +1277,6 @@ async fn permission_request_hook_sees_raw_exec_command_input() -> Result<()> { assert_eq!( hook_inputs[0]["approval_context"], serde_json::json!({ - "attempt": { - "stage": "initial", - "retryReason": null, - }, "policy": { "sandboxPermissions": "use_default", "additionalPermissions": null, @@ -1453,10 +1445,6 @@ allow_local_binding = true assert_eq!( hook_inputs[0]["approval_context"], serde_json::json!({ - "attempt": { - "stage": "initial", - "retryReason": null, - }, "policy": { "sandboxPermissions": "use_default", "additionalPermissions": null, @@ -1552,10 +1540,6 @@ async fn permission_request_hook_sees_retry_context_after_sandbox_denial() -> Re assert_eq!( hook_inputs[0]["approval_context"], serde_json::json!({ - "attempt": { - "stage": "retry", - "retryReason": "command failed; retry without sandbox?", - }, "policy": { "sandboxPermissions": "use_default", "additionalPermissions": null, diff --git a/codex-rs/hooks/schema/generated/permission-request.command.input.schema.json b/codex-rs/hooks/schema/generated/permission-request.command.input.schema.json index 9b47807a5f..5f52dd0b44 100644 --- a/codex-rs/hooks/schema/generated/permission-request.command.input.schema.json +++ b/codex-rs/hooks/schema/generated/permission-request.command.input.schema.json @@ -57,19 +57,9 @@ }, "type": "object" }, - "PermissionRequestApprovalAttempt": { - "enum": [ - "initial", - "retry" - ], - "type": "string" - }, "PermissionRequestApprovalContext": { "additionalProperties": false, "properties": { - "attempt": { - "$ref": "#/definitions/PermissionRequestAttemptContext" - }, "justification": { "type": "string" }, @@ -81,27 +71,11 @@ } }, "required": [ - "attempt", "policy", "resource" ], "type": "object" }, - "PermissionRequestAttemptContext": { - "additionalProperties": false, - "properties": { - "retryReason": { - "type": "string" - }, - "stage": { - "$ref": "#/definitions/PermissionRequestApprovalAttempt" - } - }, - "required": [ - "stage" - ], - "type": "object" - }, "PermissionRequestPolicyContext": { "additionalProperties": false, "properties": { diff --git a/codex-rs/hooks/src/events/permission_request.rs b/codex-rs/hooks/src/events/permission_request.rs index 5ef2fda2e2..0bf204ac4d 100644 --- a/codex-rs/hooks/src/events/permission_request.rs +++ b/codex-rs/hooks/src/events/permission_request.rs @@ -36,7 +36,6 @@ use crate::engine::command_runner::CommandRunResult; use crate::engine::dispatcher; use crate::engine::output_parser; use crate::schema::PermissionRequestApprovalContext; -use crate::schema::PermissionRequestAttemptContext; use crate::schema::PermissionRequestCommandInput; use crate::schema::PermissionRequestPolicyContext; use crate::schema::PermissionRequestResourceContext; @@ -216,10 +215,6 @@ fn build_command_input(request: &PermissionRequestRequest) -> PermissionRequestC command: request.command.clone(), }, approval_context: PermissionRequestApprovalContext { - attempt: PermissionRequestAttemptContext { - stage: request.approval_attempt, - retry_reason: request.retry_reason.clone(), - }, policy: PermissionRequestPolicyContext { sandbox_permissions: request.sandbox_permissions, additional_permissions: request.additional_permissions.clone(), diff --git a/codex-rs/hooks/src/schema.rs b/codex-rs/hooks/src/schema.rs index c3d663285f..4bc726564a 100644 --- a/codex-rs/hooks/src/schema.rs +++ b/codex-rs/hooks/src/schema.rs @@ -16,8 +16,6 @@ use codex_protocol::approvals::NetworkApprovalProtocol; use codex_protocol::models::PermissionProfile; use codex_protocol::models::SandboxPermissions; -use crate::events::permission_request::PermissionRequestApprovalAttempt; - const GENERATED_DIR: &str = "generated"; const POST_TOOL_USE_INPUT_FIXTURE: &str = "post-tool-use.command.input.schema.json"; const POST_TOOL_USE_OUTPUT_FIXTURE: &str = "post-tool-use.command.output.schema.json"; @@ -250,14 +248,6 @@ pub(crate) struct PermissionRequestToolInput { pub command: String, } -#[derive(Debug, Clone, Serialize, JsonSchema)] -#[serde(rename_all = "camelCase")] -#[serde(deny_unknown_fields)] -pub(crate) struct PermissionRequestAttemptContext { - pub stage: PermissionRequestApprovalAttempt, - pub retry_reason: Option, -} - #[derive(Debug, Clone, Serialize, JsonSchema)] #[serde(rename_all = "camelCase")] #[serde(deny_unknown_fields)] @@ -279,7 +269,6 @@ pub(crate) struct PermissionRequestResourceContext { #[derive(Debug, Clone, Serialize, JsonSchema)] #[serde(deny_unknown_fields)] pub(crate) struct PermissionRequestApprovalContext { - pub attempt: PermissionRequestAttemptContext, pub policy: PermissionRequestPolicyContext, pub justification: Option, pub resource: PermissionRequestResourceContext,