Repository navigation
Allow a separate model for regression testing agents - #281
zwanski-start wants to merge 1 commit into
Conversation
Add a testing_model global setting and --testing-model CLI flag. Coding
and initializer agents keep using --model; testing agents spawned by the
orchestrator use --testing-model, falling back to --model when unset.
The Settings page gets a Testing Model selector ('Same as coding' by
default), and switching API provider clears the override.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🔍 QA report: ✅ PassedTester: Ada (cubefarm agent, in a fresh session) · Round: 1 · Author: Dennis Coding and regression testing agents can now use different models, with the same model as the fallback. I checked the full path with the subprocess launch stubbed: Settings page → PATCH /api/settings → agent start (--testing-model) → autonomous_agent_demo → orchestrator → testing agent --model. Validation covers invalid values, legacy-ID remapping, clearing, and reset on provider switch. Lint, types and tests show no new failures (mypy and the 21 pytest failures are the same as master), the UI builds, and the new selector saves and keeps its value in a real browser with no console errors.
🧪 Commands run
No browser screenshots were taken in this round. Posted by cubefarm · merges automatically once GitHub's checks pass |
🔍 QA report: ✅ PassedTester: Ken (cubefarm agent, in a fresh session) · Round: 1 · Author: Dennis Coding and regression testing agents can now use different models. Testing agents get --model <testing_model> and fall back to the coding model when none is set, and coding, batch-coding and initializer agents are unchanged. Validation, legacy remapping, clearing and resetting on provider switch in the settings API were all checked directly and work; ruff, mypy (no new errors), the security tests, the new unit tests, the UI build and lint all pass. The Playwright check of the Settings selector was not done because the QA session hit its usage limit.
🧪 Commands run
No browser screenshots were taken in this round. Posted by cubefarm · merges automatically once GitHub's checks pass |
Closes #146
What changed
Coding agents and regression testing agents can now use different models, for example Opus for coding and Sonnet for testing.
parallel_orchestrator.py): newtesting_modelparameter. Testing agents get--model <testing_model>. When no testing model is set, they fall back tomodel. Coding, batch-coding and initializer agents still usemodel.--testing-modelflag onautonomous_agent_demo.pyandparallel_orchestrator.py. If you leave it out, testing agents use--model, so existing commands behave exactly as before.testing_model, returned byGET /api/settingsand set withPATCH /api/settings. Sending""clears it.VALID_MODELS, and legacy model IDs are remapped. With other providers, any model name is accepted, the same waymodelalready works.get_all_settings(), as already happens formodelandapi_model.AgentStartRequestaccepts an optionaltesting_model. Global settings are used as the default.ProcessManager.start()passes--testing-modelthrough, andAgentStatusreportstesting_model. Scheduled starts also use the global testing model.SettingsView.tsx): new "Testing Model" selector under Model. The options are "Same as coding" (the default) plus the current provider's models.Verification
test_testing_model.py(4 tests, withPopenstubbed). It checks that the testing-agent command uses the testing model, coding and batch-coding commands keep the coding model, the testing model falls back to the coding model, and no flag is passed when no model is set.ruff check .passes.mypyreports no new errors in the changed files (the existing errors are elsewhere).test_security.pypasses, and so do the pytest suites (69 tests).npm run lintshows 0 errors (the 6 warnings were already there).npm run buildsucceeds.testing_model=claude-sonnet-4-6through the API.""clears the setting_get_settings_defaults()returns itAssumptions
--modelkeeps its meaning (coding, initializer and default model). I added--testing-modelrather than renaming to--coding-model, so existing scripts and the UI keep working.testing_ratio=0), so they ignore the setting.SettingsModal.tsxisn't imported anywhere (onlySettingsViewis rendered), so I didn't change it.🤖 Generated with Claude Code