# Codex parity review: `8431dc59..3418498f`

This appendix classifies every commit in the exclusive local-checkout range

```text
openai/codex@8431dc590a5bba9a1185d5579a5aabfbc469e50b
    ..openai/codex@3418498f01422f5f650ea645d4bd19e05c3a9616
```

`git rev-list --count 8431dc590a..3418498f01` returns `279`. The ordered list
below is designed to be checked mechanically against
`git log --reverse --format=%h <range>`; each line is one upstream commit.

The decision codes keep the complete ledger readable:

- `P9` — Responses WebSocket/request payloads are borrowed or serialized once.
- `P10` — typed history snapshots and compaction replay use copy-on-write
  segments.
- `P11` — compaction installation has one authoritative typed state path.
- `P12` — non-interactive child stdin is detached and process cleanup is
  explicit.
- `P13` — retained response items always receive stable item IDs.
- `P14` — a rejected TUI turn reports an error without terminating the UI
  worker.
- `P15` — a missing provider checkpoint retries immediately without
  `previous_response_id` and replays authoritative history.
- `P16` — provider usage drives post-response context accounting; there is no
  redundant post-sampling token estimate.
- `P17` — syntax highlighting falls back to plain text when a source line
  exceeds 4 KiB.
- `P18` — Responses construction borrows stable configuration and shared
  history rather than cloning it.
- `P19` — terminal turn metrics separately retain compaction duration.
- `P20` — Streamable HTTP MCP requests have a deterministic default user
  agent, overridden by explicit configuration.
- `P21` — typed retry advice is separate from complete provider/transport
  error detail.
- `P22` — the Ratatui event loop never blocks while the agent worker performs
  an interrupt.
- `P23` — forks use the live authoritative history policy and committed typed
  history.
- `P24` — Responses Lite requests carry bounded Code Mode tool-name metadata.
- `P25` — tracing-provider shutdown is idempotent.
- `P26` — terminal focus changes do not replace composer input.
- `P27` — interrupt and cancellation terminate subprocess trees on supported
  native platforms; the exact Codex Windows job-object implementation is not
  imported.
- `P28` — Code Mode advertises and applies the stable ten-second default yield.
- `E2` — CUDA syntax aliases need representative rendering evidence.
- `E3` — Codex's Windows navigation-key workaround needs a matching terminal
  reproduction.
- `E4` — live unified-exec output events differ from Nanocodex's bounded,
  terminal typed tool result and remain an evaluation item.
- `E5` — whitespace-only hyperlink-line normalization belongs to a different
  renderer and needs a retained-trace comparison.
- `E6` — OSC 8 coalescing is delegated to the Ratatui/crossterm output path and
  needs a terminal-byte reproduction.
- `E7` — interrupted dynamic MCP startup has no equivalent pre-input phase in
  the current consumer; retain as a TUI evaluation item.
- `E8` — side-pane retention while switching Codex app-server threads needs a
  matching Nanocodex branch-navigation workload.
- `E9` — adaptive keyboard reporting needs a terminal-specific reproduction.
- `E10` — exact model-item start timestamps are not yet a stable Nanocodex
  event field; tool results already retain start-relative timing.
- `E11` — Codex unified-mention and keymap-menu responsiveness needs the
  corresponding Nanocodex UI workload before adoption.
- `D1` — audio history and output remain deferred while the supported model
  contract is text/image.
- `O1` — app-server, paginated-thread, SQLite, thread projection, or
  app-server resume/fork behavior.
- `O2` — Codex's generic multi-agent scheduler, worker mail, goal, or subagent
  picker.
- `O3` — plugins, skills, Apps/connectors, extension catalogs, or their
  analytics.
- `O4` — release packaging, repository CI/test maintenance, dependency
  refresh, or local cleanup without a portable runtime invariant.
- `O5` — approval, Guardian, sandbox, managed policy, hook, or managed
  network/proxy behavior.
- `O6` — realtime conversation infrastructure.
- `O7` — alternate provider/model, review, plan-entitlement, or dynamic
  environment behavior outside the one-model contract.
