mirror of
https://github.com/openai/codex.git
synced 2026-05-04 13:21:54 +03:00
1.6 KiB
1.6 KiB
+++ id = "29" title = "Auto-Approve Empty-Array Tool Invocations" status = "Not started" dependencies = "02" # Rationale: depends on Task 02 for auto-approval logic last_updated = "2025-06-25T01:40:09.600000" +++
Summary
Automatically approve tool-use requests where the command array is empty, bypassing the approval prompt.
Goal
In rare cases the model may emit a tool invocation event with an empty command: []. These invocations cannot succeed and continually trigger errors. Automatically treat empty-array tool requests as approved (once), suppressing the approval UI, to allow downstream error handling rather than perpetual prompts.
Acceptance Criteria
- Detect tool requests where
command: [](no arguments). - Do not open the approval prompt for these cases; instead, automatically approve and allow the tool pipeline to proceed (and eventually handle the error).
- Include a unit test simulating an empty-array tool invocation that verifies no approval prompt is shown and that a
ReviewDecision::Approvedis returned immediately.
Implementation
How it was implemented
- In the command-review widget setup (
ApprovalRequest::Exec), check forcommand.is_empty()before rendering; if empty, directly sendReviewDecision::Approvedand mark the widget done. - Add a Rust unit test for
UserApprovalWidgetto feed anExec { command: vec![] }request and assert automatic approval without rendering the select mode.
Notes
- This is a pragmatic workaround for spurious empty‑command tool calls; a more robust model‑side fix may replace this later.