From ab4f20622cbbaba4ead18111cfd3cdf84519a331 Mon Sep 17 00:00:00 2001 From: starr-openai Date: Thu, 30 Apr 2026 19:09:22 -0700 Subject: [PATCH] Fix turn environment cwd update semantics Co-authored-by: Codex --- codex-rs/core/src/environment_selection.rs | 2 +- codex-rs/core/src/session/session.rs | 2 +- codex-rs/core/src/session/tests.rs | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/codex-rs/core/src/environment_selection.rs b/codex-rs/core/src/environment_selection.rs index 4a5bcdad1b..06f2dcba01 100644 --- a/codex-rs/core/src/environment_selection.rs +++ b/codex-rs/core/src/environment_selection.rs @@ -161,7 +161,7 @@ mod tests { &manager, &[TurnEnvironmentSelection { environment_id: "local".to_string(), - cwd: selected_cwd.clone(), + cwd: selected_cwd, }], ) .expect("environment selections should resolve"); diff --git a/codex-rs/core/src/session/session.rs b/codex-rs/core/src/session/session.rs index 8001670315..e4d3c886bb 100644 --- a/codex-rs/core/src/session/session.rs +++ b/codex-rs/core/src/session/session.rs @@ -207,7 +207,7 @@ impl SessionConfiguration { .unwrap_or_else(|| self.cwd.clone()); let cwd_changed = absolute_cwd.as_path() != self.cwd.as_path(); - next_configuration.cwd = absolute_cwd.clone(); + next_configuration.cwd = absolute_cwd; if let Some(permission_profile) = updates.permission_profile.clone() { let active_permission_profile = diff --git a/codex-rs/core/src/session/tests.rs b/codex-rs/core/src/session/tests.rs index c1c02886f6..2d4790d4a8 100644 --- a/codex-rs/core/src/session/tests.rs +++ b/codex-rs/core/src/session/tests.rs @@ -3280,7 +3280,7 @@ async fn session_configuration_apply_preserves_absolute_cwd_write_root_on_cwd_up } #[tokio::test] -async fn session_update_settings_keeps_runtime_cwds_absolute() { +async fn session_update_settings_does_not_rewrite_sticky_environment_cwds() { let (session, turn_context) = make_session_and_context().await; let updated_cwd = turn_context.cwd.join("project"); std::fs::create_dir_all(updated_cwd.as_path()).expect("create project dir"); @@ -3302,8 +3302,8 @@ async fn session_update_settings_keeps_runtime_cwds_absolute() { assert_eq!(session_cwd, updated_cwd); assert_eq!(config.cwd, turn_context.cwd); - assert_eq!(next_turn.cwd, updated_cwd); - assert_eq!(next_turn.config.cwd, updated_cwd); + assert_eq!(next_turn.cwd, turn_context.cwd); + assert_eq!(next_turn.config.cwd, turn_context.cwd); } #[tokio::test]