Turn status: moon-phase spinner for Waiting for response
The active-turn spinner next to "Waiting for response…" now cycles the moon phases 🌑🌒🌓🌔🌕🌖🌗🌘 — the official kimi-cli's lunation animation (rich's `moon` spinner) — matching the welcome-screen moon logo. New glyphs::moon_spinner_frames() with the same legacy-ConHost ASCII fallback as every other spinner set; emoji frames are 2 columns and the status row already measures the rendered frame, so layout adapts. The ambient "Starting session…" row and other spinners stay braille. Verified: kigi-tui lib 6621 + pager-render 963 tests green; real-binary PTY e2e waiting_for_model_label_shows_before_first_token passes with the new spinner rendering in a live vt.
This commit is contained in:
@@ -351,13 +351,13 @@ pub fn render_turn_status(
|
||||
|
||||
// ── Build components ──
|
||||
// While a tool is blocked on a permission prompt or `ask_user_question`,
|
||||
// swap the running braille spinner for a pulsing `◆`. Same animation
|
||||
// shape the drain-blocked and plan-approval indicators already use,
|
||||
// so every "your turn" status reads with one consistent visual cue.
|
||||
// swap the spinning moon for a pulsing `◆`. Same animation shape the
|
||||
// drain-blocked and plan-approval indicators already use, so every
|
||||
// "your turn" status reads with one consistent visual cue.
|
||||
let spinner_str = if is_pending_user_input {
|
||||
format!("{} ", crate::glyphs::diamond_filled())
|
||||
} else {
|
||||
let frames = crate::glyphs::braille_spinner_frames();
|
||||
let frames = crate::glyphs::moon_spinner_frames();
|
||||
let frame_idx = (tick / SPINNER_DIVISOR) as usize % frames.len();
|
||||
format!("{} ", frames[frame_idx])
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user