Skip to content

Commit a58cc27

Browse files
committed
core: clear active turn on task abort to avoid stale turn state
1 parent c1ae2fb commit a58cc27

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

codex-rs/core/src/codex.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1191,15 +1191,19 @@ impl AgentTask {
11911191
// TOCTOU?
11921192
if !self.handle.is_finished() {
11931193
self.handle.abort();
1194+
let sub_id = self.sub_id.clone();
1195+
let is_review = self.kind == AgentTaskKind::Review;
1196+
let sess = self.sess;
11941197
let event = Event {
1195-
id: self.sub_id.clone(),
1198+
id: sub_id.clone(),
11961199
msg: EventMsg::TurnAborted(TurnAbortedEvent { reason }),
11971200
};
1198-
let sess = self.sess;
11991201
tokio::spawn(async move {
1200-
if self.kind == AgentTaskKind::Review {
1201-
exit_review_mode(sess.clone(), self.sub_id, None).await;
1202+
if is_review {
1203+
exit_review_mode(sess.clone(), sub_id.clone(), None).await;
12021204
}
1205+
// Ensure active turn state is cleared when a task is aborted.
1206+
sess.remove_task(&sub_id).await;
12031207
sess.send_event(event).await;
12041208
});
12051209
}

0 commit comments

Comments
 (0)