The structured transport now tracks resolved tool-use IDs and silently ignores duplicate control_response messages, preventing race conditions where a late-arriving permission response could cause errors.
Evidence
"Ignoring duplicate control_response for already-resolved toolUseID=" (search for "Ignoring duplicate control_response")
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 a bug where duplicate control_response messages (e.g. from WebSocket reconnects) could cause API 400 errors by pushing duplicate…