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-rs CLI/TUI
  • Files involved:
  • codex-rs/tui/src/chatwidget/slash_dispatch.rs (lines 150-161)
  • codex-rs/tui/src/slash_command.rs (is_visible method, line 230)
  • codex-rs/tui/src/bottom_pane/feedback_view.rs (feedback_disabled_params, line 437)

Steps to Reproduce

  1. Set feedback_enabled = false in configuration
  2. Launch the Codex TUI
  3. Type / to see available commands — /feedback is listed
  4. Run /feedback — a dismissable popup is shown instead of being rejected

Expected Behavior

When feedback_enabled = false:

  • /feedback should 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 /goal check their feature flag)
  • No feedback-related UI flow should be reachable

Actual Behavior

  • /feedback appears 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 in slash_command.rs does not consult feedback_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

  1. Add a feedback_enabled field to BuiltinCommandFlags and filter /feedback from the command list when false
  2. In is_visible() or the command filtering logic, hide the command when the flag is false
  3. Keep the backend rejection in feedback_processor.rs as a defense-in-depth measure

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