openai / openai/codex

Per-tool plugin approval_mode ignored for bundled codex-app-tools in Desktop 26.820.60940 / CLI 0.150.0-alpha.8

Open
#41,167 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

app bug config mcp skills
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What version of the Codex App are you using (From “About Codex” dialog)?

ChatGPT Desktop 26.820.60940, build 7119; bundled codex-cli 0.150.0-alpha.8; codex-app-tools@openai-bundled 0.1.3.

What subscription do you have?

ChatGPT Pro

What platform is your computer?

Darwin 25.6.0 arm64 arm

What issue are you seeing?

The documented per-tool plugin approval_mode configuration is accepted by strict configuration validation but ignored at runtime for the bundled codex-app-tools plugin.

Configuration used:

approvals_reviewer = "user"

[plugins."codex-app-tools@openai-bundled".mcp_servers.codex_app.tools.create_thread]
approval_mode = "approve"

[plugins."codex-app-tools@openai-bundled".mcp_servers.codex_app.tools.send_message_to_thread]
approval_mode = "approve"

After a full Codex Desktop restart, both create_thread and send_message_to_thread still generated an MCP approval elicitation. create_thread succeeded only after a human Accept decision. send_message_to_thread remained waiting for approval and failed after a human Decline decision. The strict configuration doctor reported that the configuration and bundled plugin loaded successfully.

The bundled desktop-mcp.json marks automation_update, create_thread, send_message_to_thread, fork_thread, and handoff_thread as prompt. The observed behavior indicates that the documented per-tool override is not applied before the Desktop/MCP approval gate.

What steps can reproduce the bug?
  1. Add only the two per-tool overrides shown above.
  2. Fully quit and restart Codex Desktop.
  3. Run the bundled CLI strict configuration doctor and verify that configuration and plugin loading succeed.
  4. Invoke create_thread.
  5. From the created local task, invoke send_message_to_thread back to the source task.
What is the expected behavior?

Only create_thread and send_message_to_thread run without an MCP approval prompt. automation_update, fork_thread, and handoff_thread continue to require approval as declared by the bundled plugin manifest.

Additional information

Actual behavior

Both configured tools still generate ResolveElicitation approval requests. create_thread succeeds only after human acceptance; send_message_to_thread waits for approval and fails when declined. No invalid or unknown configuration is reported.

Additional information

The plugin MCP proxy contains no separate approval logic; it forwards tool discovery and calls to the native host. Please apply the effectively merged per-tool plugin configuration before Desktop/MCP approval gating and expose diagnostics showing the effective approval_mode, configuration source, and precedence per tool.

No secrets, full conversations, repository contents, or raw private logs are included in this report.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the strict configuration doctor, the bundled desktop-mcp.json manifest, and the plugin MCP proxy, then trace how per-tool settings reach the Desktop/MCP approval gate. Compare the effective behavior for create_thread and send_message_to_thread with automation_update, fork_thread, and handoff_thread. Done means only the two configured tools bypass approval and diagnostics show each tool's effective approval_mode, source, and precedence.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli, security, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.