978c86cc9a
Add Phase 2 test coverage for infrastructure modules: - state.rs: 6 tests (defaults, serde round-trips, UserState deref/clone) - provider_client.rs: 2 tests (ProviderMessage serde) - llm.rs: 12 tests (FollowUpMessage serde, joined_len, parse_article_html extraction with article/main/role=main tags, fallback, exclusions, truncation, fragment skipping) - chat.rs: 17 tests (doc_to_chat_session, doc_to_chat_message BSON conversion, resolve_provider_url for all providers) Refactor: extract parse_article_html from fetch_article_text for testability without HTTP. Refactor resolve_provider_url to accept explicit params instead of full ServerState, avoiding need for MongoDB in tests. Total test count: 129 (up from 92). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>