Delete unused ResponseItem::Message.end_turn (#19605)

This field is unused. Delete it.
This commit is contained in:
Andrey Mishchenko authored and GitHub committed 2026-04-26 17:18:09 -07:00
1 parent 0bda8161a2
commit 35bc6e3d01
51 files changed
+1 -217

No files matched your search

@@ -2292,12 +2292,6 @@
}, },
"type": "array" "type": "array"
}, },
"end_turn": {
"type": [
"boolean",
"null"
]
},
"id": { "id": {
"type": [ "type": [
"string", "string",
@@ -12739,12 +12739,6 @@
}, },
"type": "array" "type": "array"
}, },
"end_turn": {
"type": [
"boolean",
"null"
]
},
"id": { "id": {
"type": [ "type": [
"string", "string",
@@ -9413,12 +9413,6 @@
}, },
"type": "array" "type": "array"
}, },
"end_turn": {
"type": [
"boolean",
"null"
]
},
"id": { "id": {
"type": [ "type": [
"string", "string",
@@ -345,12 +345,6 @@
}, },
"type": "array" "type": "array"
}, },
"end_turn": {
"type": [
"boolean",
"null"
]
},
"id": { "id": {
"type": [ "type": [
"string", "string",
@@ -756,12 +756,6 @@
}, },
"type": "array" "type": "array"
}, },
"end_turn": {
"type": [
"boolean",
"null"
]
},
"id": { "id": {
"type": [ "type": [
"string", "string",
@@ -11,7 +11,7 @@ import type { ReasoningItemContent } from "./ReasoningItemContent";
import type { ReasoningItemReasoningSummary } from "./ReasoningItemReasoningSummary"; import type { ReasoningItemReasoningSummary } from "./ReasoningItemReasoningSummary";
import type { WebSearchAction } from "./WebSearchAction"; import type { WebSearchAction } from "./WebSearchAction";
export type ResponseItem = { "type": "message", role: string, content: Array<ContentItem>, end_turn?: boolean, phase?: MessagePhase, } | { "type": "reasoning", summary: Array<ReasoningItemReasoningSummary>, content?: Array<ReasoningItemContent>, encrypted_content: string | null, } | { "type": "local_shell_call", export type ResponseItem = { "type": "message", role: string, content: Array<ContentItem>, phase?: MessagePhase, } | { "type": "reasoning", summary: Array<ReasoningItemReasoningSummary>, content?: Array<ReasoningItemContent>, encrypted_content: string | null, } | { "type": "local_shell_call",
/** /**
* Set when using the Responses API. * Set when using the Responses API.
*/ */
@@ -3096,7 +3096,6 @@ mod tests {
content: vec![codex_protocol::models::ContentItem::InputText { content: vec![codex_protocol::models::ContentItem::InputText {
text: "plain text".into(), text: "plain text".into(),
}], }],
end_turn: None,
phase: None, phase: None,
}), }),
RolloutItem::EventMsg(EventMsg::TurnComplete(TurnCompleteEvent { RolloutItem::EventMsg(EventMsg::TurnComplete(TurnCompleteEvent {
@@ -134,7 +134,6 @@ async fn auto_compaction_remote_emits_started_and_completed_items() -> Result<()
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "REMOTE_COMPACT_SUMMARY".to_string(), text: "REMOTE_COMPACT_SUMMARY".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Compaction { ResponseItem::Compaction {
@@ -59,7 +59,6 @@ async fn thread_inject_items_adds_raw_response_items_to_thread_history() -> Resu
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: injected_text.to_string(), text: injected_text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
@@ -195,7 +194,6 @@ async fn thread_inject_items_adds_raw_response_items_after_a_turn() -> Result<()
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "Injected after first turn".to_string(), text: "Injected after first turn".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
let injected_value = serde_json::to_value(&injected_item)?; let injected_value = serde_json::to_value(&injected_item)?;
@@ -1660,7 +1660,6 @@ async fn thread_resume_rejects_history_when_thread_is_running() -> Result<()> {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "history override".to_string(), text: "history override".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}]), }]),
..Default::default() ..Default::default()
@@ -2616,7 +2615,6 @@ async fn thread_resume_supports_history_and_overrides() -> Result<()> {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: history_text.to_string(), text: history_text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}]; }];
-1
View File
@@ -423,7 +423,6 @@ async fn azure_default_store_attaches_ids_and_headers() -> Result<()> {
id: Some("msg_1".into()), id: Some("msg_1".into()),
role: "user".into(), role: "user".into(),
content: vec![ContentItem::InputText { text: "hi".into() }], content: vec![ContentItem::InputText { text: "hi".into() }],
end_turn: None,
phase: None, phase: None,
}], }],
tools: Vec::new(), tools: Vec::new(),
-3
View File
@@ -66,7 +66,6 @@ fn assistant_message(text: &str, phase: Option<MessagePhase>) -> ResponseItem {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase, phase,
} }
} }
@@ -519,7 +518,6 @@ async fn append_message_records_assistant_message() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: message.to_string(), text: message.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
) )
@@ -678,7 +676,6 @@ async fn spawn_agent_can_fork_parent_thread_history_with_sanitized_items() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "parent seed context".to_string(), text: "parent seed context".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
assistant_message("parent final answer", Some(MessagePhase::FinalAnswer)), assistant_message("parent final answer", Some(MessagePhase::FinalAnswer)),
-7
View File
@@ -65,7 +65,6 @@ async fn build_arc_monitor_request_includes_relevant_history_and_null_policies()
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "first request".to_string(), text: "first request".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}], }],
&turn_context, &turn_context,
@@ -94,7 +93,6 @@ async fn build_arc_monitor_request_includes_relevant_history_and_null_policies()
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "commentary".to_string(), text: "commentary".to_string(),
}], }],
end_turn: None,
phase: Some(MessagePhase::Commentary), phase: Some(MessagePhase::Commentary),
}], }],
&turn_context, &turn_context,
@@ -108,7 +106,6 @@ async fn build_arc_monitor_request_includes_relevant_history_and_null_policies()
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "final response".to_string(), text: "final response".to_string(),
}], }],
end_turn: None,
phase: Some(MessagePhase::FinalAnswer), phase: Some(MessagePhase::FinalAnswer),
}], }],
&turn_context, &turn_context,
@@ -122,7 +119,6 @@ async fn build_arc_monitor_request_includes_relevant_history_and_null_policies()
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "latest request".to_string(), text: "latest request".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}], }],
&turn_context, &turn_context,
@@ -277,7 +273,6 @@ async fn monitor_action_posts_expected_arc_request() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "please run the tool".to_string(), text: "please run the tool".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}], }],
&turn_context, &turn_context,
@@ -358,7 +353,6 @@ async fn monitor_action_uses_env_url_and_token_overrides() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "please run the tool".to_string(), text: "please run the tool".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}], }],
&turn_context, &turn_context,
@@ -428,7 +422,6 @@ async fn monitor_action_rejects_legacy_response_fields() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "please run the tool".to_string(), text: "please run the tool".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}], }],
&turn_context, &turn_context,
-1
View File
@@ -278,7 +278,6 @@ impl CodexThread {
id: None, id: None,
role: "user".to_string(), role: "user".to_string(),
content: vec![ContentItem::InputText { text: message }], content: vec![ContentItem::InputText { text: message }],
end_turn: None,
phase: None, phase: None,
}; };
let pending_item = match pending_message_input_item(&message) { let pending_item = match pending_message_input_item(&message) {
-2
View File
@@ -509,7 +509,6 @@ fn build_compacted_history_with_limit(
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: message.clone(), text: message.clone(),
}], }],
end_turn: None,
phase: None, phase: None,
}); });
} }
@@ -524,7 +523,6 @@ fn build_compacted_history_with_limit(
id: None, id: None,
role: "user".to_string(), role: "user".to_string(),
content: vec![ContentItem::InputText { text: summary_text }], content: vec![ContentItem::InputText { text: summary_text }],
end_turn: None,
phase: None, phase: None,
}); });
-35
View File
@@ -63,7 +63,6 @@ fn collect_user_messages_extracts_user_text_only() {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "ignored".to_string(), text: "ignored".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -72,7 +71,6 @@ fn collect_user_messages_extracts_user_text_only() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "first".to_string(), text: "first".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Other, ResponseItem::Other,
@@ -97,7 +95,6 @@ do things
</INSTRUCTIONS>"# </INSTRUCTIONS>"#
.to_string(), .to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -106,7 +103,6 @@ do things
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "<ENVIRONMENT_CONTEXT>cwd=/tmp</ENVIRONMENT_CONTEXT>".to_string(), text: "<ENVIRONMENT_CONTEXT>cwd=/tmp</ENVIRONMENT_CONTEXT>".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -115,7 +111,6 @@ do things
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "real user message".to_string(), text: "real user message".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
]; ];
@@ -223,7 +218,6 @@ async fn process_compacted_history_replaces_developer_messages() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "stale permissions".to_string(), text: "stale permissions".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -232,7 +226,6 @@ async fn process_compacted_history_replaces_developer_messages() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "summary".to_string(), text: "summary".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -241,7 +234,6 @@ async fn process_compacted_history_replaces_developer_messages() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "stale personality".to_string(), text: "stale personality".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
]; ];
@@ -256,7 +248,6 @@ async fn process_compacted_history_replaces_developer_messages() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "summary".to_string(), text: "summary".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}); });
assert_eq!(refreshed, expected); assert_eq!(refreshed, expected);
@@ -270,7 +261,6 @@ async fn process_compacted_history_reinjects_full_initial_context() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "summary".to_string(), text: "summary".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}]; }];
let (refreshed, mut expected) = process_compacted_history_with_test_session( let (refreshed, mut expected) = process_compacted_history_with_test_session(
@@ -284,7 +274,6 @@ async fn process_compacted_history_reinjects_full_initial_context() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "summary".to_string(), text: "summary".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}); });
assert_eq!(refreshed, expected); assert_eq!(refreshed, expected);
@@ -304,7 +293,6 @@ keep me updated
</INSTRUCTIONS>"# </INSTRUCTIONS>"#
.to_string(), .to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -317,7 +305,6 @@ keep me updated
</environment_context>"# </environment_context>"#
.to_string(), .to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -330,7 +317,6 @@ keep me updated
</turn_aborted>"# </turn_aborted>"#
.to_string(), .to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -339,7 +325,6 @@ keep me updated
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "summary".to_string(), text: "summary".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -348,7 +333,6 @@ keep me updated
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "stale developer instructions".to_string(), text: "stale developer instructions".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
]; ];
@@ -363,7 +347,6 @@ keep me updated
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "summary".to_string(), text: "summary".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}); });
assert_eq!(refreshed, expected); assert_eq!(refreshed, expected);
@@ -378,7 +361,6 @@ async fn process_compacted_history_inserts_context_before_last_real_user_message
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "older user".to_string(), text: "older user".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -387,7 +369,6 @@ async fn process_compacted_history_inserts_context_before_last_real_user_message
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: format!("{SUMMARY_PREFIX}\nsummary text"), text: format!("{SUMMARY_PREFIX}\nsummary text"),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -396,7 +377,6 @@ async fn process_compacted_history_inserts_context_before_last_real_user_message
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "latest user".to_string(), text: "latest user".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
]; ];
@@ -413,7 +393,6 @@ async fn process_compacted_history_inserts_context_before_last_real_user_message
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "older user".to_string(), text: "older user".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -422,7 +401,6 @@ async fn process_compacted_history_inserts_context_before_last_real_user_message
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: format!("{SUMMARY_PREFIX}\nsummary text"), text: format!("{SUMMARY_PREFIX}\nsummary text"),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
]; ];
@@ -433,7 +411,6 @@ async fn process_compacted_history_inserts_context_before_last_real_user_message
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "latest user".to_string(), text: "latest user".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}); });
assert_eq!(refreshed, expected); assert_eq!(refreshed, expected);
@@ -447,7 +424,6 @@ async fn process_compacted_history_reinjects_model_switch_message() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "summary".to_string(), text: "summary".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}]; }];
let previous_turn_settings = PreviousTurnSettings { let previous_turn_settings = PreviousTurnSettings {
@@ -477,7 +453,6 @@ async fn process_compacted_history_reinjects_model_switch_message() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "summary".to_string(), text: "summary".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}); });
assert_eq!(refreshed, expected); assert_eq!(refreshed, expected);
@@ -492,7 +467,6 @@ fn insert_initial_context_before_last_real_user_or_summary_keeps_summary_last()
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "older user".to_string(), text: "older user".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -501,7 +475,6 @@ fn insert_initial_context_before_last_real_user_or_summary_keeps_summary_last()
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "latest user".to_string(), text: "latest user".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -510,7 +483,6 @@ fn insert_initial_context_before_last_real_user_or_summary_keeps_summary_last()
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: format!("{SUMMARY_PREFIX}\nsummary text"), text: format!("{SUMMARY_PREFIX}\nsummary text"),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
]; ];
@@ -520,7 +492,6 @@ fn insert_initial_context_before_last_real_user_or_summary_keeps_summary_last()
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "fresh permissions".to_string(), text: "fresh permissions".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}]; }];
@@ -533,7 +504,6 @@ fn insert_initial_context_before_last_real_user_or_summary_keeps_summary_last()
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "older user".to_string(), text: "older user".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -542,7 +512,6 @@ fn insert_initial_context_before_last_real_user_or_summary_keeps_summary_last()
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "fresh permissions".to_string(), text: "fresh permissions".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -551,7 +520,6 @@ fn insert_initial_context_before_last_real_user_or_summary_keeps_summary_last()
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "latest user".to_string(), text: "latest user".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -560,7 +528,6 @@ fn insert_initial_context_before_last_real_user_or_summary_keeps_summary_last()
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: format!("{SUMMARY_PREFIX}\nsummary text"), text: format!("{SUMMARY_PREFIX}\nsummary text"),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
]; ];
@@ -578,7 +545,6 @@ fn insert_initial_context_before_last_real_user_or_summary_keeps_compaction_last
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "fresh permissions".to_string(), text: "fresh permissions".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}]; }];
@@ -591,7 +557,6 @@ fn insert_initial_context_before_last_real_user_or_summary_keeps_compaction_last
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "fresh permissions".to_string(), text: "fresh permissions".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Compaction { ResponseItem::Compaction {
-1
View File
@@ -81,7 +81,6 @@ pub trait ContextualUserFragment {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: self.render(), text: self.render(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -41,7 +41,6 @@ fn assistant_msg(text: &str) -> ResponseItem {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -60,7 +59,6 @@ fn inter_agent_assistant_msg(text: &str) -> ResponseItem {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: serde_json::to_string(&communication).unwrap(), text: serde_json::to_string(&communication).unwrap(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -80,7 +78,6 @@ fn user_msg(text: &str) -> ResponseItem {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -92,7 +89,6 @@ fn user_input_text_msg(text: &str) -> ResponseItem {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -104,7 +100,6 @@ fn developer_msg(text: &str) -> ResponseItem {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -119,7 +114,6 @@ fn developer_msg_with_fragments(texts: &[&str]) -> ResponseItem {
text: (*text).to_string(), text: (*text).to_string(),
}) })
.collect(), .collect(),
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -200,7 +194,6 @@ fn filters_non_api_messages() {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "ignored".to_string(), text: "ignored".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
let reasoning = reasoning_msg("thinking..."); let reasoning = reasoning_msg("thinking...");
@@ -231,7 +224,6 @@ fn filters_non_api_messages() {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "hi".to_string() text: "hi".to_string()
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -240,7 +232,6 @@ fn filters_non_api_messages() {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "hello".to_string() text: "hello".to_string()
}], }],
end_turn: None,
phase: None, phase: None,
} }
] ]
@@ -390,7 +381,6 @@ fn for_prompt_strips_images_when_model_does_not_support_images() {
text: "caption".to_string(), text: "caption".to_string(),
}, },
], ],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::FunctionCall { ResponseItem::FunctionCall {
@@ -453,7 +443,6 @@ fn for_prompt_strips_images_when_model_does_not_support_images() {
text: "caption".to_string(), text: "caption".to_string(),
}, },
], ],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::FunctionCall { ResponseItem::FunctionCall {
@@ -512,7 +501,6 @@ fn for_prompt_strips_images_when_model_does_not_support_images() {
detail: Some(DEFAULT_IMAGE_DETAIL), detail: Some(DEFAULT_IMAGE_DETAIL),
}, },
], ],
end_turn: None,
phase: None, phase: None,
}]); }]);
let preserved = with_images.for_prompt(&modalities); let preserved = with_images.for_prompt(&modalities);
@@ -540,7 +528,6 @@ fn for_prompt_preserves_image_generation_calls_when_images_are_supported() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "hi".to_string(), text: "hi".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
]); ]);
@@ -560,7 +547,6 @@ fn for_prompt_preserves_image_generation_calls_when_images_are_supported() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "hi".to_string(), text: "hi".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
] ]
@@ -576,7 +562,6 @@ fn for_prompt_clears_image_generation_result_when_images_are_unsupported() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "generate a lobster".to_string(), text: "generate a lobster".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::ImageGenerationCall { ResponseItem::ImageGenerationCall {
@@ -596,7 +581,6 @@ fn for_prompt_clears_image_generation_result_when_images_are_unsupported() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "generate a lobster".to_string(), text: "generate a lobster".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::ImageGenerationCall { ResponseItem::ImageGenerationCall {
@@ -758,7 +742,6 @@ fn replace_last_turn_images_does_not_touch_user_images() {
image_url: "data:image/png;base64,AAA".to_string(), image_url: "data:image/png;base64,AAA".to_string(),
detail: Some(DEFAULT_IMAGE_DETAIL), detail: Some(DEFAULT_IMAGE_DETAIL),
}], }],
end_turn: None,
phase: None, phase: None,
}]; }];
let mut history = create_history_with_items(items.clone()); let mut history = create_history_with_items(items.clone());
@@ -1690,7 +1673,6 @@ fn image_data_url_payload_does_not_dominate_message_estimate() {
detail: Some(DEFAULT_IMAGE_DETAIL), detail: Some(DEFAULT_IMAGE_DETAIL),
}, },
], ],
end_turn: None,
phase: None, phase: None,
}; };
let text_only_item = ResponseItem::Message { let text_only_item = ResponseItem::Message {
@@ -1699,7 +1681,6 @@ fn image_data_url_payload_does_not_dominate_message_estimate() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "Here is the screenshot".to_string(), text: "Here is the screenshot".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
@@ -1773,7 +1754,6 @@ fn non_base64_image_urls_are_unchanged() {
image_url: "https://example.com/foo.png".to_string(), image_url: "https://example.com/foo.png".to_string(),
detail: Some(DEFAULT_IMAGE_DETAIL), detail: Some(DEFAULT_IMAGE_DETAIL),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
let function_output_item = ResponseItem::FunctionCallOutput { let function_output_item = ResponseItem::FunctionCallOutput {
@@ -1805,7 +1785,6 @@ fn data_url_without_base64_marker_is_unchanged() {
image_url: "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'/>".to_string(), image_url: "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'/>".to_string(),
detail: Some(DEFAULT_IMAGE_DETAIL), detail: Some(DEFAULT_IMAGE_DETAIL),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
@@ -1846,7 +1825,6 @@ fn mixed_case_data_url_markers_are_adjusted() {
image_url, image_url,
detail: Some(DEFAULT_IMAGE_DETAIL), detail: Some(DEFAULT_IMAGE_DETAIL),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
@@ -1879,7 +1857,6 @@ fn multiple_inline_images_apply_multiple_fixed_costs() {
detail: Some(DEFAULT_IMAGE_DETAIL), detail: Some(DEFAULT_IMAGE_DETAIL),
}, },
], ],
end_turn: None,
phase: None, phase: None,
}; };
@@ -1962,7 +1939,6 @@ fn text_only_items_unchanged() {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "Hello world, this is a response.".to_string(), text: "Hello world, this is a response.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
@@ -197,7 +197,6 @@ fn build_text_message(role: &str, text_sections: Vec<String>) -> Option<Response
id: None, id: None,
role: role.to_string(), role: role.to_string(),
content, content,
end_turn: None,
phase: None, phase: None,
}) })
} }
-12
View File
@@ -34,7 +34,6 @@ fn parses_user_message_with_text_and_two_images() {
detail: Some(DEFAULT_IMAGE_DETAIL), detail: Some(DEFAULT_IMAGE_DETAIL),
}, },
], ],
end_turn: None,
phase: None, phase: None,
}; };
@@ -78,7 +77,6 @@ fn skips_local_image_label_text() {
text: user_text.clone(), text: user_text.clone(),
}, },
], ],
end_turn: None,
phase: None, phase: None,
}; };
@@ -108,7 +106,6 @@ fn parses_assistant_message_input_text_for_backward_compatibility() {
text: "author: /root\nrecipient: /root/worker\nother_recipients: []\nContent: continue" text: "author: /root\nrecipient: /root/worker\nother_recipients: []\nContent: continue"
.to_string(), .to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
@@ -158,7 +155,6 @@ fn skips_unnamed_image_label_text() {
text: user_text.clone(), text: user_text.clone(),
}, },
], ],
end_turn: None,
phase: None, phase: None,
}; };
@@ -188,7 +184,6 @@ fn skips_user_instructions_and_env() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "# AGENTS.md instructions for test_directory\n\n<INSTRUCTIONS>\ntest_text\n</INSTRUCTIONS>".to_string(), text: "# AGENTS.md instructions for test_directory\n\n<INSTRUCTIONS>\ntest_text\n</INSTRUCTIONS>".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -197,7 +192,6 @@ fn skips_user_instructions_and_env() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "<environment_context>test_text</environment_context>".to_string(), text: "<environment_context>test_text</environment_context>".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -206,7 +200,6 @@ fn skips_user_instructions_and_env() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "# AGENTS.md instructions for test_directory\n\n<INSTRUCTIONS>\ntest_text\n</INSTRUCTIONS>".to_string(), text: "# AGENTS.md instructions for test_directory\n\n<INSTRUCTIONS>\ntest_text\n</INSTRUCTIONS>".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -216,7 +209,6 @@ fn skips_user_instructions_and_env() {
text: "<skill>\n<name>demo</name>\n<path>skills/demo/SKILL.md</path>\nbody\n</skill>" text: "<skill>\n<name>demo</name>\n<path>skills/demo/SKILL.md</path>\nbody\n</skill>"
.to_string(), .to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -225,7 +217,6 @@ fn skips_user_instructions_and_env() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "<user_shell_command>echo 42</user_shell_command>".to_string(), text: "<user_shell_command>echo 42</user_shell_command>".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -241,7 +232,6 @@ fn skips_user_instructions_and_env() {
.to_string(), .to_string(),
}, },
], ],
end_turn: None,
phase: None, phase: None,
}, },
]; ];
@@ -292,7 +282,6 @@ fn parses_hook_prompt_and_hides_other_contextual_fragments() {
.to_string(), .to_string(),
}, },
], ],
end_turn: None,
phase: None, phase: None,
}; };
@@ -321,7 +310,6 @@ fn parses_agent_message() {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "Hello from Codex".to_string(), text: "Hello from Codex".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
-20
View File
@@ -176,7 +176,6 @@ async fn seed_guardian_parent_history(session: &Arc<Session>, turn: &Arc<TurnCon
text: "Please check the repo visibility and push the docs fix if needed." text: "Please check the repo visibility and push the docs fix if needed."
.to_string(), .to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::FunctionCall { ResponseItem::FunctionCall {
@@ -199,7 +198,6 @@ async fn seed_guardian_parent_history(session: &Arc<Session>, turn: &Arc<TurnCon
text: "The repo is public; I now need approval to push the docs fix." text: "The repo is public; I now need approval to push the docs fix."
.to_string(), .to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
], ],
@@ -343,7 +341,6 @@ async fn build_guardian_prompt_delta_mode_preserves_original_numbering() -> anyh
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "Please also push the second docs fix.".to_string(), text: "Please also push the second docs fix.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -352,7 +349,6 @@ async fn build_guardian_prompt_delta_mode_preserves_original_numbering() -> anyh
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "I need approval for the second push.".to_string(), text: "I need approval for the second push.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
], ],
@@ -476,7 +472,6 @@ async fn build_guardian_prompt_stale_delta_version_falls_back_to_full_prompt() -
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "Compacted retained user request.".to_string(), text: "Compacted retained user request.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -485,7 +480,6 @@ async fn build_guardian_prompt_stale_delta_version_falls_back_to_full_prompt() -
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "Compacted summary of earlier guardian context.".to_string(), text: "Compacted summary of earlier guardian context.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
], ],
@@ -501,7 +495,6 @@ async fn build_guardian_prompt_stale_delta_version_falls_back_to_full_prompt() -
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "Please push after the compaction.".to_string(), text: "Please push after the compaction.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -510,7 +503,6 @@ async fn build_guardian_prompt_stale_delta_version_falls_back_to_full_prompt() -
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "I need approval for the post-compaction push.".to_string(), text: "I need approval for the post-compaction push.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
], ],
@@ -559,7 +551,6 @@ fn collect_guardian_transcript_entries_skips_contextual_user_messages() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "<environment_context>\n<cwd>/tmp</cwd>\n</environment_context>".to_string(), text: "<environment_context>\n<cwd>/tmp</cwd>\n</environment_context>".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -568,7 +559,6 @@ fn collect_guardian_transcript_entries_skips_contextual_user_messages() {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "hello".to_string(), text: "hello".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
]; ];
@@ -594,7 +584,6 @@ fn collect_guardian_transcript_entries_includes_recent_tool_calls_and_output() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "check the repo".to_string(), text: "check the repo".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::FunctionCall { ResponseItem::FunctionCall {
@@ -616,7 +605,6 @@ fn collect_guardian_transcript_entries_includes_recent_tool_calls_and_output() {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "I need to push a fix".to_string(), text: "I need to push a fix".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
]; ];
@@ -1357,7 +1345,6 @@ async fn guardian_reuses_prompt_cache_key_and_appends_prior_reviews() -> anyhow:
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "Please push the second docs fix too.".to_string(), text: "Please push the second docs fix too.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -1366,7 +1353,6 @@ async fn guardian_reuses_prompt_cache_key_and_appends_prior_reviews() -> anyhow:
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "I need approval for the second docs fix.".to_string(), text: "I need approval for the second docs fix.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
], ],
@@ -1403,7 +1389,6 @@ async fn guardian_reuses_prompt_cache_key_and_appends_prior_reviews() -> anyhow:
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "Please push the third docs fix too.".to_string(), text: "Please push the third docs fix too.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -1412,7 +1397,6 @@ async fn guardian_reuses_prompt_cache_key_and_appends_prior_reviews() -> anyhow:
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "I need approval for the third docs fix.".to_string(), text: "I need approval for the third docs fix.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
], ],
@@ -1790,7 +1774,6 @@ async fn guardian_parallel_reviews_fork_from_last_committed_trunk_history() -> a
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "Please inspect pending changes before pushing.".to_string(), text: "Please inspect pending changes before pushing.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -1799,7 +1782,6 @@ async fn guardian_parallel_reviews_fork_from_last_committed_trunk_history() -> a
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "I need approval to run git diff.".to_string(), text: "I need approval to run git diff.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
], ],
@@ -1859,7 +1841,6 @@ async fn guardian_parallel_reviews_fork_from_last_committed_trunk_history() -> a
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "Now inspect whether pushing is safe.".to_string(), text: "Now inspect whether pushing is safe.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -1868,7 +1849,6 @@ async fn guardian_parallel_reviews_fork_from_last_committed_trunk_history() -> a
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "I need approval to push after the diff check.".to_string(), text: "I need approval to push after the diff check.".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
], ],
-3
View File
@@ -332,7 +332,6 @@ mod job {
&rollout_contents, &rollout_contents,
)?, )?,
}], }],
end_turn: None,
phase: None, phase: None,
}], }],
tools: Vec::new(), tools: Vec::new(),
@@ -491,7 +490,6 @@ mod job {
id, id,
role, role,
content, content,
end_turn,
phase, phase,
} = item } = item
else { else {
@@ -519,7 +517,6 @@ mod job {
id: id.clone(), id: id.clone(),
role: role.clone(), role: role.clone(),
content, content,
end_turn: *end_turn,
phase: phase.clone(), phase: phase.clone(),
}) })
} }
@@ -24,7 +24,6 @@ fn serializes_memory_rollout_with_agents_removed_but_environment_kept() {
text: "<environment_context>\n<cwd>/tmp</cwd>\n</environment_context>".to_string(), text: "<environment_context>\n<cwd>/tmp</cwd>\n</environment_context>".to_string(),
}, },
], ],
end_turn: None,
phase: None, phase: None,
}; };
let skill_message = ResponseItem::Message { let skill_message = ResponseItem::Message {
@@ -34,7 +33,6 @@ fn serializes_memory_rollout_with_agents_removed_but_environment_kept() {
text: "<skill>\n<name>demo</name>\n<path>skills/demo/SKILL.md</path>\nbody\n</skill>" text: "<skill>\n<name>demo</name>\n<path>skills/demo/SKILL.md</path>\nbody\n</skill>"
.to_string(), .to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
let subagent_message = ResponseItem::Message { let subagent_message = ResponseItem::Message {
@@ -44,7 +42,6 @@ fn serializes_memory_rollout_with_agents_removed_but_environment_kept() {
text: "<subagent_notification>{\"agent_id\":\"a\",\"status\":\"completed\"}</subagent_notification>" text: "<subagent_notification>{\"agent_id\":\"a\",\"status\":\"completed\"}</subagent_notification>"
.to_string(), .to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
@@ -66,7 +63,6 @@ fn serializes_memory_rollout_with_agents_removed_but_environment_kept() {
text: "<environment_context>\n<cwd>/tmp</cwd>\n</environment_context>" text: "<environment_context>\n<cwd>/tmp</cwd>\n</environment_context>"
.to_string(), .to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
subagent_message, subagent_message,
@@ -70,7 +70,6 @@ fn message(role: &str, content: ContentItem) -> ResponseItem {
id: None, id: None,
role: role.to_string(), role: role.to_string(),
content: vec![content], content: vec![content],
end_turn: None,
phase: None, phase: None,
} }
} }
-1
View File
@@ -2364,7 +2364,6 @@ impl Session {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: format!("Warning: {}", message.into()), text: format!("Warning: {}", message.into()),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
@@ -19,7 +19,6 @@ fn user_message(text: &str) -> ResponseItem {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -31,7 +30,6 @@ fn assistant_message(text: &str) -> ResponseItem {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -50,7 +48,6 @@ fn inter_agent_assistant_message(text: &str) -> ResponseItem {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: serde_json::to_string(&communication).unwrap(), text: serde_json::to_string(&communication).unwrap(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
-13
View File
@@ -175,7 +175,6 @@ fn user_message(text: &str) -> ResponseItem {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -187,7 +186,6 @@ fn assistant_message(text: &str) -> ResponseItem {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -247,7 +245,6 @@ fn skill_message(text: &str) -> ResponseItem {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -1270,7 +1267,6 @@ async fn reconstruct_history_uses_replacement_history_verbatim() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "summary".to_string(), text: "summary".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
let replacement_history = vec![ let replacement_history = vec![
@@ -1281,7 +1277,6 @@ async fn reconstruct_history_uses_replacement_history_verbatim() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "stale developer instructions".to_string(), text: "stale developer instructions".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
]; ];
@@ -5731,7 +5726,6 @@ async fn record_context_updates_and_set_reference_context_item_reinjects_full_co
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: format!("{}\nsummary", crate::compact::SUMMARY_PREFIX), text: format!("{}\nsummary", crate::compact::SUMMARY_PREFIX),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
session session
@@ -6268,7 +6262,6 @@ async fn task_finish_emits_turn_item_lifecycle_for_leftover_pending_user_input()
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "late pending input".to_string(), text: "late pending input".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
assert!( assert!(
@@ -7463,7 +7456,6 @@ async fn sample_rollout(
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "first user".to_string(), text: "first user".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
live_history.record_items( live_history.record_items(
@@ -7478,7 +7470,6 @@ async fn sample_rollout(
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "assistant reply one".to_string(), text: "assistant reply one".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
live_history.record_items( live_history.record_items(
@@ -7505,7 +7496,6 @@ async fn sample_rollout(
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "second user".to_string(), text: "second user".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
live_history.record_items( live_history.record_items(
@@ -7520,7 +7510,6 @@ async fn sample_rollout(
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "assistant reply two".to_string(), text: "assistant reply two".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
live_history.record_items( live_history.record_items(
@@ -7547,7 +7536,6 @@ async fn sample_rollout(
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "third user".to_string(), text: "third user".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
live_history.record_items( live_history.record_items(
@@ -7562,7 +7550,6 @@ async fn sample_rollout(
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "assistant reply three".to_string(), text: "assistant reply three".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
live_history.record_items( live_history.record_items(
@@ -552,7 +552,6 @@ async fn process_compacted_history_preserves_separate_guardian_developer_message
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "stale developer message".to_string(), text: "stale developer message".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Message { ResponseItem::Message {
@@ -561,7 +560,6 @@ async fn process_compacted_history_preserves_separate_guardian_developer_message
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "summary".to_string(), text: "summary".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
], ],
@@ -28,7 +28,6 @@ fn assistant_output_text_with_phase(text: &str, phase: Option<MessagePhase>) ->
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: Some(true),
phase, phase,
} }
} }
-1
View File
@@ -104,7 +104,6 @@ pub(crate) fn interrupted_turn_history_marker(
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: marker.render(), text: marker.render(),
}], }],
end_turn: None,
phase: None, phase: None,
}) })
} }
-2
View File
@@ -249,7 +249,6 @@ pub(crate) async fn exit_review_mode(
id: Some(REVIEW_USER_MESSAGE_ID.to_string()), id: Some(REVIEW_USER_MESSAGE_ID.to_string()),
role: "user".to_string(), role: "user".to_string(),
content: vec![ContentItem::InputText { text: user_message }], content: vec![ContentItem::InputText { text: user_message }],
end_turn: None,
phase: None, phase: None,
}], }],
) )
@@ -270,7 +269,6 @@ pub(crate) async fn exit_review_mode(
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: assistant_message, text: assistant_message,
}], }],
end_turn: None,
phase: None, phase: None,
}, },
) )
@@ -30,7 +30,6 @@ fn user_msg(text: &str) -> ResponseItem {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -41,7 +40,6 @@ fn assistant_msg(text: &str) -> ResponseItem {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -14,7 +14,6 @@ fn user_msg(text: &str) -> ResponseItem {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -26,7 +25,6 @@ fn assistant_msg(text: &str) -> ResponseItem {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -2503,7 +2503,6 @@ async fn resume_agent_restores_closed_agent_and_accepts_send_input() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "materialized".to_string(), text: "materialized".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
})]), })]),
AuthManager::from_auth_for_testing(CodexAuth::from_api_key("dummy")), AuthManager::from_auth_for_testing(CodexAuth::from_api_key("dummy")),
-2
View File
@@ -102,7 +102,6 @@ fn response_item_records_turn_ttft_for_first_output_signals() {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "hello".to_string(), text: "hello".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
})); }));
} }
@@ -115,7 +114,6 @@ fn response_item_records_turn_ttft_ignores_empty_non_output_items() {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: String::new(), text: String::new(),
}], }],
end_turn: None,
phase: None, phase: None,
})); }));
assert!(!response_item_records_turn_ttft( assert!(!response_item_records_turn_ttft(
-1
View File
@@ -686,7 +686,6 @@ pub fn user_message_item(text: &str) -> ResponseItem {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: text.to_string(), text: text.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
-3
View File
@@ -118,7 +118,6 @@ async fn responses_stream_includes_subagent_header_on_review() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "hello".into(), text: "hello".into(),
}], }],
end_turn: None,
phase: None, phase: None,
}]; }];
@@ -245,7 +244,6 @@ async fn responses_stream_includes_subagent_header_on_other() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "hello".into(), text: "hello".into(),
}], }],
end_turn: None,
phase: None, phase: None,
}]; }];
@@ -361,7 +359,6 @@ async fn responses_respects_model_info_overrides_from_config() {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "hello".into(), text: "hello".into(),
}], }],
end_turn: None,
phase: None, phase: None,
}]; }];
-6
View File
@@ -290,7 +290,6 @@ async fn resume_includes_initial_messages_and_sends_prior_items() {
content: vec![codex_protocol::models::ContentItem::InputText { content: vec![codex_protocol::models::ContentItem::InputText {
text: "resumed user message".to_string(), text: "resumed user message".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
let prior_user_json = serde_json::to_value(&prior_user).unwrap(); let prior_user_json = serde_json::to_value(&prior_user).unwrap();
@@ -312,7 +311,6 @@ async fn resume_includes_initial_messages_and_sends_prior_items() {
content: vec![codex_protocol::models::ContentItem::OutputText { content: vec![codex_protocol::models::ContentItem::OutputText {
text: "resumed system instruction".to_string(), text: "resumed system instruction".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
let prior_system_json = serde_json::to_value(&prior_system).unwrap(); let prior_system_json = serde_json::to_value(&prior_system).unwrap();
@@ -334,7 +332,6 @@ async fn resume_includes_initial_messages_and_sends_prior_items() {
content: vec![codex_protocol::models::ContentItem::OutputText { content: vec![codex_protocol::models::ContentItem::OutputText {
text: "resumed assistant message".to_string(), text: "resumed assistant message".to_string(),
}], }],
end_turn: None,
phase: Some(MessagePhase::Commentary), phase: Some(MessagePhase::Commentary),
}; };
let prior_item_json = serde_json::to_value(&prior_item).unwrap(); let prior_item_json = serde_json::to_value(&prior_item).unwrap();
@@ -517,7 +514,6 @@ async fn resume_replays_legacy_js_repl_image_rollout_shapes() {
image_url: legacy_image_url.to_string(), image_url: legacy_image_url.to_string(),
detail: Some(DEFAULT_IMAGE_DETAIL), detail: Some(DEFAULT_IMAGE_DETAIL),
}], }],
end_turn: None,
phase: None, phase: None,
}), }),
}, },
@@ -903,7 +899,6 @@ async fn send_provider_auth_request(server: &MockServer, auth: ModelProviderAuth
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "hello".to_string(), text: "hello".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}); });
@@ -2318,7 +2313,6 @@ async fn azure_responses_request_includes_store_and_reasoning_ids() {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "message".into(), text: "message".into(),
}], }],
end_turn: None,
phase: None, phase: None,
}); });
prompt.input.push(ResponseItem::WebSearchCall { prompt.input.push(ResponseItem::WebSearchCall {
@@ -1700,7 +1700,6 @@ fn message_item(text: &str) -> ResponseItem {
id: None, id: None,
role: "user".into(), role: "user".into(),
content: vec![ContentItem::InputText { text: text.into() }], content: vec![ContentItem::InputText { text: text.into() }],
end_turn: None,
phase: None, phase: None,
} }
} }
@@ -1710,7 +1709,6 @@ fn assistant_message_item(id: &str, text: &str) -> ResponseItem {
id: Some(id.to_string()), id: Some(id.to_string()),
role: "assistant".into(), role: "assistant".into(),
content: vec![ContentItem::OutputText { text: text.into() }], content: vec![ContentItem::OutputText { text: text.into() }],
end_turn: None,
phase: None, phase: None,
} }
} }
-3
View File
@@ -1615,7 +1615,6 @@ async fn auto_compact_runs_after_resume_when_token_usage_is_over_limit() {
content: vec![codex_protocol::models::ContentItem::OutputText { content: vec![codex_protocol::models::ContentItem::OutputText {
text: remote_summary.to_string(), text: remote_summary.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
codex_protocol::models::ResponseItem::Compaction { codex_protocol::models::ResponseItem::Compaction {
@@ -2861,7 +2860,6 @@ async fn auto_compact_counts_encrypted_reasoning_before_last_user() {
content: vec![codex_protocol::models::ContentItem::OutputText { content: vec![codex_protocol::models::ContentItem::OutputText {
text: "REMOTE_COMPACT_SUMMARY".to_string(), text: "REMOTE_COMPACT_SUMMARY".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
codex_protocol::models::ResponseItem::Compaction { codex_protocol::models::ResponseItem::Compaction {
@@ -2985,7 +2983,6 @@ async fn auto_compact_runs_when_reasoning_header_clears_between_turns() {
content: vec![codex_protocol::models::ContentItem::OutputText { content: vec![codex_protocol::models::ContentItem::OutputText {
text: "REMOTE_COMPACT_SUMMARY".to_string(), text: "REMOTE_COMPACT_SUMMARY".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
codex_protocol::models::ResponseItem::Compaction { codex_protocol::models::ResponseItem::Compaction {
@@ -1181,7 +1181,6 @@ async fn remote_compact_persists_replacement_history_in_rollout() -> Result<()>
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: "COMPACTED_ASSISTANT_NOTE".to_string(), text: "COMPACTED_ASSISTANT_NOTE".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
]; ];
@@ -1320,7 +1319,6 @@ async fn remote_compact_and_resume_refresh_stale_developer_instructions() -> Res
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: stale_developer_message.to_string(), text: stale_developer_message.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Compaction { ResponseItem::Compaction {
@@ -1458,7 +1456,6 @@ async fn remote_compact_refreshes_stale_developer_instructions_without_resume()
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: stale_developer_message.to_string(), text: stale_developer_message.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}, },
ResponseItem::Compaction { ResponseItem::Compaction {
@@ -164,7 +164,6 @@ async fn copy_paste_local_image_persists_rollout_request_shape() -> anyhow::Resu
text: "pasted image".to_string(), text: "pasted image".to_string(),
}, },
], ],
end_turn: None,
phase: None, phase: None,
}; };
@@ -253,7 +252,6 @@ async fn drag_drop_image_persists_rollout_request_shape() -> anyhow::Result<()>
text: "dropped image".to_string(), text: "dropped image".to_string(),
}, },
], ],
end_turn: None,
phase: None, phase: None,
}; };
@@ -38,7 +38,6 @@ async fn build_prompt_input_includes_context_and_user_message() -> Result<()> {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "hello from debug prompt".to_string(), text: "hello from debug prompt".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
assert_eq!(input.last(), Some(&expected_user_message)); assert_eq!(input.last(), Some(&expected_user_message));
@@ -1605,7 +1605,6 @@ async fn conversation_startup_context_current_thread_selects_many_turns_by_budge
id: None, id: None,
role: "user".to_string(), role: "user".to_string(),
content: vec![ContentItem::InputText { text: user_turn }], content: vec![ContentItem::InputText { text: user_turn }],
end_turn: None,
phase: None, phase: None,
}), }),
RolloutItem::ResponseItem(ResponseItem::Message { RolloutItem::ResponseItem(ResponseItem::Message {
@@ -1614,7 +1613,6 @@ async fn conversation_startup_context_current_thread_selects_many_turns_by_budge
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: assistant_turn, text: assistant_turn,
}], }],
end_turn: None,
phase: None, phase: None,
}), }),
] ]
-2
View File
@@ -538,7 +538,6 @@ async fn review_input_isolated_from_parent_history() {
content: vec![codex_protocol::models::ContentItem::InputText { content: vec![codex_protocol::models::ContentItem::InputText {
text: "parent: earlier user message".to_string(), text: "parent: earlier user message".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
let user_json = serde_json::to_value(&user).unwrap(); let user_json = serde_json::to_value(&user).unwrap();
@@ -558,7 +557,6 @@ async fn review_input_isolated_from_parent_history() {
content: vec![codex_protocol::models::ContentItem::OutputText { content: vec![codex_protocol::models::ContentItem::OutputText {
text: "parent: assistant reply".to_string(), text: "parent: assistant reply".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}; };
let assistant_json = serde_json::to_value(&assistant).unwrap(); let assistant_json = serde_json::to_value(&assistant).unwrap();
-1
View File
@@ -266,7 +266,6 @@ pub fn build_hook_prompt_message(fragments: &[HookPromptFragment]) -> Option<Res
id: Some(uuid::Uuid::new_v4().to_string()), id: Some(uuid::Uuid::new_v4().to_string()),
role: "user".to_string(), role: "user".to_string(),
content, content,
end_turn: None,
phase: None, phase: None,
}) })
} }
-5
View File
@@ -757,10 +757,6 @@ pub enum ResponseItem {
id: Option<String>, id: Option<String>,
role: String, role: String,
content: Vec<ContentItem>, content: Vec<ContentItem>,
// Do not use directly, no available consistently across all providers.
#[serde(default, skip_serializing_if = "Option::is_none")]
#[ts(optional)]
end_turn: Option<bool>,
// Optional output-message phase (for example: "commentary", "final_answer"). // Optional output-message phase (for example: "commentary", "final_answer").
// Availability varies by provider/model, so downstream consumers must // Availability varies by provider/model, so downstream consumers must
// preserve fallback behavior when this is absent. // preserve fallback behavior when this is absent.
@@ -1114,7 +1110,6 @@ impl From<ResponseInputItem> for ResponseItem {
role, role,
content, content,
id: None, id: None,
end_turn: None,
phase: None, phase: None,
}, },
ResponseInputItem::FunctionCallOutput { call_id, output } => { ResponseInputItem::FunctionCallOutput { call_id, output } => {
-1
View File
@@ -2867,7 +2867,6 @@ impl From<CompactedItem> for ResponseItem {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: value.message, text: value.message,
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }
-1
View File
@@ -1179,7 +1179,6 @@ async fn test_updated_at_uses_file_mtime() -> Result<()> {
content: vec![ContentItem::OutputText { content: vec![ContentItem::OutputText {
text: format!("reply-{idx}"), text: format!("reply-{idx}"),
}], }],
end_turn: None,
phase: None, phase: None,
}), }),
}; };
-1
View File
@@ -177,7 +177,6 @@ mod tests {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: "hello from response item".to_string(), text: "hello from response item".to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
}); });
-1
View File
@@ -440,7 +440,6 @@ impl App {
content: vec![ContentItem::InputText { content: vec![ContentItem::InputText {
text: SIDE_BOUNDARY_PROMPT.to_string(), text: SIDE_BOUNDARY_PROMPT.to_string(),
}], }],
end_turn: None,
phase: None, phase: None,
} }
} }