Implements Phase 9: Remoting / Cloud Hybrid Deployment with complete WebSocket transport support and comprehensive failover mechanisms. **WebSocket Transport (remote_client.rs):** - Added WebSocket support to RemoteMcpClient using tokio-tungstenite - Full bidirectional JSON-RPC communication over WebSocket - Connection establishment with error handling - Text/binary message support with proper encoding - Connection closure detection and error reporting **Failover & Redundancy (failover.rs - 323 lines):** - ServerHealth tracking: Healthy, Degraded, Down states - ServerEntry with priority-based selection (lower = higher priority) - FailoverMcpClient implementing McpClient trait - Automatic retry with exponential backoff - Circuit breaker pattern (5 consecutive failures triggers Down state) - Background health checking with configurable intervals - Graceful failover through server priority list **Configuration:** - FailoverConfig with tunable parameters: - max_retries: 3 (default) - base_retry_delay: 100ms with exponential backoff - health_check_interval: 30s - circuit_breaker_threshold: 5 failures **Testing (phase9_remoting.rs - 9 tests, all passing):** - Priority-based server selection - Automatic failover to backup servers - Retry mechanism with exponential backoff - Health status tracking and transitions - Background health checking - Circuit breaker behavior - Error handling for edge cases **Dependencies:** - tokio-tungstenite 0.21 - tungstenite 0.21 All tests pass successfully. Phase 9 specification fully implemented. 🤖 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.