codex: fix CI failure on PR #14422

This commit is contained in:
Ahmed Ibrahim
2026-03-11 21:57:26 -07:00
parent 271b723b44
commit 1451f288b9
9 changed files with 115 additions and 99 deletions
@@ -3015,16 +3015,10 @@
"description": "Identifier for the collab tool call.",
"type": "string"
},
"model": {
"type": "string"
},
"prompt": {
"description": "Initial prompt sent to the agent. Can be empty to prevent CoT leaking at the beginning.",
"type": "string"
},
"reasoning_effort": {
"$ref": "#/definitions/ReasoningEffort"
},
"sender_thread_id": {
"allOf": [
{
@@ -3043,9 +3037,7 @@
},
"required": [
"call_id",
"model",
"prompt",
"reasoning_effort",
"sender_thread_id",
"type"
],
@@ -3505,6 +3497,24 @@
"description": "Identifier for the collab tool call.",
"type": "string"
},
"model": {
"description": "Model configured for the receiver agent when available.",
"type": [
"string",
"null"
]
},
"reasoning_effort": {
"anyOf": [
{
"$ref": "#/definitions/ReasoningEffort"
},
{
"type": "null"
}
],
"description": "Reasoning effort configured for the receiver agent when available."
},
"receiver_agent_nickname": {
"description": "Optional nickname assigned to the receiver agent.",
"type": [
@@ -9248,16 +9258,10 @@
"description": "Identifier for the collab tool call.",
"type": "string"
},
"model": {
"type": "string"
},
"prompt": {
"description": "Initial prompt sent to the agent. Can be empty to prevent CoT leaking at the beginning.",
"type": "string"
},
"reasoning_effort": {
"$ref": "#/definitions/ReasoningEffort"
},
"sender_thread_id": {
"allOf": [
{
@@ -9276,9 +9280,7 @@
},
"required": [
"call_id",
"model",
"prompt",
"reasoning_effort",
"sender_thread_id",
"type"
],
@@ -9738,6 +9740,24 @@
"description": "Identifier for the collab tool call.",
"type": "string"
},
"model": {
"description": "Model configured for the receiver agent when available.",
"type": [
"string",
"null"
]
},
"reasoning_effort": {
"anyOf": [
{
"$ref": "#/definitions/ReasoningEffort"
},
{
"type": "null"
}
],
"description": "Reasoning effort configured for the receiver agent when available."
},
"receiver_agent_nickname": {
"description": "Optional nickname assigned to the receiver agent.",
"type": [
@@ -4378,16 +4378,10 @@
"description": "Identifier for the collab tool call.",
"type": "string"
},
"model": {
"type": "string"
},
"prompt": {
"description": "Initial prompt sent to the agent. Can be empty to prevent CoT leaking at the beginning.",
"type": "string"
},
"reasoning_effort": {
"$ref": "#/definitions/v2/ReasoningEffort"
},
"sender_thread_id": {
"allOf": [
{
@@ -4406,9 +4400,7 @@
},
"required": [
"call_id",
"model",
"prompt",
"reasoning_effort",
"sender_thread_id",
"type"
],
@@ -4868,6 +4860,24 @@
"description": "Identifier for the collab tool call.",
"type": "string"
},
"model": {
"description": "Model configured for the receiver agent when available.",
"type": [
"string",
"null"
]
},
"reasoning_effort": {
"anyOf": [
{
"$ref": "#/definitions/v2/ReasoningEffort"
},
{
"type": "null"
}
],
"description": "Reasoning effort configured for the receiver agent when available."
},
"receiver_agent_nickname": {
"description": "Optional nickname assigned to the receiver agent.",
"type": [
@@ -6180,16 +6180,10 @@
"description": "Identifier for the collab tool call.",
"type": "string"
},
"model": {
"type": "string"
},
"prompt": {
"description": "Initial prompt sent to the agent. Can be empty to prevent CoT leaking at the beginning.",
"type": "string"
},
"reasoning_effort": {
"$ref": "#/definitions/ReasoningEffort"
},
"sender_thread_id": {
"allOf": [
{
@@ -6208,9 +6202,7 @@
},
"required": [
"call_id",
"model",
"prompt",
"reasoning_effort",
"sender_thread_id",
"type"
],
@@ -6670,6 +6662,24 @@
"description": "Identifier for the collab tool call.",
"type": "string"
},
"model": {
"description": "Model configured for the receiver agent when available.",
"type": [
"string",
"null"
]
},
"reasoning_effort": {
"anyOf": [
{
"$ref": "#/definitions/ReasoningEffort"
},
{
"type": "null"
}
],
"description": "Reasoning effort configured for the receiver agent when available."
},
"receiver_agent_nickname": {
"description": "Optional nickname assigned to the receiver agent.",
"type": [
@@ -1,7 +1,6 @@
// GENERATED CODE! DO NOT MODIFY BY HAND!
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { ReasoningEffort } from "./ReasoningEffort";
import type { ThreadId } from "./ThreadId";
export type CollabAgentSpawnBeginEvent = {
@@ -17,4 +16,4 @@ sender_thread_id: ThreadId,
* Initial prompt sent to the agent. Can be empty to prevent CoT leaking at the
* beginning.
*/
prompt: string, model: string, reasoning_effort: ReasoningEffort, };
prompt: string, };
@@ -2,6 +2,7 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { AgentStatus } from "./AgentStatus";
import type { ReasoningEffort } from "./ReasoningEffort";
import type { ThreadId } from "./ThreadId";
export type CollabResumeEndEvent = {
@@ -25,6 +26,14 @@ receiver_agent_nickname?: string | null,
* Optional role assigned to the receiver agent.
*/
receiver_agent_role?: string | null,
/**
* Model configured for the receiver agent when available.
*/
model?: string | null,
/**
* Reasoning effort configured for the receiver agent when available.
*/
reasoning_effort?: ReasoningEffort | null,
/**
* Last known status of the receiver agent reported to the sender agent after
* resume.
@@ -548,8 +548,6 @@ fn collab_spawn_begin_and_end_emit_item_events() {
call_id: "call-10".to_string(),
sender_thread_id,
prompt: prompt.clone(),
model: "gpt-5".to_string(),
reasoning_effort: ReasoningEffortConfig::default(),
}),
);
let begin_events = ep.collect_thread_events(&begin);
+2 -20
View File
@@ -580,7 +580,6 @@ pub(crate) struct ChatWidget {
// Latest completed user-visible Codex output that `/copy` should place on the clipboard.
last_copyable_output: Option<String>,
running_commands: HashMap<String, RunningCommand>,
pending_collab_spawn_requests: HashMap<String, multi_agents::SpawnRequestSummary>,
suppressed_exec_calls: HashSet<String>,
skills_all: Vec<ProtocolSkillMetadata>,
skills_initial_state: Option<HashMap<PathBuf, bool>>,
@@ -3257,7 +3256,6 @@ impl ChatWidget {
plan_stream_controller: None,
last_copyable_output: None,
running_commands: HashMap::new(),
pending_collab_spawn_requests: HashMap::new(),
suppressed_exec_calls: HashSet::new(),
last_unified_wait: None,
unified_exec_wait_streak: None,
@@ -3442,7 +3440,6 @@ impl ChatWidget {
plan_stream_controller: None,
last_copyable_output: None,
running_commands: HashMap::new(),
pending_collab_spawn_requests: HashMap::new(),
suppressed_exec_calls: HashSet::new(),
last_unified_wait: None,
unified_exec_wait_streak: None,
@@ -3619,7 +3616,6 @@ impl ChatWidget {
plan_stream_controller: None,
last_copyable_output: None,
running_commands: HashMap::new(),
pending_collab_spawn_requests: HashMap::new(),
suppressed_exec_calls: HashSet::new(),
last_unified_wait: None,
unified_exec_wait_streak: None,
@@ -5020,23 +5016,9 @@ impl ChatWidget {
}
EventMsg::ExitedReviewMode(review) => self.on_exited_review_mode(review),
EventMsg::ContextCompacted(_) => self.on_agent_message("Context compacted".to_owned()),
EventMsg::CollabAgentSpawnBegin(CollabAgentSpawnBeginEvent {
call_id,
model,
reasoning_effort,
..
}) => {
self.pending_collab_spawn_requests.insert(
call_id,
multi_agents::SpawnRequestSummary {
model,
reasoning_effort,
},
);
}
EventMsg::CollabAgentSpawnBegin(CollabAgentSpawnBeginEvent { .. }) => {}
EventMsg::CollabAgentSpawnEnd(ev) => {
let spawn_request = self.pending_collab_spawn_requests.remove(&ev.call_id);
self.on_collab_event(multi_agents::spawn_end(ev, spawn_request.as_ref()));
self.on_collab_event(multi_agents::spawn_end(ev));
}
EventMsg::CollabAgentInteractionBegin(_) => {}
EventMsg::CollabAgentInteractionEnd(ev) => {
-3
View File
@@ -1841,7 +1841,6 @@ async fn make_chatwidget_manual(
plan_stream_controller: None,
last_copyable_output: None,
running_commands: HashMap::new(),
pending_collab_spawn_requests: HashMap::new(),
suppressed_exec_calls: HashSet::new(),
skills_all: Vec::new(),
skills_initial_state: None,
@@ -2027,8 +2026,6 @@ async fn collab_spawn_end_shows_requested_model_and_effort() {
call_id: "call-spawn".to_string(),
sender_thread_id,
prompt: "Explore the repo".to_string(),
model: "gpt-5".to_string(),
reasoning_effort: ReasoningEffortConfig::High,
}),
});
chat.handle_codex_event(Event {
+31 -40
View File
@@ -171,10 +171,7 @@ fn next_agent_word_motion_fallback(
false
}
pub(crate) fn spawn_end(
ev: CollabAgentSpawnEndEvent,
spawn_request: Option<&SpawnRequestSummary>,
) -> PlainHistoryCell {
pub(crate) fn spawn_end(ev: CollabAgentSpawnEndEvent) -> PlainHistoryCell {
let CollabAgentSpawnEndEvent {
call_id: _,
sender_thread_id: _,
@@ -182,9 +179,14 @@ pub(crate) fn spawn_end(
new_agent_nickname,
new_agent_role,
prompt,
model,
reasoning_effort,
status: _,
..
} = ev;
let spawn_summary = SpawnRequestSummary {
model,
reasoning_effort,
};
let title = match new_thread_id {
Some(thread_id) => title_with_agent(
@@ -194,7 +196,7 @@ pub(crate) fn spawn_end(
nickname: new_agent_nickname.as_deref(),
role: new_agent_role.as_deref(),
},
spawn_request,
Some(&spawn_summary),
),
None => title_text("Agent spawn failed"),
};
@@ -327,6 +329,7 @@ pub(crate) fn resume_end(ev: CollabResumeEndEvent) -> PlainHistoryCell {
receiver_agent_nickname,
receiver_agent_role,
status,
..
} = ev;
collab_event(
@@ -594,23 +597,17 @@ mod tests {
let bob_id = ThreadId::from_string("00000000-0000-0000-0000-000000000003")
.expect("valid bob thread id");
let spawn = spawn_end(
CollabAgentSpawnEndEvent {
call_id: "call-spawn".to_string(),
sender_thread_id,
new_thread_id: Some(robie_id),
new_agent_nickname: Some("Robie".to_string()),
new_agent_role: Some("explorer".to_string()),
prompt: "Compute 11! and reply with just the integer result.".to_string(),
model: "gpt-5".to_string(),
reasoning_effort: ReasoningEffortConfig::High,
status: AgentStatus::PendingInit,
},
Some(&SpawnRequestSummary {
model: "gpt-5".to_string(),
reasoning_effort: ReasoningEffortConfig::High,
}),
);
let spawn = spawn_end(CollabAgentSpawnEndEvent {
call_id: "call-spawn".to_string(),
sender_thread_id,
new_thread_id: Some(robie_id),
new_agent_nickname: Some("Robie".to_string()),
new_agent_role: Some("explorer".to_string()),
prompt: "Compute 11! and reply with just the integer result.".to_string(),
model: "gpt-5".to_string(),
reasoning_effort: ReasoningEffortConfig::High,
status: AgentStatus::PendingInit,
});
let send = interaction_end(CollabAgentInteractionEndEvent {
call_id: "call-send".to_string(),
@@ -732,23 +729,17 @@ mod tests {
.expect("valid sender thread id");
let robie_id = ThreadId::from_string("00000000-0000-0000-0000-000000000002")
.expect("valid robie thread id");
let cell = spawn_end(
CollabAgentSpawnEndEvent {
call_id: "call-spawn".to_string(),
sender_thread_id,
new_thread_id: Some(robie_id),
new_agent_nickname: Some("Robie".to_string()),
new_agent_role: Some("explorer".to_string()),
prompt: String::new(),
model: "gpt-5".to_string(),
reasoning_effort: ReasoningEffortConfig::High,
status: AgentStatus::PendingInit,
},
Some(&SpawnRequestSummary {
model: "gpt-5".to_string(),
reasoning_effort: ReasoningEffortConfig::High,
}),
);
let cell = spawn_end(CollabAgentSpawnEndEvent {
call_id: "call-spawn".to_string(),
sender_thread_id,
new_thread_id: Some(robie_id),
new_agent_nickname: Some("Robie".to_string()),
new_agent_role: Some("explorer".to_string()),
prompt: String::new(),
model: "gpt-5".to_string(),
reasoning_effort: ReasoningEffortConfig::High,
status: AgentStatus::PendingInit,
});
let lines = cell.display_lines(200);
let title = &lines[0];