Files
codex/agentydragon/tasks/29-auto-approve-empty-tool-commands.md
Rai (Michael Pokorny) 211c1ae28f update deps
2025-06-24 22:23:19 -07:00

1.6 KiB
Raw Blame History

+++ 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::Approved is returned immediately.

Implementation

How it was implemented

  • In the command-review widget setup (ApprovalRequest::Exec), check for command.is_empty() before rendering; if empty, directly send ReviewDecision::Approved and mark the widget done.
  • Add a Rust unit test for UserApprovalWidget to feed an Exec { command: vec![] } request and assert automatic approval without rendering the select mode.

Notes

  • This is a pragmatic workaround for spurious emptycommand tool calls; a more robust modelside fix may replace this later.