From be07eb79c620ac44dbdbb649c80ac68b03d1c1bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Tue, 22 Sep 2026 15:47:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AA=E7=9F=A5=E4=BB=BB=E5=8A=A1=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E9=94=99=E8=AF=AF=E5=B8=A6=E4=B8=8A=20task=20id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - map_status 接收 task_id,Unknown 分支改用与其它映射失败一致的 OutputSchema - provider 异常可与具体任务对上,不再是一条无主错误 --- server-rs/crates/platform-tripo/src/common/mapping.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/server-rs/crates/platform-tripo/src/common/mapping.rs b/server-rs/crates/platform-tripo/src/common/mapping.rs index bfcb32449..9c05599ef 100644 --- a/server-rs/crates/platform-tripo/src/common/mapping.rs +++ b/server-rs/crates/platform-tripo/src/common/mapping.rs @@ -14,7 +14,7 @@ use crate::{ pub(crate) fn map_task(task: Task) -> Result { let task_id = task.task_id; let task_type = map_task_type(&task.task_type, &task_id)?; - let status = map_status(task.status)?; + let status = map_status(task.status, &task_id)?; let output = match status { Model3dTaskStatus::Completed => Some(map_output( &task_id, @@ -58,7 +58,7 @@ fn map_task_type(task_type: &str, task_id: &str) -> Result Result { +fn map_status(status: TaskStatus, task_id: &str) -> Result { match status { TaskStatus::Queued => Ok(Model3dTaskStatus::Queued), TaskStatus::Running => Ok(Model3dTaskStatus::Running), @@ -66,7 +66,9 @@ fn map_status(status: TaskStatus) -> Result { TaskStatus::Failed | TaskStatus::Banned => Ok(Model3dTaskStatus::Failed), TaskStatus::Cancelled => Ok(Model3dTaskStatus::Cancelled), TaskStatus::Expired => Ok(Model3dTaskStatus::Expired), - TaskStatus::Unknown => Err(TripoError::Sdk { + // 与其它映射失败一致带上 task id:provider 异常要能和具体任务对上。 + TaskStatus::Unknown => Err(TripoError::OutputSchema { + task_id: task_id.into(), message: "Tripo returned unknown task status".into(), }), }