From 8338be3544bbef29aa016d6b8590c5341bd05d4b Mon Sep 17 00:00:00 2001 From: Elaine Wang Date: Tue, 12 May 2026 10:55:24 +0800 Subject: [PATCH] fix: respect CORTEX_HOME in feedback --- src/cortex-cli/src/feedback_cmd.rs | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/cortex-cli/src/feedback_cmd.rs b/src/cortex-cli/src/feedback_cmd.rs index 0b85d547d..cd242cf71 100644 --- a/src/cortex-cli/src/feedback_cmd.rs +++ b/src/cortex-cli/src/feedback_cmd.rs @@ -121,9 +121,13 @@ struct FeedbackEntry { /// Get the feedback directory. fn get_feedback_dir() -> PathBuf { - dirs::home_dir() - .map(|h| h.join(".cortex").join("feedback")) - .unwrap_or_else(|| PathBuf::from(".cortex/feedback")) + cortex_common::get_cortex_home() + .unwrap_or_else(|| { + dirs::home_dir() + .map(|h| h.join(".cortex")) + .unwrap_or_else(|| PathBuf::from(".cortex")) + }) + .join("feedback") } impl FeedbackCli { @@ -411,6 +415,21 @@ fn read_single_line() -> Result { mod tests { use super::*; + #[test] + fn test_get_feedback_dir_respects_cortex_home() { + let previous = std::env::var_os("CORTEX_HOME"); + let expected_home = std::env::temp_dir().join("cortex-feedback-test-home"); + + unsafe { std::env::set_var("CORTEX_HOME", &expected_home) }; + assert_eq!(get_feedback_dir(), expected_home.join("feedback")); + + if let Some(value) = previous { + unsafe { std::env::set_var("CORTEX_HOME", value) }; + } else { + unsafe { std::env::remove_var("CORTEX_HOME") }; + } + } + #[test] fn test_feedback_entry_serialization_with_session() { let entry = FeedbackEntry {