From 1c692694052f3ac45b8b3a85f3f4054a92bab674 Mon Sep 17 00:00:00 2001 From: eclipsehx <1240204622@qq.com> Date: Thu, 30 Apr 2026 12:45:42 +0800 Subject: [PATCH] fix(codex): skip environment_context injection when extracting session title (#2439) Co-authored-by: xiaohan1 --- .../src/session_manager/providers/codex.rs | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src-tauri/src/session_manager/providers/codex.rs b/src-tauri/src/session_manager/providers/codex.rs index 5cab9bf57..05775ebdc 100644 --- a/src-tauri/src/session_manager/providers/codex.rs +++ b/src-tauri/src/session_manager/providers/codex.rs @@ -173,7 +173,10 @@ fn parse_session(path: &Path) -> Option { { let text = payload.get("content").map(extract_text).unwrap_or_default(); let trimmed = text.trim(); - if !trimmed.is_empty() && !trimmed.starts_with("# AGENTS.md") { + if !trimmed.is_empty() + && !trimmed.starts_with("# AGENTS.md") + && !trimmed.starts_with("") + { first_user_message = Some(trimmed.to_string()); } } @@ -354,6 +357,25 @@ mod tests { assert!(parse_session(&path).is_none()); } + #[test] + fn parse_session_skips_environment_context_injection() { + let temp = tempdir().expect("tempdir"); + let path = temp.path().join("session.jsonl"); + std::fs::write( + &path, + concat!( + "{\"timestamp\":\"2026-03-06T21:50:12Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"test-id\",\"cwd\":\"/tmp/project\"}}\n", + "{\"timestamp\":\"2026-03-06T21:50:13Z\",\"type\":\"response_item\",\"payload\":{\"type\":\"message\",\"role\":\"user\",\"content\":\"\\n /tmp/project\\n\"}}\n", + "{\"timestamp\":\"2026-03-06T21:50:14Z\",\"type\":\"response_item\",\"payload\":{\"type\":\"message\",\"role\":\"user\",\"content\":\"Fix the login bug\"}}\n" + ), + ) + .expect("write"); + + let meta = parse_session(&path).unwrap(); + // Should skip environment_context injection and use the real user message + assert_eq!(meta.title.as_deref(), Some("Fix the login bug")); + } + #[test] fn parse_session_falls_back_to_dir_basename() { let temp = tempdir().expect("tempdir");