Refuse an effort this adapter cannot honour, LOUDLY.
The Claude runner pins the reasoning budget through --effort plus the env var
it sits under. Codex exposes no mapping we have measured — its config carries a
model_reasoning_effort key, but nothing here has driven the real binary
through it, so claiming support would assert something unverified.
The alternative — forwarding task/cwd/timeoutMs and dropping effort on
the floor, as this runner does today — is the silent CC-only path the
harness-parity rule forbids: a spec would declare effort: "low", the lock
would RECORD low, and the run would happen at whatever Codex defaults to.
A stale number is recoverable; a confidently mislabelled one is not.
Pure so the deferral itself is tested rather than living inside the ignored
subprocess region.
Refuse an
effortthis adapter cannot honour, LOUDLY.The Claude runner pins the reasoning budget through
--effortplus the env var it sits under. Codex exposes no mapping we have measured — its config carries amodel_reasoning_effortkey, but nothing here has driven the real binary through it, so claiming support would assert something unverified.The alternative — forwarding
task/cwd/timeoutMsand droppingefforton the floor, as this runner does today — is the silent CC-only path the harness-parity rule forbids: a spec would declareeffort: "low", the lock would RECORDlow, and the run would happen at whatever Codex defaults to. A stale number is recoverable; a confidently mislabelled one is not.Pure so the deferral itself is tested rather than living inside the ignored subprocess region.