This commit is contained in:
jif-oai
2026-04-02 12:04:58 +02:00
parent c7c47d0b2d
commit 32ff8b94d7
2 changed files with 22 additions and 0 deletions
+3
View File
@@ -4035,6 +4035,9 @@ impl Session {
let mut active = self.active_turn.lock().await;
match active.as_mut() {
Some(at) => {
if at.tasks.is_empty() {
return Err(input);
}
let mut ts = at.turn_state.lock().await;
for item in input {
ts.push_pending_input(item);
+19
View File
@@ -4783,6 +4783,25 @@ async fn queued_response_items_for_next_turn_move_into_next_active_turn() {
assert_eq!(sess.get_pending_input().await, vec![queued_item]);
}
#[tokio::test]
async fn inject_response_items_rejects_pending_turn_start_reservation() {
let (sess, _tc, _rx) = make_session_and_context_with_rx().await;
*sess.active_turn.lock().await = Some(ActiveTurn::default());
let pending_item = ResponseInputItem::Message {
role: "user".to_string(),
content: vec![ContentItem::InputText {
text: "queued during turn-complete".to_string(),
}],
};
let err = sess
.inject_response_items(vec![pending_item.clone()])
.await
.expect_err("empty active turn reservation should reject injected items");
assert_eq!(err, vec![pending_item]);
}
#[tokio::test]
async fn on_task_finished_records_queue_only_mailbox_mail_without_restart() {
let (sess, tc, _rx) = make_session_and_context_with_rx().await;