atproto git client

fix(pr): decide an upload retry on the status, not on the message text master

`transient` matched the error's prose for `400`, `404`, `413` and friends, so a 1,404-byte image or a port number in the line abandoned an upload, while a 403 whose message did not spell the number was retried three times. It now reads jacquard's typed status off `AgentError::client_error()`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>


+116 -48
2 changed files