This commit completes all remaining Sprint 1 tasks from the project analysis: **MCP RPC Timeout Protection** - Add configurable `rpc_timeout_secs` field to McpServerConfig - Implement operation-specific timeouts (10s-120s based on method type) - Wrap all MCP RPC calls with tokio::time::timeout to prevent indefinite hangs - Add comprehensive test suite (mcp_timeout.rs) with 5 test cases - Modified files: config.rs, remote_client.rs, presets.rs, failover.rs, factory.rs, chat_app.rs, mcp.rs **Async Migration Completion** - Remove all remaining tokio::task::block_in_place calls - Replace with try_lock() spin loop pattern for uncontended config access - Maintains sync API for UI rendering while completing async migration - Modified files: session.rs (config/config_mut), chat_app.rs (controller_lock) **Dependency Updates** - Update tokio 1.47.1 → 1.48.0 for latest performance improvements - Update reqwest 0.12.23 → 0.12.24 for security patches - Update 60+ transitive dependencies via cargo update - Run cargo audit: identified 3 CVEs for Sprint 2 (sqlx, ring, rsa) **Code Quality** - Fix clippy deprecation warnings (generic-array 0.x usage in encryption/storage) - Add temporary #![allow(deprecated)] with TODO comments for future generic-array 1.x upgrade - All tests passing (except 1 pre-existing failure unrelated to these changes) Sprint 1 is now complete. Next up: Sprint 2 security fixes and test coverage improvements. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Owlen CLI
This crate is the command-line entry point for the Owlen application.
It is responsible for:
- Parsing command-line arguments.
- Loading the configuration.
- Initializing the providers.
- Starting the
owlen-tuiapplication.
There are two binaries:
owlen: The main chat application.owlen-code: A specialized version for code-related tasks.