diff --git a/codex-rs/tui/src/chatwidget.rs b/codex-rs/tui/src/chatwidget.rs index 40963c37ad..96cc354323 100644 --- a/codex-rs/tui/src/chatwidget.rs +++ b/codex-rs/tui/src/chatwidget.rs @@ -1935,7 +1935,6 @@ impl ChatWidget { pull_request: Option, ) { if self.status_line_github_pr_cwd.as_ref() != Some(&cwd) { - self.status_line_github_pr_pending = false; return; } self.status_line_github_pr = pull_request; diff --git a/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs b/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs index d9c001178d..3ef267917f 100644 --- a/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs +++ b/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs @@ -948,6 +948,17 @@ async fn github_pr_state_resets_when_no_surface_uses_it() { assert!(!chat.status_line_github_pr_lookup_complete); } +#[tokio::test] +async fn stale_github_pr_update_preserves_current_pending_lookup() { + let (mut chat, _rx, _op_rx) = make_chatwidget_manual(/*model_override*/ None).await; + chat.status_line_github_pr_cwd = Some(PathBuf::from("/repo/current")); + chat.status_line_github_pr_pending = true; + + chat.set_status_line_github_pr(PathBuf::from("/repo/old"), None); + + assert!(chat.status_line_github_pr_pending); +} + #[tokio::test] async fn status_line_branch_refreshes_after_turn_complete() { let (mut chat, _rx, _op_rx) = make_chatwidget_manual(/*model_override*/ None).await;