CLI: /feedback command accessible when feedback_enabled is false

Resolved 💬 4 comments Opened May 15, 2026 by ajjuaire Closed May 15, 2026
💡 Likely answer: A maintainer (etraut-openai, contributor) responded on this thread — see the highlighted reply below.

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 ↗

4 Comments

etraut-openai contributor · 3 months ago

We intentionally leave the /feedback slash command in place, but if feedback_enabled = false, selecting this option explains to the user that it's disabled. This prevents confusion because users will often be told to use /feedback for support. If we remove the slash command completely, users will not understand why — especially if the "no feedback" policy was provided by their IT admin.

Feature flags (like the one used for the goal feature) are intended to be used only when a feature is in the experimental phase. Once a feature is complete, the feature flag is typically removed. Feature flags don't apply in this case because /feedback is a stable feature.

ajjuaire · 3 months ago

That seems like a reasonable approach, however I am not seeing said explanation upon setting the value and still have the option to upload my logs. Can you share what this should look like and confirm if it's working as expected?

Ex. I believe I uploaded my logs here with ID 019e2a5d-9aed-7030-9d8e-9b153bd0562e and then got prompted to create an issue with https://github.com/openai/codex/issues/new?template=3-cli.yml&steps=Uploaded%20thread:%20019e2a5d-9aed-7030-9d8e-9b153bd0562e

My Config:

cat ~/.codex/config.toml
model = "openai.gpt-5.4"
model_provider = "amazon-bedrock"

feedback_enabled = false

[model_providers.amazon-bedrock.aws]
profile = "OpenAIBedrockAccess"
region = "us-west-2"
feedback_enabled = false

I also don't want tips for Tip: Use /feedback to send logs to the maintainers when something looks off. if I have feedback_enabled = false

etraut-openai contributor · 3 months ago

It should look like this:

[feedback]
enabled = false

When you relaunch the CLI and invoke /feedback, you should then see:

<img width="394" height="90" alt="Image" src="https://github.com/user-attachments/assets/95bb1b22-a7ba-4261-a30d-d4e8228fcf09" />

ajjuaire · 3 months ago

Ah, thank you for the clarification! I was looking at the actual variable name in code https://github.com/openai/codex/blob/8adb6032cc931952ff7a329202b07932f070eadf/codex-rs/core/src/config/mod.rs#L964

Works great! Sorry for the confusion!