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("状态:")); + } }