diff --git a/src-tauri/src/bin/codex_monitor_daemon.rs b/src-tauri/src/bin/codex_monitor_daemon.rs index 5bbfac73c..2c1fc9349 100644 --- a/src-tauri/src/bin/codex_monitor_daemon.rs +++ b/src-tauri/src/bin/codex_monitor_daemon.rs @@ -1030,7 +1030,6 @@ impl DaemonState { }; let codex_home = codex_home::resolve_workspace_codex_home(&entry, parent_path.as_deref()) - .or_else(codex_home::resolve_default_codex_home) .ok_or("Unable to resolve CODEX_HOME".to_string())?; let rules_path = rules::default_rules_path(&codex_home); rules::append_prefix_rule(&rules_path, &command)?; diff --git a/src-tauri/src/codex.rs b/src-tauri/src/codex.rs index e2a3b38ec..3aaf0d37c 100644 --- a/src-tauri/src/codex.rs +++ b/src-tauri/src/codex.rs @@ -14,7 +14,7 @@ use crate::backend::app_server::{ build_codex_command_with_bin, build_codex_path_env, check_codex_installation, spawn_workspace_session as spawn_workspace_session_inner, }; -use crate::codex_home::{resolve_default_codex_home, resolve_workspace_codex_home}; +use crate::codex_home::resolve_workspace_codex_home; use crate::event_sink::TauriEventSink; use crate::remote_backend; use crate::rules; @@ -584,7 +584,6 @@ pub(crate) async fn remember_approval_rule( }; let codex_home = resolve_workspace_codex_home(&entry, parent_path.as_deref()) - .or_else(resolve_default_codex_home) .ok_or("Unable to resolve CODEX_HOME".to_string())?; let rules_path = rules::default_rules_path(&codex_home); rules::append_prefix_rule(&rules_path, &command)?; diff --git a/src-tauri/src/codex_config.rs b/src-tauri/src/codex_config.rs index a9886cd1c..dcd56f2b0 100644 --- a/src-tauri/src/codex_config.rs +++ b/src-tauri/src/codex_config.rs @@ -1,4 +1,3 @@ -use std::env; use std::fs; use std::path::PathBuf; @@ -58,30 +57,7 @@ fn write_feature_flag(key: &str, enabled: bool) -> Result<(), String> { } pub(crate) fn config_toml_path() -> Option { - resolve_codex_home().map(|home| home.join("config.toml")) -} - -fn resolve_codex_home() -> Option { - if let Ok(value) = env::var("CODEX_HOME") { - if !value.trim().is_empty() { - return Some(PathBuf::from(value.trim())); - } - } - resolve_home_dir().map(|home| home.join(".codex")) -} - -fn resolve_home_dir() -> Option { - if let Ok(value) = env::var("HOME") { - if !value.trim().is_empty() { - return Some(PathBuf::from(value)); - } - } - if let Ok(value) = env::var("USERPROFILE") { - if !value.trim().is_empty() { - return Some(PathBuf::from(value)); - } - } - None + crate::codex_home::resolve_default_codex_home().map(|home| home.join("config.toml")) } fn find_feature_flag(contents: &str, key: &str) -> Option { diff --git a/src-tauri/src/codex_home.rs b/src-tauri/src/codex_home.rs index 289936bda..bf87fd365 100644 --- a/src-tauri/src/codex_home.rs +++ b/src-tauri/src/codex_home.rs @@ -19,7 +19,7 @@ pub(crate) fn resolve_workspace_codex_home( if legacy_home.is_dir() { return Some(legacy_home); } - None + resolve_default_codex_home() } pub(crate) fn resolve_default_codex_home() -> Option { diff --git a/src-tauri/src/local_usage.rs b/src-tauri/src/local_usage.rs index 37b6b4d6e..51aae0288 100644 --- a/src-tauri/src/local_usage.rs +++ b/src-tauri/src/local_usage.rs @@ -497,33 +497,7 @@ fn make_day_keys(days: u32) -> Vec { } fn resolve_codex_sessions_root() -> Option { - resolve_codex_home().map(|home| home.join("sessions")) -} - -fn resolve_codex_home() -> Option { - if let Ok(value) = std::env::var("CODEX_HOME") { - let trimmed = value.trim(); - if !trimmed.is_empty() { - return Some(PathBuf::from(trimmed)); - } - } - resolve_home_dir().map(|home| home.join(".codex")) -} - -fn resolve_home_dir() -> Option { - if let Ok(value) = std::env::var("HOME") { - let trimmed = value.trim(); - if !trimmed.is_empty() { - return Some(PathBuf::from(trimmed)); - } - } - if let Ok(value) = std::env::var("USERPROFILE") { - let trimmed = value.trim(); - if !trimmed.is_empty() { - return Some(PathBuf::from(trimmed)); - } - } - None + crate::codex_home::resolve_default_codex_home().map(|home| home.join("sessions")) } fn day_dir_for_key(root: &Path, day_key: &str) -> PathBuf { diff --git a/src-tauri/src/prompts.rs b/src-tauri/src/prompts.rs index 26e541f31..063975131 100644 --- a/src-tauri/src/prompts.rs +++ b/src-tauri/src/prompts.rs @@ -1,6 +1,5 @@ use serde::Serialize; use std::collections::HashMap; -use std::env; use std::fs; use std::path::{Path, PathBuf}; use tokio::task; @@ -21,35 +20,8 @@ pub(crate) struct CustomPromptEntry { pub(crate) scope: Option, } -fn resolve_home_dir() -> Option { - if let Ok(value) = env::var("HOME") { - if !value.trim().is_empty() { - return Some(PathBuf::from(value)); - } - } - if let Ok(value) = env::var("USERPROFILE") { - if !value.trim().is_empty() { - return Some(PathBuf::from(value)); - } - } - None -} - -fn resolve_codex_home() -> Option { - if let Ok(value) = env::var("CODEX_HOME") { - if !value.trim().is_empty() { - let path = PathBuf::from(value.trim()); - if path.exists() { - return path.canonicalize().ok().or(Some(path)); - } - return None; - } - } - resolve_home_dir().map(|home| home.join(".codex")) -} - fn default_prompts_dir() -> Option { - resolve_codex_home().map(|home| home.join("prompts")) + crate::codex_home::resolve_default_codex_home().map(|home| home.join("prompts")) } fn require_workspace_entry(