fix status mismatch

This commit is contained in:
2026-07-14 10:17:05 +08:00
parent abc6e7c800
commit afe32d0166
@@ -283,7 +283,7 @@ fn build_delta_messages(
attachments: Vec::new(),
tool_call: Some(EditorAgentToolCall {
tool_name: tco.tool_call.name,
status: EditorAgentToolCallStatus::Pending,
status: EditorAgentToolCallStatus::NotCompleted,
args: tco.tool_call.args,
display_args,
external_job_id: None,
@@ -480,13 +480,13 @@ pub async fn cancel_editor_agent_tool_call(
.tool_call
.as_mut()
.ok_or_else(|| editor_agent_bad_request("message has no tool call"))?;
if tc.status != EditorAgentToolCallStatus::Pending || tc.external_job_id.is_some() {
if tc.status != EditorAgentToolCallStatus::NotCompleted || tc.external_job_id.is_some() {
return Err(editor_agent_bad_request(
"tool call is no longer pending confirmation",
));
}
tc.status = EditorAgentToolCallStatus::Canceled;
tc.status = EditorAgentToolCallStatus::Cancelled;
let arg_json = tc.args.to_string();
msg.text = format!(
"[tool_call:{tool_name}] args: {arg_json} output: 用户已取消该操作",
@@ -535,10 +535,10 @@ pub async fn confirm_editor_agent_tool_call(
.tool_call
.as_ref()
.ok_or_else(|| editor_agent_bad_request("message has no tool call"))?;
if tool_call.status == EditorAgentToolCallStatus::Canceled {
if tool_call.status == EditorAgentToolCallStatus::Cancelled {
return Err(editor_agent_bad_request("tool call was cancelled"));
}
if tool_call.status != EditorAgentToolCallStatus::Pending
if tool_call.status != EditorAgentToolCallStatus::NotCompleted
|| tool_call.external_job_id.is_some()
{
return Ok(json_success_body(Some(&request_context), message));
@@ -861,7 +861,7 @@ pub async fn confirm_editor_agent_tool_call(
.as_mut()
.ok_or_else(|| editor_agent_bad_request("message has no tool call"))?;
tool_call.external_job_id = Some(job.job_id);
tool_call.status = EditorAgentToolCallStatus::Executing;
tool_call.status = EditorAgentToolCallStatus::NotCompleted;
write_messages_document(&state, &conversation, &document).await?;
Ok(json_success_body(
Some(&request_context),