diff --git a/apps/ai-game-creator-shell/src-tauri/src/agent/codex_app_server/mod.rs b/apps/ai-game-creator-shell/src-tauri/src/agent/codex_app_server/mod.rs index 0f5a1dedc..2acdf9e5c 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/agent/codex_app_server/mod.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/agent/codex_app_server/mod.rs @@ -934,6 +934,13 @@ fn direct_codex_request_event_type(method: &str) -> Option<&'static str> { } } +fn direct_codex_resolution_event_type(method: &str) -> Option<&'static str> { + match method { + "serverRequest/resolved" => Some("request.resolved"), + _ => None, + } +} + fn direct_codex_intermediate_text_for_notification( method: &str, params: &serde_json::Value, @@ -3545,6 +3552,7 @@ async fn read_game_creator_codex_app_server_stdout( | "rawResponseItem/completed" | "turn/completed" ) && direct_codex_request_event_type(method).is_none() + && direct_codex_resolution_event_type(method).is_none() && safe_activity.is_none() && intermediate_text.is_none() { @@ -3582,7 +3590,9 @@ async fn read_game_creator_codex_app_server_stdout( continue; } } - let event = if let Some(activity) = safe_activity { + let event = if let Some(event_type) = direct_codex_resolution_event_type(method) { + CodexTurnEvent::Request { event_type, params } + } else if let Some(activity) = safe_activity { // Preparing notifications may carry private plan/reasoning text; // expose only the safe activity category. Other categories may // retain their bounded, redacted intermediate text below.