Skip to content

TUI: spinner keeps spinning after 'model ready' status #504

@bug-ops

Description

@bug-ops

Problem

After warmup completes, the TUI shows "model ready" with the throbber spinner, but neither ever disappears. The spinner continues indefinitely because status_label is never cleared.

Root Cause

In src/main.rs:435-436, warmup sends AgentEvent::Status("model ready") but never follows up with AgentEvent::Status("") to clear the label. The throbber renders whenever status_label.is_some() (crates/zeph-tui/src/widgets/chat.rs:93).

Expected Behavior

  1. Warmup completes → "model ready" appears (spinner stops or shows checkmark)
  2. After 2 seconds → status label and spinner disappear

Implementation

Option A (simple, in main.rs): spawn a delayed task after warmup that sleeps 2s then sends Status("").

Option B (in App): add transient status support — AgentEvent::TransientStatus { text, duration } that auto-clears via a timer in the event loop. Cleaner and reusable for other transient messages.

Files

  • src/main.rs:428-438 — warmup task
  • crates/zeph-tui/src/app.rs:301-303 — Status event handler
  • crates/zeph-tui/src/widgets/chat.rs:93-107 — throbber rendering
  • crates/zeph-tui/src/event.rs — AgentEvent enum

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtuiTUI dashboard

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions