Skip to content

feat(tests): route checker LLM through litellm gpt-5.6-luna via coder-eval 0.11.5 - #2864

Merged
akshaylive merged 4 commits into
mainfrom
akshaya/luna_judge
Aug 28, 2026
Merged

feat(tests): route checker LLM through litellm gpt-5.6-luna via coder-eval 0.11.5#2864
akshaylive merged 4 commits into
mainfrom
akshaya/luna_judge

Conversation

@akshaylive

@akshaylive akshaylive commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

Bump coder-eval to 0.11.5 and set checker_context.api_route defaults (default/smoke/smoke-windows/nightly/activation experiments) so the success-checker/judge calls litellm -> gpt-5.6-luna instead of the built-in default, resolving credentials from CODEX_BASE_URL/CODEX_API_KEY.

@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Claude finished @akshaylive's task in 2m 9s —— View job


PR Review: Route checker LLM through litellm gpt-5.6-luna

  • Read review criteria and project conventions
  • Read full diff
  • Read each changed file in full
  • Check for secrets, cross-skill refs, and link validity
  • Post review findings

Summary

Bumps coder-eval from 0.11.2 to 0.11.3 and adds an identical checker_context.api_route block to 5 experiment files (default, smoke, smoke-windows, nightly, activation) so the success-checker/judge routes through litellm → gpt-5.6-luna using CODEX_BASE_URL/CODEX_API_KEY env vars.

Change-by-Change Review

1. tests/.coder-eval-version

OK — Clean version bump from 0.11.20.11.3.

2. tests/experiments/default.yaml

OKchecker_context block inserted at line 26, correctly placed between agent: and post_run:. The env var names (CODEX_BASE_URL, CODEX_API_KEY) reference variable names, not secrets. This is a tempdir-based experiment so env vars are inherited from the host — no env_passthrough_extra needed.

3. tests/experiments/smoke.yaml

OK — Identical checker_context block. CODEX_API_KEY and CODEX_BASE_URL are already listed in env_passthrough_extra (lines 29–30), so the docker sandbox will have access to these credentials. Consistent.

4. tests/experiments/smoke-windows.yaml

OK — Identical checker_context block. Tempdir driver — env vars inherited from host. No issues.

5. tests/experiments/nightly.yaml

OK — Identical checker_context block. CODEX_API_KEY and CODEX_BASE_URL are already in env_passthrough_extra (lines 29–30). Consistent with smoke.yaml.

6. tests/experiments/activation.yaml

OK — Identical checker_context block. No explicit sandbox driver (defaults to tempdir), so env vars are inherited. No issues.

What's Missing

Severity: Low — Three other active experiment files lack checker_context and will continue using the built-in default checker model:

  • tests/experiments/flow-v2-preview.yaml — active preview experiment (docker driver)
  • tests/experiments/same-ground-headtohead.yaml — campaign harness (docker driver)
  • tests/experiments/skill-comparison-template.yaml — template for ad-hoc comparisons

This may be intentional (those experiments may use different infra or aren't run against the same judge criteria), but worth confirming. If flow-v2-preview.yaml runs with docker and references CODEX_* env vars elsewhere, it would need env_passthrough_extra entries for CODEX_BASE_URL/CODEX_API_KEY in addition to the checker_context block (it currently doesn't pass those vars through).

Area Ratings

Area Status Notes
Frontmatter N/A No skill frontmatter changed
E2E Tests OK Experiment config only — no task changes
Skill Body N/A No skill content changed
References & Assets N/A No references changed
Repo Hygiene OK No secrets (env var names only), scoped changes, no cross-skill refs

Issues for Manual Review

  • Confirm whether flow-v2-preview.yaml and same-ground-headtohead.yaml should also route through litellm → gpt-5.6-luna, or if they intentionally use different checker infra.
  • Verify that the api_version: "2024-05-01" parameter is correct for the litellm/gpt-5.6-luna endpoint being targeted.

Conclusion

Clean, well-scoped change. The checker_context block is identical across all 5 files, env var passthrough is already configured in the docker-based experiments, and no secrets are committed. Approve — only a minor question about whether the remaining experiment files need the same treatment.

--- |

