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 Core
This crate provides the core abstractions and data structures for the Owlen ecosystem.
It defines the essential traits and types that enable communication with various LLM providers, manage sessions, and handle configuration.
Key Components
Providertrait: The fundamental abstraction for all LLM providers. Implement this trait to add support for a new provider.Session: Represents a single conversation, managing message history and context.Model: Defines the structure for LLM models, including their names and properties.- Configuration: Handles loading and parsing of the application's configuration.