-
Your Name authored
Add three robustness improvements to ClaudeProviderHandler: 1. Message Role Validation (_validate_messages): - Validate roles are one of: user, assistant, system, tool - Auto-fix unknown roles to 'user' - Ensure system messages only appear at start - Insert synthetic assistant messages between consecutive user messages - Merge consecutive assistant messages - Validate tool messages have tool_call_id - Reference: vendors/kilocode normalizeMessages() + ensure_alternating_roles() 2. Tool Result Size Validation (_truncate_tool_result): - Truncate oversized tool results with configurable limit (default 100k chars) - Add truncation notice with original length info - Reference: vendors/claude applyToolResultBudget 3. Model Fallback Support (handle_request refactoring): - Add _get_fallback_models() to read fallback list from config - Retry with fallback models on retryable errors (rate limit, overloaded) - Split into handle_request() (with retry) and _handle_request_with_model() (actual logic) - Log fallback attempts for debugging All methods integrated into handle_request() for automatic application.
5c357f98