diff --git a/codex-rs/tui/src/app/tests.rs b/codex-rs/tui/src/app/tests.rs index 82a1643290..9288374193 100644 --- a/codex-rs/tui/src/app/tests.rs +++ b/codex-rs/tui/src/app/tests.rs @@ -1217,15 +1217,17 @@ async fn token_usage_update_refreshes_status_line_with_runtime_context_window() #[tokio::test] async fn open_agent_picker_keeps_missing_threads_for_replay() -> Result<()> { - let mut app = make_test_app().await; - let mut app_server = crate::start_embedded_app_server_for_picker(app.chat_widget.config_ref()) - .await - .expect("embedded app server"); + let mut app = Box::pin(make_test_app()).await; + let mut app_server = Box::pin(crate::start_embedded_app_server_for_picker( + app.chat_widget.config_ref(), + )) + .await + .expect("embedded app server"); let thread_id = ThreadId::new(); app.thread_event_channels .insert(thread_id, ThreadEventChannel::new(/*capacity*/ 1)); - app.open_agent_picker(&mut app_server).await; + Box::pin(app.open_agent_picker(&mut app_server)).await; assert_eq!(app.thread_event_channels.contains_key(&thread_id), true); assert_eq!( @@ -1242,10 +1244,12 @@ async fn open_agent_picker_keeps_missing_threads_for_replay() -> Result<()> { #[tokio::test] async fn open_agent_picker_preserves_cached_metadata_for_replay_threads() -> Result<()> { - let mut app = make_test_app().await; - let mut app_server = crate::start_embedded_app_server_for_picker(app.chat_widget.config_ref()) - .await - .expect("embedded app server"); + let mut app = Box::pin(make_test_app()).await; + let mut app_server = Box::pin(crate::start_embedded_app_server_for_picker( + app.chat_widget.config_ref(), + )) + .await + .expect("embedded app server"); let thread_id = ThreadId::new(); app.thread_event_channels .insert(thread_id, ThreadEventChannel::new(/*capacity*/ 1)); @@ -1256,7 +1260,7 @@ async fn open_agent_picker_preserves_cached_metadata_for_replay_threads() -> Res /*is_closed*/ true, ); - app.open_agent_picker(&mut app_server).await; + Box::pin(app.open_agent_picker(&mut app_server)).await; assert_eq!(app.thread_event_channels.contains_key(&thread_id), true); assert_eq!( @@ -1272,10 +1276,12 @@ async fn open_agent_picker_preserves_cached_metadata_for_replay_threads() -> Res #[tokio::test] async fn open_agent_picker_prunes_terminal_metadata_only_threads() -> Result<()> { - let mut app = make_test_app().await; - let mut app_server = crate::start_embedded_app_server_for_picker(app.chat_widget.config_ref()) - .await - .expect("embedded app server"); + let mut app = Box::pin(make_test_app()).await; + let mut app_server = Box::pin(crate::start_embedded_app_server_for_picker( + app.chat_widget.config_ref(), + )) + .await + .expect("embedded app server"); let thread_id = ThreadId::new(); app.agent_navigation.upsert( thread_id, @@ -1284,7 +1290,7 @@ async fn open_agent_picker_prunes_terminal_metadata_only_threads() -> Result<()> /*is_closed*/ false, ); - app.open_agent_picker(&mut app_server).await; + Box::pin(app.open_agent_picker(&mut app_server)).await; assert_eq!(app.agent_navigation.get(&thread_id), None); assert!(app.agent_navigation.is_empty()); @@ -1293,10 +1299,12 @@ async fn open_agent_picker_prunes_terminal_metadata_only_threads() -> Result<()> #[tokio::test] async fn open_agent_picker_marks_terminal_read_errors_closed() -> Result<()> { - let mut app = make_test_app().await; - let mut app_server = crate::start_embedded_app_server_for_picker(app.chat_widget.config_ref()) - .await - .expect("embedded app server"); + let mut app = Box::pin(make_test_app()).await; + let mut app_server = Box::pin(crate::start_embedded_app_server_for_picker( + app.chat_widget.config_ref(), + )) + .await + .expect("embedded app server"); let thread_id = ThreadId::new(); app.thread_event_channels .insert(thread_id, ThreadEventChannel::new(/*capacity*/ 1)); @@ -1307,7 +1315,7 @@ async fn open_agent_picker_marks_terminal_read_errors_closed() -> Result<()> { /*is_closed*/ false, ); - app.open_agent_picker(&mut app_server).await; + Box::pin(app.open_agent_picker(&mut app_server)).await; assert_eq!( app.agent_navigation.get(&thread_id), @@ -1322,10 +1330,12 @@ async fn open_agent_picker_marks_terminal_read_errors_closed() -> Result<()> { #[tokio::test] async fn open_agent_picker_marks_loaded_threads_open() -> Result<()> { - let mut app = make_test_app().await; - let mut app_server = crate::start_embedded_app_server_for_picker(app.chat_widget.config_ref()) - .await - .expect("embedded app server"); + let mut app = Box::pin(make_test_app()).await; + let mut app_server = Box::pin(crate::start_embedded_app_server_for_picker( + app.chat_widget.config_ref(), + )) + .await + .expect("embedded app server"); let started = app_server .start_thread(app.chat_widget.config_ref()) .await?; @@ -1333,7 +1343,7 @@ async fn open_agent_picker_marks_loaded_threads_open() -> Result<()> { app.thread_event_channels .insert(thread_id, ThreadEventChannel::new(/*capacity*/ 1)); - app.open_agent_picker(&mut app_server).await; + Box::pin(app.open_agent_picker(&mut app_server)).await; assert_eq!( app.agent_navigation.get(&thread_id), @@ -1437,10 +1447,12 @@ async fn should_attach_live_thread_for_selection_skips_closed_metadata_only_thre #[tokio::test] async fn refresh_agent_picker_thread_liveness_prunes_closed_metadata_only_threads() -> Result<()> { - let mut app = make_test_app().await; - let mut app_server = crate::start_embedded_app_server_for_picker(app.chat_widget.config_ref()) - .await - .expect("embedded app server"); + let mut app = Box::pin(make_test_app()).await; + let mut app_server = Box::pin(crate::start_embedded_app_server_for_picker( + app.chat_widget.config_ref(), + )) + .await + .expect("embedded app server"); let thread_id = ThreadId::new(); app.agent_navigation.upsert( thread_id, @@ -1449,9 +1461,8 @@ async fn refresh_agent_picker_thread_liveness_prunes_closed_metadata_only_thread /*is_closed*/ false, ); - let is_available = app - .refresh_agent_picker_thread_liveness(&mut app_server, thread_id) - .await; + let is_available = + Box::pin(app.refresh_agent_picker_thread_liveness(&mut app_server, thread_id)).await; assert!(!is_available); assert_eq!(app.agent_navigation.get(&thread_id), None); @@ -1461,13 +1472,15 @@ async fn refresh_agent_picker_thread_liveness_prunes_closed_metadata_only_thread #[tokio::test] async fn open_agent_picker_prompts_to_enable_multi_agent_when_disabled() -> Result<()> { - let (mut app, mut app_event_rx, _op_rx) = make_test_app_with_channels().await; - let mut app_server = crate::start_embedded_app_server_for_picker(app.chat_widget.config_ref()) - .await - .expect("embedded app server"); + let (mut app, mut app_event_rx, _op_rx) = Box::pin(make_test_app_with_channels()).await; + let mut app_server = Box::pin(crate::start_embedded_app_server_for_picker( + app.chat_widget.config_ref(), + )) + .await + .expect("embedded app server"); let _ = app.config.features.disable(Feature::Collab); - app.open_agent_picker(&mut app_server).await; + Box::pin(app.open_agent_picker(&mut app_server)).await; app.chat_widget .handle_key_event(KeyEvent::new(KeyCode::Enter, KeyModifiers::NONE)); @@ -2126,15 +2139,17 @@ async fn update_feature_flags_disabling_guardian_in_profile_keeps_inherited_non_ #[tokio::test] async fn open_agent_picker_allows_existing_agent_threads_when_feature_is_disabled() -> Result<()> { - let (mut app, mut app_event_rx, _op_rx) = make_test_app_with_channels().await; - let mut app_server = crate::start_embedded_app_server_for_picker(app.chat_widget.config_ref()) - .await - .expect("embedded app server"); + let (mut app, mut app_event_rx, _op_rx) = Box::pin(make_test_app_with_channels()).await; + let mut app_server = Box::pin(crate::start_embedded_app_server_for_picker( + app.chat_widget.config_ref(), + )) + .await + .expect("embedded app server"); let thread_id = ThreadId::new(); app.thread_event_channels .insert(thread_id, ThreadEventChannel::new(/*capacity*/ 1)); - app.open_agent_picker(&mut app_server).await; + Box::pin(app.open_agent_picker(&mut app_server)).await; app.chat_widget .handle_key_event(KeyEvent::new(KeyCode::Enter, KeyModifiers::NONE));