Make ESC button work when auto-compaction (#3857)

Only emit a task finished when the compaction comes from a `/compact`
This commit is contained in:
jif-oai
2025-09-18 16:34:16 +01:00
committed by GitHub
parent 1b3c8b8e94
commit 4a5d6f7c71
2 changed files with 31 additions and 18 deletions

View File

@@ -79,15 +79,29 @@ pub(super) async fn run_compact_task(
input: Vec<InputItem>,
compact_instructions: String,
) {
let start_event = Event {
id: sub_id.clone(),
msg: EventMsg::TaskStarted(TaskStartedEvent {
model_context_window: turn_context.client.get_model_context_window(),
}),
};
sess.send_event(start_event).await;
run_compact_task_inner(
sess,
sess.clone(),
turn_context,
sub_id,
sub_id.clone(),
input,
compact_instructions,
true,
)
.await;
let event = Event {
id: sub_id,
msg: EventMsg::TaskComplete(TaskCompleteEvent {
last_agent_message: None,
}),
};
sess.send_event(event).await;
}
async fn run_compact_task_inner(
@@ -98,15 +112,6 @@ async fn run_compact_task_inner(
compact_instructions: String,
remove_task_on_completion: bool,
) {
let model_context_window = turn_context.client.get_model_context_window();
let start_event = Event {
id: sub_id.clone(),
msg: EventMsg::TaskStarted(TaskStartedEvent {
model_context_window,
}),
};
sess.send_event(start_event).await;
let initial_input_for_turn: ResponseInputItem = ResponseInputItem::from(input);
let instructions_override = compact_instructions;
let turn_input = sess.turn_input_with_history(vec![initial_input_for_turn.clone().into()]);
@@ -195,13 +200,6 @@ async fn run_compact_task_inner(
}),
};
sess.send_event(event).await;
let event = Event {
id: sub_id.clone(),
msg: EventMsg::TaskComplete(TaskCompleteEvent {
last_agent_message: None,
}),
};
sess.send_event(event).await;
}
fn content_items_to_text(content: &[ContentItem]) -> Option<String> {