mirror of
https://github.com/openai/codex.git
synced 2026-09-06 15:29:32 +00:00
Merge branch 'pakrym/unrevert-skills-watcher-app-server-full-ci' of https://github.com/openai/codex into pakrym/windows-ci-repro-21652
This commit is contained in:
@@ -357,7 +357,7 @@ async fn thread_fork_can_exclude_turns_and_skip_restored_token_usage() -> Result
|
||||
assert!(thread.turns.is_empty());
|
||||
|
||||
let note = timeout(
|
||||
DEFAULT_READ_TIMEOUT,
|
||||
std::time::Duration::from_secs(2),
|
||||
mcp.read_stream_until_notification_message("thread/tokenUsage/updated"),
|
||||
)
|
||||
.await;
|
||||
|
||||
@@ -1986,23 +1986,7 @@ async fn turn_start_updates_sandbox_and_cwd_between_turns_v2() -> Result<()> {
|
||||
|
||||
#[tokio::test]
|
||||
async fn turn_start_resolves_sticky_thread_environments_and_turn_overrides() -> Result<()> {
|
||||
let tmp = TempDir::new()?;
|
||||
let codex_home = tmp.path().join("codex_home");
|
||||
std::fs::create_dir(&codex_home)?;
|
||||
let workspace = tmp.path().join("workspace");
|
||||
std::fs::create_dir(&workspace)?;
|
||||
|
||||
let server = create_mock_responses_server_repeating_assistant("done").await;
|
||||
create_config_toml(&codex_home, &server.uri(), "never", &BTreeMap::default())?;
|
||||
|
||||
let mut mcp = McpProcess::new_with_env(
|
||||
&codex_home,
|
||||
&[("CODEX_EXEC_SERVER_URL", Some("http://127.0.0.1:1"))],
|
||||
)
|
||||
.await?;
|
||||
timeout(DEFAULT_READ_TIMEOUT, mcp.initialize()).await??;
|
||||
|
||||
for case in [
|
||||
run_environment_selection_cases([
|
||||
EnvironmentSelectionCase {
|
||||
name: "sticky_unset_turn_unset",
|
||||
sticky: None,
|
||||
@@ -2018,6 +2002,13 @@ async fn turn_start_resolves_sticky_thread_environments_and_turn_overrides() ->
|
||||
sticky: Some(&["local"]),
|
||||
turn: None,
|
||||
},
|
||||
])
|
||||
.await
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn turn_start_resolves_multi_environment_thread_selection() -> Result<()> {
|
||||
run_environment_selection_cases([
|
||||
EnvironmentSelectionCase {
|
||||
name: "sticky_remote_turn_unset",
|
||||
sticky: Some(&["remote"]),
|
||||
@@ -2033,6 +2024,13 @@ async fn turn_start_resolves_sticky_thread_environments_and_turn_overrides() ->
|
||||
sticky: Some(&["local"]),
|
||||
turn: Some(&[]),
|
||||
},
|
||||
])
|
||||
.await
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn turn_start_resolves_turn_environment_overrides() -> Result<()> {
|
||||
run_environment_selection_cases([
|
||||
EnvironmentSelectionCase {
|
||||
name: "sticky_empty_turn_local",
|
||||
sticky: Some(&[]),
|
||||
@@ -2053,7 +2051,30 @@ async fn turn_start_resolves_sticky_thread_environments_and_turn_overrides() ->
|
||||
sticky: None,
|
||||
turn: Some(&["local", "remote"]),
|
||||
},
|
||||
] {
|
||||
])
|
||||
.await
|
||||
}
|
||||
|
||||
async fn run_environment_selection_cases(
|
||||
cases: impl IntoIterator<Item = EnvironmentSelectionCase>,
|
||||
) -> Result<()> {
|
||||
let tmp = TempDir::new()?;
|
||||
let codex_home = tmp.path().join("codex_home");
|
||||
std::fs::create_dir(&codex_home)?;
|
||||
let workspace = tmp.path().join("workspace");
|
||||
std::fs::create_dir(&workspace)?;
|
||||
|
||||
let server = create_mock_responses_server_repeating_assistant("done").await;
|
||||
create_config_toml(&codex_home, &server.uri(), "never", &BTreeMap::default())?;
|
||||
|
||||
let mut mcp = McpProcess::new_with_env(
|
||||
&codex_home,
|
||||
&[("CODEX_EXEC_SERVER_URL", Some("http://127.0.0.1:1"))],
|
||||
)
|
||||
.await?;
|
||||
timeout(DEFAULT_READ_TIMEOUT, mcp.initialize()).await??;
|
||||
|
||||
for case in cases {
|
||||
run_environment_selection_case(&mut mcp, &workspace, case).await?;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user