From 1cb8e92e1748807c7e2286f55e979549bb947c0e Mon Sep 17 00:00:00 2001 From: Linghong Date: Mon, 31 Aug 2026 06:44:14 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E9=99=84=E4=BB=B6=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=98=A0=E5=B0=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 仅将 imported 和 failed 视为项目附件状态 未知状态继续使用首页附件元数据格式 补充未知状态回归测试 --- .../src/agent/direct_codex_attachments.rs | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_attachments.rs b/apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_attachments.rs index 3a4a7462b..f788b42f2 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_attachments.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_attachments.rs @@ -110,10 +110,7 @@ fn attachments_use_project_mapping(attachments: &[DirectCodexTurnAttachment]) -> .local_path .as_deref() .is_some_and(|value| !value.trim().is_empty()) - || attachment - .status - .as_deref() - .is_some_and(|value| !value.trim().is_empty()) + || sanitize_attachment_status(attachment.status.as_deref()).is_some() }) } @@ -421,4 +418,19 @@ mod tests { assert!(!prompt.contains("secret boom")); assert!(!prompt.contains("error")); } + + #[test] + fn unknown_status_keeps_home_attachment_metadata_shape() { + let attachment = project_attachment( + "pending.md", + "text/markdown", + 1, + None, + Some("pending"), + ); + let prompt = render_direct_codex_user_prompt("x", &[attachment]).expect("render"); + assert!(prompt.contains(HOME_ATTACHMENT_HEADER)); + assert!(!prompt.contains(PROJECT_ATTACHMENT_HEADER)); + assert!(!prompt.contains("状态:")); + } }