CLI: /feedback command accessible when feedback_enabled is false
Resolved 💬 4 comments Opened May 15, 2026 by ajjuaire Closed May 15, 2026
Summary
When feedback_enabled is set to false in configuration, the /feedback slash command remains visible in the command list and executable. It shows a dismissable popup rather than being fully blocked. For deployments that need all non-essential traffic disabled (especially session log uploads), the command should be completely inaccessible.
Environment
- Component:
codex-rsCLI/TUI - Files involved:
codex-rs/tui/src/chatwidget/slash_dispatch.rs(lines 150-161)codex-rs/tui/src/slash_command.rs(is_visiblemethod, line 230)codex-rs/tui/src/bottom_pane/feedback_view.rs(feedback_disabled_params, line 437)
Steps to Reproduce
- Set
feedback_enabled = falsein configuration - Launch the Codex TUI
- Type
/to see available commands —/feedbackis listed - Run
/feedback— a dismissable popup is shown instead of being rejected
Expected Behavior
When feedback_enabled = false:
/feedbackshould not appear in the slash command list- If typed directly, it should be rejected with a clear message (similar to how other gated commands like
/goalcheck their feature flag) - No feedback-related UI flow should be reachable
Actual Behavior
/feedbackappears in the command list regardless of the flag- Running it shows a "Sending feedback is disabled" popup with a Close button
- The
is_visible()method inslash_command.rsdoes not consultfeedback_enabled - While the backend (
feedback_processor.rs:45) does reject the actual upload, the TUI-side gate is insufficient — it still enters the feedback UI flow
Why This Matters
The /feedback flow uploads session logs to external servers. For environments where non-essential outbound traffic must be fully disabled, a dismissable popup is not a sufficient gate. The command should be completely hidden and rejected when the configuration says it's disabled.
Suggested Fix
- Add a
feedback_enabledfield toBuiltinCommandFlagsand filter/feedbackfrom the command list when false - In
is_visible()or the command filtering logic, hide the command when the flag is false - Keep the backend rejection in
feedback_processor.rsas a defense-in-depth measure
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