From b96ebfb31286187e950a4e2a60da941b5fed2afa Mon Sep 17 00:00:00 2001 From: Eric Traut Date: Wed, 29 Jul 2026 03:43:20 +0000 Subject: [PATCH] Show blocked goals as stalled in the TUI (#35886) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## What changed - Display `Blocked` goal statuses as “stalled” in the goal menu and goal status footer. - Update the goal menu snapshot and footer formatting test expectations. GitOrigin-RevId: f3d8212d939f0d76354048231346328972226274 --- codex-rs/tui/src/bottom_pane/footer.rs | 2 +- codex-rs/tui/src/chatwidget/goal_menu.rs | 2 +- .../codex_tui__chatwidget__tests__goal_menu_blocked.snap | 2 +- codex-rs/tui/src/chatwidget/tests/status_and_layout.rs | 2 +- codex-rs/tui/src/goal_display.rs | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/codex-rs/tui/src/bottom_pane/footer.rs b/codex-rs/tui/src/bottom_pane/footer.rs index bf7c5a5260..4e1689edad 100644 --- a/codex-rs/tui/src/bottom_pane/footer.rs +++ b/codex-rs/tui/src/bottom_pane/footer.rs @@ -540,7 +540,7 @@ pub(crate) fn goal_status_indicator_line( } } GoalStatusIndicator::Paused => "Goal paused (/goal resume)".to_string(), - GoalStatusIndicator::Blocked => "Goal blocked (/goal resume)".to_string(), + GoalStatusIndicator::Blocked => "Goal stalled (/goal resume)".to_string(), GoalStatusIndicator::UsageLimited => "Goal hit usage limits (/goal resume)".to_string(), GoalStatusIndicator::BudgetLimited { usage } => { if let Some(usage) = usage { diff --git a/codex-rs/tui/src/chatwidget/goal_menu.rs b/codex-rs/tui/src/chatwidget/goal_menu.rs index 4c406f3793..d8e36c2486 100644 --- a/codex-rs/tui/src/chatwidget/goal_menu.rs +++ b/codex-rs/tui/src/chatwidget/goal_menu.rs @@ -123,7 +123,7 @@ fn goal_status_label(status: AppThreadGoalStatus) -> &'static str { match status { AppThreadGoalStatus::Active => "active", AppThreadGoalStatus::Paused => "paused", - AppThreadGoalStatus::Blocked => "blocked", + AppThreadGoalStatus::Blocked => "stalled", AppThreadGoalStatus::UsageLimited => "usage limited", AppThreadGoalStatus::BudgetLimited => "limited by budget", AppThreadGoalStatus::Complete => "complete", diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__goal_menu_blocked.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__goal_menu_blocked.snap index 40de732645..c7e7b3fab6 100644 --- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__goal_menu_blocked.snap +++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__goal_menu_blocked.snap @@ -3,7 +3,7 @@ source: tui/src/chatwidget/tests/goal_menu.rs expression: rendered_goal_summary(&mut rx) --- Goal -Status: blocked +Status: stalled Objective: Keep improving the bare goal command until it feels calm and useful. Time used: 1m Tokens used: 12.5K 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 5719e04dcb..eeb13bfd60 100644 --- a/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs +++ b/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs @@ -3573,7 +3573,7 @@ fn goal_status_indicator_line_formats_goal_text() { "Goal unmet (4K / 5K tokens)", ), (GoalStatusIndicator::Paused, "Goal paused (/goal resume)"), - (GoalStatusIndicator::Blocked, "Goal blocked (/goal resume)"), + (GoalStatusIndicator::Blocked, "Goal stalled (/goal resume)"), ( GoalStatusIndicator::UsageLimited, "Goal hit usage limits (/goal resume)", diff --git a/codex-rs/tui/src/goal_display.rs b/codex-rs/tui/src/goal_display.rs index 210bac1076..0be4252e6b 100644 --- a/codex-rs/tui/src/goal_display.rs +++ b/codex-rs/tui/src/goal_display.rs @@ -34,7 +34,7 @@ pub(crate) fn goal_status_label(status: ThreadGoalStatus) -> &'static str { match status { ThreadGoalStatus::Active => "active", ThreadGoalStatus::Paused => "paused", - ThreadGoalStatus::Blocked => "blocked", + ThreadGoalStatus::Blocked => "stalled", ThreadGoalStatus::UsageLimited => "usage limited", ThreadGoalStatus::BudgetLimited => "limited by budget", ThreadGoalStatus::Complete => "complete",