From 9bf61f70aaa1dc8fbdb5188c519e1c7bdfc1e3b8 Mon Sep 17 00:00:00 2001 From: Dylan Hurd Date: Wed, 11 Mar 2026 23:28:09 -0700 Subject: [PATCH] Fix rebase fallout for macOS permission schema Co-authored-by: Codex --- codex-rs/core/src/codex_tests.rs | 4 ++++ codex-rs/core/src/config/config_tests.rs | 15 ++++++++++++++- codex-rs/core/src/config/permissions.rs | 10 ++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/codex-rs/core/src/codex_tests.rs b/codex-rs/core/src/codex_tests.rs index 0f3d7c7209..9911eee23b 100644 --- a/codex-rs/core/src/codex_tests.rs +++ b/codex-rs/core/src/codex_tests.rs @@ -20,6 +20,7 @@ use codex_protocol::models::FileSystemPermissions; use codex_protocol::models::FunctionCallOutputBody; use codex_protocol::models::FunctionCallOutputPayload; use codex_protocol::models::MacOsAutomationPermission; +use codex_protocol::models::MacOsContactsPermission; use codex_protocol::models::MacOsPreferencesPermission; use codex_protocol::models::MacOsSeatbeltProfileExtensions; use codex_protocol::models::NetworkPermissions; @@ -2644,8 +2645,11 @@ async fn notify_request_permissions_response_persists_always_allow_permissions() macos_automation: MacOsAutomationPermission::BundleIds(vec![ "com.apple.Calendar".to_string(), ]), + macos_launch_services: false, macos_accessibility: true, macos_calendar: false, + macos_reminders: false, + macos_contacts: MacOsContactsPermission::None, }), }; diff --git a/codex-rs/core/src/config/config_tests.rs b/codex-rs/core/src/config/config_tests.rs index 1970965b21..fa2ba47fef 100644 --- a/codex-rs/core/src/config/config_tests.rs +++ b/codex-rs/core/src/config/config_tests.rs @@ -17,6 +17,7 @@ use assert_matches::assert_matches; use codex_config::CONFIG_TOML_FILE; use codex_protocol::models::FileSystemPermissions; use codex_protocol::models::MacOsAutomationPermission; +use codex_protocol::models::MacOsContactsPermission; use codex_protocol::models::MacOsPreferencesPermission; use codex_protocol::models::MacOsSeatbeltProfileExtensions; use codex_protocol::models::NetworkPermissions; @@ -24,8 +25,8 @@ use codex_protocol::models::PermissionProfile; use codex_protocol::permissions::FileSystemAccessMode; use codex_protocol::permissions::FileSystemPath; use codex_protocol::permissions::FileSystemSandboxEntry; -use codex_protocol::permissions::FileSystemSandboxPolicy; use codex_protocol::permissions::FileSystemSandboxKind; +use codex_protocol::permissions::FileSystemSandboxPolicy; use codex_protocol::permissions::FileSystemSpecialPath; use codex_protocol::permissions::NetworkSandboxPolicy; use serde::Deserialize; @@ -6121,8 +6122,11 @@ calendar = true automations: Some(MacOsAutomationPermission::BundleIds(vec![ "com.apple.Calendar".to_string(), ])), + launch_services: Some(false), accessibility: Some(true), calendar: Some(true), + reminders: Some(false), + contacts: Some(MacOsContactsPermission::None), }) ); } @@ -6158,8 +6162,11 @@ calendar = true macos_automation: MacOsAutomationPermission::BundleIds(vec![ "com.apple.Calendar".to_string(), ]), + macos_launch_services: false, macos_accessibility: true, macos_calendar: true, + macos_reminders: false, + macos_contacts: MacOsContactsPermission::None, }) ); Ok(()) @@ -6207,8 +6214,11 @@ exclude_slash_tmp = false macos_automation: MacOsAutomationPermission::BundleIds(vec![ "com.apple.Calendar".to_string(), ]), + macos_launch_services: false, macos_accessibility: true, macos_calendar: false, + macos_reminders: false, + macos_contacts: MacOsContactsPermission::None, }), }, ) @@ -6277,8 +6287,11 @@ exclude_slash_tmp = false automations: Some(MacOsAutomationPermission::BundleIds(vec![ "com.apple.Calendar".to_string(), ])), + launch_services: Some(false), accessibility: Some(true), calendar: Some(false), + reminders: Some(false), + contacts: Some(MacOsContactsPermission::None), }) ); diff --git a/codex-rs/core/src/config/permissions.rs b/codex-rs/core/src/config/permissions.rs index 83c3f79810..226e185549 100644 --- a/codex-rs/core/src/config/permissions.rs +++ b/codex-rs/core/src/config/permissions.rs @@ -9,6 +9,7 @@ use codex_network_proxy::NetworkMode; use codex_network_proxy::NetworkProxyConfig; use codex_protocol::models::FileSystemPermissions; use codex_protocol::models::MacOsAutomationPermission; +use codex_protocol::models::MacOsContactsPermission; use codex_protocol::models::MacOsPreferencesPermission; use codex_protocol::models::MacOsSeatbeltProfileExtensions; use codex_protocol::models::NetworkPermissions; @@ -87,8 +88,11 @@ pub struct NetworkToml { pub struct MacOsPermissionsToml { pub preferences: Option, pub automations: Option, + pub launch_services: Option, pub accessibility: Option, pub calendar: Option, + pub reminders: Option, + pub contacts: Option, } #[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, JsonSchema)] @@ -457,8 +461,11 @@ fn macos_permissions_toml_from_runtime( MacOsPermissionsToml { preferences: Some(permissions.macos_preferences.clone()), automations: Some(permissions.macos_automation.clone()), + launch_services: Some(permissions.macos_launch_services), accessibility: Some(permissions.macos_accessibility), calendar: Some(permissions.macos_calendar), + reminders: Some(permissions.macos_reminders), + contacts: Some(permissions.macos_contacts.clone()), } } @@ -468,8 +475,11 @@ fn macos_permissions_from_toml( MacOsSeatbeltProfileExtensions { macos_preferences: permissions.preferences.clone().unwrap_or_default(), macos_automation: permissions.automations.clone().unwrap_or_default(), + macos_launch_services: permissions.launch_services.unwrap_or(false), macos_accessibility: permissions.accessibility.unwrap_or(false), macos_calendar: permissions.calendar.unwrap_or(false), + macos_reminders: permissions.reminders.unwrap_or(false), + macos_contacts: permissions.contacts.clone().unwrap_or_default(), } }