Three integration failures, one cause: the suite still routes two model
ids the vendor lifecycle registry marks `retired`, so the pipeline
correctly refuses them and the tests assert on the refusal.
❌ persists Codex responses cache and reasoning tokens → 410 !== 200
"codex/gpt-5.1-codex" — retired 2026-07-23, successor gpt-5.6-sol
❌ translates OpenAI requests to Claude → 410 !== 200
❌ falls back across combo models → 502 !== 200
both on "claude/claude-3-5-sonnet-20241022" — the combo case fails
with 502 because the retired id is its fallback target
Only the first reaches the release-green report, which prints the first
failing line, so the other two were invisible. All three had been hidden
for longer than that: the integration gate has been dying on its 2400s
ceiling, and a gate killed by its ceiling never reports an individual
test failure.
Replaces both with live ids — the successor named by the lifecycle record
for the Codex one, and the `claude-sonnet-4-6` this same file already
uses elsewhere for the Claude one. `buildOpenAIResponsesSSE` also echoed
the retired Codex id, and the call log derives its provider from the
model in the response, so leaving it made the row log `provider:
"openai"` for a request that correctly used the codex connection.
No assertion is changed or relaxed. Verified with the CI invocation
(setupPolyfill + isolateDataDir + --test-concurrency=1): 28/28 pass,
exit 0, from 25/28 before.