mirror of
https://github.com/openai/codex.git
synced 2026-05-02 18:37:01 +00:00
Fix queued messages during /review (#9122)
Sending a message during /review interrupts the review, whereas during normal operation, sending a message while the agent is running will queue the message. This is unexpected behavior, and since /review usually takes a while, it takes away a potentially useful operation. Summary - Treat review mode as an active task for message queuing so inputs don’t inject into the running review turn. - Prevents user submissions from rendering immediately in the transcript while the review continues streaming. - Keeps review UX consistent with normal “task running” behavior and avoids accidental interrupt/replacement. Notes - This change only affects UI queuing logic; core review flow and task lifecycle remain unchanged.
This commit is contained in:
@@ -3871,3 +3871,33 @@ async fn chatwidget_tall() {
|
||||
.unwrap();
|
||||
assert_snapshot!(term.backend().vt100().screen().contents());
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn review_queues_user_messages_snapshot() {
|
||||
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(None).await;
|
||||
|
||||
chat.handle_codex_event(Event {
|
||||
id: "review-1".into(),
|
||||
msg: EventMsg::EnteredReviewMode(ReviewRequest {
|
||||
target: ReviewTarget::UncommittedChanges,
|
||||
user_facing_hint: Some("current changes".to_string()),
|
||||
}),
|
||||
});
|
||||
let _ = drain_insert_history(&mut rx);
|
||||
|
||||
chat.queue_user_message(UserMessage::from(
|
||||
"Queued while /review is running.".to_string(),
|
||||
));
|
||||
|
||||
let width: u16 = 80;
|
||||
let height: u16 = 18;
|
||||
let backend = VT100Backend::new(width, height);
|
||||
let mut term = crate::custom_terminal::Terminal::with_options(backend).expect("terminal");
|
||||
let desired_height = chat.desired_height(width).min(height);
|
||||
term.set_viewport_area(Rect::new(0, height - desired_height, width, desired_height));
|
||||
term.draw(|f| {
|
||||
chat.render(f.area(), f.buffer_mut());
|
||||
})
|
||||
.unwrap();
|
||||
assert_snapshot!(term.backend().vt100().screen().contents());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user