Per-tool plugin approval_mode ignored for bundled codex-app-tools in Desktop 26.820.60940 / CLI 0.150.0-alpha.8
Nobody has claimed this yet.
- 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?
- Add only the two per-tool overrides shown above.
- Fully quit and restart Codex Desktop.
- Run the bundled CLI strict configuration doctor and verify that configuration and plugin loading succeed.
- Invoke create_thread.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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