diff --git a/codex-rs/app-server/tests/common/mcp_process.rs b/codex-rs/app-server/tests/common/mcp_process.rs index eac38e145..2677c53d8 100644 --- a/codex-rs/app-server/tests/common/mcp_process.rs +++ b/codex-rs/app-server/tests/common/mcp_process.rs @@ -105,6 +105,10 @@ impl McpProcess { cmd.stderr(Stdio::piped()); cmd.env("CODEX_HOME", codex_home); cmd.env("RUST_LOG", "debug"); + // Bazel/Linux workers can run with smaller default thread stacks, which makes + // tokio-runtime-worker stack overflows more likely in app-server integration tests. + // Pin a larger minimum stack for the spawned test server process. + cmd.env("RUST_MIN_STACK", "4194304"); cmd.env_remove(CODEX_INTERNAL_ORIGINATOR_OVERRIDE_ENV_VAR); for (k, v) in env_overrides { diff --git a/codex-rs/app-server/tests/suite/v2/thread_resume.rs b/codex-rs/app-server/tests/suite/v2/thread_resume.rs index 4ec348564..576f03156 100644 --- a/codex-rs/app-server/tests/suite/v2/thread_resume.rs +++ b/codex-rs/app-server/tests/suite/v2/thread_resume.rs @@ -507,14 +507,19 @@ async fn thread_resume_rejects_mismatched_path_when_thread_is_running() -> Resul #[tokio::test] async fn thread_resume_rejoins_running_thread_even_with_override_mismatch() -> Result<()> { let server = responses::start_mock_server().await; - let first_body = responses::sse(vec![ + let first_response = responses::sse_response(responses::sse(vec![ responses::ev_response_created("resp-1"), responses::ev_assistant_message("msg-1", "Done"), responses::ev_completed("resp-1"), - ]); - let second_body = responses::sse(vec![responses::ev_response_created("resp-2")]); + ])); + let second_response = responses::sse_response(responses::sse(vec![ + responses::ev_response_created("resp-2"), + responses::ev_assistant_message("msg-2", "Done"), + responses::ev_completed("resp-2"), + ])) + .set_delay(std::time::Duration::from_millis(500)); let _response_mock = - responses::mount_sse_sequence(&server, vec![first_body, second_body]).await; + responses::mount_response_sequence(&server, vec![first_response, second_response]).await; let codex_home = TempDir::new()?; create_config_toml(codex_home.path(), &server.uri())?;