- `O8` — Codex-local structural refactor or helper with no changed runtime
  invariant.
- `O9` — Codex TUI/app-server presentation surface not owned by the thin
  Ratatui consumer.
- `O10` — remote exec-server or remote Code Mode host protocol.
- `O11` — mutable MCP runtime/catalog refresh or persistent MCP cache; a
  Nanocodex driver owns one fixed per-driver provider runtime.
- `O12` — external-agent session import or attribution.
- `O13` — Codex world-state or feature-toggle policy absent from the narrow
  SDK.
- `O14` — Codex shared HTTP-client/backend/proxy routing architecture.

## Ordered classifications

```text
6b9a5592a6 port P9
19b2273d8a out-of-scope O1
b00c9b2e16 out-of-scope O2
692a0fb7e5 out-of-scope O4
6f785632b0 defer D1
2793c826e8 out-of-scope O1
5a4f5ee64c out-of-scope O7
6bf4845b60 out-of-scope O3
45ac251e17 port P10
bd92b056dd out-of-scope O5
e4836f998d out-of-scope O5
8c41ed33ce out-of-scope O5
e52c35b000 out-of-scope O5
ec3140db12 out-of-scope O8
b7e39aa316 out-of-scope O1
19940967bd out-of-scope O11
44481a1c45 out-of-scope O5
81e89fa5af out-of-scope O1
687f05cb94 out-of-scope O2
cf821e8ec8 out-of-scope O5
60272096bc out-of-scope O3
35c2278dd5 out-of-scope O5
56c11cf658 out-of-scope O3
fd3c1dc13d port P10
2be7d3bcd9 out-of-scope O5
c9ef7eff00 out-of-scope O5
88fac6fe10 out-of-scope O5
c0cd337766 out-of-scope O4
99efeef650 out-of-scope O13
9078e32371 out-of-scope O14
3bc49e1721 out-of-scope O12
a30aee8d90 out-of-scope O12
9970cd706f out-of-scope O4
1836ae0612 out-of-scope O1
9e5625d9cf out-of-scope O14
c04452a240 out-of-scope O5
841e47b8fb out-of-scope O14
b8c2d29cc2 out-of-scope O4
d5998e7452 out-of-scope O4
dc21b46aea out-of-scope O14
0e15c31d91 out-of-scope O14
99eb575649 out-of-scope O14
4f1992732c out-of-scope O5
cc875d61ce out-of-scope O4
94bb6a09a6 out-of-scope O3
a148e0b50a out-of-scope O4
d937bfac84 out-of-scope O3
765675a122 out-of-scope O4
7982aa27ff out-of-scope O4
b9800de486 out-of-scope O4
2d85e6d3a6 out-of-scope O8
c44c4de7b4 out-of-scope O3
f69f88f811 port P11
0c01a18ede out-of-scope O8
2d5c259202 out-of-scope O10
6915bac7ba out-of-scope O3
27a9c4d6bd out-of-scope O11
b5b8a63fea out-of-scope O9
4c2dc5d285 out-of-scope O4
40a719238c out-of-scope O4
268288ad6d out-of-scope O4
98c3bbdc79 out-of-scope O14
f6aad1f363 out-of-scope O11
175f82147f out-of-scope O1
7bb13ab846 out-of-scope O1
0b175e6439 out-of-scope O1
726689564a evaluate E2
6ac68be6fe out-of-scope O3
af71774d26 out-of-scope O9
51200321eb out-of-scope O3
65f8bf6853 out-of-scope O11
7442f5f932 out-of-scope O5
ee71c4a90f out-of-scope O5
87f71e35b8 out-of-scope O5
6c00dc087e out-of-scope O3
2497972808 out-of-scope O5
25d2dfcad0 out-of-scope O1
c7e3838987 out-of-scope O3
dfd2d8133c port P12
999a715089 out-of-scope O5
ad020f29ae out-of-scope O4
d838ea0f64 out-of-scope O10
5bfd74d36c out-of-scope O1
ded4eacdbd out-of-scope O4
9b33613db6 port P27
bbad09a83b evaluate E3
37eef7bacc out-of-scope O3
a26f219f67 out-of-scope O5
adb143a291 out-of-scope O14
1b77da35cc out-of-scope O14
0a39ff138e port P14
81de4f251c out-of-scope O7
bdd3118c71 out-of-scope O4
c5eb33aed1 out-of-scope O5
539c0e1100 out-of-scope O14
690995b7c1 out-of-scope O3
4a443994bd port P13
f899a79c03 out-of-scope O14
a26bc337cf out-of-scope O14
9fce9e13fd out-of-scope O4
1823c13771 out-of-scope O9
d4fcb2873b out-of-scope O14
cefcffd692 out-of-scope O5
661339bb09 out-of-scope O4
4f3852107e out-of-scope O4
21db216db0 out-of-scope O7
963cda85aa out-of-scope O6
6e5a2d6b8d out-of-scope O7
516f1e2aff out-of-scope O11
9fc715c086 evaluate E4
33d394c69e out-of-scope O5
667b6bbaf1 out-of-scope O4
6278742c41 out-of-scope O3
84d2b203ed out-of-scope O11
fd51e50540 out-of-scope O3
bd9a28a839 out-of-scope O3
f21f98936c out-of-scope O4
2ffe8cd579 out-of-scope O3
65ae4c26e0 out-of-scope O11
f69dc49b15 out-of-scope O1
64dc1c7a01 port P15
e370d23691 out-of-scope O1
ab816f3ca0 out-of-scope O3
32f4687b8c out-of-scope O10
9ee63da142 out-of-scope O9
c00e2e851c evaluate E5
730ec92003 out-of-scope O9
80f3c3141e out-of-scope O1
ff8d521ba1 evaluate E6
c5779ed6bb port P23
cc559bb971 out-of-scope O4
44436fd075 out-of-scope O7
fe6aa9d16c out-of-scope O3
10cc57c95c out-of-scope O4
66bd101fff port P16
2c49493b5b out-of-scope O4
5381edb133 port P17
f343d1237d out-of-scope O3
a59a419afa out-of-scope O5
946ed315a4 out-of-scope O1
06782eded7 out-of-scope O5
08ae0fc0ce out-of-scope O1
4ebd976312 out-of-scope O6
88eb3a2b8a out-of-scope O3
7fd7a2f9a2 out-of-scope O4
bbfc3f0152 out-of-scope O5
12c115d558 port P18
b5748e6e3c out-of-scope O4
88f1cd9664 out-of-scope O1
bd5b55e403 port P19
d7e8f4c3dc evaluate E7
400ee190c3 out-of-scope O1
79500d3cc1 out-of-scope O3
0da13c6c99 out-of-scope O2
0f9fb40fa9 out-of-scope O7
9d82334302 out-of-scope O5
83ff1c2f80 out-of-scope O3
0a0a9b6c8f out-of-scope O3
b72079a2cf out-of-scope O3
44d76c6a6d out-of-scope O2
4e0cee8030 out-of-scope O3
6e0455fdc4 port P20
4462b9deef out-of-scope O2
39a2438d16 out-of-scope O4
e497325a6a out-of-scope O11
48ebbf5334 out-of-scope O3
808d3c2702 out-of-scope O1
e19e65317a out-of-scope O11
34b935e3e5 out-of-scope O11
7d748d3bbc out-of-scope O3
9e1f43dc2d out-of-scope O8
205d37a20f out-of-scope O13
ad65f016ed out-of-scope O14
8d34c06672 out-of-scope O3
ce803c45ae out-of-scope O12
5c94796dc9 out-of-scope O1
0d4910331d out-of-scope O12
74e9d7efc4 out-of-scope O11
c769a05340 out-of-scope O1
265cd2e100 out-of-scope O5
7bafdada8b port P21
2c92af09cf out-of-scope O3
62ba648136 port P22
7d4b417cd1 evaluate E8
5b402270f9 out-of-scope O3
b834702b27 out-of-scope O1
ceb2ffb793 out-of-scope O3
5bdbd3ee90 out-of-scope O3
84fa68b429 out-of-scope O3
fe0d472c4c evaluate E9
1ee8f49175 out-of-scope O10
091e4a5d7c out-of-scope O11
9fc4e5a7aa out-of-scope O3
963316583b out-of-scope O1
41775559ca out-of-scope O3
d45055ae58 out-of-scope O14
b115de97d7 out-of-scope O5
4123bf6189 out-of-scope O3
bb24b67d33 out-of-scope O5
fb4e6ba2f4 out-of-scope O13
94ebae725e out-of-scope O10
09241ae4db out-of-scope O10
1d4b58f32d out-of-scope O13
3947f0d0c3 out-of-scope O13
f47f28cd0d out-of-scope O4
0dfa778dae out-of-scope O10
f61b51ddd9 out-of-scope O10
a28374e0db out-of-scope O3
81da9deb06 out-of-scope O10
ef2d3edb95 out-of-scope O11
6c729ef1c1 out-of-scope O11
f201c30c52 out-of-scope O11
c8957bbf0f out-of-scope O11
5dd992acd3 out-of-scope O3
5a1c54fc21 out-of-scope O3
1a817bb95d out-of-scope O4
7c71783135 out-of-scope O3
634a998d8a out-of-scope O5
5f6a2c3adb out-of-scope O4
fe8500c0a0 out-of-scope O3
3645a4397c out-of-scope O11
000d2540ad out-of-scope O11
a177013eb0 out-of-scope O11
58b4277228 out-of-scope O11
05f000263b out-of-scope O1
99744cfe04 out-of-scope O5
544007d006 out-of-scope O7
89a3b89c4c out-of-scope O11
1811b67a84 out-of-scope O1
32329b289d out-of-scope O3
07fd04abb1 out-of-scope O3
0d2a0aa76b out-of-scope O3
a453588416 out-of-scope O4
cba0e2701c out-of-scope O10
63fe5a6b71 out-of-scope O5
25b6fc9bbc port P24
c3e926e61c out-of-scope O10
4c43465133 out-of-scope O3
3a08af44b2 out-of-scope O10
af7f6f4d34 evaluate E10
5c36e869c1 port P24
322d5b96cf evaluate E11
20dafe201d evaluate E11
62fd410384 out-of-scope O3
61a44880a8 out-of-scope O11
5a3808b77d out-of-scope O5
9ca6df68da out-of-scope O1
0896bf6fc0 out-of-scope O2
18f50c9e62 out-of-scope O13
95637f7056 out-of-scope O4
3bbf1fe757 out-of-scope O11
8a1c941439 out-of-scope O2
3d519bf63a out-of-scope O4
d6ea5991e7 out-of-scope O3
16d7daad7c out-of-scope O3
fbe65995bb out-of-scope O7
fea2d8b18f out-of-scope O1
bd2de422aa out-of-scope O12
0affaf2acb port P25
e8f0f64f20 out-of-scope O1
976129f097 port P26
462ed19a05 out-of-scope O10
9f82ffed1b out-of-scope O2
6b23635a7e port P27
2f19a57704 out-of-scope O2
8495963ac6 out-of-scope O3
b672b3c409 out-of-scope O3
c21c8a5e21 out-of-scope O4
bbb92457b0 out-of-scope O5
fd41e813cb port P28
294d813263 out-of-scope O3
bbeee9a406 out-of-scope O3
4d1f66bf81 out-of-scope O1
fb6aad9ae3 out-of-scope O5
8c72d61727 out-of-scope O4
8d6a91b1ff out-of-scope O1
63682c4e1a out-of-scope O1
f029bb795c out-of-scope O2
3418498f01 out-of-scope O1
```

## Classification totals

| Classification | Count |
| --- | ---: |
| `port` | 23 |
| `evaluate` | 11 |
| `defer` | 1 |
| `out-of-scope` | 244 |
| Total | 279 |

The evaluation rows are not parity claims. They remain intentionally open
until the named platform or representative TUI workload exists. Out-of-scope
rows do not expand Nanocodex into an app server, generic scheduler, plugin or
skills system, approval layer, managed proxy, remote execution protocol, or
provider abstraction.
