From efd4e414a2a20da47b37388af5a2a123f2f5891e Mon Sep 17 00:00:00 2001
From: wangnov <48670012+Wangnov@users.noreply.github.com>
Date: Fri, 19 Jun 2026 18:43:40 +0800
Subject: [PATCH] fix: harden update compatibility gates
---
crates/codex-mac-engine/Cargo.lock | 2 +
crates/codex-mac-engine/Cargo.toml | 1 +
crates/codex-mac-engine/src/codesign.rs | 107 +++++++++++++++-
crates/codex-win-engine/src/download.rs | 161 ++++++++++++++++++++----
src-tauri/Cargo.lock | 1 +
5 files changed, 242 insertions(+), 30 deletions(-)
diff --git a/crates/codex-mac-engine/Cargo.lock b/crates/codex-mac-engine/Cargo.lock
index 9ab2cf7..3f55b8c 100644
--- a/crates/codex-mac-engine/Cargo.lock
+++ b/crates/codex-mac-engine/Cargo.lock
@@ -53,6 +53,8 @@ version = "0.1.0"
dependencies = [
"base64",
"ed25519-dalek",
+ "libc",
+ "log",
"roxmltree",
"serde",
"thiserror",
diff --git a/crates/codex-mac-engine/Cargo.toml b/crates/codex-mac-engine/Cargo.toml
index 55b1835..80d1acf 100644
--- a/crates/codex-mac-engine/Cargo.toml
+++ b/crates/codex-mac-engine/Cargo.toml
@@ -13,6 +13,7 @@ ed25519-dalek = "2"
base64 = "0.22"
log = "0.4"
uuid = { version = "1", features = ["v4"] }
+libc = "0.2"
[[bin]]
name = "mac_plan"
diff --git a/crates/codex-mac-engine/src/codesign.rs b/crates/codex-mac-engine/src/codesign.rs
index 9ed8933..7e0f8d8 100644
--- a/crates/codex-mac-engine/src/codesign.rs
+++ b/crates/codex-mac-engine/src/codesign.rs
@@ -11,11 +11,74 @@ use crate::EngineError;
const CODESIGN: &str = "/usr/bin/codesign";
const SPCTL: &str = "/usr/sbin/spctl";
+const MIN_GATEKEEPER_NOFILE_LIMIT: u64 = 32_768;
/// OpenAI's Apple Developer Team ID — verified on a real notarized Codex.app
/// (`Developer ID Application: OpenAI OpCo, LLC (2DC432GLL2)`).
pub const OPENAI_TEAM_ID: &str = "2DC432GLL2";
+#[cfg(unix)]
+fn try_raise_nofile_limit(min_soft_limit: u64) -> Result