Repository navigation
Setup offers Codex (#396) - #406
Merged
Merged
Conversation
With codex on PATH, Setup accepts it as the Harness, and it's the default answer when it's the only one installed. For Codex, Setup lists the Models codex debug models offers, by slug and display name, then the Efforts the chosen Model supports. Each answer is matched as a Run matches it and written as Codex names it; one the catalog doesn't have is asked again, with the valid choices. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
When codex debug models fails, Setup says so and leaves the harness settings as they are, rather than asking the Harness again, which with only codex installed could never end. The catalog's errors no longer speak of checking, as Setup reads it to list the choices, and locals in ask_harness and Catalog::efforts get names that say what they hold. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 5, 2026
Closed
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Setup now offers Codex. Its Model and Effort questions show Codex's catalog and are checked against it, the same way a Run checks them.
In
harness.rs,Catalogis now public, withread,listed,effortsandsettle.Choice::check_codexreads the catalog through it too, so a Run and Setup can't disagree about a Model or Effort.Evidence
Harness … claude or codex (not supported yet) [claude]: codex→codex is not supported yet: Codex sessions come in a later thirdshift.After: these new tests in
tests/setup.rsfail onorigin/issue-136(they time out waiting forModel for codex) and pass here:codex_is_offered_with_its_models_and_the_chosen_models_efforts:codex,gpt-5.5,highare written asdefault = "codex",model = "gpt-5.5",effort = "high".with_only_codex_installed_codex_is_the_default_answer: the prompt isclaude (not installed) or codex [codex].a_codex_display_name_and_capitalised_effort_are_written_as_codex_names_them:GPT-6.1-Sol,Maxare written asgpt-6.1-sol,max.an_unknown_codex_model_or_unsupported_effort_is_asked_again_with_the_choices:gpt-7getschoose one of gpt-6.1-sol, gpt-6-luna, gpt-5.5, andmaxon gpt-5.5 getschoose one of low, medium, high, xhigh.the_codex_model_and_effort_default_to_the_current_ones_as_codex_names_themwhen_codexs_catalog_cant_be_read_the_harness_is_left_as_it_wascargo test: every binary is green.cargo clippy --all-targets -D warningsandcargo fmt --checkare clean.Merge Danger
Door: two-way
Only the interactive Setup questions changed. The User config's format is the same.
Blast Radius: Setup
Someone with
codexinstalled now gets Codex's Model and Effort questions if they choose it. A Run's Codex errors also read slightly differently:codex debug models failed, so Codex's Models can't be read: ….Unaddressed findings
Standards
Catalogis now public with four methods (interface widening). Skipped: Setup has to list the Models and Efforts, not just check them. KeepingCatalogModelprivate and returning choices keeps the surface small.Catalog::readrunscodexitself (dependency created rather than accepted). Skipped:parseis still the seam the unit tests use, and the integration tests use the fakecodex.listed()formatsslug (Display name)in the domain type (Feature Envy). Skipped: formatting there keepsCatalogModelprivate. Otherwise its fields would have to be exposed.matchinask_harnessrepeats the one inChoice::check(Repeated Switches). Skipped: one asks and the other checks, and with two Harnesses a trait would be speculative.ask_claude/ask_codexloops share an ask → validate → retry shape (Duplicated Code). Skipped: Claude re-asks both settings together after one test call, while Codex re-asks each on its own. A shared helper would hide that difference.CODEX_MODEL/CODEX_EFFORTsit besideMODEL/EFFORTin the tests. Skipped: renamingMODEL/EFFORTwould touch dozens of unrelated tests.Spec
gpt-5.5 (GPT-5.5)repeats itself when the names differ only in case. No change: the spec asks for "slug and display name".Closes #396
🤖 Generated with Claude Code