494f68f9d9
This track executes after startup_speedup, test_batching_refactor, and qwen_llama_grok_integration land. Section 10 documents the expected post-tracks codebase state and answers 6 critical coordination questions: - Q1: Existing _send_<vendor>() functions (returning str) are renamed to _send_<vendor>_result() and changed to return Result[str] (Option A: clean rename, contained to internal callers). - Q2: send_openai_compatible in src/openai_compatible.py STAYS as-is (it raises at the SDK boundary; correct per Fleury). The new _send_<vendor>_result() functions catch and convert to ErrorInfo. - Q3: Deprecation warning on send() will produce Python warnings in tests; filterwarnings in conftest.py silences them during transition. - Q4: The except ProviderError clauses in src/ai_client.py become dead code after the refactor and are removed in Phase 3. - Q5: ProviderError is FULLY REPLACED by ErrorInfo (a value, not an exception). ProviderError removed entirely; ErrorInfo is the new error type. - Q6: ProviderError.ui_message() moves to ErrorInfo.ui_message(). Phase 1 also adds a baseline verification task to confirm the 3 pending tracks have merged before proceeding. Also renumbered Out of Scope (11) and See Also (12) sections to preserve monotonic section numbers.