Skip to content

fix(evals): stop at startup when the eval model provider is missing - #119

Merged
chrisohearn merged 1 commit into
integration/mcp-events-20261109from
fix/evals-fail-fast-provider
Nov 14, 2026
Merged

chrisohearn merged 1 commit into
integration/mcp-events-20261109from
fix/evals-fail-fast-provider

Conversation

@chrisohearn

Copy link
Copy Markdown
Owner

The proxy-backed evals (mcp-tool-use with Codex models, and test-signal) crashed with a Python KeyError: 'vibeproxy' traceback when ~/.codex/config.toml had no vibeproxy provider. The traceback didn't say what was missing or that evals are optional.

Fix

  • evals/shared/proxy.ts: the TOML reader exits with a sentinel code when the config file, the model_providers table, or the vibeproxy entry is missing. readProxyConfig turns that into a ProxyConfigMissing error. proxyConfig(), which both evals call before any model request, prints that error's message and exits 2, without a stack trace. The Codex home is read from $CODEX_HOME when set, otherwise ~/.codex.
  • evals/shared/proxy.test.ts: covers the three missing cases and a configured provider (the control case).
  • FORK.md (new "Evals" section) and evals/README.md: on this fork, hosted CI, the Agent context budget check and the review of record gate model-facing text changes. Paid eval runs need the owner's go-ahead for each run.

No new feature. No eval or model call was run.

Acceptance checks

  • With no vibeproxy provider configured, node test-signal/run.ts --out <tmp> prints the following and exits 2, without creating any output:
    No `[model_providers.vibeproxy]` in <home>/.codex/config.toml.
    This eval sends model calls through a CLIProxyAPI provider with that name; set one up, or set CODEX_HOME to a Codex home that has it.
    Evals are optional and call paid models. CI does not run them. See evals/README.md.
    
  • node mcp-tool-use/run.ts --model gpt-6-astra --case review-round-uses-thread-send --samples 1 --out <tmp> prints the same message and exits 2 before any model call.
  • vp test run --config ../vite.config.ts shared/proxy.test.ts --maxWorkers=2 --no-file-parallelism (from evals/): 4 passed.
  • effect-tsgo tsrs --noEmit in evals/: exit 0, no errors.
  • vp fmt --check and vp lint on the changed files, plus the pre-commit hook's fmt, lint and knip:check: pass.
  • Hosted CI green on this head.

The broad local check:changed was not run: on the shared host it ran out of memory. CI runs the full suites.

Model and harness: Claude Opus 5.5 in Claude Code.

🤖 Generated with Claude Code

The proxy-backed evals (mcp-tool-use with Codex models, test-signal)
crashed with a Python KeyError traceback when ~/.codex/config.toml had
no `vibeproxy` provider. They now exit 2 with one message naming the
missing provider and the config path, and saying evals are optional and
paid. The config is read from $CODEX_HOME when set.

FORK.md and evals/README.md record that on this fork hosted CI, the
agent context budget check and the review of record gate model-facing
text changes; paid eval runs need the owner's go-ahead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 14, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-14T13:28:03.732249Z fc3671d PR opened
🔒 Security Review ✅ Completed 2026-11-14T13:29:43.091255Z fc3671d PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chrisohearn
chrisohearn merged commit 7e4afd5 into integration/mcp-events-20261109 Nov 14, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants