You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Support reasoning-level selection for provider aliases like azure/gpt-5.4-pro in /model #36
/model only shows the reasoning-level submenu when the selected model metadata advertises multiple supported_reasoning_efforts.
For provider-backed aliases like azure/gpt-5.4-pro, Codex currently resolves the provider model id but does not attach canonical reasoning metadata unless the provider slug exactly matches a bundled model slug. That means provider aliases can end up with empty reasoning metadata and /model skips the reasoning-level picker.
Expected
If a provider model id is a prefixed alias of a known canonical model (for example azure/gpt-5.4-pro), Codex should preserve the wire id for requests while inheriting the canonical model's reasoning metadata so /model can offer the supported reasoning levels.
Scope
Patch provider model-id mapping to reuse canonical metadata for prefixed aliases.
Add regression coverage for azure/gpt-5.4-pro.
Add end-to-end coverage that /model exposes multiple reasoning levels for the provider alias and that the selected effort is used on the next prompt.
Started work on this. Root cause is in provider model-id mapping: provider aliases like azure/gpt-5.4-pro do not currently inherit canonical reasoning metadata unless the slug exactly matches a bundled catalog entry. Patching metadata resolution and adding regression + /model e2e coverage.
Reused the existing namespaced-suffix metadata lookup for provider model listings, so provider aliases like azure/gpt-5.4-pro can inherit canonical bundled metadata while preserving the wire model id.
Added a real PTY /model end-to-end test that switches to azure/gpt-5.4-pro, selects high reasoning in-session, submits a prompt, and asserts the next /v1/responses request uses both the selected model and reasoning effort.
Validation run:
cd codex-rs && cargo test -p codex-core models_dev_provider_alias_model_inherits_canonical_reasoning_metadata
cd codex-rs && CARGO_INCREMENTAL=0 cargo test -p codex-tui --test all models_dev_provider_alias_model_switch_then_prompt_uses_selected_reasoning_effort -- --nocapture
Activity
OpenCodeEngineer commentedon Mar 19, 2026
Started work on this. Root cause is in provider model-id mapping: provider aliases like
azure/gpt-5.4-prodo not currently inherit canonical reasoning metadata unless the slug exactly matches a bundled catalog entry. Patching metadata resolution and adding regression +/modele2e coverage.OpenCodeEngineer commentedon Mar 19, 2026
Implemented.
What changed:
azure/gpt-5.4-procan inherit canonical bundled metadata while preserving the wire model id.models.devAzure aliases inherit canonical reasoning metadata (low/medium/high/xhigh)./modelend-to-end test that switches toazure/gpt-5.4-pro, selectshighreasoning in-session, submits a prompt, and asserts the next/v1/responsesrequest uses both the selected model and reasoning effort.Validation run:
cd codex-rs && cargo test -p codex-core models_dev_provider_alias_model_inherits_canonical_reasoning_metadatacd codex-rs && CARGO_INCREMENTAL=0 cargo test -p codex-tui --test all models_dev_provider_alias_model_switch_then_prompt_uses_selected_reasoning_effort -- --nocaptureBoth passed.
OpenCodeEngineer commentedon Mar 19, 2026
PR opened: #37
OpenCodeEngineer commentedon Mar 21, 2026
Completed directly on
main.What landed:
/modelswitching work fromorigin/dev/model+/experimentalwork in the same sessionFinal main commit:
1328bae7e86e05d70b4bee27b3d46290a71ce981.