tui: activity indicator in a bottom status bar + 1-line input
Add an animated "agent is working" indicator so a silent gap (long-running
tool, the pause before the first token, sub-agent reasoning) reads as
"alive" rather than "hung": a braille spinner + phase label that runs on
its own timer, independent of the WebSocket event flow.

- New ActivityIndicator widget (rotating spinner + phase label, colored
  status_online), started/stopped from tui_app WS phase transitions
  (thinking / responding / planning / running <tool>) and stopped on
  stream_end/stopped/error and on connection drop.
- New StatusBar bottom line replaces Textual's Footer: indicator on the
  left, dim key-combo summary on the right. One line instead of the menu;
  the key bindings themselves stay on the App so the keys still work.
- Input box: TextArea min-height 3 -> 1, so the prompt is one line by
  default (auto-resize + max-height 12 unchanged).

Co-Authored-By: Claude <noreply@anthropic.com>
1 parent c678626 commit 66213ee4822a9bbe786060026ecbf530fd546f3b
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 9 hours ago
Showing 6 changed files
View
clients/terminal/tui/tui_app.py
View
clients/terminal/tui/widgets/__init__.py
View
clients/terminal/tui/widgets/activity_indicator.py 0 → 100644
View
clients/terminal/tui/widgets/input_box.py
View
clients/terminal/tui/widgets/status_bar.py 0 → 100644
View
tests/clients/test_tui_app.py