- 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.
106 lines
5.7 KiB
Markdown
106 lines
5.7 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [Unreleased]
|
|
|
|
### Added
|
|
- Comprehensive documentation suite including guides for architecture, configuration, testing, and more.
|
|
- Rustdoc examples for core components like `Provider` and `SessionController`.
|
|
- Module-level documentation for `owlen-tui`.
|
|
- Ollama integration can now talk to Ollama Cloud when an API key is configured.
|
|
- Ollama provider will also read `OLLAMA_API_KEY` / `OLLAMA_CLOUD_API_KEY` environment variables when no key is stored in the config.
|
|
- `owlen config doctor`, `owlen config path`, and `owlen upgrade` CLI commands to automate migrations and surface manual update steps.
|
|
- Startup provider health check with actionable hints when Ollama or remote MCP servers are unavailable.
|
|
- `dev/check-windows.sh` helper script for on-demand Windows cross-checks.
|
|
- Global F1 keybinding for the in-app help overlay and a clearer status hint on launch.
|
|
- Automatic fallback to the new `ansi_basic` theme when the active terminal only advertises 16-color support.
|
|
- Offline provider shim that keeps the TUI usable while primary providers are unreachable and communicates recovery steps inline.
|
|
- `owlen cloud` subcommands (`setup`, `status`, `models`, `logout`) for managing Ollama Cloud credentials without hand-editing config files.
|
|
- Tabbed model selector that separates local and cloud providers, including cloud indicators in the UI.
|
|
- Footer status line includes provider connectivity/credential summaries (e.g., cloud auth failures, missing API keys).
|
|
- Secure credential vault integration for Ollama Cloud API keys when `privacy.encrypt_local_data = true`.
|
|
- Input panel respects a new `ui.input_max_rows` setting so long prompts expand predictably before scrolling kicks in.
|
|
- Command palette offers fuzzy `:model` filtering and `:provider` completions for fast switching.
|
|
- Message rendering caches wrapped lines and throttles streaming redraws to keep the TUI responsive on long sessions.
|
|
- Chat history honors `ui.scrollback_lines`, trimming older rows to keep the TUI responsive and surfacing a "↓ New messages" badge whenever updates land off-screen.
|
|
|
|
### Changed
|
|
- The main `README.md` has been updated to be more concise and link to the new documentation.
|
|
- Default configuration now pre-populates both `providers.ollama` and `providers.ollama-cloud` entries so switching between local and cloud backends is a single setting change.
|
|
- `McpMode` support was restored with explicit validation; `remote_only`, `remote_preferred`, and `local_only` now behave predictably.
|
|
- Configuration loading performs structural validation and fails fast on missing default providers or invalid MCP definitions.
|
|
- Ollama provider error handling now distinguishes timeouts, missing models, and authentication failures.
|
|
- `owlen` warns when the active terminal likely lacks 256-color support.
|
|
- `config.toml` now carries a schema version (`1.2.0`) and is migrated automatically; deprecated keys such as `agent.max_tool_calls` trigger warnings instead of hard failures.
|
|
- Model selector navigation (Tab/Shift-Tab) now switches between local and cloud tabs while preserving selection state.
|
|
- Header displays the active model together with its provider (e.g., `Model (Provider)`), improving clarity when swapping backends.
|
|
|
|
---
|
|
|
|
## [0.1.10] - 2025-10-03
|
|
|
|
### Added
|
|
- **Material Light Theme**: A new built-in theme, `material-light`, has been added.
|
|
|
|
### Fixed
|
|
- **UI Readability**: Fixed a bug causing unreadable text in light themes.
|
|
- **Visual Selection**: The visual selection mode now correctly colors unselected text portions.
|
|
|
|
### Changed
|
|
- **Theme Colors**: The color palettes for `gruvbox`, `rose-pine`, and `monokai` have been corrected.
|
|
- **In-App Help**: The `:help` menu has been significantly expanded and updated.
|
|
|
|
## [0.1.9] - 2025-10-03
|
|
|
|
*This version corresponds to the release tagged v0.1.10 in the source repository.*
|
|
|
|
### Added
|
|
- **Material Light Theme**: A new built-in theme, `material-light`, has been added.
|
|
|
|
### Fixed
|
|
- **UI Readability**: Fixed a bug causing unreadable text in light themes.
|
|
- **Visual Selection**: The visual selection mode now correctly colors unselected text portions.
|
|
|
|
### Changed
|
|
- **Theme Colors**: The color palettes for `gruvbox`, `rose-pine`, and `monokai` have been corrected.
|
|
- **In-App Help**: The `:help` menu has been significantly expanded and updated.
|
|
|
|
## [0.1.8] - 2025-10-02
|
|
|
|
### Added
|
|
- **Command Autocompletion**: Implemented intelligent command suggestions and Tab completion in command mode.
|
|
|
|
### Changed
|
|
- **Build & CI**: Fixed cross-compilation for ARM64, ARMv7, and Windows.
|
|
|
|
## [0.1.7] - 2025-10-02
|
|
|
|
### Added
|
|
- **Tabbed Help System**: The help menu is now organized into five tabs for easier navigation.
|
|
- **Command Aliases**: Added `:o` as a short alias for `:load` / `:open`.
|
|
|
|
### Changed
|
|
- **Session Management**: Improved AI-generated session descriptions.
|
|
|
|
## [0.1.6] - 2025-10-02
|
|
|
|
### Added
|
|
- **Platform-Specific Storage**: Sessions are now saved to platform-appropriate directories (e.g., `~/.local/share/owlen` on Linux).
|
|
- **AI-Generated Session Descriptions**: Conversations can be automatically summarized on save.
|
|
|
|
### Changed
|
|
- **Migration**: Users on older versions can manually move their sessions from `~/.config/owlen/sessions` to the new platform-specific directory.
|
|
|
|
## [0.1.4] - 2025-10-01
|
|
|
|
### Added
|
|
- **Multi-Platform Builds**: Pre-built binaries are now provided for Linux (x86_64, aarch64, armv7) and Windows (x86_64).
|
|
- **AUR Package**: Owlen is now available on the Arch User Repository.
|
|
|
|
### Changed
|
|
- **Build System**: Switched from OpenSSL to rustls for better cross-platform compatibility.
|