Red-team QA pass found no bugs but two test gaps:
- Whitespace-only api_key now tested (falls through to placeholder)
- IPv6 loopback [::1] now tested (already worked, just untested)
- 172.32.x boundary now tested (correctly NOT treated as private)
- Docstring note about private-network SSRF caveat: placeholder key
gets 401'd by real auth servers, fail-fast by design
Local model servers running on localhost, 127.0.0.1, .local mDNS hostnames,
or RFC 1918 private networks don't require authentication. Previously,
_resolve_delegation_credentials() hard-required an API key for any base_url,
making it impossible to use Ollama or similar local servers for subagent
delegation without setting a dummy key.
Changes:
- Add _is_local_base_url() helper detecting localhost, loopback, .local,
and RFC 1918 private network addresses
- base_url path: skip API key requirement for local endpoints, use
'ollama' placeholder key (accepted by local servers)
- provider path: same logic — if resolve_runtime_provider returns an
empty API key but the resolved base_url is local, use 'ollama' placeholder
- Remote endpoints still require a real API key (no security regression)
- Update existing test to use remote URL (was testing localhost which is
now allowed)
- Add 19 new tests covering local provider credential resolution