From d63de15ae6edc8ea614cf9320778abe387cb4ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=A5=9A=E9=97=A8?= Date: Thu, 28 May 2026 20:14:54 +0800 Subject: [PATCH 1/2] feat(macos): dynamically detect install root and fix flaky model catalog test --- crates/codex-plus-core/src/install/mod.rs | 13 ++++++++++++- crates/codex-plus-core/tests/model_catalog.rs | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/crates/codex-plus-core/src/install/mod.rs b/crates/codex-plus-core/src/install/mod.rs index 2a201a19..6b950c13 100644 --- a/crates/codex-plus-core/src/install/mod.rs +++ b/crates/codex-plus-core/src/install/mod.rs @@ -129,7 +129,18 @@ pub fn default_install_root() -> Option { #[cfg(target_os = "macos")] { - return Some(PathBuf::from("/Applications")); + let sys_apps = PathBuf::from("/Applications"); + if sys_apps.join(format!("{SILENT_NAME}.app")).exists() + || sys_apps.join(format!("{MANAGER_NAME}.app")).exists() + { + return Some(sys_apps); + } + if let Ok(exe) = std::env::current_exe() { + if let Some(dir) = macos_applications_dir_from_exe(&exe) { + return Some(dir); + } + } + return Some(sys_apps); } #[cfg(not(any(windows, target_os = "macos")))] diff --git a/crates/codex-plus-core/tests/model_catalog.rs b/crates/codex-plus-core/tests/model_catalog.rs index 060ff364..d9d7c5f9 100644 --- a/crates/codex-plus-core/tests/model_catalog.rs +++ b/crates/codex-plus-core/tests/model_catalog.rs @@ -89,6 +89,8 @@ async fn model_catalog_uses_active_relay_profile_model_list_for_display() { base_url: "https://example.test/v1".to_string(), protocol: RelayProtocol::Responses, model_list: "deepseek-coder\nqwen3-coder\nclaude-compatible".to_string(), + config_contents: "model = \"qwen3-coder\"\n".to_string(), + relay_mode: codex_plus_core::settings::RelayMode::MixedApi, ..RelayProfile::default() }], ..BackendSettings::default() From 9cd70dc99fd9cf8ba96934540adbc7cf639c8e08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=A5=9A=E9=97=A8?= Date: Thu, 28 May 2026 20:23:50 +0800 Subject: [PATCH 2/2] fix(macos): remove Applications link from DMG package stage --- scripts/installer/macos/package-dmg.sh | 1 - 1 file changed, 1 deletion(-) mode change 100644 => 100755 scripts/installer/macos/package-dmg.sh diff --git a/scripts/installer/macos/package-dmg.sh b/scripts/installer/macos/package-dmg.sh old mode 100644 new mode 100755 index 8752e204..a90ad6f7 --- a/scripts/installer/macos/package-dmg.sh +++ b/scripts/installer/macos/package-dmg.sh @@ -84,7 +84,6 @@ sign_app() { prepare_icon create_app "Codex++" "CodexPlusPlus" "$BINARY_DIR/codex-plus-plus" "com.bigpizzav3.codexplusplus" "true" create_app "Codex++ 管理工具" "CodexPlusPlusManager" "$BINARY_DIR/codex-plus-plus-manager" "com.bigpizzav3.codexplusplus.manager" "false" -ln -s /Applications "$STAGE/Applications" sign_app "$STAGE/Codex++.app" sign_app "$STAGE/Codex++ 管理工具.app"