diff --git a/crates/forge_main/src/ui.rs b/crates/forge_main/src/ui.rs index df739908fe..7f0f251e22 100644 --- a/crates/forge_main/src/ui.rs +++ b/crates/forge_main/src/ui.rs @@ -531,8 +531,11 @@ impl A + Send + Sync> UI { } }, TopLevelCommand::Info { porcelain, conversation_id } => { - // Make sure to init model - self.on_new().await?; + // Only initialize state (agent/provider/model resolution). + // Avoid on_new() which also spawns fire-and-forget background + // tasks via hydrate_caches() that race with process exit and + // cause "JoinHandle polled after completion" panics. + self.init_state(false).await?; self.on_info(porcelain, conversation_id).await?; return Ok(());