@bai-uipath bai-uipath left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM on the direction, but this has never run e2e against a real task. CI died on a missing import before a single judge call went over the wire.

  • Run one real task e2e before merge. default.yaml is tempdir, so the checker runs on the host: install the extra locally and run the data-fabric choiceset task that errored in CI, plus one simulation task to confirm the reject. Nothing else proves the call shape, and the bare gpt-5.6-luna id carries no provider prefix where the upstream docs do.

  • The litellm extra is installed nowhere, and this repo can't fix it. Under the docker driver the checker runs in-container, so the agent image needs it, as do the coder_eval_uipath host venvs and the skills workflow installs. Fix: --extra litellm in coder_eval's agent Dockerfile, release, re-pin.

  • Every simulation.enabled task hard-errors at route resolution. The orchestrator rejects a litellm eval route alongside simulation or agent_judge, so 318 of 1231 tasks die before any criterion runs, roughly 30% of the suite counted as misses. Fix: scope it at the task layer to the 54 llm_judge tasks without simulation.

Minor: api_version is verbatim from the upstream doc example and CODEX_API_VERSION is set nowhere in the pipelines; the activation experiment has no llm_judge criteria, so its block is dead.

akshaylive added a commit that referenced this pull request Aug 27, 2026
Under driver: docker the whole orchestrator, including the checker/judge,
runs inside the container — installing litellm on the GH Actions host
(via coder-eval[litellm]) doesn't reach it. skills-image extends the
coder-eval-agent base image, which is built without the litellm extra, so
checker_context.api_route: {route: litellm} (PR #2864) failed with
"checker_context route 'litellm' needs the litellm library" on smoke/
nightly runs. Bake it into the overlay Dockerfile instead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@uipreliga

This comment was marked as outdated.

@uipreliga uipreliga left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix what you agree with and 🚢

akshaylive added a commit that referenced this pull request Aug 27, 2026
…nt defaults

Addresses PR #2864 review. coder-eval rejects route: litellm outright on any
task with simulation.enabled or an enabled agent_judge criterion (the
simulator/agent_judge run as real Claude Code subprocesses, incompatible with
an arbitrary litellm-fronted gateway) -- see
orchestrator._reject_litellm_eval_route_if_unsupported. 303 of 359 llm_judge
tasks in this repo have simulation.enabled, so the previous experiment-level
default broke all of them at setup, including one smoke-tagged task
(uipath-maestro-flow/interactive/solution_select.yaml).

- Remove checker_context from experiments/{default,smoke,smoke-windows,
  nightly,activation}.yaml. activation.yaml has zero llm_judge criteria, so
  it gets no replacement.
- Add checker_context.api_route directly to the 56 task YAMLs that have an
  llm_judge criterion and no simulation.enabled -- the only tasks it's safe
  and meaningful for. This also fixes same-ground-headtohead.yaml and
  flow-v2-preview.yaml, which never got the experiment-level block: a
  task-level setting applies under any experiment that runs the task.
- Fix model: azure/gpt-5.6-luna, not the bare id -- litellm resolves an
  unprefixed model to provider `openai`, which would silently ignore the
  Azure-shaped `params.api_version`. Matches coder_eval's own
  TASK_DEFINITION_GUIDE.md example verbatim.
- tests/Makefile: install the litellm extra for local `make install`, and
  point at the new README section for CODEX_BASE_URL/CODEX_API_KEY.
- tests/README.md: document checker_context.api_route, the litellm/
  simulation incompatibility, and what each driver needs (host extra for
  tempdir, baked into the agent image for docker -- coder-eval-agent bags
  it as of 0.11.4).
- smoke-skills.yml: note the one deliberate exception to "the grader stays
  on Claude" now that a few tasks route their own llm_judge through the
  gate's CODEX_* endpoint.

Windows RPA smoke (smoke-rpa-skills.yml) and skill-activation-gate.yml need
no change: no task either runs carries checker_context now that it's
task-scoped. run-coder-eval.yml's docker/Windows jobs already installed the
litellm extra and passed CODEX_BASE_URL/CODEX_API_KEY through.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@akshaylive akshaylive changed the title feat(tests): route checker LLM through litellm gpt-5.6-luna via coder-eval 0.11.3 feat(tests): route checker LLM through litellm gpt-5.6-luna via coder-eval 0.11.4 Aug 27, 2026
akshaylive and others added 3 commits August 28, 2026 10:59
…-eval 0.11.3

Bump coder-eval to 0.11.3 and set checker_context.api_route defaults
(default/smoke/smoke-windows/nightly/activation experiments) so the
success-checker/judge calls litellm -> gpt-5.6-luna instead of the
built-in default, resolving credentials from CODEX_BASE_URL/CODEX_API_KEY.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
0.11.4 bakes --extra litellm into the coder-eval-agent base image
(UiPath/coder_eval#142), which tests/experiments/*.yaml's litellm-routed
checker_context needs available in-container under driver: docker.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…nt defaults

Addresses PR #2864 review. coder-eval rejects route: litellm outright on any
task with simulation.enabled or an enabled agent_judge criterion (the
simulator/agent_judge run as real Claude Code subprocesses, incompatible with
an arbitrary litellm-fronted gateway) -- see
orchestrator._reject_litellm_eval_route_if_unsupported. 303 of 359 llm_judge
tasks in this repo have simulation.enabled, so the previous experiment-level
default broke all of them at setup, including one smoke-tagged task
(uipath-maestro-flow/interactive/solution_select.yaml).

- Remove checker_context from experiments/{default,smoke,smoke-windows,
  nightly,activation}.yaml. activation.yaml has zero llm_judge criteria, so
  it gets no replacement.
- Add checker_context.api_route directly to the 56 task YAMLs that have an
  llm_judge criterion and no simulation.enabled -- the only tasks it's safe
  and meaningful for. This also fixes same-ground-headtohead.yaml and
  flow-v2-preview.yaml, which never got the experiment-level block: a
  task-level setting applies under any experiment that runs the task.
- Fix model: azure/gpt-5.6-luna, not the bare id -- litellm resolves an
  unprefixed model to provider `openai`, which would silently ignore the
  Azure-shaped `params.api_version`. Matches coder_eval's own
  TASK_DEFINITION_GUIDE.md example verbatim.
- tests/Makefile: install the litellm extra for local `make install`, and
  point at the new README section for CODEX_BASE_URL/CODEX_API_KEY.
- tests/README.md: document checker_context.api_route, the litellm/
  simulation incompatibility, and what each driver needs (host extra for
  tempdir, baked into the agent image for docker -- coder-eval-agent bags
  it as of 0.11.4).
- smoke-skills.yml: note the one deliberate exception to "the grader stays
  on Claude" now that a few tasks route their own llm_judge through the
  gate's CODEX_* endpoint.

Windows RPA smoke (smoke-rpa-skills.yml) and skill-activation-gate.yml need
no change: no task either runs carries checker_context now that it's
task-scoped. run-coder-eval.yml's docker/Windows jobs already installed the
litellm extra and passed CODEX_BASE_URL/CODEX_API_KEY through.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@akshaylive akshaylive changed the title feat(tests): route checker LLM through litellm gpt-5.6-luna via coder-eval 0.11.4 feat(tests): route checker LLM through litellm gpt-5.6-luna via coder-eval 0.11.5 Aug 28, 2026
…ault

Reverts e36dce6. The per-task scoping worked around coder_eval
rejecting route: litellm on any task with simulation.enabled or an
enabled agent_judge criterion -- but the real fix belongs upstream.
coder_eval now resolves the simulator's route independently of
checker_context.api_route entirely (Orchestrator.simulator_route), so
route: litellm is safe as an experiment default even with
simulation.enabled: true.

- Restore checker_context.api_route to defaults/{default,smoke,
  smoke-windows,nightly,activation}.yaml, keeping the azure/gpt-5.6-luna
  model fix (bare gpt-5.6-luna resolves to provider openai, which
  silently ignores the Azure-shaped params.api_version).
- Remove the 56 per-task checker_context blocks -- redundant now that
  the experiment default covers every llm_judge task safely.
- tests/Makefile: keep the [litellm] extra for local `make install`
  (still needed for driver: tempdir now that this is the default, not
  a per-task exception).
- tests/README.md: rewrite Checker Context to describe the new
  simulator-decoupled default instead of "set this per-task, never as
  an experiment default." Still calls out that agent_judge + route:
  litellm remains unsupported (no agent_judge criteria in this repo
  today).
- smoke-skills.yml: drop the per-task-exception comment on AGENT_MODEL,
  no longer accurate now that ~all llm_judge tasks route through
  litellm by default, not "a handful."

NOT bumping tests/.coder-eval-version yet -- the coder_eval fix
(simulator_route decoupling) is committed on
akshaya/scope-litellm-route-to-llm-judge but not released. Merging
this against the current 0.11.4 pin would reintroduce the original
CI failure (route: litellm rejected outright on simulation-enabled
tasks). Bump the pin once coder_eval ships a release containing that
fix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@akshaylive
akshaylive merged commit 636db81 into main Aug 28, 2026
15 checks passed
@akshaylive
akshaylive deleted the akshaya/luna_judge branch August 28, 2026 19:38
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.

3 participants