fix(auth): show inline errors on login instead of 500ing
Catch ConnectionException and RequestException from the Bluesky OAuth
redirect and convert them to ValidationException on `handle`. Inertia
now returns a 422 with the errors bag, so bad handles render under the
input and the spinner stops, instead of the request blowing up as a 500
and the spinner spinning forever.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>