Fixed: Removed unwrap(), directly assign files.last_mut() after push.
Fixed: Changed to if let Some(model_ref) = &model pattern.
Fixed: Implemented custom Debug trait for ProviderConfig and ModelConfig that redacts API keys.
Fixed: Added retry logic with exponential backoff for HTTP 429 responses (max 3 retries).
Fixed: Refactored load_for_model to load TOML once via load_toml_config().
Fixed: Removed unused _path_prefix parameter from resolve_model_config.
Fixed: Added error context to JSON parsing failures with response body.
Fixed: Added timeout_secs field to ProviderConfig, configurable via config file.
Status: Deferred (per user request)
Status: Keep for backward compatibility, remove in next major version.
Status: Deferred - requires larger refactoring.
Status: Partial - only 429 rate limiting retry implemented.
Issue: Cannot configure connection pool size, keep-alive, etc. Fix: Expose HTTP client configuration options.
Issue: Cannot hook into request/response cycle for logging, metrics, etc. Fix: Consider middleware/interceptor pattern.
Issue: find_sections_by_key and search_toml_sections add complexity to config.rs.
Fix: Move to src/config/search.rs or similar.
Issue: Request building logic is mixed with client implementation.
Fix: Extract to separate RequestBuilder trait or struct.
Issue: OpenAI and Anthropic SSE parsing share similar patterns but are duplicated. Fix: Create common SSE parsing utilities.
Issue: No tests for network failures, malformed responses, etc. Fix: Add tests using mock server for error scenarios.
Issue: SSE parsing handles external input but has no fuzz testing.
Fix: Add fuzz tests for SseBuffer::next_line().
Issue: No documentation about panic guarantees.
Fix: Add # Panics section to public API documentation.
Issue: No SECURITY.md file.
Fix: Add security policy document.