Problem
With the Codex CLI logged in through a ChatGPT account, the cross-model adversarial pass in ce-code-review and ce-doc-review fails on every run, and the host falls back to the in-process adversarial reviewer.
The worker requests M_CODEX="gpt-6-luna" (scripts/cross-model-adversarial-review.sh, same in cross-model-doc-review.sh). Under ChatGPT login the API returns:
{"type":"error","status":400,"error":{"type":"invalid_request_error","message":"The 'gpt-6-luna' model is not supported when using Codex with a ChatGPT account."}}
The message names the account, so the host reads it as "this route is unavailable for this user" and records the peer as unsupported. It is actually a model problem. On the same account:
codex exec -m gpt-5.6-sol -c 'model_reasoning_effort="xhigh"' --sandbox read-only --skip-git-repo-check "Reply OK"
# -> OK
references/cross-model-review.md already permits "the closest compatible same-target/same-family replacement" after an observed unavailable model. Nothing prompts the host to try one, so in practice the review loses its independent peer on every run.
Environment: compound-engineering v3.28.2, codex-cli 0.153.4, Claude Code host, ChatGPT login (codex login status → "Logged in using ChatGPT").
Workaround
Set CROSS_MODEL_MODEL_OVERRIDE_TARGET=codex and CROSS_MODEL_MODEL_OVERRIDE=gpt-5.6-sol in the host environment, or set cross_model_model: gpt-5.6-sol in .compound-engineering/config.local.yaml. --emit-adapter codex then shows -m gpt-5.6-sol for both scripts.
Suggestion
- In the codex adapter, classify a 400 whose message names the requested model as "model unavailable", not "route unavailable".
- On that error, retry once with a configured fallback list (for example
cross_model_model_fallbacks: [gpt-5.6-sol]) before failing the route. Record the model that actually served in the receipt.
- In the coverage line, name the rejected model so the user can see the fix is a config key.
Related but distinct: #1261 (default model/effort choice), #1500 (namespaced ids), #1565 (effort values).
Problem
With the Codex CLI logged in through a ChatGPT account, the cross-model adversarial pass in
ce-code-reviewandce-doc-reviewfails on every run, and the host falls back to the in-process adversarial reviewer.The worker requests
M_CODEX="gpt-6-luna"(scripts/cross-model-adversarial-review.sh, same incross-model-doc-review.sh). Under ChatGPT login the API returns:The message names the account, so the host reads it as "this route is unavailable for this user" and records the peer as unsupported. It is actually a model problem. On the same account:
references/cross-model-review.mdalready permits "the closest compatible same-target/same-family replacement" after an observed unavailable model. Nothing prompts the host to try one, so in practice the review loses its independent peer on every run.Environment: compound-engineering v3.28.2, codex-cli 0.153.4, Claude Code host, ChatGPT login (
codex login status→ "Logged in using ChatGPT").Workaround
Set
CROSS_MODEL_MODEL_OVERRIDE_TARGET=codexandCROSS_MODEL_MODEL_OVERRIDE=gpt-5.6-solin the host environment, or setcross_model_model: gpt-5.6-solin.compound-engineering/config.local.yaml.--emit-adapter codexthen shows-m gpt-5.6-solfor both scripts.Suggestion
cross_model_model_fallbacks: [gpt-5.6-sol]) before failing the route. Record the model that actually served in the receipt.Related but distinct: #1261 (default model/effort choice), #1500 (namespaced ids), #1565 (effort values).