diff --git a/codex-rs/app-server/src/codex_message_processor.rs b/codex-rs/app-server/src/codex_message_processor.rs index aaffa266f..f1e4b83d2 100644 --- a/codex-rs/app-server/src/codex_message_processor.rs +++ b/codex-rs/app-server/src/codex_message_processor.rs @@ -5152,10 +5152,13 @@ impl CodexMessageProcessor { &mut self, request_id: &ConnectionRequestId, parent_thread_id: ThreadId, + parent_thread: Arc, review_request: ReviewRequest, display_text: &str, ) -> std::result::Result<(), JSONRPCErrorError> { - let rollout_path = + let rollout_path = if let Some(path) = parent_thread.rollout_path() { + path + } else { find_thread_path_by_id_str(&self.config.codex_home, &parent_thread_id.to_string()) .await .map_err(|err| JSONRPCErrorError { @@ -5167,7 +5170,8 @@ impl CodexMessageProcessor { code: INVALID_REQUEST_ERROR_CODE, message: format!("no rollout found for thread id {parent_thread_id}"), data: None, - })?; + })? + }; let mut config = self.config.as_ref().clone(); if let Some(review_model) = &config.review_model { @@ -5290,6 +5294,7 @@ impl CodexMessageProcessor { .start_detached_review( &request_id, parent_thread_id, + parent_thread, review_request, display_text.as_str(), )