记录 DirectProject 请求解决事件

将 serverRequest/resolved 转换为 request.resolved 事件,及时解除订阅请求占用。
This commit is contained in:
2026-09-15 19:57:52 +08:00
committed by kdletters
parent 63d16ae8c7
commit 62d413c792
@@ -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.