Judge test base runs only a local stub, never a real model - #525
Conversation
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_c713de50-91bb-4995-870a-b79f5726ed2b) |
98f5abb to
72da660
Compare
86705c2 to
31f7f98
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_b654833e-1e03-451d-a927-f8dbf6789c84) |
Tests on the base can no longer fall through to codex/claude/cursor, and enqueue is pinned to the temporary state folder. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013smxPCr4XeE7R77zVtN1u4 Change-Id: I7b2356d2fda21cbe253900540139827fcc4d8827
|
Queued — the merge queue status continues in this comment ↓. |
31f7f98 to
1aaedf3
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_1d6689e0-e592-4490-83eb-2ac966944dd6) |
|
@Mergifyio queue |
Merge Queue Status
This pull request spent 7 minutes 28 seconds in the queue, including 6 minutes 2 seconds running CI. Required conditions to merge
|
Summary
Checker test cases that ask the AI judge use one shared setup.
That setup cleared the runner list, so a test that forgot to pick one fell back to the real model tools.
Now the setup picks a local stand-in that always answers no, and a new test proves it.
Review Claim
Test cases on the shared setup can no longer reach a real model or the real judge queue.
Review Lane
behavior
Review Unit
engine-runtime
Safety Invariant
Test-only. The judge's runtime defaults are unchanged; only the shared test setup sets a stand-in. The new stub test fails on the parent slice and passes here.
Slice Rationale
The default flip lands alone so its one new failure mode is easy to see. Directly affected tests stay with it.
Stack position 2 of 7, split from one bundled change. Merge bottom-up.
Non-goals
Test Plan
Test Plan
python3 -m unittest tests.test_judge.TestAsk.test_test_base_runs_only_the_local_stubwith the parent slice's base —FAILED (failures=1); with this slice —OKpython3 -m unittest discover -s engine/hooks/llm-judge/tests—Ran 61 tests/OKpython3 -m unittest discover -s engine/hooks/wrong-check-reflect/tests—Ran 16 tests/OKpython3 -m unittest discover -s engine/hooks/diu-stop/tests—Ran 104 tests/OKuvx ruff check . --select E9,F—All checks passed!python3 engine/skills/make-pr/scripts/preflight.py --base <stack parent>—ok preflight passedRevert Plan
Revert Plan
git revert <merge-commit-sha>🤖 Generated with Claude Code
https://claude.ai/code/session_013smxPCr4XeE7R77zVtN1u4
Note
Low Risk
Test-only changes to
JudgeTestCasesetup and llm-judge unit tests; production judge runner defaults injudge.pyare untouched.Overview
Shared judge test setup now pins a local
stubrunner (Python subprocess that prints{"match": false}) viaRUNNERS_ENV, instead of clearing that env and risking fallback to real codex/claude/cursor tools when a test forgetsuse_runners.A new
test_test_base_runs_only_the_local_stublocks that behavior. Tests that assert production default runner order or investigate argv explicitlypop(RUNNERS_ENV)so they still exercise real defaults.test_enqueue_writes_only_to_temporary_state_directorywas added to ensure enqueue uses the patched temp state dir, not the default underHOME, whenSTATE_ENVis unset in a nested patch.Reviewed by Cursor Bugbot for commit 1aaedf3. Bugbot is set up for automated code reviews on this repo. Configure here.