feat(tui): animated neural pulse spinner with random verbs#54
Conversation
Port the shell's animated glyph system to the TUI. Instead of static "Thinking..." text, the chat log now shows an animated neural pulse glyph (·◦○◎●◉●◎○◦) with a random verb (Pondering, Arcaning, Crystallizing, etc.) that changes on each new run. - Add SpinnerKind (Neural/Tool) with verb list to TUI spinner widget - Tick spinner on every TUI event loop tick when busy - Pick new verb on RunStarted events - Update e2e and integration tests for new indicator format Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThis PR introduces an animated spinner indicator system for the TUI application. It adds the Changes
Sequence DiagramsequenceDiagram
participant User
participant App
participant Spinner
participant State
participant ChatLog
User->>App: Send message to agent
App->>State: RunStarted event
State->>Spinner: new_verb() - randomize verb
State->>State: set is_busy = true
loop Every Tick Until RunFinished
App->>Spinner: tick()
Spinner->>Spinner: advance frame index
ChatLog->>Spinner: current() - get glyph
ChatLog->>Spinner: verb() - get verb
ChatLog->>ChatLog: render {glyph} {verb}…
end
User->>App: Agent finishes
App->>State: RunFinished event
State->>State: set is_busy = false
ChatLog->>ChatLog: render without spinner
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~35 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Ports the shell's animated glyph system to the TUI. Shows neural pulse animation (·◦○◎●◉●◎○◦) with a random verb instead of static 'Thinking...' text. New verb picked on each RunStarted. 220 tests passing.
Generated with Claude Code
Summary by CodeRabbit