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-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
4 Comments
We intentionally leave the
/feedbackslash command in place, but iffeedback_enabled = false, selecting this option explains to the user that it's disabled. This prevents confusion because users will often be told to use/feedbackfor 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
goalfeature) 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/feedbackis a stable feature.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-9b153bd0562eand 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-9b153bd0562eMy Config:
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 = falseIt should look like this:
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" />
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!