- Introduce `MessageRenderContext` and `MessageCacheEntry` for caching wrapped lines per message. - Implement `render_message_lines_cached` using cache, invalidating on updates. - Add role/style helpers and content hashing for cache validation. - Throttle UI redraws in the main loop during active streaming (50 ms interval) and adjust idle tick timing. - Update drawing logic to use cached rendering and manage draw intervals. - Remove unused `role_color` function and adjust imports accordingly.
Owlen TUI
This crate contains all the logic for the terminal user interface (TUI) of Owlen.
It is built using the excellent ratatui library and is responsible for rendering the chat interface, handling user input, and managing the application state.
Features
- Chat View: A scrollable view of the conversation history.
- Input Box: A text input area for composing messages.
- Model Selection: An interface for switching between different models.
- Event Handling: A system for managing keyboard events and asynchronous operations.