feat: POSIX unification and snapshot sessions (#3179)
## Session snapshot For POSIX shell, the goal is to take a snapshot of the interactive shell environment, store it in a session file located in `.codex/` and only source this file for every command that is run. As a result, if a snapshot files exist, `bash -lc <CALL>` get replaced by `bash -c <CALL>`. This also fixes the issue that `bash -lc` does not source `.bashrc`, resulting in missing env variables and aliases in the codex session. ## POSIX unification Unify `bash` and `zsh` shell into a POSIX shell. The rational is that the tool will not use any `zsh` specific capabilities. --------- Co-authored-by: Michael Bolin <mbolin@openai.com>
This commit is contained in:
@@ -17,6 +17,7 @@ use core_test_support::load_default_config_for_test;
|
||||
use core_test_support::load_sse_fixture_with_id;
|
||||
use core_test_support::wait_for_event;
|
||||
use tempfile::TempDir;
|
||||
use uuid::Uuid;
|
||||
use wiremock::Mock;
|
||||
use wiremock::MockServer;
|
||||
use wiremock::ResponseTemplate;
|
||||
@@ -269,7 +270,7 @@ async fn prefixes_context_and_instructions_once_and_consistently_across_requests
|
||||
let requests = server.received_requests().await.unwrap();
|
||||
assert_eq!(requests.len(), 2, "expected two POST requests");
|
||||
|
||||
let shell = default_user_shell().await;
|
||||
let shell = default_user_shell(Uuid::new_v4(), codex_home.path()).await;
|
||||
|
||||
let expected_env_text = format!(
|
||||
r#"<environment_context>
|
||||
|
||||
Reference in New Issue
Block a user