Identity: OAuth with DPoP, done properly
- Confidential client: the bot hosts its own client metadata and JWKS and authenticates to the token endpoint with a private_key_jwt.
- Pushed Authorization Requests with PKCE; every API call carries a DPoP proof bound to a per-session key, so a leaked access token is useless on its own.
- Sign-in is gated by an admin token, and the callback rejects and revokes any account other than the bot's own DID.
- Refresh tokens are single-use, so refresh runs under a Postgres advisory lock to keep overlapping processes from revoking the session.

