Conversation
masonc08
force-pushed
the
masonc08/codex-azure-mps-e2e
branch
2 times, most recently
from
September 18, 2026 14:30
f592398 to
203fd1b
Compare
Cover routing Codex through an azure_openai Model Provider Service, backed by main.ucode.ci_azure_openai_mps (allowlist: gpt-5-nano, gpt-5.6-luna reasoning; gpt-4.1-mini non-reasoning). - e2e TestAzureOpenAiMps: direct Responses-API probes through the gateway MPS (no agent binary; gateway shard, independent of #685) — reasoning-capable models route and are switchable, a non-reasoning allow-listed model rejects reasoning.effort (parity: what fails natively fails here), the same model serves without reasoning, and an off-allowlist model is refused. - integration test_ug_configure_codex_azure_openai_mps: the real ug CLI picks the Azure MPS in the configure picker and completes a file task on gpt-5-nano. Requires #685 (adds azure_openai to Codex's provider-type allowlist). - run_integration.py / conftest.py: --codex-azure-provider(-model) plumbing. Co-authored-by: Isaac <no-reply@databricks.com>
Foundry speaks the same OpenAI dialect as Azure OpenAI, so extract the configure-picker + launch CUJ into a shared helper and add a thin test_ug_configure_codex_foundry_mps wrapper reusing it. Mirror the Azure flags/fixtures as --codex-foundry-provider / --codex-foundry-provider-model. Requires #685 (adds microsoft_foundry to Codex's allowlist) and a CI Foundry MPS. Co-authored-by: Isaac <no-reply@databricks.com>
The shared-helper refactor left the azure/foundry test wrappers with one-line docstrings, which test_integration_contract flags (every integration test must describe Scenario + Expected). Restore both. Co-authored-by: Isaac <no-reply@databricks.com>
masonc08
force-pushed
the
masonc08/codex-azure-mps-e2e
branch
from
September 18, 2026 16:32
04286f3 to
ba50bb4
Compare
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.
What
Adds test coverage for routing Codex through an
azure_openaiModel Provider Service, backed bymain.ucode.ci_azure_openai_mpson the CI workspace (allowlist:gpt-5-nano,gpt-5.6-lunareasoning-capable;gpt-4.1-mininon-reasoning).e2e —
TestAzureOpenAiMps(direct Responses-API probes, no agent binary; runs in the gateway shard, independent of #685):reasoning.effort, and a session can switch between themgpt-4.1-mini) rejectsreasoning.effortwith 400 — the parity invariant: a model that wouldn't work with Codex natively must not be papered over by the gatewaygpt-4o) is refused with 403integration —
test_ug_configure_codex_azure_openai_mps: the realugCLI selects the Azure MPS in the configure picker and completes a file task ongpt-5-nano. Requires #685 (addsazure_openaito Codex's provider-type allowlist); until #685 lands, the codex full lane is red.Plus
--codex-azure-provider/--codex-azure-provider-modelinrun_integration.pyand matching conftest fixtures.Why
Fills the Codex coverage gaps: no live azure_openai coverage, no reasoning-model behavior, and thin OpenAI-MPS coverage generally.
Not covered (deliberately)
Bare
ug codex --provider <mps>(no--model) can default to a non-working model — #621 pins the first catalog model, and the MPS discovery call (/ai-gateway/codex/v1/models) carries no per-model reasoning capability, so ucode can't pick a reasoning-capable default. Known limitation, not addressed here.Test
ruff+py_compileclean; integration contract checks pass. Direct-probe behavior verified live against the MPS (reasoning models 200,gpt-4.1-mini+reasoning.effort400,gpt-4o403).Microsoft Foundry
Foundry speaks the same OpenAI dialect as Azure OpenAI, so
test_ug_configure_codex_foundry_mpsreuses the Azure CUJ through a shared_run_codex_openai_dialect_mps_cujhelper — the only difference is which MPS the picker selects. Adds--codex-foundry-provider/--codex-foundry-provider-modeland matching fixtures. Requires a CI Foundry MPS (flag defaultmain.ucode.ci_foundry_mps) and #685 (addsmicrosoft_foundryto Codex's allowlist); until the MPS exists the foundry lane errors, as the suite has no capability skips.This pull request and its description were written by Isaac.