Skip to content

feat(codex): support provider-specific review models - #451

Open
neverdie0710 wants to merge 5 commits into
SaladDay:mainfrom
neverdie0710:feat/codex-provider-review-model
Open

feat(codex): support provider-specific review models#451
neverdie0710 wants to merge 5 commits into
SaladDay:mainfrom
neverdie0710:feat/codex-provider-review-model

Conversation

@neverdie0710

Copy link
Copy Markdown

Codex providers can now choose their own review model in the TUI. For example, switching from provider A to B projects A’s or B’s selection into the top-level review_model used by Codex, without requiring separate CODEX_HOME directories.

The optional selection is stored as meta.codexReviewModel and takes precedence over common config. Leaving it empty preserves existing configuration behavior. Preview, normal switching, temporary launches and shared-session launches honor the override; live-config backfill preserves the underlying value so clearing an override restores the previous behavior, including clearing while a temporary launch is still running. Chat/Anthropic model routing also preserves an explicitly selected review model even when it is absent from the model catalog.

Includes English/Chinese UI help and README documentation, plus regression coverage for persistence, common-config precedence, clearing after backfill, official providers without metadata, both launch paths, routing and narrow-terminal rendering.

Validation:

  • cargo fmt --check
  • Ten review-model unit tests pass.
  • All 71 provider_service integration tests and all nine start_codex_shared tests pass.
  • Broader Codex library tests: 724 pass, one ignored, one fails in the unchanged transcript-index fixture. The same failure reproduces on clean upstream 8a5614db (codex_refresh_keeps_the_selected_message_when_prepend_moves_its_page: unable to open temporary SQLite index).

cargo clippy --all-targets --locked is blocked by the existing clippy::reversed_empty_ranges error in src/cli/tui/ui/home_chart.rs:806, also with the pinned Rust 1.91.1 toolchain. With only that lint allowed, the all-target Clippy check passes (existing warnings remain). No unrelated lint or transcript-index changes are included.

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.

1 participant