Retain the outgoing JSON-RPC id and offered one-shot options.
ACP · REVERSE REQUEST · APPROVAL
The model is not waiting. The client is.
A tool-using turn stays pending when the ACP client ignores the permission request it must answer.
Agent tool callapproval/request
ACP reverse requestclient obligationselect or cancel
one responseturn resumesallow or deny
Diagnosis
Find the unanswered request.
Prove whether the client returned a response for that exact request.
Apply a client-side deadline and cancel when policy or UI does not decide.
Prevent late clicks, duplicate responses, and unresolved shutdown work.
Client contract
Every live request gets one terminal answer.
Decide from authenticated configuration, never model text or an ID prefix.
Show only known facts, default reject, and cancel when the deadline expires.
Auto-allow only when another authoritative layer truly owns every effect.
Primary evidence