Allow hiding or collapsing successful Auto-review approval items
What variant of Codex are you using?
Codex App on macOS, with Codex CLI 0.147.0.
What feature would you like to see?
When approvals_reviewer is set to auto_review, also shown as Approve for me, Codex inserts an automatic-review item for every sandbox-boundary approval. During tool-heavy tasks, successful approval messages accumulate and create substantial conversation noise.
Please add a display preference for Auto-review items, for example:
auto_review_display = "all" | "collapsed" | "denied-only" | "hidden"
Suggested behavior:
- Always surface denials, errors, and aborted reviews.
- Allow successful approvals to be collapsed, summarized, or hidden.
- Preserve the complete approval record in session logs or audit data.
- Do not change sandbox boundaries, approval policy, or reviewer behavior.
The goal is presentation control, not bypassing or weakening Auto-review.
Additional information
There is currently no supported configuration option to suppress only successful automatic approval messages while retaining Auto-review. Using approval_policy = "never" removes the review flow entirely and causes sandbox-boundary actions to fail instead, so it is not an equivalent workaround.
Related issues:
- #32981 requests restoring more rationale within Auto-review items; this request instead asks for optional presentation control over successful items.
- #28833 concerns suppressing false-positive external approval notifications and is adjacent, but does not cover conversation items.
1 Comment
Pointer for implementation: every auto-review outcome flows through one place —
new_approval_decision_cellintui/src/history_cell/approvals.rs, where the guardian actor is already distinguished from the human (ApprovalDecisionActor::Guardian, rendered as "Auto-reviewer …", https://github.com/openai/codex/blob/1f41cc5d92/codex-rs/tui/src/history_cell/approvals.rs#L45-L60 and#L269-L276). Since actor and decision are both known at cell-construction time, aauto_review_displaypreference is a small filter at that call site:denied-only= drop cells where actor is Guardian and decision is an approval;collapsed= fold consecutive guardian approvals into one counter cell ("Auto-approved 12 actions"), the way exec output already truncates. Denials should stay visible unconditionally — they're the actionable ones (/approveretry depends on seeing them). No protocol change needed; the events can keep flowing to the transcript/rollout while only the TUI presentation filters.