From 3ef76ff29d5eed258fb6b8550e0e2b973d0dca21 Mon Sep 17 00:00:00 2001 From: Owen Lin Date: Wed, 3 Dec 2025 10:47:35 -0800 Subject: [PATCH] chore: conversation_id -> thread_id in app-server feedback/upload (#7538) Use `thread_id: Option` instead of `conversation_id: Option` to be consistent with the rest of app-server v2 APIs. --- .../app-server-protocol/src/protocol/v2.rs | 3 +-- .../app-server/src/codex_message_processor.rs | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/codex-rs/app-server-protocol/src/protocol/v2.rs b/codex-rs/app-server-protocol/src/protocol/v2.rs index e1122e814..c67208072 100644 --- a/codex-rs/app-server-protocol/src/protocol/v2.rs +++ b/codex-rs/app-server-protocol/src/protocol/v2.rs @@ -2,7 +2,6 @@ use std::collections::HashMap; use std::path::PathBuf; use crate::protocol::common::AuthMode; -use codex_protocol::ConversationId; use codex_protocol::account::PlanType; use codex_protocol::approvals::SandboxCommandAssessment as CoreSandboxCommandAssessment; use codex_protocol::config_types::ReasoningEffort; @@ -664,7 +663,7 @@ pub struct ListMcpServersResponse { pub struct FeedbackUploadParams { pub classification: String, pub reason: Option, - pub conversation_id: Option, + pub thread_id: Option, pub include_logs: bool, } diff --git a/codex-rs/app-server/src/codex_message_processor.rs b/codex-rs/app-server/src/codex_message_processor.rs index 245486e48..6b85049d2 100644 --- a/codex-rs/app-server/src/codex_message_processor.rs +++ b/codex-rs/app-server/src/codex_message_processor.rs @@ -3021,10 +3021,26 @@ impl CodexMessageProcessor { let FeedbackUploadParams { classification, reason, - conversation_id, + thread_id, include_logs, } = params; + let conversation_id = match thread_id.as_deref() { + Some(thread_id) => match ConversationId::from_string(thread_id) { + Ok(conversation_id) => Some(conversation_id), + Err(err) => { + let error = JSONRPCErrorError { + code: INVALID_REQUEST_ERROR_CODE, + message: format!("invalid thread id: {err}"), + data: None, + }; + self.outgoing.send_error(request_id, error).await; + return; + } + }, + None => None, + }; + let snapshot = self.feedback.snapshot(conversation_id); let thread_id = snapshot.thread_id.clone();