Context
A downstream Codex wrapper called cdx exo (https://github.com/team-wcv/CliTools, exo-tui.mjs and friends) embeds a custom Ink/React TUI that drives codex exec and codex app-server over JSON-RPC for cluster-aware local model serving. Building it surfaced a handful of small "papercut" issues in the upstream codex harness — things the TUI currently works around with stderr regexes or ad-hoc client-side filtering, but which would be cleaner to fix at the source so other harnesses benefit.
This meta-issue tracks the seven patches we extracted from the cdx exo workarounds and filed individually. Each is small, scoped, and most ship with a reference branch on a fork. None depend on each other; they can be triaged independently.
Patches
Why each one matters (one line each)
Bigger picture
The cdx exo TUI's existence is mostly about cluster-aware local model serving and inline UX shortcuts that aren't a fit for upstream codex (e.g. live cluster topology, model-catalog overlay, in-process status badges). What I'd like out of this batch is just to remove the surface-level noise and config papercuts that force harnesses to filter stderr or hand-edit configs.
Happy to:
- split anything that's too coarse-grained.
- drop patches you don't want.
- iterate on any of the reference branches based on feedback.
- coordinate landing if multiple patches touch shared protocol/config surface.
I noticed docs/contributing.md says external contributions are by invitation; that's why each patch is in an issue with a reference branch rather than a PR. If any of these are wanted, very happy to open the corresponding PR(s).
Context
A downstream Codex wrapper called
cdx exo(https://github.com/team-wcv/CliTools, exo-tui.mjs and friends) embeds a custom Ink/React TUI that drivescodex execandcodex app-serverover JSON-RPC for cluster-aware local model serving. Building it surfaced a handful of small "papercut" issues in the upstreamcodexharness — things the TUI currently works around with stderr regexes or ad-hoc client-side filtering, but which would be cleaner to fix at the source so other harnesses benefit.This meta-issue tracks the seven patches we extracted from the cdx exo workarounds and filed individually. Each is small, scoped, and most ship with a reference branch on a fork. None depend on each other; they can be triaged independently.
Patches
codex exec --quietto drop the header chrome--jsoninstead. We replied with the wrapper-vs-parser context; happy to drop or revisit.notifications.rate_limit_telemetryfailed to record rollout itemsfromerror!towarn!mcpServer/startupStatus/completedsummarymodel_overridesmodel_providers.<name>.discovery_urlfor cluster-aware base-URL refreshcodex exec resume <missing-uuid>falls back tothread/startinstead of erroringWhy each one matters (one line each)
codex exec --quietto suppress the config summary banner for parent harnesses #22047 — wrappers that pass-through human-readable codex output need to suppress the config banner. Closed; documented the wrapper use case for context.account/rateLimits/updatedtelemetry behindnotifications.rate_limit_telemetry#22054 — rate-limit telemetry is benign for users that never hit a limit; routes a notification per turn and shows up as noise.failed to record rollout itemsfrom error to warn so harness stderr stops looking like a fatal failure #22055 — transient rollout-persistence races during shutdown spam scaryERRORlines that aren't actionable.model_providers.<name>.discovery_urlfor cluster-aware base-URL refresh #22063 — multi-host inference clusters need to refresh the active node's base URL without restartingcodex.codex exec resume <uuid>after a pruned rollout / wrong\$CODEX_HOMEsurfaces a confusing error string instead of just starting a new thread.Bigger picture
The cdx exo TUI's existence is mostly about cluster-aware local model serving and inline UX shortcuts that aren't a fit for upstream codex (e.g. live cluster topology, model-catalog overlay, in-process status badges). What I'd like out of this batch is just to remove the surface-level noise and config papercuts that force harnesses to filter stderr or hand-edit configs.
Happy to:
I noticed
docs/contributing.mdsays external contributions are by invitation; that's why each patch is in an issue with a reference branch rather than a PR. If any of these are wanted, very happy to open the corresponding PR(s).