Add four targeted tests hitting the previously uncovered branches in
`client.extract_responses_text` (lines 221–233): dict items with a
non-list content field, content list entries that are not dicts, dict
entries whose text value is not a str, and object items where
`getattr(entry, "text")` is non-str.
Also declare `aiohttp` in the optional [test] extra so the full suite
can import `routes.py` without a ModuleNotFoundError.
Branch coverage: 99% (4 branches missed) → 100% (146/146 branches).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>