Problem
The maintained Codex release-campaign adapter passes the full closed adoption-result JSON Schema to Codex CLI 0.147.0. The OpenAI structured-output endpoint rejects the conditional if keyword inside steps.items, so the adapter exits before Codex can qualify the release.
This was reproduced during the v1.0.9 six-provider campaign. Isolated-home authentication and the CLI startup handshake both passed. Running the same qualification without the unsupported schema hint produced a result that passed Code Mower's closed validator.
Ask
- Compile a provider/API-compatible response-format schema for Codex rather than passing unsupported validation keywords.
- Keep the full closed local validator authoritative, including the conditional failure-reason rules.
- Add an offline fixture/test that proves the schema sent to Codex contains only supported structured-output keywords.
- Add a focused adapter test that a valid Codex result still passes and an invalid conditional result is rejected locally.
- Keep provider output transient and preserve the metadata-only privacy boundary.
Acceptance Criteria
- A maintained Codex campaign qualification reaches the provider on Codex CLI 0.147.0.
- The response-format schema no longer contains unsupported
if, then, or else keywords.
- Local closed validation remains behaviorally unchanged.
- Tests and one documentation line cover the compatibility split.
Found while closing #729 after #734.
Problem
The maintained Codex release-campaign adapter passes the full closed adoption-result JSON Schema to Codex CLI 0.147.0. The OpenAI structured-output endpoint rejects the conditional
ifkeyword insidesteps.items, so the adapter exits before Codex can qualify the release.This was reproduced during the v1.0.9 six-provider campaign. Isolated-home authentication and the CLI startup handshake both passed. Running the same qualification without the unsupported schema hint produced a result that passed Code Mower's closed validator.
Ask
Acceptance Criteria
if,then, orelsekeywords.Found while closing #729 after #734.