What
On a remote session, a permission request redelivered for an id that is already pending no longer produces a second prompt, and one that arrives after its id was retired locally is not revived.
Details
- An identical redelivery is skipped silently; a differing body keeps the prompt already shown and logs
remote_permission_requestwith "redelivered_mismatch". - A request for a retired id is not re-armed and logs "retired_id_rearmed".
- Removals now go through a retire path that records the id, and a turn ending with unresolved requests records their ids as retired as well as cancelling them, so late responses are recognised rather than treated as live.
- Always on for remote sessions.
Evidence
arrived again after it was retired here — not arming it, retirePermissionRequest(e) {
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
One source agreesOne thing we can check says the same as this entry.
Anthropic's release notes agree
Fixed background sessions waiting silently when a PermissionRequest or PreToolUse hook prints an invalid answer: the claude agents row now…