f93b350711
Follow-ups on top of the salvaged #92785 commit: - Pre-gate now matches base URLs via normalize_route_base_url and provider ids via custom_provider_aliases, mirroring the semantics of get_custom_provider_model_capability. The raw string comparison silently dropped declarations whose config spelling differed only by host case or trailing slash (proven empirically: …/v1/ vs …/v1 with a non-matching provider name returned (False, False) despite an explicit prompt_caching: true). - get_provider(..., allow_network=False) in the early-init/stub branch: the policy runs per request destination (MoA aggregator, auxiliary replans via blank_cache_policy_stub, early agent init) and a cold models.dev cache triggered a measured ~450 ms foreground registry fetch from the send path. A catalog miss degrades to the conservative side. - Debug-log the previously silent provider-lookup exception fallback. - Tests: _make_agent defaults _custom_providers=[] (post-init reality; keeps built-in-route tests off the catalog/config fallback), the two early-init tests delete the attr explicitly, and three regression tests pin the URL-drift, spaced-legacy-name, and no-network contracts (all three fail on the unfixed commit).