Skip to content

fix(tui): clarify streaming status#66

Merged
BunsDev merged 1 commit into
mainfrom
codex/issue-57-streaming-status
Jun 11, 2026
Merged

fix(tui): clarify streaming status#66
BunsDev merged 1 commit into
mainfrom
codex/issue-57-streaming-status

Conversation

@BunsDev

@BunsDev BunsDev commented Jun 11, 2026

Copy link
Copy Markdown
Member

Summary

  • replace the vague streaming fallback with Waiting on network
  • surface stalled streams as Stalled — check connection, Ctrl+C to interrupt instead of only recoloring the spinner
  • share stall detection between status text and spinner color, and render a status row during active streams

Verification

  • cargo test -p claurst-tui streaming_status_label_falls_back_through_text_then_thinking && cargo test -p claurst-tui streaming_status_label_explains_stalled_streams
  • cargo fmt -p claurst-tui --check
  • git diff --check
  • cargo test -p claurst-tui
  • cargo check -p claurst

Fixes #57

Copilot AI review requested due to automatic review settings June 11, 2026 03:29
@vercel

vercel Bot commented Jun 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview Jun 11, 2026 3:29am

@BunsDev BunsDev merged commit a9e9eeb into main Jun 11, 2026
2 checks passed
@BunsDev BunsDev deleted the codex/issue-57-streaming-status branch June 11, 2026 03:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves TUI streaming-status clarity by replacing the vague default “Thinking” status with a more actionable “Waiting on network”, and by surfacing stalled streams with an explicit message (not just a spinner color change).

Changes:

  • Introduces shared stall detection (stream_is_stalled) and uses it for both spinner coloring and status text.
  • Updates streaming fallback label to “Waiting on network” and adds an explicit stalled-stream label.
  • Adjusts status-row rendering logic so the status row is rendered during active streaming, and updates/extends tests accordingly.
Comments suppressed due to low confidence (1)

src-rust/crates/tui/src/render.rs:2217

  • should_render_status_row now always returns true for app.is_streaming, which makes interesting_stream_status and its placeholder-filtering redundant (the variable no longer affects the outcome). Simplifying avoids unnecessary per-frame work and keeps the intent clear.
fn should_render_status_row(app: &App) -> bool {
    let interesting_stream_status = app
        .status_message
        .as_deref()
        .map(|status| {

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 2163 to 2167
/// Precedence:
/// 1. Adapter-set `status_message` (when it's not the generic
/// "thinking" placeholder)
/// 2. Running tool call — "Running <tool>"
/// 3. Active streaming text — "Generating"
@@ -3557,7 +3570,9 @@
#[test]
fn streaming_status_label_falls_back_through_text_then_thinking() {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Streaming status clarity: cause-aware sub-status and stall messaging

2 participants