codex - 💡(How to fix) Fix Meta: small UX patches to make `codex exec` cleaner for downstream harnesses (cdx exo) [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openai/codex#22065Fetched 2026-05-11 03:19:47
View on GitHub
Comments
0
Participants
1
Timeline
6
Reactions
0
Author
Participants
Timeline (top)
labeled ×4unlabeled ×2

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.

Error Message

| 3 | Demote failed to record rollout items from error! to warn! | #22055 | team-wcv/codex@feat/rollout-persistence-log-demote | Open, awaiting triage. |

  • #22055 — transient rollout-persistence races during shutdown spam scary ERROR lines that aren't actionable.
  • #22064codex exec resume <uuid> after a pruned rollout / wrong \$CODEX_HOME surfaces a confusing error string instead of just starting a new thread.

Root Cause

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.

Fix Action

Fix / Workaround

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

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.
RAW_BUFFERClick to expand / collapse

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

#TitleIssueReference branchStatus
1Add codex exec --quiet to drop the header chrome#22047team-wcv/codex@feat/exec-quiet-flagClosed not_planned; maintainer suggested --json instead. We replied with the wrapper-vs-parser context; happy to drop or revisit.
2Gate benign rate-limit telemetry behind notifications.rate_limit_telemetry#22054team-wcv/codex@feat/rate-limit-telemetry-gateOpen, awaiting triage.
3Demote failed to record rollout items from error! to warn!#22055team-wcv/codex@feat/rollout-persistence-log-demoteOpen, awaiting triage.
4Collapse MCP startup notifications into a single mcpServer/startupStatus/completed summary#22059team-wcv/codex@feat/mcp-startup-notifications-collapseOpen, awaiting triage.
5Local-provider reasoning-summary heuristic + per-model model_overrides#22061team-wcv/codex@feat/local-provider-reasoning-summariesOpen, awaiting triage.
6model_providers.<name>.discovery_url for cluster-aware base-URL refresh#22063team-wcv/codex@feat/provider-discovery-urlOpen, awaiting triage.
7codex exec resume <missing-uuid> falls back to thread/start instead of erroring#22064team-wcv/codex@feat/thread-resume-fallbackOpen, awaiting triage.

Why each one matters (one line each)

  • #22047 — wrappers that pass-through human-readable codex output need to suppress the config banner. Closed; documented the wrapper use case for context.
  • #22054 — rate-limit telemetry is benign for users that never hit a limit; routes a notification per turn and shows up as noise.
  • #22055 — transient rollout-persistence races during shutdown spam scary ERROR lines that aren't actionable.
  • #22059 — N MCP servers ⇒ N+ startup notifications during steady-state startup; one aggregate readiness summary is enough.
  • #22061 — local providers that ship reasoning models (DeepSeek-R1, QwQ, etc.) silently drop reasoning-summary support unless users hand-edit a global flag.
  • #22063 — multi-host inference clusters need to refresh the active node's base URL without restarting codex.
  • #22064codex exec resume <uuid> after a pruned rollout / wrong \$CODEX_HOME surfaces 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:

  • 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).

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

codex - 💡(How to fix) Fix Meta: small UX patches to make `codex exec` cleaner for downstream harnesses (cdx exo) [1 participants]