Bug
ifixai/judge/config.py — JudgeConfig has provider, api_key, model, temperature, max_calls_per_run, timeout, but no endpoint.
When using a custom endpoint (e.g. Anthropic-compatible proxy like MiniMax, or self-hosted vLLM), the judge provider has no way to receive it. JudgeEvaluator in judge/evaluator.py constructs ProviderConfig without endpoint, so the judge always falls back to the provider default.
Impact
Any --provider with a custom --endpoint will have the SUT connect correctly but the judge will use the wrong endpoint. This makes self-judge mode unusable with proxy/non-default endpoints.
Suggested Fix
judge/config.py:
class JudgeConfig(BaseModel):
provider: str = ""
model: Optional[str] = None
api_key: str = ""
endpoint: Optional[str] = None # <-- add
...
judge/evaluator.py:
self._provider_config = ProviderConfig(
provider=config.provider,
api_key=config.api_key,
model=config.model,
endpoint=config.endpoint, # <-- add
timeout=config.timeout,
)
Reproduction
ifixai run --provider anthropic \
--endpoint "https://api.minimaxi.com/anthropic" \
--api-key "$MINIMAX_API_KEY" \
--model MiniMax-M2.7 \
--eval-mode self \
--strategic
- SUT connects to MiniMax ✅
- Structural tests (B01-B04, B25) PASS ✅
- Judge calls go to
api.anthropic.com → 401 ❌
Tested on v1.0.0 (clone from main).
Bug
ifixai/judge/config.py—JudgeConfighasprovider,api_key,model,temperature,max_calls_per_run,timeout, but noendpoint.When using a custom endpoint (e.g. Anthropic-compatible proxy like MiniMax, or self-hosted vLLM), the judge provider has no way to receive it.
JudgeEvaluatorinjudge/evaluator.pyconstructsProviderConfigwithout endpoint, so the judge always falls back to the provider default.Impact
Any
--providerwith a custom--endpointwill have the SUT connect correctly but the judge will use the wrong endpoint. This makes self-judge mode unusable with proxy/non-default endpoints.Suggested Fix
judge/config.py:judge/evaluator.py:Reproduction
api.anthropic.com→ 401 ❌Tested on v1.0.0 (clone from main).