You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test: turn-level behavioral parity passes (no credentials) — TestParityTurnExec
Drive ONE real model turn through BOTH the real codex 0.136.0 binary and codexgo
against the SAME fake /v1/responses SSE endpoint via the SAME drop-in config.toml
(custom [model_providers.parity] + env_key). Normalized JSONL streams are
byte-identical: same event sequence (thread.started/turn.started/item.completed/
turn.completed), same agent message, same usage (input 11/output 3). No OpenAI
credentials needed. Env-gated on CODEX_PARITY_BIN; skips in CI.
This is the behavioral (not just format) drop-in proof. docs/PARITY.md records the
full normalized+raw comparison and a genuine gap it surfaced: the codexgo *binary*
exec assembly ignores custom-provider base_url/env_key and falls back to the mock
(fix next).
@@ -27,13 +27,105 @@ Living record of differential validation of `codexgo` against the reference
27
27
|`doctor --json`|`codex doctor --json`| ⚠️ **Partial** — top-level schema matches exactly (`schemaVersion`/`generatedAt`/`overallStatus`/`codexVersion`/`checks`), but codexgo emits 8 coarse checks vs codex's 18 granular check IDs (e.g. `network.websocket_reachability`, `state.rollout_db_parity`, `runtime.provenance`). Functional but not check-for-check identical. |
28
28
| execpolicy decisions | (internal) | ⏳ codex exposes no `execpolicy` subcommand; validated via ported upstream tests in internal/execpolicy. |
29
29
30
+
## Results (turn-level surface — no credentials needed)
31
+
32
+
| Surface | Command | Result |
33
+
|---|---|---|
34
+
|`exec --json` turn lifecycle |`codex exec --json "hello"` vs codexgo | ✅ **Pass** — see `TestParityTurnExec`. Both binaries are pointed at the **same fake `/v1/responses` SSE endpoint** via the **same drop-in `config.toml`** (`[model_providers.parity]`, `env_key`), and produce a **byte-identical normalized JSONL stream**: same event-type sequence, same final agent message, same usage. No real OpenAI credentials required. |
35
+
36
+
### `TestParityTurnExec` — the turn-level differential
37
+
38
+
This is the highest-value parity test: it proves **behavioral** (not just format)
39
+
drop-in by driving one real model turn through both binaries against a fake
40
+
Responses-API server, with **no OpenAI credentials**.
41
+
42
+
**How it works**
43
+
44
+
- A `net/http/httptest` server answers `POST <…>/responses` with a deterministic
45
+
Server-Sent Events stream (`Content-Type: text/event-stream`). The event
46
+
vocabulary and SSE framing mirror codex's own test harness
0 commit comments