Files
ironclaw/tests
Zaki Manian a9cea6c21d fix(ci): skip NearAI URL DNS validation for non-NearAI backends (#2080)
* fix(ci): skip NearAI URL DNS validation when NearAI is not the active backend

LlmConfig::resolve() unconditionally called validate_base_url() on
default NearAI URLs (private.near.ai), which performs synchronous DNS
resolution. In environments without external DNS access (CI runners,
containers), this blocks startup then fails — breaking all E2E tests
when a different LLM backend is configured.

Conditionally skip validation when NearAI is not the active backend
and the user hasn't explicitly set the URL. Also removes redundant
@pytest.mark.asyncio decorators from test_webhook.py (asyncio_mode =
"auto" handles this automatically per project convention).

https://claude.ai/code/session_01FybyQXiX2HDhaGizxr2PFC

* fix(ci): also validate NearAI URLs when DB override or NearAI embeddings are active

The validation gate for NEARAI_BASE_URL and NEARAI_AUTH_URL previously
only checked whether NearAI was the primary chat backend or the URL was
explicitly set via env var. This allowed a base_url supplied through
settings.llm_builtin_overrides (DB override) or used by NearAI
embeddings (embeddings.provider=nearai) to bypass the SSRF guard.

Widen both validation gates to also fire when:
- nearai_override provides a base_url (DB builtin override)
- NearAI embeddings are enabled (embeddings enabled + provider=nearai)

https://claude.ai/code/session_01YSmxv6gT4d9kJu5vsjxpCz

* ci: retrigger CI checks

https://claude.ai/code/session_01AQ4iNcEfFeniBA1iMvFTuN

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: ilblackdragon@gmail.com <ilblackdragon@gmail.com>
2026-04-13 18:07:43 +09:00
..